在iar 6.40中,如何查看堆栈分配的情况???? 100
目前用的Stellaris®LM3S1R26微控制器,发现有时局部变量会跑飞,怀疑堆栈问题。下面是打印的信息:Linking省略....IARELFLinker...
目前用的Stellaris® LM3S1R26 微控制器,发现有时局部变量会跑飞,怀疑堆栈问题。
下面是打印的信息:
Linking
省略....
IAR ELF Linker V6.40.1.53790/W32 for ARM
Copyright 2007-2012 IAR Systems AB.
83 064 bytes of readonly code memory
50 104 bytes of readonly data memory
16 507 bytes of readwrite data memory
Errors: none
Warnings: none
Link time: 0.14 (CPU) 0.14 (elapsed)
AF_MCU.out
Converting
ielftool.exe --bin --verbose E:\sourcecode\Debug\Exe\AF_MCU.out E:\sourcecode\
Debug\Exe\AFMCU.bin
IAR ELF Tool V9.12.4.70 [BUILT at IAR]
Copyright 2007-2012 IAR Systems AB.
Loading E:\sourcecode\Debug\Exe\AF_MCU.out
Saving binary file to E:\sourcecode\Debug\Exe\AFMCU.bin
Total number of errors: 0
Total number of warnings: 1 展开
下面是打印的信息:
Linking
省略....
IAR ELF Linker V6.40.1.53790/W32 for ARM
Copyright 2007-2012 IAR Systems AB.
83 064 bytes of readonly code memory
50 104 bytes of readonly data memory
16 507 bytes of readwrite data memory
Errors: none
Warnings: none
Link time: 0.14 (CPU) 0.14 (elapsed)
AF_MCU.out
Converting
ielftool.exe --bin --verbose E:\sourcecode\Debug\Exe\AF_MCU.out E:\sourcecode\
Debug\Exe\AFMCU.bin
IAR ELF Tool V9.12.4.70 [BUILT at IAR]
Copyright 2007-2012 IAR Systems AB.
Loading E:\sourcecode\Debug\Exe\AF_MCU.out
Saving binary file to E:\sourcecode\Debug\Exe\AFMCU.bin
Total number of errors: 0
Total number of warnings: 1 展开
1个回答
展开全部
局部变量跑飞
根据液败毁我的经验有两种可能,
一种是硬件不稳定 即内存或者CPU读取数据不稳定
导致数据不正常修改 可以做个内存测试排除
另一种是最常见的 内存访问越界 某个其他地方的数据访问侵占了原本属于该变量的内存空间
对于这一点 就得看你的代码了。 如果是某个函数中的局部变量经常跑偏 可以查该函数内部的其他变量访问及该函数调用的函数中的变量访问
如果是不确定的任意函数局部变量都可能跑偏 那么要看你栈分配的内存地址 同时查map 看相邻的内存是归谁管理的,可能是对其相邻内存(一闹备般是之前的)访枯磨问越界造成的
根据液败毁我的经验有两种可能,
一种是硬件不稳定 即内存或者CPU读取数据不稳定
导致数据不正常修改 可以做个内存测试排除
另一种是最常见的 内存访问越界 某个其他地方的数据访问侵占了原本属于该变量的内存空间
对于这一点 就得看你的代码了。 如果是某个函数中的局部变量经常跑偏 可以查该函数内部的其他变量访问及该函数调用的函数中的变量访问
如果是不确定的任意函数局部变量都可能跑偏 那么要看你栈分配的内存地址 同时查map 看相邻的内存是归谁管理的,可能是对其相邻内存(一闹备般是之前的)访枯磨问越界造成的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询