首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

关于全局变量分配的问题!

关于全局变量分配的问题!

有这样一个情况,想请教你,关于全局变量分配的问题!mc9s12单片机,codewarrior编译环境!程序共分A和B二个模块,在做模块B的时候需要定义一些全局数组,这时发现内存RAM不够用了,想利用模块A中的一些全局变量的RAM地址,因为芯片上电后,会选择执行模块A和模块B的程序,也就是说模块A和模块B不会同时运行!该如何配置呢?模块A的全局变量分布在好几个不同的头文件中,而且也有数组,数组大小不一样,数组的个数也不一样!如何把他们的内存地址分配给模块B的全局数组!
如a模块中定义:
  extern muint8        tt[10];
  extern muint16 dd[32];
  extern muint8 aa1
  extern muint8 aa2
   ......还有很多变量,分布在几个头文件中
如b模块中定义:
  extern muint8        tt[256];
时编译内存不够分配,这样我就想利用a模块中
的数组(包括部分变量)的内存地址,如何设置?用联合行吗?
但如何将a模块这些全局变量的地址共同组合起来让b模块的数组用,A模块大约有200个uchar和ulong,分布在10个头文件中!
方法1,可以采用“static”声明全局变量。具体使用方法请参见S12的C编译器使用手册。
方法2,可以尽量采用局部变量。
海纳百川  有容乃大
返回列表