S3C44B0启动程序详细说明文档及ADS的配置
标题和描述中的知识点聚焦于S3C44B0处理器的启动程序以及使用ARM Developer Suite (ADS)工具链的配置细节。以下是对这些知识点的详细解释: ### S3C44B0启动程序 #### 1. **启动程序概述** - 文件名为`44BINIT.S`,版本日期为2003年1月10日。 - 该程序负责配置内存、初始化中断服务例程(ISR)和堆栈,以及初始化C语言变量。 - 其中包括填充零到所有零初始化的C变量,这是思瑞讯电子在2007年3月30日增加的注释说明。 #### 2. **寄存器和控制块定义** - **中断控制**: 包括`INTPNDEQU0x01e00004`(中断挂起寄存器)、`INTMODEQU0x01e00008`(中断模式寄存器)、`INTMSKEQU0x01e0000c`(中断屏蔽寄存器)等。 - **看门狗定时器**: `WTCONEQU0x01d30000`。 - **时钟控制器**: 包括`PLLCONEQU0x01d80000`(锁相环控制寄存器)、`CLKCONEQU0x01d80004`(时钟控制寄存器)、`LOCKTIMEEQU0x01d8000c`。 - **内存控制器**: `REFRESHEQU0x01c80024`。 #### 3. **预定义常量** - 定义了不同的处理器模式,如`USERMODEEQU0x10`(用户模式)、`FIQMODEEQU0x11`(快速中断模式)、`IRQMODEEQU0x12`(外部中断模式)等。 - `NOINTEQU0xc0`表示屏蔽中断。 #### 4. **条件编译** - 通过检查是否使用`tasm.exe`来设定全局逻辑变量`THUMBCODE`,进而决定编译模式是Thumb还是ARM。 #### 5. **宏定义** - 定义了用于中断服务例程加载的宏,如`$HandlerLabelHANDLER$HandleLabel`,用于将中断服务程序的入口地址装入程序计数器(PC)中,提高中断处理效率。 ### ADS配置 #### 1. **编译模式选择** - ADS工具链允许通过条件编译指令设定编译模式为Thumb或ARM。 #### 2. **中断处理模式** - **向量中断模式**: 当CPU读取IRQ中断指令时,系统直接跳转到特定地址的中断服务程序,提高中断响应速度。 - **非向量中断模式**: 传统中断处理方法,所有中断都跳转到统一的中断处理函数,通过读取中断挂起寄存器判断中断源。 #### 3. **堆栈配置** - 指出ADS仅支持FD(满递减)型堆栈,这可能影响中断处理的堆栈管理策略。 S3C44B0启动程序详细说明了处理器的初始化流程,包括硬件资源的配置、中断管理以及C语言变量的初始化。同时,对ADS的配置提供了对编译模式的选择指导以及对不同中断处理模式的理解,这对于嵌入式系统的开发人员来说是非常宝贵的资料,有助于他们更深入地理解S3C44B0处理器的工作原理和编程实践。
剩余22页未读,继续阅读
- Troy_lee2013-11-27资料可以,很好
- 粉丝: 0
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 微信小程序实现找不同游戏
- 100_Numpy_exercises.ipynb
- 2023-04-06-项目笔记 - 第三百二十六阶段 - 4.4.2.324全局变量的作用域-324 -2025.11.23
- 一个简单的模板,开始用 Python 编写你自己的个性化 Discord 机器人.zip
- TP-Link 智能家居产品的 Python API.zip
- 一个需要十一个字才能i激活的神奇代码-OLP
- 如果你喜欢 Python,请使用此模板.zip
- 带有 python 3 和 opencv 4.1 的 Docker 映像.zip
- 知识领域,内容概要,使用场景及目标
- 《基于MATLAB的三段式距离保护建模与仿真》