28335例程中加printf显示一些cmd文件出错

2019-03-24 09:37发布

我在头文件里面include了stdio.h并在main里面使用了pfrintf。后来系统编译的时候说我.text的段内存不够大。我看了一下初始时的cmd里面,text是放在page0里面的,长度只有0x1000。加上stdio.h之后,编译器说.text需要占用长度2200。因为cmd里有所有的段地址都安排好的,而且几乎是相邻的。那我就重新定义了一个段RAML9,选取了一个空间,定义了长度,将.text指定到这个段去。结果编译的时候就出现C28xx: Loader: One or more sections of your program falls into a memory region that is not writable.
我觉得了修改段长度或是自己定义一个新的段这是允许的,但我不知道是不是有些段不能给用户操作使用。请问出现这个错误是什么原因呢?但我不修改的话,加了新的头文件进来,对.text的长度要求增大了啊,那必须是要做修改的啊。
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
15条回答
bkn1860
2019-03-25 20:12
jonny0811 发表于 2015-12-16 13:32
说得太好了。我刚刚又仔细看了一下datasheet。除开被reserve的区域,能用的真的不多。除了你说的那几个部 ...

reserve区域是TI预留的区域,说白了就是那段地址没有对应的实际内存,编译器编译只会根据CMD文件来分配,所以编译时是没有问题的。烧录过程是编译器通过仿真器对MCU Flash和RAM进行操作的过程,这个时候擦写Flash或者RAM导入数据肯定会报错,没有Flash和RAM的区域擦、写、校验都会返回错误标志。

一周热门 更多>

相关问题

    相关文章