- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
龙芯税控SoC中Bootloader设计与分析
龙芯税控SoC中Bootloader设计与分析
摘要:本文介绍了龙芯税控SoC中Bootloader的设计过程,并详细分析了Bootloader中关于外部中断(IRQ)处理的详细过程。
关键词:引导程序;龙芯;SoC;嵌入式系统;uCOS-II
前言
Bootloader是系统加电运行的第一段软件代码。在嵌入式系统中,通常并没有像BIOS那样的固件程序,因此整个系统的加载启动任务就完全由Bootloader来完成。Bootloader是底层硬件和上层应用软件之间的一个中间件软件。它创建内核需要的一些信息并将这些信息通过相关机制传递给内核,从而将系统的软硬件环境带到一个合适的状态。同时还提供基本输入、输出系统监控程序功能,还可具有一定的调试功能。
随着大规模集成电路的发展和现在工艺的进步,片上系统SoC逐渐成为主流的芯片设计形态。龙芯税控SoC系统软件框架包括以下几个主要部分:工具链、模拟调试环境、仿真环境、Bootloader、操作系统以及应用程序。本文介绍了龙芯税控SoC软件中Bootloader的设计。
开发环境
Godson-1处理器
Godson-1是由中科院计算所研制出的一款兼顾通用和嵌入式应用需求的微处理器,是第一款我国自主研发的通用微处理器。龙芯一号实现了MIPS Ⅲ指令系统的32位模式,支持4GB内存寻址,主频工作在200MHz-266MHz,芯片内部16KB的缓存,使用PQFP封装技术。目前,北京龙芯集成电路设计公司推出的网络计算机以及一系列的解决方案就是基于这款处理器的。
uCOS-Ⅱ
uCOS-Ⅱ是一款免费公开源代码、结构小巧、具有可剥夺实时内核的实时操作系统。uCOS-II的前身是uCOS,是专门为计算机的嵌入式应用设计的,绝大部分代码是用C语言编写的。用户只要有标准的ANSI的C交叉编译器,有汇编器、连接器等软件工具,就可以将uCOS-Ⅱ嵌入到开发的产品中。uCOS-II具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小内核可编译至2KB。uCOS-Ⅱ已经移植到了几乎所有知名的CPU上。但由于uCOS-Ⅱ良好的可扩展性和源码开放,这些非必须的功能完全可以由用户自己根据需要分别实现。uCOS-Ⅱ目标是实现一个基于优先级调度的抢占式的实时内核,并在这个内核之上提供最基本的系统服务,如信号量、邮箱、消息队列、内存管理、中断管理等。目前,uCOS-Ⅱ已被广泛的应用于照相机,医疗器械,音响设备,发动机控制,高速公路电话系统,自动提款机等产品中。
嵌入式平台很少能给开发者提供完整的工具链,大部分软件设计工作在其他宿主机器上完成,常用的工具链是与gcc相关的编译工具。笔者所开发的Bootloader就是应用了gcc的编译工具编译和调试的。
Bootloader的设计分析
Bootloader的操作模式 大多数Bootloader都包含两种不同的操作模式:
(1)启动加载(Bootloading)模式:也称为“自主”模式。即Bootloader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,整个过程并没有用户的介入。
(2)下载(Downloading)模式:在这种模式下,目标机上的Bootloader将通过串口或网络连接等通信手段从主机下载内核映像和根文件系统映像等。然后保存到目标机上的FLASH类固态存储设备中。Bootloader的这种模式通常在系统初次安装和更新时被使用,工作于这种模式下的Bootloader通常都会向它的终端用户提供一个简单的命令行接口。在我们的Bootloader设计中我们同时支持这两种工作模式,采用的方法是:一开始启动时处于正常的启动加载模式,但并不立即启动进入uCOS-Ⅱ内核.而是提示延时5秒,等待终端用户如果按下某一特定按键,则切换到下载模式,否则继续启动uCOS-Ⅱ内核。
Bootloader的启动及初始化
龙芯税控SoC的硬件模块是可配置的。Bootloader分为stage 1和stage2两大部分。依赖于CPU体系结构的代码,通常都放在stagel中,而且在这一部分,我们直接对处理器内核和硬件控制器进行编程,这部分用MIPS汇编来实现。而stage2则用C语言来实现,这样可以实现更复杂的功能,而且代码会具有更好的可读性和可移植性。
Bootloader的stage 1
这部分代码必须首先完成一些基本的硬件初始化,为stage2的执行以及随后的kernel的执行准备好一些基本的硬件环境。Bootloader的stage1的内容包括:定义程序人口点;设置异常向量表;初始化存储系统(包括
文档评论(0)