C语言嵌入式系统编程技巧{jp}教程 PDF格式 38页 C语言嵌入式系统编程修炼之一:背景篇! 不同于一般形式的软件编程,嵌入式系统编程建立在特定的硬件平台上, 势必要求其编程语言具备较强的硬件直接操作能力。无疑,汇编语言具备这样的 特质。但是,归因于汇编语言开发过程的复杂性,它并不是嵌入式系统开发的一 般选择。而与之相比,C语言--一种"高级的低级"语言,则成为嵌入式系统开发 的{zj0}选择。笔者在嵌入式系统项目的开发过程中,一次又一次感受到C语言的 精妙,沉醉于C语言给嵌入式开发带来的便利。 图1给出了本文的讨论所基于的硬件平台,实际上,这也是大多数嵌入式系 统的硬件平台。它包括两部分: (1) 以通用处理器为中心的协议处理模块,用于网络控制协议的处理; (2) 以数字信号处理器(DSP)为中心的信号处理模块,用于调制、解调 和数/模信号转换。 本文的讨论主要围绕以通用处理器为中心的协议处理模块进行,因为它更多 地牵涉到具体的C语言编程技巧。而DSP编程则重点关注具体的数字信号处理算 法,主要涉及通信领域的知识,不是本文的讨论重点。 着眼于讨论普遍的嵌入式系统C编程技巧,系统的协议处理模块没有选择特 别的CPU,而是选择了众所周知的CPU芯片--80186,每一位学习过《微机原理》 的读者都应该对此芯片有一个基本的认识,且对其指令集比较熟悉。80186的字 长是16位,可以寻址到的内存空间为1MB,只有实地址模式。C语言编译生成的 指针为32位(双字),高16位为段地址,低16位为段内编译,一段最多64KB。
|