44b0引导过程详解(综合多篇资料和自己的理解,不…

2009-05-13 11:42:30来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折


; *******************************************************
; * 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
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Samsung原版44B0X的Bootloader分析

下一篇:内网中快速解决 ARP 引致的掉线