background image

程序,后者则是程序运行时指令及

 

数据的存放位置。系统所选择的 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)建立连接,将应用