站内 站外
首页| 新闻 | 市场 | 专题 | 产品 | 日经电子 | 访谈 | 技术文章 | 解决方案 | 技术热点 | 新手园地 | 黄页 | 下载 | 人才

首页 > 新手园地 > 设计心得
书写Bootloader重要的经验心得
作者:    时间:2007-12-02  来源:    

实际上对于学习S3C44B0X的人来说,对于这个芯片的启动过程还有很多不解之处,我想谈谈我对启动过程的理解,实际上这将是书写Bootloader重要的一部分。

44B0启动时一定是从0地址开始执行指令,系统中0地址是片选引脚GCS0对应的Bank0空间。如果系统使用Flash作为程序储存设备且具有Bootloader这样的引导代码的话,则0地址一定是Flash区域,即从Flash中的第一条指令执行!但是很多44B0的系统中并不把Bootloader直接放在0址开始的Flash空间中,而是放置在以0x1f0000为起始地址的Flash空间中。这是为什么呢?显然将Bootloader放在0地址为起始地址的空间内是可以在系统加电时被执行来引导系统的。但是,每次烧写新的程序时,都会擦去0地址开始内容,会破坏Bootloader,从而使系统不能启动。所以,把Bootloader放在别的地方,而在0地址开始的位置放入中断向量表,而中断向量表的第一条指令一定是跳转到Bootloader的起始处。之所以把0地址填入中断向量表,这和芯片的体系结构有关,44B0没有重映射(Remap)的功能,在触发中断之后,还是要到Flash中的开头地址空间中执行指令,所以所谓的这段中断向量表完成的是跳转的功能,具体说来不应叫中断向量表,而应该叫做中断跳转表。如果不在Flash的起始地址处烧入中断跳转表的话就无法正确相应中断,从而所有需要中断的程序都不能正常运行。切忌这个中断跳转表一定必不可少!

如下是中断跳转表的源程序,将其编译烧入0地址之中:

AREA boot, CODE, READONLY

VECTORS EQU 0x0c000000

ENTRY

mov pc, #VECTORS
ldr pc, =VECTORS+4
ldr pc, =VECTORS+8
ldr pc, =VECTORS+0x0c
ldr pc, =VECTORS+0x10
ldr pc, =VECTORS+0x14
ldr pc, =VECTORS+0x18
ldr pc, =VECTORS+0x1c

END

还有很多人讨论,书写一个Bootloader最为基本的代码是什么?一般来说,像诸如跑马灯这样的程序可以测出最少代码,你可以想象一个系统只用到Flash,而不用RAM,中断,Cache等东西,这样在Bootloader中仅需要对看门狗、时钟频率、片内锁相环设置,而不用书写中断例程、中断向量表、RAM配置、堆栈指针初始化、DMA配置、电源管理等等,一个简约的Bootloader如下,足以启动系统转入main中执行。

;Watchdog timer
WTCON EQU 0x01d30000

;Clock Controller
PLLCON EQU 0x01d80000
CLKCON EQU 0x01d80004
LOCKTIME EQU 0x01d8000c

M_DIV EQU 0x48 ;Fin=10MHz Fout=40MHz
P_DIV EQU 0x3
S_DIV EQU 0x2

IMPORT Main ; The main entry of mon program

AREA Init,CODE,READONLY
ENTRY
b ResetHandler ;for debug

ResetHandler
ldr r0,=WTCON ;watch dog disable
ldr r1,=0x0
str r1,[r0]

ldr r0,=LOCKTIME
ldr r1,=0xfff
str r1,[r0]
ldr r0,=PLLCON ;temporary setting of PLL
ldr r1,=((M_DIV<<12)+(P_DIV<<4)+S_DIV) ;Fin=10MHz,Fout=40MHz
str r1,[r0]
ldr r0,=CLKCON
ldr r1,=0x7ff8 ;All unit block CLK enable
str r1,[r0]

BL Main
B .
END

标签:  S3C44B0X  Bootloader  中断跳转表
  发表评论
昵称: 验证码:
内容:
 
  相关新闻
·基于ARM的嵌入式MPEG-4远程网络
·S3C44B0X与LM057QC1T0
·基于ARM的给煤机控制系统的设计
·基于ARM-Clinu
·Microwindows在基于S3C4
·基于S3C44BOX的远程监测系统的设
·基于S3C44B0X的Microwin
·uC/OS-II在GPRS终端系统中的
  最新资讯
·HSDPA与HSUPA增强功能及测试分
·WCDMA系统覆盖和容量的平衡规划
·引入HSDPA对WCDMA网络的影响及
·HSDPA和HSUPA移动性差异大
·网络数字电视的实现方法与关键技术
·4G通信关键技术探讨
·技术分析:WiMAX技术透视
·WCDMA网络架构及通讯协议
Copyright(C)2008 Electronic Design & Application World All rights reserved.
《电子设计应用》杂志社 版权所有
联系电话:(86)10-66421136 66421836 66423836 传真:(86)10-66423936
京ICP备05012822号