程序,后者则是程序运行时指令及
数据的存放位置。系统所选择的 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)建立连接,将应用