近期使用STM32F429作为终端设备MCU,软件调试时发现系统运行时间偏长,导致系统实时性很差。使用示波器加IO拉高拉低方式逐行测量代码运行时间,发现屏蔽掉printf()后,系统运行时间大大降低。在此记录,防止后续再踩坑。
unsigned char aa = 1;
printf("%d",aa); //运行时间95.98us
unsigned char aa = 12;
printf("%d",aa); //运行时间191.1us
unsigned char aa = 12;
printf("%d\r",aa); //运行时间286.3us
unsigned char aa = 12;
printf("%d \r",aa); //运行时间382.4us
可见:
在stm32f429设置主频180M情况下,printf打印单个字符占用的时间大致为96us。