新闻中心

EEPW首页>嵌入式系统>设计应用> STR71xF嵌入式系统设计和实践

STR71xF嵌入式系统设计和实践

作者: 时间:2012-03-29 来源:网络 收藏

复位芯片采用 IMP809S,主时钟为16MHz,ADC接口电路可外接模拟信号或用板上模拟电压。

3.2 软件

3.2.1 BootLoader

简单地说,BootLoader 就是在操作内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。通常,Boot Loader 是严重地依赖于硬件而实现的,特别是在世界。因此,在世界里建立一个通用的 Boot Loader 几乎是不可能的。另外,由于 Boot Loader 的实现依赖于 CPU 的体系结构,因此大多数 Boot Loader 都分为 stage1 和 stage2 两大部分。依赖于 CPU 体系结构的代码,比如设备初始化代码等,通常都放在 stage1 中,而且通常都用汇编语言来实现,以达到短小精悍的目的。而 stage2 则通常用C语言来实现,这样可以实现给复杂的功能,而且代码会具有更好的可读性和可移植性。

Boot Loader 的 stage1 通常包括以下步骤(以执行的先后顺序):

硬件设备初始化。

为加载 Boot Loader 的 stage2 准备 RAM 空间。

拷贝 Boot Loader 的 stage2 到 RAM 空间中。

设置好堆栈。

跳转到 stage2 的 C 入口点。

Boot Loader 的 stage2 通常包括以下步骤(以执行的先后顺序):

初始化本阶段要使用到的硬件设备。

检测系统内存映射(memory map)。

将 kernel 映像和根文件系统映像从 flash 上读到 RAM 空间中。

为内核设置启动参数。

调用内核。

3.2.2 应用程序

本实例主要用FIQ来设计一个时钟,实现一小时计时,由于需要4个7段数码管,考虑到I/O口的数量,所以采用动态显示方式。要点是要掌握ARM7TDMI的快速中断原理和定时器原理,能正确地分配时钟。程序流程图如图8 所示。

43.jpg
图8 时钟程序流程框图

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭