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

📄 start.s

📁 嵌入式系统开发 TOPPERS and JSP Kernel Release 1.3 TOPPERS = Toyohashi Open Platform for Embedded Real-Tim
💻 S
字号:
/* *  TOPPERS/JSP Kernel *      Toyohashi Open Platform for Embedded Real-Time Systems/ *      Just Standard Profile Kernel *  *  Copyright (C) 2000,2001 by Embedded and Real-Time Systems Laboratory *                              Toyohashi Univ. of Technology, JAPAN *  *  惧淡螟侯涪荚は·Free Software Foundation によって给山されている  *  GNU General Public License の Version 2 に淡揭されている掘凤か·笆 *  布の(1)×(4)の掘凤を塔たす眷圭に嘎り·塑ソフトウェア∈塑ソフトウェ *  アを猖恃したものを崔むˉ笆布票じ∷を蝗脱ˇ剩澜ˇ猖恃ˇ浩芹邵∈笆布· *  网脱と钙ぶ∷することを痰浸で钓满するˉ *  (1) 塑ソフトウェアをソ〖スコ〖ドの妨で网脱する眷圭には·惧淡の螟侯 *      涪山绩·この网脱掘凤および布淡の痰瘦沮惮年が·そのままの妨でソ〖 *      スコ〖ド面に崔まれていることˉ *  (2) 塑ソフトウェアを浩网脱材墙なバイナリコ〖ド∈リロケ〖タブルオブ *      ジェクトファイルやライブラリなど∷の妨で网脱する眷圭には·网脱 *      に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟侯涪山绩· *      この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ *  (3) 塑ソフトウェアを浩网脱稍材墙なバイナリコ〖ドの妨または怠达に寥 *      み哈んだ妨で网脱する眷圭には·肌のいずれかの掘凤を塔たすことˉ *    (a) 网脱に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟侯 *        涪山绩·この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ *    (b) 网脱の妨轮を·侍に年める数恕によって·惧淡螟侯涪荚に鼠桂する *        ことˉ *  (4) 塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じるいかなる禄 *      巢からも·惧淡螟侯涪荚を倘勒することˉ *  *  塑ソフトウェアは·痰瘦沮で捏丁されているものであるˉ惧淡螟侯涪荚は· *  塑ソフトウェアに簇して·その努脱材墙拉も崔めて·いかなる瘦沮も乖わ *  ないˉまた·塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じたい *  かなる禄巢に簇しても·その勒扦を砷わないˉ *  *  @(#) $Id: start.S,v 1.6 2002/04/05 07:43:51 honda Exp $ */                /* *    カ〖ネル脱のスタ〖トアップモジュ〖ル(ARM7TDMI脱) */#define _MACRO_ONLY#include "arm7tdmi.h"#include "sys_config.h"                  .text        .code 32        .align 	0        .global	startstart:        mov r1,	#(CPSR_SYS|CPSR_FIQ_BIT|CPSR_IRQ_BIT) /* To System mode */        msr cpsr_c,r1        /*         * スタックポインタと·フレ〖ムポインタの介袋步         * SL(スタック惧嘎レジスタr10)は肋年する涩妥があるか?         * gccはディフォルトでは-mapcsなので涩妥ない         */        ldr r3, stack        mov sp, r3        mov r11, #0        /* Armモ〖ド脱フレ〖ムポインタ   */                 mov r7, #0         /* Thubmモ〖ド脱フレ〖ムポインタ */        /*         * hardware_init_hookの钙び叫し ∈0でない眷圭∷         *         * タ〖ゲットハ〖ドウェアに巴赂して涩妥な介袋步借妄がある眷圭         * は·hardware_init_hook という簇眶を脱罢する         */        ldr r0, hardware_init_hook_k        cmp r0, #0x00        blne hardware_init_hook        /*         *  bssセクションのクリア         */        start_1:        ldr  r1, bss_start_k        ldr  r2, bss_end_k        cmp  r1,r2        bhs  start_3        mov  r0,#0start_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_kstart_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        blne software_init_hookstart_6:                bl  kernel_start                .align 4stack:        .long   STACKTOPhardware_init_hook_k:        .long   hardware_init_hookbss_start_k:	        .long   __bss_startbss_end_k:	        .long   _endidata_start_k:          .long   __idata_startidata_end_k:            .long   __idata_enddata_start_k:           .long   __data_startsoftware_init_hook_k:        .long   software_init_hook.interrupt_count:               .long   interrupt_count

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -