由于我们的程序比较大,有些经常用的函数比较大,放在iram1_0_seg,超出了iram1_0_seg的大小,从资料上看eagle.flash.bin是放在iram1_0_seg,eagle.flash.bin在FLASH中最大可以到64KB,我们就把iram1_0_seg的大小修改成64KB,如下:
MEMORY
{
dport0_0_seg : org = 0x3FF00000, len = 0x10
dram0_0_seg : org = 0x3FFE8000, len = 0x14000
iram1_0_seg : org = 0x40100000, len = 0x10000
irom0_0_seg : org = 0x40240000, len = 0x38000
}
但是程序运行一直是打印乱码,修改成48KB大小也一样,请问应该怎样增加iram1_0_seg的大小?
如果把函数全部加ICACHE_FLASH_ATTR属性,iram1_0_seg大小不需要修改,但是会报如下错误:
Goto init led_card_start
Fatal exception 9(LoadStoreAlignmentCause):
epc1=0x4010070a, epc2=0x00000000, epc3=0x40100f28, excvaddr=0x00000003, depc=0x00000000
我们没有使用中断函数,也没有中断处理函数加了ICACHE_FLASH_ATTR(定时器回调函数加了ICACHE_FLASH_ATTR)
请问这是什么原因?
期待您的回复!
THSStatistics: Posted by harryhu — Sat Feb 20, 2016 4:53 pm
]]>