因为当前项目单片机容量不够使用,打算开启编译器优化,结果在使用KEIL编译器优化后,程序在发送Modbus数据时,程序直接跑飞了 先说结论: 最后发现是局部变量指针作为了DMA的内存地址参数,导致当DMA连续搬运数据时,实际那个局部变量已经被释放,导致DMA搬运数据的过程中出现错误,但是为什么没优化之前没有问题,实在难以理解 确认现象:   当单片机回复上位机的时候就会跑飞,接收不会有问题。 寻找错误:    修改单个文件的编译优化等级,发现只有当bsp_modbus.c文件无优化的时候才是正常 确定是该文件的程序有问题。 通过在线调试发现只有回复...

  sT2qxeIRKGqY   2024年04月09日   27   0   0 嵌入式

代码参考出处:https://github.com/mcuwty/osal.git 我在此此基础上做了整理,移植到了stm32f103上:demo链接:https://pan.baidu.com/s/1WoL8QCnicxO11hdeh4uh2Q提取码:wsn3 参考资料: 学习笔记(二)——BLE协议栈OSAL知乎(zhihu.com)   OSAL:即操作系统抽象层,它并不是一个传统意义上的操作系统,但是实现了部分类似操作系统的功能,包含消息通知,任务调度,时间控制等,不具有优先级抢占功能,由任务事件驱动。   可以创建任务,然后每个任务由一个16bit的事件...

  sT2qxeIRKGqY   2024年03月27日   60   0   0 嵌入式

defineoffset_of(type,member)((unsignedint)&((type)0)->member) definecontainer_of(ptr,type,member)((type)((char)(ptr)offset_of(type,member))) offset_of(type,member) 用途:用于获取获取结构体某一个成员在该结构体中的位置 参数1:type,表示结构体的类型 参数2:member 表示结构体成员 分析: (unsignedint)  &(type)0)->member&nbsp...

  sT2qxeIRKGqY   2023年12月04日   18   0   0 C语言

本模块模仿MultiButton实现的。GitHub:https://github.com/0x1abin/MultiButton Freertos学习项目来自B站up主:https://www.bilibili.com/video/BV13R4y177jU/?spm_id_from=333.999.0.0   分享测试文件: 链接:https://pan.baidu.com/s/1dqXc-_ycR-Tl-KQtsxJs4A提取码:1234    按键状态主要实现了以下几个: typedefenum {   KeyEve...

  sT2qxeIRKGqY   2023年11月18日   74   0   0 嵌入式
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~