- 博客(6)
- 收藏
- 关注
原创 【c/c++】c/c++通过取消结构体字节对齐的方法,实现高效的解析协议和打包协议
在嵌入式程序通讯的过程中,往往需要发送协议,打包协议和解析协议的操作比较繁琐,如果可以用结构体按照协议定义成员变量。在解析协议和发送协议的时候效率会很高,但是实际测试发现成员变量长短不同时,在内存分配时,编译器会进行内存对齐。由此可以看到,结构体取消字节对齐,可以让结构体按真实长度占用内存,使得在打包协议的时候。格式没有多余的00,在发送数据的时候,不需要单独打包数据,直接发送结构体就可以了,减少业务代码,但是需要留意大小端问题。这种对齐通常基于数据类型的大小,以确保数据在内存中的布局符合特定的要求。
2024-08-24 18:52:22
903
原创 【FreeRTOS】FreeRTOS的任务创建和删除(三)
任务的创建和删除本质就是调用FreeRTOS的API函数:任务的任务控制块以及任务的栈空间所需的内存,均由 FreeRTOS 从FreeRTOS 管理的堆中分配:任务的任务控制块以及任务的栈空间所需的内存,需用户分配提供动态创建任务函数(用起来只需这三步)1、将宏configSUPPORT_DYNAMIC_ALLOCATION 配置为 12、定义函数入口参数3、编写任务函数此函数创建的任务会立刻进入就绪态,由任务调度器调度运行1、申请堆栈内存&任务控制块内存2、TCB结构体成员赋值。
2024-08-24 15:32:17
931
原创 【c/c++】从C到C++快速入门(会c语言想学c++看这篇文章就够了)
从事嵌入式多年,一直和mcu打交道,只用到c语言,后来为了学习QT。就得学习c++,市面上很多教程都是从基础开始教。明显不适合我,经过网上大量查找和总结,终于整理成一篇以从事c语言工作者的角度,快速跨入c++工作者的笔记。适合于c语言基础扎实的人学习,可以快速掌握c++。
2024-08-23 12:45:32
1847
2
原创 【c/c++】简洁的c语言的程序编程和命名规范
程序命名规范在软件开发中扮演着至关重要的角色,它们不仅影响着代码的可读性、可维护性,还直接关系到团队协作的效率和项目的长期成功。综上所述,指定程序命名规范对于提高代码质量、促进团队协作、增强代码可维护性和可读性等方面都具有重要意义。因此,在软件开发过程中,应该重视命名规范的制定和执行。
2024-08-23 08:36:36
917
原创 【FreeRTOS】裸机与RTOS的区别和特点(一)
我们可以用小明打游戏和回复微信来比喻两个任务,来分析裸机和RTOS的区别。当小明要进行打游戏和回复微信的动作时,裸机和RTOS的运行代码和逻辑。所以,打游戏和回复微信轮流执行,当打游戏时,不能回复消息,当回复消息时,不能打游戏。所以,打游戏和回复微信并发执行,当打游戏时,也能回复消息,当回复消息时,也能打游戏。裸机:裸机又称为前后台系统,前台系统指的中断服务函数,后台系统指的大循环,即应用程序。同样的场景,假设此时小明肚子疼了,要去医院,此时裸机与RTOS。,就是实时操作系统,强调的是:实时性。
2024-08-22 17:01:31
728
任务创建和删除的API函数keil工程源码
2024-08-24
毕业论文基于单片机控制的开关电源论文资料
2024-08-23
基于单片机控制的交通灯毕业设计资料
2024-08-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人