求救:RSL10 RAM只能用24KB,剩下的6x8KB怎么用不了?-问题解决
本帖最后由 xujinxi 于 2021-7-8 19:24 编辑<p>RSL10规格书中宣称有3x8KB + 6x8KB + 2x8KB,前面的3x8KB + 6x8KB应该可以给M3使用,为什么编译最大只能用到24KB,</p>
<p>多一点就编译报错,超出RAM范围。中间的6x8KB怎样才能使用哦?</p>
<p>规格书:</p>
<p>The data memory used for storing data and intermediate variables of the Arm Cortex-M3 processor, the<br />
LPDSP32, and/or the Bluetooth protocol baseband hardware. This segment of the RSL10 memory map<br />
contains:<br />
•<strong> Three 8 KB </strong>data RAM instances dedicated to the Arm Cortex-M3 processor<br />
• <strong>Six 8 KB </strong>data RAM instances accessible to either the LPDSP32 DSP or the Arm Cortex-M3 processor<br />
• Two 8 KB baseband data RAM instances acting as exchange memory between the Bluetooth protocol<br />
baseband hardware and the Arm Cortex-M3 processor</p>
<p> </p>
<p> </p>
<p>感谢<a href="https://home.eeworld.com.cn/space-uid-363731.html" target="_blank">cruelfox</a>和just do两位热心网友,以上问题可以通过如下方法解决。</p>
<p>修改section.ld文档,配置DRAM空间由24KB变为64KB。 </p>
<p>/*<br />
MEMORY<br />
{<br />
ROM (r) : ORIGIN = 0x00000000, LENGTH = 4K <br />
FLASH (xrw) : ORIGIN = 0x00100000, LENGTH = 380K<br />
PRAM (xrw) : ORIGIN = 0x00200000, LENGTH = 32K</p>
<p> DRAM (xrw) : ORIGIN = 0x20000000, LENGTH = <strong>32K</strong><br />
DRAM_DSP (xrw) : ORIGIN = <strong>0x20008000</strong>, LENGTH = <strong>40K</strong><br />
DRAM_BB (xrw) : ORIGIN = 0x20012000, LENGTH = 16K<br />
}*/</p>
<p>MEMORY<br />
{<br />
ROM (r) : ORIGIN = 0x00000000, LENGTH = 4K <br />
FLASH (xrw) : ORIGIN = 0x00100000, LENGTH = 380K<br />
PRAM (xrw) : ORIGIN = 0x00200000, LENGTH = 32K</p>
<p> DRAM (xrw) : ORIGIN = 0x20000000, LENGTH = <strong>64K</strong><br />
DRAM_DSP (xrw) : ORIGIN = <strong>0x20010000</strong>, LENGTH = <strong>8K</strong><br />
DRAM_BB (xrw) : ORIGIN = 0x20012000, LENGTH = 16K<br />
}</p>
<p> </p>
<p> </p>
<p></p>
<p></p>
<p>linker script 里面写的24kB,所以链接时候只按24kB处理。</p>
<p>你可以自己写指针指到其它RAM的地址里面去用啊,但要确保那块RAM是开启状态。</p>
cruelfox 发表于 2021-7-4 18:12
linker script 里面写的24kB,所以链接时候只按24kB处理。
你可以自己写指针指到其它RAM的地址里面去用 ...
<p>现在的linker script是指向什么地址,你知道在哪里看么?</p>
<p>领你会修改linker script么,如果可以的话麻烦指导下。</p>
<p>这个是在工程里面设的。我不用ON的IDE, 没法告诉你这个文件存在哪里。</p>
<p>你在你的工程目录下搜索后缀是 .ld 的文件,找到进去看 MEMORY 那里 DRAM 的 LENGTH. 缺省大约就是 24K</p>
<p>要小心,可能后面的 SRAM 块上电时没有开启。如果把堆栈了指到没有启用的 SRAM 里,程序马上就挂了。</p>
cruelfox 发表于 2021-7-4 19:00
这个是在工程里面设的。我不用ON的IDE, 没法告诉你这个文件存在哪里。
你在你的工程目录下搜索后缀是 .l ...
<p>通过修改section.ld文档,可以搞定,tks <img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/wanwan76.gif" width="48" /></p>
页:
[1]