OK6410启动代码(1)
来源:互联网 发布:进驻淘宝商城的条件 编辑:程序博客网 时间:2024/05/16 08:42
;/*************************************************************************************
; File Name : retarget_.s
;
; File Description : This file implements the stack & heap initilaization
;*************************************************************************************/
GET ..\inc\option.inc
AREA |C$$code|, CODE, READONLY
Mode_USR EQU 0x10 ;用户模式
Mode_FIQ EQU 0x11 ;快速中断模式
Mode_IRQ EQU 0x12 ;中断请求模式
Mode_SVC EQU 0x13 ;管理模式
Mode_ABT EQU 0x17 ;异常中断模式
Mode_UND EQU 0x1b ;未定义模式
Mode_SYS EQU 0x1f ;系统模式
I_Bit EQU 0x80 ;禁止IRQ中断
F_Bit EQU 0x40 ;禁止FRQ中断
;定义中断堆栈空间大小
Size_FIQ_Stack EQU 256
Size_IRQ_Stack EQU 256
Size_ABT_Stack EQU 256
Size_UND_Stack EQU 256
Size_SVC_Stack EQU 8192
;定义堆栈偏移量
Offset_FIQ_Stack EQU 0
Offset_IRQ_Stack EQU Offset_FIQ_Stack + Size_FIQ_Stack
Offset_ABT_Stack EQU Offset_IRQ_Stack + Size_IRQ_Stack
Offset_UND_Stack EQU Offset_ABT_Stack + Size_ABT_Stack
Offset_SVC_Stack EQU Offset_UND_Stack + Size_UND_Stack
EXPORT __user_initial_stackheap
__user_initial_stackheap ;初始化堆栈
ldr r0,=top_of_stacks ;将栈顶的地址赋给r0
msr CPSR_c,#Mode_FIQ:OR:I_Bit:OR:F_Bit
sub sp,r0,#Offset_FIQ_Stack
msr CPSR_c,#Mode_IRQ:OR:I_Bit:OR:F_Bit
sub sp,r0,#Offset_IRQ_Stack
msr CPSR_c,#Mode_ABT:OR:I_Bit:OR:F_Bit
sub sp,r0,#Offset_ABT_Stack
msr CPSR_c,#Mode_UND:OR:I_Bit:OR:F_Bit
sub sp,r0,#Offset_UND_Stack
msr CPSR_c,#Mode_SVC:OR:I_Bit:OR:F_Bit
sub r1,r0,#Offset_SVC_Stack
;IMPORT |Image$$ZI$$Limit| ;表示ZI的结束地址
;LDR r0, =|Image$$ZI$$Limit|
ldr r0, =base_of_heap
mov r2,#0
mov r3,#0
mov pc,lr ;R14的值复制到PC,子程序返回
;-------------------------------------------------------
[ (VIC_MODE = 0) ;VIC_MODE预定义为1,跳过该段程序
IMPORT IntHandlerTable
EXPORT IsrIRQ
IsrIRQ
sub sp,sp,#4 ; reserved for PC
stmfd sp!,{r8-r9}
ldr r9,=0x71200f00 ; rVIC0ADDR
ldr r9,[r9]
ldr r8,=IntHandlerTable
add r8,r8,r9,lsl #2 ;r8=r8+r9*4
ldr r8,[r8]
str r8,[sp,#8]
ldmfd sp!,{r8-r9,pc}
]
LTORG ;数据缓冲池伪指令
END
- OK6410启动代码(1)
- OK6410启动代码(2)
- OK6410启动代码(3)
- OK6410启动代码(4)
- OK6410:启动代码
- ARM启动(OK6410)
- OK6410启动
- OK6410之uboot移植(4)——uboot启动代码植及支持nand flansh启动
- OK6410 uboot启动流程详解(一)
- ok6410 启动方式
- OK6410 uboot移植(1)
- ok6410挂载nfs启动步骤
- OK6410内存及启动流程
- OK6410移植linux3.5(1)
- (1)ok6410学习之makefile学习
- ok6410中断架构伪代码
- ok6410 uboot移植1
- OK6410 nandflash 1
- hdu 3746 Cyclic Nacklace(KMP)
- JS内置时间类
- linux命令学习——单引号(‘’)、双引号(“”)、小引号(``)总结
- Web Service实际开发
- ubuntu tftp服务器
- OK6410启动代码(1)
- hdu 4510 小Q系列故事――为什么时光不能倒流
- ARM Cortex M3 启动文件分析
- timus 1104. Don’t Ask Woman about Her Age URAL 解题报告
- 大二快要结束的暑假
- OK6410启动代码(2)
- Spell Checker
- python crawler0729.py
- shell笔记(五)——函数