ARM技术william hill官网
直播中

abdkjshd

9年用户 1213经验值
擅长:可编程逻辑
私信 关注
[问答]

gcc编译器编译特殊函数出现程序跑飞是何原因

用gcc编译带函数memcpy(dest,src,size)的程序仿真时,如果size小于等于64,程序执行没有问题,如果size大于64会出现程序跑飞的情形。通过看波形确认,跑飞的原因在于执行完2条memcpy子函数的指令后,就会突然跳转到一个没初始化过的指令地址取指令,从而导致系统全部乱掉。查看过跑飞时系统的所有外部状态,没有任何中断。处理器型号为cm3。

备注:通过查阅资料,如果memcpy的size小于等于64,处理器会用一种更高效的方式来实现memcpy的功能,并不会执行memcpy函数本身内容。
用arm程序编译同样的程序执行,没有任何问题。

回帖(1)

刘秀英

2022-8-15 15:14:18
gcc编译参数不对
举报

更多回帖

发帖
×
20
完善资料,
赚取积分