- 博客(26)
- 收藏
- 关注
原创 CMake自动添加源文件和头文件
最近要写一个测试程序,需要用到CMAKE,因为涉及到需要不断添加文件进去,虽然使用最基础的cmake去写,也可以实现,但是缺点是每次添加源码时都要修改一次cmake的依赖关系。于是看到一个自动检索的cmake,微调了一下实现编译自己的软件。
2024-05-08 11:07:03
713
原创 在移植QT时遇到的库版本异常:CXXABI_1.3.9 GLIBCXX_3.4.21
因为制作根文件系统时复制的libstdc++.so.6库文件版本旧,不包含CXXABI_1.3.9和GLIBCXX_3.4.21。我去找着了另外一个编译器的libstdc++.so.6,通过上诉查找,包含上诉的版本,替换报错的库文件即解决。经过查找确实没有包含报错的版本,另外一张图就不贴了,同样的也是没有报错的版本。在移植QT时,所有的都编译都完成之后,在试运行测试程序时,报错如图。另外也可以去下载新的库文件,具体方法参考。具体通过下列命令搜查是否包含报错的文件。
2024-04-29 15:47:22
464
原创 关于ubuntu磁盘越用越大的问题
首先问题:在使用过程中,把文件导入进虚拟机后,使用完成删除之后,虚拟文件的大小会随导入文件增大而增大,但是不会随删除而减小。故会出现磁盘越用越小的情况。sudo /usr/bin/vmware-toolbox-cmd disk list # 查看磁盘挂载点,然后执行。而此时按照也会失败,因为使用这个工具瘦身需要磁盘有比较大的空间,能够放下执行后的文件。那么此时无奈之举,就是那个硬盘,把当前虚拟机拷贝过去,然后在硬盘上瘦身、清理工作。也可以直接导出ovf文件的方式。
2023-08-16 14:36:10
1029
1
转载 C++/C码规范
3.5 命名规范必须与所使用的系统风格保持一致, 并在同一项目中统一, 比如采用UNIX的全小写加下划线的风格或大小写混排的方式, 不要使用大小写与下划线混排的方式, 用作特殊标识如标识成员变量或全局变量的m_ 和g_ , 其后加上大小写混排的方式是允许的。注:(1)由于留空格所产生的清晰性是相对的, 所以, 在已经非常清晰的语句中没有必要再留空格, 如果语句已足够清晰则括号内侧(即左括号后面和右括号前面)不需要加空格, 多重括号间不必加空格, 因为在C/C++语言中括号已经是最清晰的标志了。
2023-07-05 09:56:45
357
原创 对调试信息函数的宏封装实用小技巧分享
如果有需求,还可以在宏中定义一个输出等级,do{}while(0)中判断一下输出等级再决定是否输出调试信息。在轻量型嵌入式开发中,没有单独的日志信息库,所以通常需要开发者自己对调试打印信息进行封装,这样即方便调试,也方便后续查问题,可以用一个宏开关对齐全局控制。另外就是在打印信息中,我们想要加入其他打印的信息,比如行号,函数名等等,但是又不想每写一句调试信息就写一边,就可以通过下面的方式,利用宏的可变参数实现。如代码段一,用宏去简单粗暴的定义,定义后编译后显示的占的空间很小,会直接被优化掉。
2023-06-09 15:25:41
158
原创 linux驱动modprobe和rmmod时提示NULL指针错误
因为是在之前的驱动上修改了框架,变动比较大,所以不少函数都变了,接下来就是令我郁闷的一个问题:在modprobe时看似没问题,也成功执行了。lsmod也能查看的加载的模块,在rmmod时直接出错?因为一时的疏忽大意,probe中使用了一个未初始化的指针,导致在modprobe时出错提示NULL指针。这个问题很快就查到了。如果一个probe函数探测失败,驱动向系统申请的有关资源都会被释放,如中断号,申请的内存等。是因为在调用probe时没有正确的返回0,内核认为驱动失败,rmmod时当然会出错。
2023-03-22 09:55:26
319
原创 linux随笔记 - 电容触屏
该笔记是在学习电容触摸相关知识的时候说记录的笔记,总的来说,这是这个相对比较综合的时候,会设计到IIC驱动设备,中断驱动,input子系统。这些在前面的已经进行学习过了,因为笔者有一款传感器需要些,也是需要设计到上述相关的知识。而本实验中除此之外还需要补充一个触摸协议MT协议。Type A:适用于触摸点不能被区分或者追踪,此类型的设备上报原始数据(这种现在用的很少)。Type B:适用于有硬件追踪并能区分触摸点的触摸设备,此类型设备通过 slot 更新某一个。
2022-12-25 22:08:05
320
转载 各个交叉工具链区别及命名
ARM CPU汇总 & 编译链选择 - solonj - 博客园ARM32、小端、裸机工程: arm-none-eabiARM32、小端、Linux工程: arm-none-linux-gnueabihfARM64、小端、裸机工程: aarch64-none-elfARM64、小端、Linux工程: aarch64-none-linux-gnuARM64、大端、Linux工程: aarch64_be-none-linux-gnu。
2022-12-15 16:38:37
1478
原创 linux随笔记 - platform设备驱动及总线
在SOC中存在I2C、SPI、USB 等总线模型。通过总线来将驱动和设备分开。形成【驱动】-【z总线模型】-【设备】在SOC中不存在这个外设的总线模型时,就引出了platform总线模型。同样的也是将具体的驱动和控制的设备对象分开。include/linux/device.h中,bus_type便是这个总线模型,通过其中的match函数对驱动和设备进行匹配。device注册和注销/driver注册和注销:其中在注册设或则是注册驱动的时候,最终会调用到bus_type中的match函数,进行比
2022-12-04 20:23:54
226
原创 低级BUG记录 - 我的sprintf瞎逼操作
这个错误明明就是很憨憨。之前没有那么多字符,后面又加了几个字符,没想到出现了溢出,函数体内部变量放在栈上,所以应该是导致栈数据异常,内存数据异常。查了老半天,真的是气死。代码不规范,熬夜黑眼圈,不该出的低级错误。最终导致我有一个全局变量莫名奇妙的变了。在自己项目中出现了的一段奇怪代码。
2022-11-24 00:46:29
165
原创 linux随笔记 - 共享资源保护常用的几种方式
linux并发访问时,可能存在多线程多核同时访问一段内存,造成数据混乱,所需要对资源进行保护。几种常见资源保护方式
2022-11-20 22:41:35
909
原创 linux下的交叉编译工具使用
这里写自定义目录标题新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入这里写自定义目录标题新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个
2021-06-02 16:17:13
811
转载 github上传管理代码
github上传管理代码【转载】原文链接:https://blog.csdn.net/m0_37725003/article/details/80904824 ...
2019-12-11 23:49:52
148
原创 基于QT写的一个翻金币小游戏
基于QT写的一个翻金币小游戏基于QT写的一个翻金币小游戏基于QT写的一个翻金币小游戏这是我参考创智学院的教程做的一个小游戏,素材均来自于创智学院。因为我是做嵌入式有快一年了,之前接触的东西都有限,想玩一玩QT,提升一下自己的知识面,觉得这个游戏作为QT入门还是不错,所以将这个项目总结一下。本来很久之前就决定将自己在入门嵌入式的遇到的一些问题总结出来,总是因为没有时间。以后会陆陆续续的分享一...
2019-12-11 22:44:30
3512
6
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人