asmstartup.s
来自「使用广泛的日本著名的开源嵌入式实时操作系统T-Kernel的源码」· S 代码 · 共 61 行
S
61 行
/* *---------------------------------------------------------------------- * T-Kernel * * Copyright (C) 2004-2006 by Ken Sakamura. All rights reserved. * T-Kernel is distributed under the T-License. *---------------------------------------------------------------------- * * Version: 1.02.02 * Released by T-Engine Forum(http://www.t-engine.org) at 2006/8/9. * *---------------------------------------------------------------------- *//* * @(#)asmstartup.S (crttk) * * Driver/manager startup */#include <machine.h>#include <tk/asm.h> .text .balign 4 .globl _A_startup .type _A_startup, @function_A_startup: bltz r0, l_noinit // Initialization sequence is performed only when ac >= 0 seth r4, #shigh(__data_org) // When data area does not need to be moved, add3 r4, r4, #low(__data_org)// OS loads seth r5, #shigh(__data_start) add3 r5, r5, #low(__data_start) beq r4, r5, l_noinit seth r6, #shigh(_edata) // initialize data area add3 r6, r6, #low(_edata) beq r5, r6, nocopy_data addi r5, #-4 addi r6, #-4 copy_data: ld r7, @r4+ st r7, @+r5 bne r5, r6, copy_data nocopy_data: ldi r7, #0 // clear bss area seth r4, #shigh(__bss_start - 4) add3 r4, r4, #low(__bss_start - 4) seth r5, #shigh(_end - 4) add3 r5, r5, #low(_end - 4) beq r4, r5, nobss clrbss: st r7, @+r4 bne r4, r5, clrbss nobss: l_noinit: bra Csym(_P_startup)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?