📄
字号:
/*
* 僇乕僱儖梡偺僗僞乕僩傾僢僾丒儌僕儏乕儖(ARM7TDMI梡)
*/
#define _MACRO_ONLY
#include "arm7tdmi.h"
#include "sys_config.h"
.text
.code 32
.align 0
.global start
start:
mov r0, #0x12
msr cpsr, r0
ldr sp,stack
/* To System mode */
mov r1, #(CPSR_SYS|CPSR_FIQ_BIT|CPSR_IRQ_BIT)
msr cpsr_c,r1
/*
* hardware_init_hook偺屇傃弌偟 乮0偱側偄応崌乯
*
* 僞乕僎僢僩僴乕僪僂僃傾偵埶懚偟偰昁梫側弶婜壔張棟偑
* 偁傞応崌偼丆hardware_init_hook偲偄偆娭悢傪梡堄偡傞
*/
ldr r0, hardware_init_hook_k
cmp r0, #0x00
bleq skip_hardware_init_hook_k
mov lr, pc
ldr pc, hardware_init_hook_k
skip_hardware_init_hook_k:
/*
* bss僙僋僔儑儞偺僋儕傾
*/
start_1:
ldr r1, bss_start_k
ldr r2, bss_end_k
cmp r1,r2
bhs start_3
mov r0,#0
start_2:
str r0,[r1],#4
cmp r1, r2
blo start_2
/*
* data僙僋僔儑儞偺弶婜壔(ROM壔懳墳)
* __idata_start 偐傜 __idata_end 傑偱傪丆
* __data_start 埲崀偵僐僺乕偡傞
*/
start_3:
ldr r1,idata_start_k
ldr r3,idata_end_k
cmp r1,r3
bhs start_3
ldr r2,data_start_k
start_4:
ldr r0,[r1],#4
str r0,[r2],#4
cmp r1,r3
blo start_4
/*
* software_init_hook 傪屇弌偟乮0 偱側偄応崌乯
*
* 僜僼僩僂僃傾娐嫬乮摿偵儔僀僽儔儕乯偵埶懚偟偰
* 昁梫側弶婜壔張棟偑偁傞応崌偼丆software_init_hook
* 偲偄偆娭悢傪梡堄偡傟偽傛偄丏
*/
start_5:
ldr r0, software_init_hook_k
cmp r0, #0x00
bleq skip_software_init_hook
mov lr, pc
ldr pc, software_init_hook_k
skip_software_init_hook:
start_6:
bl kernel_start
.align 4
stack:
.long STACKTOP
hardware_init_hook_k:
.long hardware_init_hook
bss_start_k:
.long __bss_start
bss_end_k:
.long _end
idata_start_k:
.long __idata_start
idata_end_k:
.long __idata_end
data_start_k:
.long __data_start
software_init_hook_k:
.long software_init_hook
.interrupt_count:
.long interrupt_count
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -