程序目的:为每个变量分配固定的地址空间,使变量可以存放在指定的地址段中程序应用:计算每个变量(包括结构体变量,数组变量等)在地址段中的空间大小,根据空间大小的值在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错误就取消(沃特法克)求错误的原因(赶快告诉我哪里错了我改还不行吗)!!!!
一周热门 更多>