原因:
裸机系统 ,用这颗soc,没有任何问题.包括 tc1,systick,uart0,tc0等等.
2)移植 freertos到这片soc上,systick为1ms.tc0中断也有用,uart0中断也打开,都测试,过,串口能通讯 ,系统能跑起来,同时几个任务点灯,输出lcd都没有问题.
3)因为要采集io数据,把tc1打开,频率设成7.2k时,(裸机也是这频率),出现了问题,即:初始化tc1定时器以后,中断打开, 在中断处理函数中不作任何操作(只是清掉状态位),这时,系统 会在 不定长的 时间以后,halt住.(没有死,systick中断 和 tc1 中断 能进,但任务无法切换,led灯不能闪,lcd屏的任务不能执行.),
4)查看 当时的pc指针,参考下图..一直在这个函数中 循环,无法出去,导致任务无法切换.
5)确定的是,不用tc1定时器及中断,系统不会有任何问题..
感觉是tc1定时器 导致的 freertos调度出了问题.不知如何排查,请大侠指点下,感谢.
|