一个标准的8051器件能寻址64KB的代码地址空间。对于超过64KB的代码,单片机系统通常采用代码分页(CO
新建工程是需要将STARTUP.A51和L51_BANK.A51加进去,其中STARTUP.A51是新建功能是自动添加,L51_BANK.A51是手动添加的,源文件在keil的安装目录lib下。
工程新建完成后在工程选项中的Target下可设置bank的数目与大小,本例中设定为4.。
修改L51_BANK.A51文件
?B_NBANKS EQU 4,即上面选择的bank数,只能是2,4,6,8,16,32,24
?B_MODE EQU 4,4为自定义方式
在IF ?B_MODE = 4;下面定义具体的bank切换方式。
本例中采用SFR的方式,自定义了一个BT的特殊功能寄存器,地址是F6,注意地址的第一个字符为字母时要在前面加0,同时在相应的reg51.h中添加此SFR,当然也可以用reg51.h现成的寄存器。SWITCH0 、SWITCH1 、SWITCH2、 SWITCH3定义了具体的bank切换的条件。
注意当?B_MODE = 4的时候需要打开STARTUP.A51最后一行系统复位时从bank0开始的代码,默认是关闭的。
最后根据实际应用把程序分成common,bank0,bank1,bank2,bank3中,直接右击.c文件选择
编译工程后发现生成了4个hex文档,H00,H01,H02,H03,用hex转bin的工具生成四个bin文件,采用填充00的方式把每个bin大小固定为64k,最后合并成一个256k的bin烧录到外部的存储器中。通过boot程序把co
本文发布于:2024-01-29 06:09:03,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170647974613251.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |