
分享一种修改配置文件的方法
通常,我们使用的配置文件可以采用标准格式,比如json、ini等,也可以是一些非标准格式。对于这些标准格式,通常有相应的库可以使用来解析和修改,非常方便。然而,当我们需要修改一些非标准格式文件中的内容时,可能就需要自己动手解决了。

分享一种你可能不知道的bug定位方法
在嵌入式Linux开发中,使用gdb对core文件进行调试是一种有效的定位程序崩溃的方法。这种方法在之前的文章中也有提到过。实际工作中,使用gdb调试core文件可能会面临一些问题。在本文中,我们将分享关于core文件的几点内容,包括core文件是什么、前台进程生成core文件的方法、后台进程生成core文件的方法、以及如何调试core文件。另外,我们还会提到导致崩溃栈信息有限的可能原因。

一个超级实用的单片机调试组件!
DWT 中有剩余的计数器,它们典型地用于程序代码的“性能速写”(profiling)。通过编程它们,就可以让它们在计数器溢出时发出事件(以跟踪数据包的形式)。

例子 | 环形队列来实现串口数据接收
对于从事编程工作的人来说,应该都学过数据结构,并且对队列这个概念有一定的了解。而环形队列是队列的一种特殊形式,它在实际应用中非常广泛。由于关于环形队列的内容已经有很多文章讨论,理论知识可以参考其他人的文章。这里我推荐一篇非常好的文章,名为《STM32进阶之串口环形缓冲区实现》,它详细介绍了如何使用STM32微控制器实现串口的环形缓冲区。

推荐一个资源占用极少的json解析器!
最近我在处理一位离职同事编写的代码,他的代码主要负责与云平台进行交互,并且使用标准的JSON格式进行通信。他采用了cJSON库来解析JSON数据。不幸的是,这位同事在防御性编程方面技术很差,很多地方没有进行必要的内存释放操作,也没有进行指针判空,直接使用了指针。在多线程环境中,这种做法非常危险。因此,当我和另一位同事接手这部分代码后,出现了大量的白屏和卡死等问题。经过一段时间的调试和定位,我们发现这些问题是由于代码编写不严谨所导致的。

实现一个高效率的内存拷贝函数memcpy
其功能是将src开始位置的n个字节数据复制到dest。如果dest中已经存在数据,将被覆盖。memcpy函数的返回值是dest的指针。memcpy函数定义在string.h头文件中。