GD32H7复位后程序调用函数时间增加
问题复现:GD32H7程序第一次下载以后,调用一个函数1000次的时间为13ms,硬件复位重启以后,调用一个函数1000次的时间为51ms
原因排查:当一个函数的形参数量小于5个时,不会出现这种问题。反之会出现。
参数过多会导致指令层次上的增加。 LDR r4,[sp,#0xC]
这种内存加载指令
当函数形参数量大于4个或函数形参总大小超过4x32bit(R0-R3寄存器总大小)则会使用堆栈来传递形参,降低函数执行效率。
解决方案:减少参数个数,或者使用地址传参