打印

gcc编译器编译特殊函数出现程序跑飞的疑问?

[复制链接]
238|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
菊江先生|  楼主 | 2018-9-9 18:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用gcc编译带函数memcpy(dest,src,size)的程序仿真时,如果size小于等于64,程序执行没有问题,如果size大于64会出现程序跑飞的情形。通过看波形确认,跑飞的原因在于执行完2条memcpy子函数的指令后,就会突然跳转到一个没初始化过的指令地址取指令,从而导致系统全部乱掉。查看过跑飞时系统的所有外部状态,没有任何中断。处理器型号为cm3。
备注:通过查阅资料,如果memcpy的size小于等于64,处理器会用一种更高效的方式来实现memcpy的功能,并不会执行memcpy函数本身内容。
用arm程序编译同样的程序执行,没有任何问题。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

446

主题

447

帖子

0

粉丝