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

时间: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。

1 2 3

关键词: 设计 实现 空间 程序 单片机 基于

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版