你好,请教个问题。
我 的程序比较大,需要开辟大的数组作为缓存区域来存放数据,仿真运行时会出现stack溢出,我调整了IAR中stack的大小,使之初步满足自定义的数组的大小。
现在的问题现象是,当定义一个长度为512的数组,使用JTAG监测到数组的地址位于16KRAM的第一个Sec(2998H~2B97H,第一个4KRAM)。但是增加一个大小为512的数组时,编译能通过,但是程序不能运行,然后定义个小点的数组(地址小于2BFFH),可以正常运行。
需要解决的问题汇总:
1、程序中还需要定义几个大数组作为全局变量,怎么把3C00H~4BFFH的RAM区域使用起来?stack还需要怎么调整?
2、是不是定义的数组局部变量,存放在stack中,栈顶地址为5BFFH,分配是按照从栈顶到栈底的原则进行分配?
3、heap在什么情况下需要调整IAR中默认的160字节的大小?
4、上电后,总在反汇编程序总在__data16_memzero中运行, 不能进入main函数
Jacky Xu:
在项目属性里面去修改memory model