Keil C51使用经验与技巧分享

4星 · 超过85%的资源 需积分: 10 3 下载量 169 浏览量 更新于2024-07-30 收藏 245KB PDF 举报
"Keil_C使用经验小结" Keil C是一款专为8051微控制器设计的编译器,其特色在于对8051硬件的深度优化,提供了语言扩展,使得生成的代码更加高效且节省资源。C51是Keil C的特有名称,因为它针对的是8051架构,而Keil也有针对ARM架构的编译器。 在8051的数据存储器管理上,Keil C区分了不同的存储区域。片内RAM包括直接访问和间接访问两部分,片外RAM则分为可页寻址和普通区域。这些区域在编程时需要通过特定的存储类关键字来指定,例如"data"用于片内直接访问区,"xdata"用于片外RAM等。 在存储器模型方面,Keil C提供了多种选择,以适应不同内存配置的需求。这些模型影响了程序如何使用内存空间,例如Small模型适用于小内存需求,而Large模型则允许更灵活的内存访问。 指针的使用是C语言的核心之一,Keil C中的指针同样可以指向不同存储区域的变量,但需要注意不同区域的地址范围和访问方式。函数调用时,参数传递遵循C的标准规则,但8051的有限资源可能导致特殊考虑,如参数的大小和类型可能会影响效率。 自动变量的分配通常发生在栈上,但由于8051的栈空间有限,程序员需要谨慎管理栈的使用,防止栈溢出。C51中的运算溢出是个常见问题,特别是无符号和有符号整数运算,需要特别注意防止数值溢出导致的错误结果。 Keil C提供了编译和链接控制选项,允许开发者在编译时或链接时进行定制。例如,通过预处理器指令可以实现条件编译,定制文件如Startup.A51、INIT.A51和L51_BANK.A51则用于初始化和配置系统。 链接时控制涉及代码或常数的绝对定位,这在嵌入式开发中尤其重要,因为内存布局通常是固定的。Keil C的"@at"关键字可以用来指定变量或函数的存储位置。Overlay技术允许在有限的RAM中有效地组织代码,通过动态交换代码段来节省空间。 可重入函数是在多任务环境中必要的,它们可以被中断服务程序或并发任务安全地调用。µVision IDE是Keil C的集成开发环境,提供了代码编辑、调试等多种功能,简化了开发流程。 编写代码时,建议遵循良好的编程习惯,如清晰的头文件管理、模块化编程以及版本控制工具如CVS的使用。这些经验总结旨在帮助开发者更好地理解和使用Keil C,提高8051项目的开发效率和代码质量。