程序目的:为每个变量分配固定的地址空间,使变量可以存放在指定的地址段中
程序应用:计算每个变量(包括结构体变量,数组变量等)在地址段中的空间大小,根据空间大小的值在F28335.cmd文件MEMORY的PAGE 1中按顺序定义每个变量的初始地址和长度(存在zone7中且地址无重叠,每段地址空间与变量所需空间严格相同,没有一点点浪费),同时在SECTIONS中对各段地址进行变量映射,并在.c文件中通过#pragma DATA_SECTION语句对变量进行定义(一切应该都是这么完美),但是……
错误:F28335.cmd文件中部分变量的语句报错program will not fit into(这里强调部分是指因为按照同样的方法定义了好多变量,但是有的就会报错有的就不会)
———————————————————-我是分割线^_^———————————————————-
下面是部分错误程序和截图
MEMORY的PAGE 1中部分定义
SECTIONS中部分定义
.c中定义
错误
因为每一段地址都是严格按照变量所占空间计算,因此每个变量按照理论上说不会超过所定义的空间大小,但是在对错误语句进行修改时如果扩大MEMORY中的长度,错误就会取消,但是每个变量对地址扩大的值不同且无规律,如下
这个结构体是这样的
因为一个float型数据在地址段中占两个地址(根据其他调试好的程序查看的结果),因此这个变量的长度应该是12个地址也就是0C
但是在编译后就会报错
但是如果把长度改成0D错误就取消(沃特法克)
求错误的原因(赶快告诉我哪里错了我改还不行吗)!!!!
Seven Han:您好,
请参考以下wiki链接中关于报错信息的解释以及解决方法:
processors.wiki.ti.com/…/10099
可以参考以下c28x的FAQ来解决问题:
processors.wiki.ti.com/…/Linker_Command_File_Primer
processors.wiki.ti.com/…/C28x_Compiler_-_Understanding_Linking
程序目的:为每个变量分配固定的地址空间,使变量可以存放在指定的地址段中
程序应用:计算每个变量(包括结构体变量,数组变量等)在地址段中的空间大小,根据空间大小的值在F28335.cmd文件MEMORY的PAGE 1中按顺序定义每个变量的初始地址和长度(存在zone7中且地址无重叠,每段地址空间与变量所需空间严格相同,没有一点点浪费),同时在SECTIONS中对各段地址进行变量映射,并在.c文件中通过#pragma DATA_SECTION语句对变量进行定义(一切应该都是这么完美),但是……
错误:F28335.cmd文件中部分变量的语句报错program will not fit into(这里强调部分是指因为按照同样的方法定义了好多变量,但是有的就会报错有的就不会)
———————————————————-我是分割线^_^———————————————————-
下面是部分错误程序和截图
MEMORY的PAGE 1中部分定义
SECTIONS中部分定义
.c中定义
错误
因为每一段地址都是严格按照变量所占空间计算,因此每个变量按照理论上说不会超过所定义的空间大小,但是在对错误语句进行修改时如果扩大MEMORY中的长度,错误就会取消,但是每个变量对地址扩大的值不同且无规律,如下
这个结构体是这样的
因为一个float型数据在地址段中占两个地址(根据其他调试好的程序查看的结果),因此这个变量的长度应该是12个地址也就是0C
但是在编译后就会报错
但是如果把长度改成0D错误就取消(沃特法克)
求错误的原因(赶快告诉我哪里错了我改还不行吗)!!!!
user4354841:
回复 Seven Han:
你好!感谢提供的连接资料,但是看过后没没有找到解决我这个问题的办法,我想我把问题情况描述的很清楚,能否指出问题可能会出现在哪呢?谢谢!