最新文章

工具 | 虚拟串口软件的使用分享
这几天阅读的人相对较少,我先来分享一篇关于虚拟串口软件的简单使用的小文章。在编写串口上位机时,通常需要进行调试工作。一种方式是与下位机进行通信进行测试,另一种方式是通过虚拟串口软件进行测试。

干货 | 分享一个实用的、可应用于单片机的内存管理模块
这次我要与大家分享一个大佬编写的单片机内存管理模块——mem_malloc。这个mem_malloc模块的特点是使用起来不会产生内存碎片,可以高效地利用单片机的RAM空间。

Linux GNU C 与 ANSI C 有什么区别?
Linux 上可用的 C 编译器是 GNU C 编译器,这个编译器是建立在自由软件基金会的编程许可证之上的,因此可以自由地发布和使用。GNU C 对标准 C 进行了一系列的扩展,以增强标准 C 的功能。

如何在MCU上测量代码执行时间?
在众多实时应用领域,例如电机控制、发动机控制以及无线通信等时间敏感的应用中,CPU对代码的执行时间可能只占据不到5%的时间。一般来说,这些嵌入式系统会使用C语言进行编写,开发人员可能会使用汇编语言来优化代码,以满足时间期限的要求。测量部分代码的实际执行时间可以帮助我们找到代码中的时间关键点。

怎么理解FreeRTOS的任务状态机?
前面的文章介绍了如何在FreeRTOS中点亮LED灯,这算是成功地运行了FreeRTOS。要想充分利用RTOS,从黑盒的角度理解调度器的工作原理是非常必要的。当然,如果想要研究RTOS的内部实现原理,可以阅读其内核代码,但个人认为,从使用的角度出发,将内核视为黑盒,并梳理一下概念也是很有用的。

一种轻便的裸机多任务实现方法
你是否因为将一大堆任务都放在while循环中,通过一系列的条件判断语句(如if、else、switch、case)来处理而感到烦恼?或者你想使用类似FreeRTOS或uCos这样的实时操作系统,但发现芯片的存储空间有限,无法添加进去…如果是这样的话,本文将向你推荐一种裸机多任务实现的方法,让你告别繁琐的while(1)循环。如果有任何错误之处,请指正,我们一起交流吧~

嵌入式中输出调试有几种方法?
基于MCU的嵌入式软件开发可能会遇到存储空间不足的情况,因此无法有效地保存调试和日志信息。
在这种情况下,通过某种方式输出调试(Debug)和日志(Log)信息就变得非常重要。

嵌入式编程上下文切换及完美解耦的一种方法
通常我们认为,在中断处理程序中不应该执行耗时操作,因为这可能会影响系统的稳定性,特别是在嵌入式编程中。在具有操作系统的程序中,可以通过操作系统的调度机制将中断处理分成两个部分,将耗时操作放在线程中执行。但是对于没有操作系统的情况下,应该如何处理呢?