自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 安装双系统Ubuntu22.04安装ros2 Humble版本

boot分区 ,逻辑分区,默认ext4。注意:如果提示ros2未发现命令,重启一个终端再次尝试,如果boot分区不够,会出现一些安装错误,提示需要调整boot分区。/swap交换分区(虚拟内存),逻辑分区,16GB(8G及以下RAM选择两倍大小,以上跟RAM大小一样)/home分区,主分区,默认ext4,剩余的空间全给它,50G以上,用户的所有文件都在这里。/ 根分区(root分区),逻辑分区,选择50-100G左右,默认ext4,接下来按照提示安装,记录一下注意点,如果硬盘够用选择正常安装。

2023-12-12 15:30:44 691

原创 物奇5007crash问题dump、栈回溯的四种定位方法

物奇属于RISC-V架构(chapter1_riscv.md · 华中科技大学操作系统团队/pke-doc - Gitee.com),在遇到crash问题时,系统内部会对内存进行相关的保护和检测,当发现异常时会主动调用 IOT_ASSERT,通常会产生相关的 log 文件, 如: ***.c:xxx Asserted!出现异常时的现场 dump 记录,将通用的 32 个 CPU 寄存器 dump 输出。回栈信息记录。出现异常时的堆栈信息以及调用函数地址。

2023-09-01 10:29:21 273

原创 ARM32平台系统crash(系统崩溃) 问题定位的一种解决方法

ARM32平台系统crash(系统崩溃) 问题定位的一种解决方法,系统崩溃,rtos,liteos,段错误

2023-01-06 11:25:51 1582

原创 (C语言进阶)设计模式之--观察者模式

观察者模式C实现

2022-09-08 15:23:56 685

原创 (C语言进阶)设计模式之--单例模式,简单工厂模式

(C语言进阶)深入设计模式---单例模式,简单工厂模式

2022-08-08 21:05:09 432

原创 ping内网流程以及ARP,ICMP,IP报文格式

ping内网流程 正常ping流程 A->B arp广播报文格式: 其中OP 1 :表示ARP请求2:表示ARP应答3:表示RARP请求4:表示RARP应答 B->A 回复arp报文格式 A->B ICMP协议报文格式(ICMP属于OSI七层协议的网络层,和IP一层,ICMP使用时必须增加IP报头) B->A ICPM协议报文格式 IP报文头部格式 ...

2022-03-29 11:38:46 816

原创 使用git submoudle 开发管理项目

创建公用仓库创建一个仓库esd_esp32-c3_modules作为公用模块,同时也为项目的子模块,https://git.com/xxxxxt_embedded/esd_esp32-c3_modules以下为middleware、aws-iot和esp-idf共同的公用仓库,middleware为我司代码,sdk中为esp开源源码,分支为master,同时因为sdk的esp-idf和esp-aws-iot也是作为公用仓库esd_esp32-c3_modules的子模块,所以需要先添加这两个git仓

2022-03-29 11:13:43 234

原创 ubuntu移植编译Google的Protobuf-C以及开发流程

1、移植PC版本的ProtoBuf的相关文件和可执行程序1、获取[Protobuf源码](https://github.com/google/protobuf)2、编译宿主机版本Protobuf软件,因为Protoc-C依赖Protobuf的库文件和头文件(配置编译环境可执行文件)1)下载完源码后,执行./autogen.sh2)生成一个configure可执行程序3)执行./configure --prefix=/homelisx/usr/local/protobuf没有错误输出,生

2022-03-29 10:54:18 2459

原创 C进阶---函数宏的封装方式

函数宏,即包含多条语句的宏定义,其通常为某一被频繁调用的功能的语句封装,且不想通过函数方式封装来降低额外的弹栈压栈开销。第一种:#define INT_SWAP(a,b) \ int tmp = a; \ a = b; \ b = tmp但是这种方式作用域在遇到if、while等不使用{}会在第一个分号就结束了。第二种:#define INT_SWAP(a,b)\{ \ int tmp =.

2021-07-13 18:54:52 486

原创 __attribute__((section(”XXXX“)))的编译属性---section

__attribute__((section(”name“)))是gcc编译器支持的一个编译特性(arm编译器也支持此特性),实现在编译时把某个函数/数据放到name的数据段中。

2021-06-18 19:57:43 1223 1

原创 git关于推送,代码、分支合并,代码冲突,撤销或修改commit,打标签,重定向等常用用法记录

在多人协作开发中,分支的运用比较多,总结一下,一般分支需要在主分支上切一个本地分支出来,然后有修改再合并到主分支上如果有次修改在主分支上修改,但是主分支已经有同事推送新code。可以先git add .再git pull,这时候就会有很多更新,git push 远程分支是不行的,会提示冲突,这时可以新建一个本地分支出去git branch V1.1git add .git commit -m "1、新的修改"git push origin V1.1这时候最新的修改已经推送至你

2021-01-11 21:47:16 2313

原创 1、git推送指向当前分支 2、git强制覆盖本地命令

git push origin HEAD:remotes/origin/dev

2020-03-16 15:56:10 244

原创 FreeRTOS浅析:解决两个任务运行冲突,系统停止一个任务唤醒另一个任务的方法

FreeRTOS中的任务和多线程的概念差不多,但是任务的本质是把时间片无限的切小,小到人分辨不出来,其实还是一个时间只能运行一个任务,这是和多线程的根本区别。FreeRTOS中的任务有几种运行态:如果我正在运行A任务,但是B任务起来的时候我需要把A任务挂起,等B任务结束A任务继续运行,不能冲突。下面是demo。首先运行一个主程序,开启一个任务,里面再开启两个任务extern ...

2020-01-16 11:15:14 4279

原创 cjson打包数组

cJSON *timerJsonArry=cJSON_CreateArray();先创建一组数组, cJSON *ArrayItem = cJSON_CreateObject(); cJSON_AddNumberToObject(ArrayItem, "enable", g_system_data.device_state.mqtt...

2020-01-16 10:52:13 2144

原创 git仓库查看自己提交代码数和修改数量以及修改自己回退代码和切回代码

$ git log --author="Govee-lsx" --pretty=tformat: --numstat | gawk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "增加的行数:%s 删除的行数:%s 总行数: %s\n",add,subs,loc }'回退代码git logcommit i...

2020-01-15 09:53:02 2218

原创 git推送当前分支落后远程分支 int: Updates were rejected because the tip of your current branch is behind

一般问题是已经有人已经push了,所以你当前的分支落后上传的分支,所以出现冲突,你需要先下载到本地,合并分支然后重新push,如果有冲突就先解决冲突。$git remote add gitee https://XXXXXXXXXXXXXX.git $git fetch origin$git merge origin/你要合并的分支名称这样就解决了分支冲突的问题,然后再次推送...

2019-12-05 11:29:52 717

原创 git删除推送至master上的某次错误提交

假设你有3个commit如下:commit 3commit 2commit 1其中最后一次提交commit 3是错误的,那么可以执行:git reset --hard HEAD~1你会发现,HEAD is now at commit 2。如果你觉得你的有些代码还需要的话可以在这条命令之前先本地保存一下或者重新创建一个临时分支来保存代码。然后再使用git push -...

2019-11-01 12:30:16 964

原创 MFC下拉框扫描所有WiFi

1.先创建一个IDC_COMBO11.2 CComboBox m_OpenWifiList;命名好变量 ,CMFCButton是Button的子类,继承了Button的所有功能并且扩展了部分功能具备CButton拥有的基本按钮属性和操作方法,此外它还具有一些特殊的功能1.3 DDX_Control(pDX, IDC_COMBO1,m_OpenWifiList);然后用I...

2019-10-17 10:41:06 656

原创 VMware:无法打开磁盘;\******.vmdk 或者某一个快照所依赖的磁盘

解决办法:1)删除虚拟机配置文件下面所有的.lck文件2)删除虚拟机配置文件下面所有类型为快照的.vmsn/.vmsd文件

2019-09-27 16:32:12 2462

原创 安卓使用speex开源库

Speex是一套主要针对语音的开源免费,无专利保护的音频压缩格式。Speex工程着力于通过提供一个可以替代高性能语音编解码来降低语音应用输入门槛 。另外,相对于其它编解码器,Speex也很适合网络应用,在网络应用上有着自己独特的优势。同时,Speex还是GNU工程的一部分,在改版的BSD协议中得到了很好的支持。它完全是C语言实现的,所以它具有很好的移植性。所以在Android当中具有很好的...

2019-09-03 14:58:41 3029

原创 cmake方式导入第三方.a静态库以及编译库时出现ninja: error: '../../../../src/libs/armeabi-v7a/xxx.a', needed by '../../.

自 android studio 2.2 +后就集成了ndk开发, 自带cmake 编译器. 编写ndk时候,配置很简单。再也不需要用android.mk配置文件。如果要添加第三方的xx.a链接库通常把第三方提供的h文件夹,放在cpp的include里面。这是规范,不是必须。我的就没放,而xxx.a库放在/src/main/libs/armeabi-v7a/目录下。本文章以添加li...

2019-09-03 14:41:20 13162 2

原创 AudioTrack的使用

AudioTrack 一般用来实现播放原始音频数据(PCM)public AudioTrack(int streamType, int sampleRateInHz, int channelConfig, int audioFormat, int bufferSizeInBytes, int mode); /** 默认声音 **/public static ...

2019-09-03 14:32:36 953

原创 C++中数据类型所占位数

C++中数据类型所占位数

2019-08-13 18:00:57 311

原创 malloc之后free导致出错的问题

今天写程序的时候碰到一个问题,在给一个指针拷贝内存的时候,总是出错 memcpy(AudioSend_Stream, UdpPackageHead, 6);后来发现是没有开辟内存,好吧,比较低级的错误,然后开辟了一段内存空间 AudioSend_Stream = (unsigned char *)malloc(sizeof(UdpPackageHead));之后发现没问题...

2019-08-10 12:47:03 1445 2

原创 安卓中java调用另外一个类中方法的局部变量

安卓做视频流需要在mjpeg控件中调用数据解码,在manactivity类中的方法中回调到另外一个类中的方法,首先需要调用一个类变量,然后把局部变量的数据给到类变量,然后再另外一个类中实例化,因为java中局部变量是不能直接调用到另外一个类中的,会随着方法的结束而回收。这是变量的解释类变量类型:1.局部变量:在方法、构造方法、语句块中定义的变量。其声明和初始化在方法中实现,在方法结束...

2019-07-29 15:25:36 3477

原创 androidJNI调用c++字符串

在Android中用C/C++开发一部分功能时,有时候要把参数传到java层,java层来做相应的处理和更新UI。所以安卓有一个JNI来给开发者们调用这些数据和处理。但是这样会损失一些性能,第一,java跨平台的优势没有了,第二,当c/c++写的代码出问题时候,程序会崩溃,不容易找错,所以建议调用时候要多加LOGI打印,在关键调用地方记得要添加返回值,这样能够省掉很多时间来找错误。...

2019-07-24 19:43:10 316

原创 安卓JNI中用socket崩溃出错,错误代码13,用errno解析结果

安卓jni中写一个socket连接但是一直创建不成功返回-1,然后用打印出错句柄,用<errno.h>头文件,在代码中加入errnoif(UDP_DataSocket = socket(AF_INET, SOCK_DGRAM, 0) == -1) //create data packag socket { LOGD("socket创建出...

2019-06-24 16:53:34 2755 1

原创 两个git账号登录导致Permission denied解决方法

用git管理仓库上传文件,但是之前我的电脑账户有一个私人的git账号了,现在公司给我开了另外一个账户,导致在git add .的时候会出现"Permission denied"的错误,这是由于公钥失效的问题导致的,要重新添加一个公钥进去。先进去ssh文件位置cd~/.ssh,然后重新创建公钥ssh-kengen -t rsa -C "你的邮箱",然后一路enter下去,最好换个名字,我的是...

2019-05-15 19:10:11 4896 1

原创 I2C驱动框架时序以及运用(可直接移植)

最近运用SN7326做了一个I2C驱动,由于没有多的I2C,所以用GPIO口模拟了I2C来通信,做一个记录,便于以后复习运用。I2C最麻烦的就是时序问题,调试起来有点困难,最好是按照标准时序来调试,不然 会出现一些莫名其妙的错误,比如收到的数据为0xFF,比如没有ack回复,收不到数据等等。 下面这是I2C时序图:大概的原理是这样的,I2C一般是两根线,一根是SCL,一根是SDA...

2019-05-14 15:01:32 1215

原创 数据结构C语言实现单链表

c语言实现单链表的插入、删除、查找和遍历功能,逆序功能稍等链表最难的就是指针的操作,所以要多画一下,然后对照图写代码实现功能,才能增进对链表的理解原理如图: 代码实现如下: /*单链表*/#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;typedef int T;typedef struct node{ /* 1 ...

2019-02-20 17:02:16 727

原创 source insight操作指南

source insight 常用快捷键(右键里大多功能有快捷键提示)      退出程序                                : Alt+F4   重画屏幕                                : Ctrl+Alt+Space   完成语法                                : Ctrl+E   复制一行  ...

2018-12-31 16:56:22 4523

原创 santiago机器用DFTP连接PC上传、下载和挂载文件

连接机器,串口 和usb口lcd d:\bogota\deploy : 到PC端要发送到机器的文件所在的目录stor uImage-3.4.39  : 把文件发送到机器bogota的根目录stor modules-3.4.39.tar : 把文件传到bogota的根目录Retr ./a.out           : 把机器bogota目录的文件下载 到串口挂载PC发送给sant...

2018-11-23 09:14:39 195

原创 linux中ls命令中按照单位KB查看文件大小

-h    human-readable  人性化阅读ls -lh

2018-11-22 17:28:49 15330 2

原创 LINUX中的grep搜索命令格式

每次 用这个命令都忘记格式随手记一下参数[options]:    -c:只输出匹配行的计数。    -i:不区分大小写    -h:查询多文件时不显示文件名。    -l:查询多文件时只输出包含匹配字符的文件名。    -n:显示匹配行及行号。    -s:不显示不存在或无匹配文本的错误信息。    -v:显示不包含匹配文本的所有行。命令格式:grep –r "被查找的字符...

2018-11-16 17:16:46 336

原创 Linux挂载(mount)命令例程

我们经常在服务器上编译完kernel之后需要把文件复制到机器上运行,但是linux不能直接复制,所以需要挂载在机器上才能复制,这就需要mount命令:mount命令格式: mount [-t vfstype] [-o options] device dirmount参数很多,下面是其中一些,1.-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型...

2018-11-08 11:13:00 377

原创 linux命令chmod 赋值权限操作

sudo chmod -R 777 ./*  给当前文件夹下所有文件或者子文件赋值最高权限-R 遍历路径内的所有文件

2018-11-06 10:49:51 4777

原创 VM虚拟机安装vm tools时tar不能解压安装包解决方法

虚拟机安装了ubuntu时候需要共享文件夹,很方便,可以在虚拟机和客户端pc上交互,但是共享文件夹一直显示禁用,这是虚拟机没有安装vm tools的原因,选择虚拟机,点击安装tools下载后进入media/lee/VMware Tools文件夹解压。但是会解压失败,一般的原因是因为vmtools的安装包,默认是挂载在光盘中,需要先拷贝出来,再解压,才会成功。或者,参考如下配置:sudo -s...

2018-10-20 16:48:10 11712 1

原创 初学者关于linux深入学习的路线(kernel和linux应用)

1. 了解操作系统基本概念。如果不会,可以学习《操作系统:设计与实现》Andrew S.Tanenbaum 写的那本。以MINIX为例子讲解操作系统的概念。2.非常推荐,还有一本基础教材叫做Linux内核情景分析。下面是看这本书的建议:     (1) 首先重点阅读“第1章预备知识”和“第2章存储管理 ”这两章,特别是对于不太熟悉X86架构和段式/页式内存管理的读者。这不仅是因为这两章奠定...

2018-10-18 17:24:16 8297

转载 printk无法输出到打印台问题和Linux日志文件详解

1. 查看当前控制台的打印级别 cat /proc/sys/kernel/printk 4    4    1    7 其中第一个“4”表示内核打印函数printk的打印级别,只有级别比他高的信息才能在控制台上打印出来,既 0-3级别的信息2. 修改打印 echo "新的打印级别  4    1    7" &gt;/proc/sys/kernel/printk3. 不够打印级别...

2018-10-11 11:32:10 1322 1

转载 Bnuntu140.4搭建Android5.1开发环境和编译

From: http://www.linuxidc.com/Linux/2015-07/119759.htm1、安装Ubuntu14.04先下载Ubuntu系统,官网地址,从ubuntu10.04-ubuntu15.04都有下载,具体根据需求可以下载desktop和server版本一般虚拟机建议安装desktop版本,方便管理,本人电脑是64位的,所以下载的ubuntu-14.04.2-se...

2018-08-16 10:08:13 215

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除