工具/软件:TI C/C++编译器
您好!
我正在尝试将我自己的.CIO 部分添加到存储器中。 查看链接器命令文件、我可以看到:
a)一些存储器范围重叠良好、例如:
begin:origin (0x50)+ length (0x02)= boot_RSVD:origin (0x02) boot_RSVD:origin (0x02)+ length (0x4E)= RAMM0:origin (0x50) RAMM0:origin (0x50)+ length (0x3B0)= RAMM1:origin (0x400)
...等等。
b)但有一些存储器范围似乎会留下一些未使用的空间。 例如:
RAMM1:原点(0x400)+长度(0x400)= 0x800
下一部分从0x8000开始:
RAML0_L8:origin = 0x008000、
(1)这是否意味着我可以安全地将 RAMM1长度增加到7C00?
我实际上已经尝试过这种方法(即使使用较小的值来保留一定的裕度)、然后将.cio 段分配给 RAMM1。 结果如何? 运行程序(可能连接到 printf 函数)时、我收到以下控制台消息:
"无法识别地址(0x800)处 CIO 缓冲器中的无效 CIO 命令(0)。 请检查器件和程序存储器映射。"
映射文件显示 .cio 专门分配给了0x800。
(2)在我将 RAMM1的大小增加到这个缺省限制之上之后、0x800处是否存在存储器重叠? 我看不到这个值的任何其他段!
另一个问题是:
(3) 分配.cio 段的最佳存储器范围是多少? 默认情况下(如果未在链接器文件中实现)、它会放置在 USB_RAM 中。 是否可以使用相同的范围?