《C语言嵌入式系统编程修炼》.pdf

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《C语言嵌入式系统编程修炼》.pdf

开发板精品网 C 语言嵌入式系统编程修炼之一:背景篇 ! 作者:宋宝华 不同于一般形式的软件编程,嵌入式系统编程建立在特定的硬件平台上,势 必要求其编程语言具备较强的硬件直接操作能力。无疑,汇编语言具备这样的特 质。但是,归因于汇编语言开发过程的复杂性,它并不是嵌入式系统开发的一般 选择。而与之相比 C 语言--一种"高级的低级"语言,则成为嵌入式系统开发的 最佳选择。笔者在嵌入式系统项目的开发过程中,一次又一次感受到 C 语言的 精妙,沉醉于 C 语言给嵌入式开发带来的便利。 图 1 给出了本文的讨论所基于的硬件平台,实际上,这也是大多数嵌入式系 统的硬件平台。它包括两部分: (1) 以通用处理器为中心的协议处理模块,用于网络控制协议的处理; (2 ) 以数字信号处理器 (DSP)为中心的信号处理模块,用于调制、解 调和数/模信号转换。 本文的讨论主要围绕以通用处理器为中心的协议处理模块进行,因为它更多 地牵涉到具体的 C 语言编程技巧。而 DSP 编程则重点关注具体的数字信号处理 算法,主要涉及通信领域的知识,不是本文的讨论重点。 着眼于讨论普遍的嵌入式系统 C 编程技巧,系统的协议处理模块没有选择 特别的 CPU,而是选择了众所周知的 CPU 芯片--80186,每一位学习过 《微机 原理》的读者都应该对此芯片有一个基本的认识,且对其指令集比较熟悉。80186 的字长是 16 位,可以寻址到的内存空间为 1MB,只有实地址模式。C 语言编译 生成的指针为 32 位(双字) 高 16 位为段地址,低 16 位为段内编译,一段最 多 64KB 。 开发板精品网 图 1 系统硬件架构 协议处理模块中的 FLASH 和 RAM 几乎是每个嵌入式系统的必备设备,前 者用于存储程序,后者则是程序运行时指令及数据的存放位置。系统所选择的 FLASH 和 RAM 的位宽都为 16 位,与 CPU 一致。 实时钟芯片可以为系统定时,给出当前的年、月、日及具体时间 (小时、分、 秒及毫秒) 可以设定其经过一段时间即向 CPU 提出中断或设定报警时间到来 时向 CPU 提出中断 (类似闹钟功能)。 NVRAM (非易失去性 RAM)具有掉电不丢失数据的特性,可以用于保存系 统的设置信息 譬如 网络协议参数等 。在系统掉电或重新启动后 仍然可以读取 先前的设置信息。其位宽为8 位,比 CPU 字长小。文章特意选择一个与 CPU 字长不一致的存储芯片,为后文中一节的讨论创造 件。 UART 则完成 CPU 并行数据传输与 RS-232 串行数据传输 的转换,它可以 在接收到[1~MAX_BUFFER]字节后向 CPU 提出中断 MAX_BUFFER 为 UART 芯片存储接收到字节的最大缓冲区 。 键盘控制器和显示控制器则完成系统人机界面的控制。 以上提供的是一个较完备的嵌入式系统硬件架构,实际的系统可能包含更少 的外设。之所以选择一个完备的系统,是为了后文更全面的讨论嵌入式系统 C 语言编程技巧的方方面面,所有设备都会成为后文的分析 目标 。 嵌入式系统需要良好的软件开发环境的支持 由于嵌入式系统的目标机资源 受限,不可能在其上建立庞大、复杂的开发环境,因而其开发环境和目标运行环 境相互分离。因此,嵌入式应用软件的开发方式一般是,在宿主机(Host)上建立 开发环境,进行应用程序编码和交叉编译 然后宿主机同目标机(Target)建立连 接 将应用程序下载到目标机上进行交叉调试 ,经过调试和优化 ,最后将应用程 开发板精品网 序固化到目标机中实际运行。 CAD-UL 是适用于 x86 处理器的嵌入式应用软件开发环境,它运行在 Windows 操作系统之上,可生成x86 处理器的目标代码并通过 PC 机的 COM 口 (RS-232 串口)或以太 网口下载到目标机上运行 如 图2 。其驻留于目标机 FLASH 存储器中的 monitor 程序可以监控宿主机Wi

您可能关注的文档

文档评论(0)

ucut + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档