实时钟芯片可以为系统定时,给出当前的年、月、日及具体时间(小时、分、
秒及毫秒),可以设定其经过一段时间即向 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 程序可以监控宿主机 Windows 调试平台上的用户调试指令,获取 CPU
寄存器的值及目标机存储空间、I/O 空间的内容。
后续章节将从软件架构、内存操作、屏幕操作、键盘操作、性能优化等多方
面阐述 C 语言嵌入式系统的编程技巧。软件架构是一个宏观概念,与具体硬件的
联系不大;内存操作主要涉及系统中的 FLASH、RAM 和 NVRAM 芯片;屏幕操作则
评论0
最新资源