没有合适的资源?快使用搜索试试~ 我知道了~
Silicon Lahoratories公司的C8051F12X是与8051兼容,采用高速流水线工作方式,70%指令的执行时间为1个或2个系统时钟周期的高速集成混合信号SoC微控制器。片内调试电路提供全速、非侵入式的在片/在系统调试,支持断点、单步、观察点、堆栈监视器,可以观察/修改存储器和寄存器;使用内部集成PLL,时速度可达100MIPS或50MIPS;对于需要大量常量代码而又不想外扩ROM的系统设计,128KB的Flash是个很好的选择。
资源推荐
资源详情
资源评论
C8051F12X存储大量常量代码的编译技巧存储大量常量代码的编译技巧
Silicon Lahoratories公司的C8051F12X是与8051兼容,采用高速流水线工作方式,70%指令的执行时间为1个
或2个系统时钟周期的高速集成混合信号SoC微控制器。片内调试电路提供全速、非侵入式的在片/在系统调
试,支持断点、单步、观察点、堆栈监视器,可以观察/修改存储器和寄存器;使用内部集成PLL,时速度可达
100MIPS或50MIPS;对于需要大量常量代码而又不想外扩ROM的系统设计,128KB的Flash是个很好的选择。
Silicon Lahoratories公司的
1 处理大量常量代码面临的困难处理大量常量代码面临的困难
通常带中文液晶显示的系统采用的是不带中文字库的图形液晶显示模块,需要给点阵字库分配存储空间。常用的是16×16
点阵字库,每个汉字占用32字节存储空间,64KB空间可存储2048个汉字。标准51MCU只能直接访问64KB程序空间,采用
BANK技术可扩展空间,但处理
KEIL C5l是目前最流行的51系列MCU编译器。
如果程序代码与字库常量代码总和不超过64 KB,则可在KEIL UV2的集成开发环境下,通过安装Silicon Laboratories公司
的驱动程序直接对C805lFl2X进行编译,并通过JTAG调试仿真器实现不占用户资源的实时/断点调试。但当程序代码与字库
常量代码总和超过64 KB时,在KEIL UV2下,只能采用BANK编译技术。常量默认设置是分配到低32 KB的COMMON区,而
COMMON区还要存放中断处理等代码,因此如果想将点阵字库常量分配到指定的BANK,还需要采取其他方法。
2 处理大量常量代码的思路与实现处理大量常量代码的思路与实现
如果C8051F12X需要下载的程序代码与字库常量代码总和超过64 KB,则可使用Silicon Laboratories公司的集成开发环
境。在此IDE中,C805lFl2X的Flash编程是分4个BANK进行的,每个BANK对应一个HEX格式的代码文件。根据这样的特点,
可以绕开KEIL C5l编译器,直接把点阵字库或其他常量表格处理为标准HEX格式文件,从而实现常量代码在任意BANK的存
放。
假设一个点阵字库含3200个常用汉字,需要分配32×3200=102 400字节空间。设计上可以这样分配空间:BANKl及
BANK2全部使用,各32 768字节,共可以存放2048个汉字的点阵。由于C805lFl2X最后1026字节为系统保留空间,所以
BANK3分配990个汉字的点阵,占990×32=3l680字节,还剩162个汉字的点阵,需5184字节,分配到COMMON(BANKO)的
最高端。BANKl~BANK3的起始地址都是由8000H开始的。对BANKO来说,162个汉字的点阵字库从613COH开始存放,这
也意味着留给程序的空间不能超过27584字节。如果程序较大,但不超过64KB,同时字库不需要很大,则可分配63KB为字
库,64 KB为程序(若程序用不完64 KB,则多余空间也可分配给字库,以扩大字库容量)。生成点阵字库的HEX文件,可采用
ASM的DB定义方法、C51的数组定义方法或者自己编写运行于PC的程序的方法。前两种方式还需要经KEIL编译,但可灵活选
择所需的汉字。从编译方面看,ASM的DB定义方式不需要额外设置编译参数,比C51的数组定义方法要好。通常字模软件都
有ASM格式和C51格式的选择,可以利用其ASM格式输出,按上述空间分配原则,分别对每个BANK做对应的HEX文件。下面
举例说明。假设使用4个ASM文件,每个都是64字节。B0.ASM内容是00H~3FH,存放于BANK0从7FC0H开始的空间;
B1.ASM内容是40H~7FH,B2.ASM内容是80H~CFH,B3.ASM内容是DOH~FFH,BANKl~BANK3均存放于各自
BANK从8000H开始的空间,物理上分别位于C8051F12X的8000H、10000H、18000H开始的区域。B0.ASM中的内容为:
ORG 7FCOH
DB 000H.001H,002H,003H+004H,005H,006H,007H
DB 008H,009H,OOAH,00BH,OOCH,OODH,00EH,00FH
DB 010H,011H,012H,013H,014H,015H,016H,017H
DB 018H,019H,01AH,0lBH,01CH,01DH,01EH,0lFH
DB 020H,021H,022H,023H,024H,025H,026H,027H
DB 028H,029H,02AH,02BH,02CH,02DH,02EH,02FH
DB 030H,03lH,032H,033H,034H,035H,036H,037H
DB 038H,039H,03AH,03BH,03CH,03DH,03EH,03FH
END;
其他3个ASM文件格式一样,但ORG全部改为8000H,内容也相应替换。
3 生成生成HEX文件方法文件方法
启动UV2集成开发环境,新建一项目,由于现在仪为4个ASM的常量代码表编译H
EX文件,器件可选包含32 KB以上ROM的任意一型号的51MCU。考虑到以后实际使用C8051F12X,可以直接选择
C8051F12X。不必配置Code Banking的选项,在Output选项卡的CreateHEX File选项上配置.以创建HEX文件;同时,注
意每次修改ASM都修改Name of Executable右边的文件名,以免后续HEX文件覆盖前次结果,如图1所示。
资源评论
weixin_38530211
- 粉丝: 1
- 资源: 970
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功