外围驱动程序库是一系列用来访问Stellaris系列的基于ARM®CortexTM-M3微处理器上的外设的驱动程序。尽管从纯粹的操作系统的理解上它们不是驱动程序(也就是说,它们没有公共的接口,未连接到一个整体的设备驱动程序结构),但这些驱动程序确实提供了一种机制,使器件的外设使用起来很容易。
### Cortex-M3外设驱动库指南
#### 一、引言
Cortex-M3外设驱动库是一款专门针对基于ARM®CortexTM-M3微处理器的Stellaris系列产品的驱动库,旨在为开发者提供一种简单易用的方式来访问并控制硬件外设。尽管从操作系统层面来看,这些驱动程序并未遵循传统驱动程序的设计模式——例如没有统一的接口或连接到一个整体的设备驱动程序结构——但它们的确提供了一种机制,使得硬件外设的操作变得更为便捷。
#### 二、Cortex-M3外设驱动库概述
Cortex-M3外设驱动库主要包含以下几个部分:
1. **编译代码**:这部分介绍了如何使用不同的工具链来编译驱动库代码,包括Keil uVision、IAR Embedded Workbench、CodeSourcery Sourcery G++、Code Red Technologies Tools等。每种编译方式都有其特定的配置要求和步骤。
2. **引导代码**:引导代码是系统启动时最先执行的部分,用于初始化关键硬件资源,如内存控制器、时钟系统等。这部分对于确保系统正常启动至关重要。
3. **编程模型**:这部分提供了三种不同的编程模型:
- **直接寄存器访问模型**:通过直接读写硬件寄存器来操作外设。
- **软件驱动程序模型**:通过封装好的函数调用来操作外设,提高了代码的可读性和可维护性。
- **组合模型**:结合前两种模型的优点,既提供了高级别的抽象又保留了底层控制的能力。
4. **外设驱动**:针对不同的外设提供了详细的驱动介绍,包括模拟比较器、模数转换器(ADC)、控制器局域网(CAN)、以太网控制器等。每一章节都包含了该外设的简介、API函数的详细描述及编程示例。
#### 三、关键技术点详解
##### 1. 编译代码
- **Keil uVision**:配置项目,选择正确的设备和工具链版本,编译链接工程。
- **IAR Embedded Workbench**:创建新项目,添加必要的头文件和源文件,设置编译选项。
- **CodeSourcery Sourcery G++**:设置环境变量,编写Makefile文件,通过命令行编译。
- **Code Red Technologies Tools**:配置项目属性,包括编译器和链接器选项。
- **从命令行编译**:编写Makefile或使用脚本自动化构建过程。
##### 2. 引导代码
引导代码通常包括:
- 初始化时钟系统。
- 设置内存区域。
- 初始化复位和中断控制器。
##### 3. 编程模型
- **直接寄存器访问模型**:适用于对性能有极高要求的应用场景,但代码可读性较差。
- **软件驱动程序模型**:通过函数封装提高代码的可读性和可维护性,适合大多数应用开发。
- **组合模型**:在某些关键部分使用直接寄存器访问,在其他部分使用软件驱动程序,以达到性能和易用性的平衡。
##### 4. 外设驱动详解
- **模拟比较器**
- **API函数**:介绍了模拟比较器的初始化、配置阈值、读取状态等功能。
- **编程范例**:提供了如何使用模拟比较器进行简单的比较操作的例子。
- **模数转换器(ADC)**
- **API函数**:涵盖了ADC初始化、配置采样速率、启动转换、读取转换结果等功能。
- **编程范例**:展示了如何配置ADC并读取模拟输入信号的示例。
- **控制器局域网(CAN)**
- **API函数**:包括CAN初始化、发送消息、接收消息、配置过滤器等。
- **编程示例**:通过示例说明了如何建立CAN通信的基本步骤。
- **以太网控制器**
- **API函数**:涵盖了以太网控制器的初始化、配置MAC地址、收发数据包等功能。
- **编程示例**:演示了如何通过以太网控制器发送和接收数据包的基本过程。
#### 四、总结
Cortex-M3外设驱动库为开发者提供了一个强大的工具箱,帮助他们轻松地访问和控制各种外设。通过深入了解不同编译工具的使用方法、引导代码的重要性以及多种编程模型的应用场景,开发者可以更高效地完成基于Cortex-M3的项目开发。此外,通过对具体外设驱动的深入学习,可以更好地掌握如何利用这些外设实现复杂的功能。