我说两个
第一个 是任务与中断的数据破坏(互斥数据
第2个是 我的板子有个单片机 还有另外一个处理器
在单片机写个函数(带有临时参数),用这个函数取另一个处理器内存的值。结果取的不正确。想了半天,甚至都怀疑编译器出问题 或者人品问题。
于是开始降低编译器优先级,从8级别降到7 然后6 然后5 直到降到1 才发现程序好用了。 那肯定是2级别或者以上的优化 是啥呢?data 覆盖 ,于是
最终发现是临时变量的问题 这个临时变量到了另一个处理器里面 就被释放了,尽管在单片机函数里面还没被释放。 所以搞个全局变量就好了。 |