真心求助,ZI-data那么大,进入HardFault_Handler

2019-07-20 14:09发布

原子哥,真心求助。我在使用探索者开发板,在我的程序中我只是用了usb、lwip、ucos、fatfs和sd等,我在调试的过程中先没有用usb和lwip,就读取sd卡中的数据,
经过编译Program Size: Code=71848 RO-data=3096 RW-data=1312 ZI-data=1241624(我就读个sd卡的文件,为什么ZI-data这么大),仿真的时候直接进入HardFault_Handler。
1.在程序中我定义了一个结构体,有点大,用来存放参数的,每当我使用它编译完仿真后就进入HardFault_Handler,如果没有使用就没事,是由于结构体太大导致越界吗?需要给全局的结构体变量申请内存吗?
2.我在Option for target中把IRAM1  的size 从0x10000改成了0x40000,如果不改编译不过去,出现..OBJTEST.axf: Error: L6407E: Sections of aggregate size 0x20834 bytes could not fit into .ANY selector(s).这是为什么呢?这需要怎么设置?


这块非常糊涂,不是很清楚,希望大家多指导!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
shibinjie
1楼-- · 2019-07-20 17:03
你应该是用了原子的内存管理的例程,然后自己又定义了非常大的数组或结构体之类的。导致RAM溢出了
冰封嗜魔
2楼-- · 2019-07-20 19:32
IRAM1这个参数不能改,不外挂RAM的话,片内的RAM只有那么大,你人为改大了,自然会跑死。
涛子疯了
3楼-- · 2019-07-21 01:16
 精彩回答 2  元偷偷看……
涛子疯了
4楼-- · 2019-07-21 03:07
冰封嗜魔 发表于 2017-6-2 09:11
IRAM1这个参数不能改,不外挂RAM的话,片内的RAM只有那么大,你人为改大了,自然会跑死。

..OBJTEST.axf: Error: L6407E: Sections of aggregate size 0x20834 bytes could not fit into .ANY selector(s).不改的话就出现这个错误了,不知道怎么查找到出现此问题的原因?
shibinjie
5楼-- · 2019-07-21 07:31
 精彩回答 2  元偷偷看……
涛子疯了
6楼-- · 2019-07-21 11:41
 精彩回答 2  元偷偷看……

一周热门 更多>