新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于单片机的大程序和数掘空间的设计和实现

基于单片机的大程序和数掘空间的设计和实现

作者:时间:2012-09-03来源:网络收藏

3 KeilC51的环境设置

除需要正确硬件电路,同时还要对Keil C5l提供的文件和环境进行正确设置才能真正地址的扩展。下面是需要进行相关配置的几项。

在菜单Project选择中选择OpTION for Target“Tar-get”选择项,按图2所示进行项目配置。

◆由于使用4个Pl引脚进行硬件的扩展,所以在Banks选择中使用16个物理页。

◆使用32KB作为一个分页的大小,所以在Bank Area中写入地址范围为0x8000~0xffff。

◆由于使用了扩展的数据存储,所以选择支持使用“far”变量类型,这样就能方便地使用FARRAY、FVAR等宏和指针来访问扩展的地址。

在菜单Project选择中选择Option for Target“Output”选择项,按图3所示进行项目配置。

在输出的文件格式上使用HEX-386的文件格式。这是使用LX51连接定位器时产生的一种扩展型的HEX文件类型。

在工程窗体中,对工程中的每个源合理安排分组的位置,有以下几点需要特别注意:

◆复位和中断向量、代码常数、C51中断函数、组切跳转表、库函数这些代码必须安排在公共代码区域。

◆代码组切换需要大约50个机器周期和2字节的堆栈空间。因此应当仔细安排结构以尽量减少代码之间的切换。被整个经常调用的函数应当安排在公共代码区域。同时,同一功能模块的函数大多相互调用,所以应当安排在同一代码组,以减少代码组的切换,提高系统运行效率。

◆L5l_BANK.A51必须安排在公共代码区域。令Common代码组和BankO代码组在物理上实际是同一个代码组,所以不要使用Bank0代码组来给源程序分配空间。在L51_BANK.A5l文件中需根据硬件的具体情况配置修改以下代码。

◆?B_NBAbIKS EQU 16 //定义最大分组(o~64),可为2、4、8、16、32、64。

◆?B_MoDE EQU 0 //O:通过8051的I/0口进行分组切换,l:通过XDATA存储器单元进行分组切换。

◆?B_RTX EQU O //0;不使用Keil的实时操作系统

◆?B_VAR_BANKINGEQU l //l;支持变量分页(数据空间扩展)

◆?B_FIRSTBIT EQU 4 //对应最低位的Pl位

在这里需要注意的是,要根据自己系统的实际情况来安排硬件和软件配置。例如,如果系统中使用了RTX-5l实时操作系统,那么在L51_BANK.A5l文件中B_RTX应当改写为l。



评论


相关推荐

技术专区

关闭