6.1 上电初始化过程
通信设备的开发的基础就是驱动外围芯片进行数据传输、控制。本章主要以 MPC8260 的几个常用功能部件为编程对象,介绍基于 MPC8260的系统的程序设计与调试,通过对本章的阅读,可以使读者了解MPC8260各功能部件的工作原理及基本编程方法。 本章的主要内容包括:
- 嵌入式系统应用程序设计(主要是C语言)的基本方法。
- MPC8260 SCC的工作原理与编程示例。
- MPC8260 FCC的工作原理与编程示例。
- MPC8260 MCC的工作原理与编程示例。
- MPC8260 DMA 控制器的工作原理与编程示例。
- MPC8260 I2C 总线控制器的工作原理与编程示例。
在讲解基本驱动之前我们先来具体讲解一下MPC8260上电初始化的过程。
6.1 上电初始化过程
任何一个系统都有上电初始化过程,而基于MPC603e核的微处理器的系统一般为复杂的片上系统(System On Chip),这种复杂系统的多数硬件模块都是可配置的(Configurable),需要明确的设置为特定的工作状态,因此在用户的主应用程序运行之前需要一段专门的代码来完成对系统的初始化工作,这段代码一般在工程里称为startup.s(由PPC汇编语言编写)。
初始化代码直接对硬件进行编程并且包含如下典型任务:
— 定义程序入口点;
— 初始化存储器系统;
— 初始化堆栈指针
— 初始化C代码的运行环境;
— 使能中断,并设置中断向量;
— 进入C代码的运行;
6.1.1定义程序入口点
初始化代码定义了整个程序的入口点(一般命名为_start),在代码段的开始声明一个.glob类型的变量_start,在设置CodeWarrior 8.6的连接属性时,将程序入口点设置为_start,代码如下所示:
.text
.align 2
.globl _start
_start:


