关于iram1_0_seg的大小

harryhu
Posts: 17
Joined: Thu Jan 21, 2016 9:28 pm

关于iram1_0_seg的大小

Postby harryhu » Sat Feb 20, 2016 4:53 pm

HI 乐鑫:

由于我们的程序比较大,有些经常用的函数比较大,放在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)

请问这是什么原因?



期待您的回复!

THS

mengzawj
Posts: 24
Joined: Mon Feb 01, 2016 12:06 am

Re: 关于iram1_0_seg的大小

Postby mengzawj » Sun Feb 21, 2016 5:34 pm

我想你应该是要改irom0_0_seg大小,而不是iram1_0_seg,文档里面有说明的! :D

harryhu
Posts: 17
Joined: Thu Jan 21, 2016 9:28 pm

Re: 关于iram1_0_seg的大小

Postby harryhu » Mon Feb 22, 2016 8:00 pm

是iram1_0_seg的大小

ESP_Faye
Posts: 1646
Joined: Mon Oct 27, 2014 11:08 am

Re: 关于iram1_0_seg的大小

Postby ESP_Faye » Wed Mar 02, 2016 11:08 am

您好,

iram 的大小目前已经是最大值,无法再增加。

添加 ICACHE_FLASH_ATTR 宏后报的错误表示可能您的程序中非四字节对齐读写 ram 数据了。
或者您可以提供您的这部分代码,我们将协助您进行分析。

感谢您对 ESP8266 的关注!

harryhu
Posts: 17
Joined: Thu Jan 21, 2016 9:28 pm

Re: 关于iram1_0_seg的大小

Postby harryhu » Wed Mar 02, 2016 12:23 pm

我们用RTOS版本的SDK没有此问题,谢谢您的支持

Who is online

Users browsing this forum: No registered users and 1 guest