⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄

📁 JAPAN "RTOS technology that learns with TOPPERS"
💻
字号:
/*
 *    僇乕僱儖梡偺僗僞乕僩傾僢僾丒儌僕儏乕儖(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 + -