44b0引导过程详解(综合多篇资料和自己的理解,不…
2009-05-13 11:42:30来源:未知 阅读 ()
; *******************************************************
; * NAME : 44BINIT.S *
; * Version : 10.JAn.2003 *
; * Description: *
; * C start up codes *
; * Configure memory, Initialize ISR ,stacks *
; * Initialize C-variables *
; * Fill zeros into zero-initialized C-variables *
; *******************************************************
; 说明: 为了学习方便,参考多篇资料对44B0的引导代码重新编辑、注释
; *******************************************************
;输入文件和外部变量;
; *******************************************************
GET ..\inc\option.s
GET ..\inc\memcfg.s
;bootloader要将RW段复制到ram中并将ZI段清零 编译器使用下列段来记录各段的起始和结束地址
; |Image$$RO$$Base| ; RO段起始地址
; |Image$$RO$$Limit| ; RO段结束地址加1
; |Image$$RW$$Base| ; RW段起始地址
; |Image$$RW$$Limit| ; RW段结束地址加1
; |Image$$ZI$$Base| ; ZI段起始地址
; |Image$$ZI$$Limit| ; ZI段结束地址加1
IMPORT |Image$$RO$$Limit| ; End of ROM code (=start of ROM data)
IMPORT |Image$$RW$$Base| ; Base of RAM to initialise
IMPORT |Image$$ZI$$Base| ; Base and limit of area
IMPORT |Image$$ZI$$Limit| ; to zero initialise
IMPORT Main ; The main entry of mon program
; *******************************************************
;定义引导过程中需要设置的控制寄存器,仅针对44B0,44B0寄存器在44B0.H里有定义,但此时无法调用,需要自己定义
; *******************************************************
;Interrupt Control
INTPND EQU 0x01e00004
INTMOD EQU 0x01e00008
INTMSK EQU 0x01e0000c
I_ISPR EQU 0x01e00020
I_CMST EQU 0x01e0001c
;Watchdog timer
WTCON EQU 0x01d30000
;Clock Controller
PLLCON EQU 0x01d80000
CLKCON EQU 0x01d80004
LOCKTIME EQU 0x01d8000c
;Memory Controller
REFRESH EQU 0x01c80024
; *******************************************************
;定义系统常量,主要是ARM工作模式,应该是针对所有ARM7,为CPSR的[0,4]所决定,主要是为了便于操作
; *******************************************************
USERMODE EQU 0x10 ;0b10000用户模式
FIQMODE EQU 0x11 ;0b10001FIQ模式
IRQMODE EQU 0x12 ;0b10010IRQ模式
SVCMODE EQU 0x13 ;0b10011管理模式
ABORTMODE EQU 0x17 ;0b10111中止模式
UNDEFMODE EQU 0x1b ;0b11011未定义
MODEMASK EQU 0x1f ;0b11111系统模式
NOINT EQU 0x80 ; 原来设置为C0,即: NOINT EQU 0xc0 ;但考虑到一些安全因素,暂时设置为80,尽量保证初始化时在ARM状态并关闭中断。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 理解inode 2009-05-13
- 【原创】谈谈个人对Juniper(Junos)模拟器的理解 2009-05-13
- UNIX桌面的背后:理解Xwindow的工作原理 2009-05-13
- 如何理解bsd上的port... 2009-05-13
- 用grep搜索特定进程id的更简便方法(较难理解^-^) 2009-05-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash