xujinxi 发表于 2021-7-4 17:45

求救: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 />
&bull;<strong> Three 8 KB </strong>data RAM instances dedicated to the Arm Cortex-M3 processor<br />
&bull; <strong>Six 8 KB </strong>data RAM instances accessible to either the LPDSP32 DSP or the Arm Cortex-M3 processor<br />
&bull; 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>&nbsp;</p>

<p>&nbsp;</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。&nbsp;</p>

<p>/*<br />
MEMORY<br />
{<br />
&nbsp; ROM &nbsp;(r) : ORIGIN = 0x00000000, LENGTH = 4K &nbsp;&nbsp;<br />
&nbsp; FLASH (xrw) : ORIGIN = 0x00100000, LENGTH = 380K<br />
&nbsp; PRAM (xrw) : ORIGIN = 0x00200000, LENGTH = 32K</p>

<p>&nbsp; DRAM (xrw) : ORIGIN = 0x20000000, LENGTH = <strong>32K</strong><br />
&nbsp; DRAM_DSP (xrw) : ORIGIN = <strong>0x20008000</strong>, LENGTH = <strong>40K</strong><br />
&nbsp; DRAM_BB (xrw) : ORIGIN = 0x20012000, LENGTH = 16K<br />
}*/</p>

<p>MEMORY<br />
{<br />
&nbsp; ROM &nbsp;(r) : ORIGIN = 0x00000000, LENGTH = 4K &nbsp;&nbsp;<br />
&nbsp; FLASH (xrw) : ORIGIN = 0x00100000, LENGTH = 380K<br />
&nbsp; PRAM (xrw) : ORIGIN = 0x00200000, LENGTH = 32K</p>

<p>&nbsp; DRAM (xrw) : ORIGIN = 0x20000000, LENGTH = <strong>64K</strong><br />
&nbsp; DRAM_DSP (xrw) : ORIGIN = <strong>0x20010000</strong>, LENGTH = <strong>8K</strong><br />
&nbsp; DRAM_BB (xrw) : ORIGIN = 0x20012000, LENGTH = 16K<br />
}</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p></p>

<p></p>

cruelfox 发表于 2021-7-4 18:12

<p>linker script 里面写的24kB,所以链接时候只按24kB处理。</p>

<p>你可以自己写指针指到其它RAM的地址里面去用啊,但要确保那块RAM是开启状态。</p>

xujinxi 发表于 2021-7-4 18:48

cruelfox 发表于 2021-7-4 18:12
linker script 里面写的24kB,所以链接时候只按24kB处理。

你可以自己写指针指到其它RAM的地址里面去用 ...

<p>现在的linker script是指向什么地址,你知道在哪里看么?</p>

<p>领你会修改linker script么,如果可以的话麻烦指导下。</p>

cruelfox 发表于 2021-7-4 19:00

<p>这个是在工程里面设的。我不用ON的IDE, 没法告诉你这个文件存在哪里。</p>

<p>你在你的工程目录下搜索后缀是 .ld 的文件,找到进去看 MEMORY 那里 DRAM 的 LENGTH. 缺省大约就是 24K</p>

<p>要小心,可能后面的 SRAM 块上电时没有开启。如果把堆栈了指到没有启用的 SRAM 里,程序马上就挂了。</p>

xujinxi 发表于 2021-7-4 20:07

cruelfox 发表于 2021-7-4 19:00
这个是在工程里面设的。我不用ON的IDE, 没法告诉你这个文件存在哪里。

你在你的工程目录下搜索后缀是 .l ...

<p>通过修改section.ld文档,可以搞定,tks&nbsp;<img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/wanwan76.gif" width="48" /></p>
页: [1]
查看完整版本: 求救:RSL10 RAM只能用24KB,剩下的6x8KB怎么用不了?-问题解决