大家都遇到或者知道哪些程序容易出错或忽视的问题

[复制链接]
2007|1
 楼主| xlsbz 发表于 2011-4-3 17:45 | 显示全部楼层 |阅读模式
我说两个

第一个 是任务与中断的数据破坏(互斥数据

第2个是 我的板子有个单片机  还有另外一个处理器

在单片机写个函数(带有临时参数),用这个函数取另一个处理器内存的值。结果取的不正确。想了半天,甚至都怀疑编译器出问题 或者人品问题。

于是开始降低编译器优先级,从8级别降到7 然后6 然后5 直到降到1 才发现程序好用了。 那肯定是2级别或者以上的优化 是啥呢?data 覆盖 ,于是

最终发现是临时变量的问题    这个临时变量到了另一个处理器里面 就被释放了,尽管在单片机函数里面还没被释放。 所以搞个全局变量就好了。
NE5532 发表于 2011-4-3 19:59 | 显示全部楼层
一般都是低级错误,高级错误一般都是芯片BUG或者编译器BUG才犯得出来的,个人能犯的错误一般都是应为没有遵守原则,比如中断和前台见相互干扰是没有遵守临界资源保护的原则,有的变量自己上电忘给初始值,有的函数不能重入的在中断里重入了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

190

主题

1614

帖子

4

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