ZYNQ定时器中断打印数据

在zynq开发项目时遇到的一个问题,就是我是电控系统下,需求的定时器中断周期是50us,在这50us内除了执行我的计算程序,还需要将电压电流转速等数据打印出来,之后备用。但现在的问题是一个2个printf函数放进去程序就跑飞了,我ARM的主频是666MHz,之前用st的项目开发时也遇到过类似的问题,现在又碰到了,还是避不开,求指点!

加看门狗复位试试

50us 就是 2万次每秒,恨块很频繁。在这样频繁的中断中用 2 个 printf, CPU 会忙不过来的(printf 很费时间的)
你可以自己测试一下,不用中断,自己编写一个 2万次的循环,测试一下代码的运行时间

如果按照115200的波特率来算,1/115200*1000000000=8680ns传输一位数据,也就是8.6us一个位,如果传输一个8位数据就要86us,你这程序中用了两个打印,光是传输一个8位串口数据就需要86us,你加两个打印50us的时间,不管怎么算都不够,设置一个8位数据的传输时间都不够,程序不跑飞才奇怪