- 1、本文档共33页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Mini2440Mini2440启动代码的编写
Mini2440 基础篇启动代码的编写 待修改
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
Mini2440启动代码的编写
启动代码是系统上电或复位以后运行的第一段代码,它的作用是在用户程序运行之前对系统硬件及软
件运行环境进行必要的初始化并在最后将程序跳转到用户程序,它直接面对ARM 处理器内核及硬件控制
器进行编程,所执行的具体操作与具体的目标系统紧密相关。
因为启动代码与目标系统紧密相连,所以在讲述MINI2440 的启动代码之前先来了解一下MINI2440
的启动方式。
S3C2440 支持两种方式的启动:NOR FLASH 启动和NAND FLASH 启动,这两种FLASH 都是非易失
存储器。从NOR FLASH 启动时,与nGCS0 相连的NOR FLASH 就被映射到nGCS0 片选的空间,其地址
为0从NAND FLASH 启动时,S3C2440 芯片内部自带的4K BootSRAM 被映射到nGCS0 片选
的空间,其地址为0当系统上电或复位时,程序会从0 地址处开始执行,因此我们编写的启动
代码要确保存储在0 地址处。
NOR FLASH 的特点是芯片内执行,即程序可以直接在其中运行,而不必把程序读取到RAM 中运行,
虽然NOR FLASH 有这个优势,但是NOR FLASH 的性价比不高,所以很多系统采用NAND FLASH 启动。
NAND FLASH 采用的是非线性的存储模式,因而程序是无法在其中运行的,它只能作为程序或数据的存
储载体。S3C2440 内部自带一块SRAM 区域,容量是4KB,称为“Steppingstone”(“起步阶石”),当系
统从NAND FLASH 启动时,S3C2440 的硬件机制会将NAND FLASH 的前4K 复制到“Steppingstone”区
域,这时候这4K 的SRAM 被映射到nGCS0 片选的空间,其地址被定为为0所以程序会从此
处开始运行。选择NAND FLASH 启动时,我们需要做的就是将启动代码存放在NAND FLASH 的前4K,
在启动代码中要包含将程序从NAND FLASH 复制到SDRAM 的操作。这样在系统上电或复位时,系统就
会从NAND FLASH 中启动,并将程序搬运到SDRAM 中运行。
Mini2440 开发板有两种FLASH :2M 的 Nor FLASH 和128M 的Nand FLASH,按照开发板的设计目
的以及很多实际的应用,系统一般选择从NAND FLASH 启动,但厂家为了方便大家学习还是保留了NOR
FLASH,我们也可以将启动代码烧写至NOR FLASH,并从中启动。启动方式可通过拨键开关S2 来选择。
通过上述我们简单了解了S3C2440 的启动过程,现在就来讲述一下启动代码的编写过程。启动代码是
面向ARM 处理器内核和硬件控制器的,所以它的绝大部分都是通过汇编语言实现的。
一.启动代码的功能与实现
启动代码主要是在主程序运行之前初始化系统硬件及软件的运行环境,它的主要功能包括以下几个方
面:
■ 建立异常向量表
※※※※※※※※※※※※※※※※※※※※※※※※※※第1页※※※※※※※※※※※※※※※※※※※※※※※※
冯伟fengwei@jiangnan.edu.cn QQ:184930560
Mini2440 基础篇启动代码的编写 待修改
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
■ 初始化系统堆栈
■ 初始化硬件
■ 应用程序执行环境初始化
■ 跳转至主函数
下面我们来分别讲解一下:
1.
1.
11.. 建立异常向量表
异常向量表是启动代码与操作系统发生联系的地方,即使操作系统已经取得了处理器的控制权,
但是当发生异常时,ARM 处理器会强制将PC 指针指向异常向量表中对应的异常类型的地址值,然后
跳转到对应的异常中断服务程序。ARM 有7 种异常,他们分别是复位异常,当开发板上电或复位时进
入;未定义指令异常,当遇
文档评论(0)