写RTOS程序的时候,不同进程间共享的全局变量切记加volatile

[复制链接]
566|0
 楼主| 你说说说说 发表于 2020-4-26 15:00 | 显示全部楼层 |阅读模式
比如1号进程使用一个全局变量x
而这个x在2号进程里会被修改
如果你不加volatile
1号进程里的x值可能你会发现不会被2号进程修改
不是你程序写错了
而是c编译器帮你优化了,因为在1号进程里x没有被修改,编译器可能在你使用x的时候都没有生成去读x变量的语句 直接把初期给你了
当然编译器不同,优化行为也可能是不一样的,可能有的编译器已经实现了能识别这种情况。

用DMA传输数据的变量也要加
您需要登录后才可以回帖 登录 | 注册

本版积分规则

355

主题

355

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部