日志记录
文章平均质量分 72
嵌入式小宁
从事相关gd32,stm32,ch32,esp32,frertos,ucosiii,嵌入式Linux应用程序,硬件外设对接,片上协议通信,设备数据交互
展开
-
【日志记录】---编译器内存对齐优化导致结构体成员引用异常
如果你想要避免这种填充(在某些情况下,比如内存使用非常关键时),你可以使用特定的编译器指令或属性来控制对齐,但这通常不是推荐的做法,除非你有明确的理由。进一步调试发现原本3个字节大小的结构体,在内存中占用了四个字节的位置,这正是导致输出数据异常的原因,多出的一个字节导致数据引用出现了错位。在一个跨线程数据处理消息的时候出现了以下内存错位现象,在结构体指针引用的时候出现了成员数据异常。2.【目标结构体】线程B知道线程A该条消息的结构体,定义了专门的结构体来套字节流中的数据。后面可能有一个填充字节,以确保。原创 2024-05-07 16:53:53 · 305 阅读 · 0 评论 -
【日志记录】------不同网段两台设备通信
子网掩码是一个32位的二进制数,其中的1表示网络地址,而0表示主机地址。因此,IP网段是通过子网掩码来定义的,具有相同网络地址的IP地址集合构成了一个网段。IP地址由网络地址和主机地址两部分组成,其中网络地址用于标识一个特定的网络,而主机地址则用于标识该网络中的某一台计算机。在局域网内调试设备的过程中,发现两台不在同一网段的设备实现了通信,IP地址为192.0.80.252的设备访问了IP地址为192.0.40.231的服务器。无论使用哪种方法,都需要对网络进行正确的配置和管理,以确保通信的安全和可靠性。原创 2024-02-19 15:58:51 · 520 阅读 · 0 评论 -
【日志记录】——主MCU 通过私有协议更新从MCU程序固件
异步协议方式:主MCU在程序传输过程中,从MCU不需要对每包程序进行应答,而是默默校验每包程序,当传输校验出错时或者出现丢包现象,包序号不连续,从MCU 会发出出错申请,告诉主MCU 当前传输位置,并继续传输,这种方式一定程序上降低了耦合性,减少了程序阻塞,提高了程序效率,但是实际在应用过程中,错误纠正处理机制往往相比同步协议方式更为复杂,另外还需要对两片MCU数据传输和处理速度做好匹配,毕竟是异步方式,当速度没有匹配在合适范围,就会出现通信错位的情况,虽然有纠错机制,但是最好不要有明显错位现象。原创 2024-02-03 14:24:25 · 765 阅读 · 0 评论 -
【日志记录】——单片机可执行文件合并
现在有一片单片机,执行程序包括自定义boot和应用程序app, 在将打包好的固件给到生产是有以下问题,由于要通过jlink烧录boot,然后上电启动boot,通过boot烧录初始化程序,过程过于复杂,流程步骤比较多,于是产生了现在这个需求再给到生产前直接将boot可执行文件与app可执行文件合并成一个固件,直接通过jlink一次性烧录完成。它的每一行都以冒号开头,表示记录的开始,然后是数据地址和数据内容。Hex文件的每一行都遵循上述结构,从冒号开始,然后是地址、长度、类型、数据和校验和,以回车换行符结束。原创 2024-02-02 16:58:43 · 1437 阅读 · 0 评论