TI中文支持网
TI专业的中文技术问题搜集分享网站

原有cmd的段长度不够,自己修改后提示程序写不进去。请教各位

我在头文件里面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的长度要求增大了啊,那必须是要做修改的啊。我随便给了一个地址,

  RAML9      : origin = 0x0C0000, length = 0x003000 我见这个地址没用到,就随便用了。在看map的时候已经是看到已经使用了这个地址中的单元了。

Gavin J:

Jonny, 请问您用的芯片型号是?

我在头文件里面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的长度要求增大了啊,那必须是要做修改的啊。我随便给了一个地址,

  RAML9      : origin = 0x0C0000, length = 0x003000 我见这个地址没用到,就随便用了。在看map的时候已经是看到已经使用了这个地址中的单元了。

Yang Jonny:

回复 Gavin J:

你好Gavin Jiang,我用的是28335,我在考虑一个问题。是不是我新建的那个段,所分配的地址不满足内存映射。。。您觉得呢?因为现在对text段容量的要求比之前大了,那就必须要改,但28335cmd里面的地址几乎是连续的,也就是说改动了一段,后面的都要往后挪,所以我这才想自己新建一个段

我在头文件里面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的长度要求增大了啊,那必须是要做修改的啊。我随便给了一个地址,

  RAML9      : origin = 0x0C0000, length = 0x003000 我见这个地址没用到,就随便用了。在看map的时候已经是看到已经使用了这个地址中的单元了。

Yang Jonny:

回复 Gavin J:

再麻烦您一下,其实很多人都会遇到实际开发项目的时候,原有的cmd的段不够长了。我看到其实在存储器映射图里面,有很大一部分的空间都是reserved保留着的。意思是那些空间我们可以随意使用还是不能使用呢?thank u

我在头文件里面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的长度要求增大了啊,那必须是要做修改的啊。我随便给了一个地址,

  RAML9      : origin = 0x0C0000, length = 0x003000 我见这个地址没用到,就随便用了。在看map的时候已经是看到已经使用了这个地址中的单元了。

Yang Jonny:

回复 Gavin J:

嗯,我现在知道了。谢谢您,这关于cmd文件的修改光看资料还不够,必须得自己亲自改改,遇到错误后再分析分析。才能比较好的理解掌握

赞(0)
未经允许不得转载:TI中文支持网 » 原有cmd的段长度不够,自己修改后提示程序写不进去。请教各位
分享到: 更多 (0)