调试发现单片机对于结构体数组计算的时候执行速度超级慢,会卡在结构体数组寻址那里,导致我的中断进不了,lin信号丢失。
结构体定义如下:
typedef struct boot_checksum_single_monitor_ccb
{
U8 state;
U16 checksum;
U16 address;
} BOOT_CHECKSUM_SINGLE_MONITOR_CCB;
结构体数组声明如下:
static BOOT_CHECKSUM_SINGLE_MONITOR_CCB chk_monit_ccb[BOOT_CHECKSUM_NUM_BLOCKS];
通常卡在类似下面的语句,执行时间超长:
if(checksumState == chk_monit_ccb.state)
请问这种的怎么重构代码?
|