用keil c51开发大型嵌入式程序

用keil c51开发大型嵌入式程序

ID:34524759

大小:229.96 KB

页数:4页

时间:2019-03-07

用keil c51开发大型嵌入式程序_第1页
用keil c51开发大型嵌入式程序_第2页
用keil c51开发大型嵌入式程序_第3页
用keil c51开发大型嵌入式程序_第4页
资源描述:

《用keil c51开发大型嵌入式程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第23卷第11期计算机应用Vol.23,No.112003年11月ComputerApplicationsNov.,2003文章编号:1001-9081(2003)11-0140-04用KeilC51开发大型嵌入式程序陈超华,王会进(暨南大学计算机科学系,广东广州510632)摘 要:结合在8051系列单片机平台上的实际开发应用的经验,介绍用KeilC在8051单片机上进行大型嵌入式程序开发的技术。主要阐述了大型嵌入式开发中在存储器的管理、动态内存的使用、C语言调用汇编语言和程序调试方面的知识,并就所遇到的问题提出相应的解

2、决方法。关键词:8051;嵌入式编程;KeilC51中图分类号:TP368.21;TP311.52文献标识码:AUsingKeilC51forDevelopingEmbeddedProgramCHENChao2hua,WANGHui2jin(DepartmentofComputerScience,JinanUniversity,GuangzhouGuangdong510632,China)Abstract:Basedontheexperiencein8051seriessinglechipsystemprogramming

3、,sometechnologiesforwritinglargeembeddedprogramusingKeilCdevelopmentenvironmentareintroducedinthispaper.Itdiscussesthemethodofmemorymanagement,dynamicmemoryusage,C2Assemblelanguagecross2programmingandtheartofdebugwhendevelopinglargeembeddedprogram,anditalsogivesth

4、esolutionsfortheseproblemsindetail.Keywords:8051;embeddedprogramming;KeilC5164KB。8051单片机本身不支持代码组切换,切换要通过额外1 引言的地址线(片选信号)来完成。代码组切换的软件功能由文件Intel的8051单片机系列是大家最为熟悉的8位单片机L51-BANK.A51完成。每次组切换要花费50个机器周期和2之一。近几年,随着8051系列单片机版权的开放,在8051系个字节的堆栈空间,所以如果发生频繁的组切换,会消耗CPU列上的应用开发不断

5、增加,而且应用规模比以往大,可执行代大量的时间。码往往上几百KB。这对于现在32位的PC平台来说只是小外部数据存储器和外部程序存储器包括公共区域和组区菜一碟,而对于8位的单片机来说,已经算是大规模的开发域就是我们最关心的部分。了。这种大型的嵌入式开发不可能完全用汇编语言或C语3C51程序设计中的存储管理言来完成。C语言便于模块化的编程风格、优良的可读性、良好的可移植性和调试方便性更是这种大型程序开发的项目维C51有三种存储器模式,分别是SMALL、COMPACT和护管理所需要的。另外,C51经过多年的发展,已经具有很多LA

6、RGE。存储器模式决定默认情况下给变量分配的存储器的优秀的集成开发工具,KeilC就是其中之一,这些集成开发工类型。本文所讨论的问题都设定在LARGE存储器模式下,在具为程序开发调试提供了良好的人机接口。因此,C语言广这种模式下,变量缺省被定义在外部存储器中。泛应用在这类大型的嵌入式程序中,通常占95%以上的代码3.1 了解存储器使用情况量。由于C51是8051单片机的C语言编译器,与ANSI-C编我们可以通过查看BL51连接器产生的m51文件来了解译器有不同的地方,具有很多8051单片机的特点。程序所使用的存储器的情况。

7、在m51文件中的LINKMAPOFMODULE部分,可以看到其中XDATAMEMORY段是外部数据28051的存储器管理存储器的静态分配图,CODEMEMORY段是外部程序存储器8051系列单片机有多种存储器类型:外部程序存储器、公共区域的连接分配图,紧跟在后面的是CODEBANKx段就内部程序存储器、外部数据存储器、内部数据存储器。在开发是各个组代码的连接分配图。在这些段里,我们可以看到类较大型程序的时候,因为内部程序存储器和内部数据存储器型、开始地址、长度和段名等的信息。段名的前缀?PR?、?CO?容量都比较小,通常会

8、被分配给实现底层功能的汇编语言使和?XD?是最常见的,分别代表程序执行代码、程序代码中的用。C语言的代码一般使用外部程序存储器和外部数据存储常量和放在外部存储器的数据变量。而段的后缀一般就是大器。由于51系列单片机16位地址寄存器的限制,外部程序写的C文件名的前缀。存储器和外部数据存储器的寻址范围都是6

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。