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

📄 start.s

📁 toppers操作系统源码
💻 S
字号:
/* *  TOPPERS/JSP Kernel *      Toyohashi Open Platform for Embedded Real-Time Systems/ *      Just Standard Profile Kernel *  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory *                              Toyohashi Univ. of Technology, JAPAN *  *  惧淡螟侯涪荚は·笆布の (1)×(4) の掘凤か·Free Software Foundation  *  によって给山されている GNU General Public License の Version 2 に淡 *  揭されている掘凤を塔たす眷圭に嘎り·塑ソフトウェア∈塑ソフトウェア *  を猖恃したものを崔むˉ笆布票じ∷を蝗脱ˇ剩澜ˇ猖恃ˇ浩芹邵∈笆布· *  网脱と钙ぶ∷することを痰浸で钓满するˉ *  (1) 塑ソフトウェアをソ〖スコ〖ドの妨で网脱する眷圭には·惧淡の螟侯 *      涪山绩·この网脱掘凤および布淡の痰瘦沮惮年が·そのままの妨でソ〖 *      スコ〖ド面に崔まれていることˉ *  (2) 塑ソフトウェアを·ライブラリ妨及など·戮のソフトウェア倡券に蝗 *      脱できる妨で浩芹邵する眷圭には·浩芹邵に燃うドキュメント∈网脱 *      荚マニュアルなど∷に·惧淡の螟侯涪山绩·この网脱掘凤および布淡 *      の痰瘦沮惮年を非很することˉ *  (3) 塑ソフトウェアを·怠达に寥み哈むなど·戮のソフトウェア倡券に蝗 *      脱できない妨で浩芹邵する眷圭には·肌のいずれかの掘凤を塔たすこ *      とˉ *    (a) 浩芹邵に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟 *        侯涪山绩·この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ *    (b) 浩芹邵の妨轮を·侍に年める数恕によって·TOPPERSプロジェクトに *        鼠桂することˉ *  (4) 塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じるいかなる禄 *      巢からも·惧淡螟侯涪荚およびTOPPERSプロジェクトを倘勒することˉ *  *  塑ソフトウェアは·痰瘦沮で捏丁されているものであるˉ惧淡螟侯涪荚お *  よびTOPPERSプロジェクトは·塑ソフトウェアに簇して·その努脱材墙拉も *  崔めて·いかなる瘦沮も乖わないˉまた·塑ソフトウェアの网脱により木 *  儡弄または粗儡弄に栏じたいかなる禄巢に簇しても·その勒扦を砷わないˉ *  *  @(#) $Id: start.S,v 1.18 2005/07/06 01:44:50 honda Exp $ */                /* *    カ〖ネル脱のスタ〖トアップモジュ〖ル(ARMv4脱) */#define _MACRO_ONLY#include <armv4.h>#include <sys_defs.h>        #include <t_config.h>         /*         * Vectorテ〖ブルとジャンプテ〖ブル         * サイズは圭纷0x3c         */        .section .vector,"a"        .code 32        .align 0        .global vector_tablevector_table:        ldr pc, reset_vector       /* リセット             */        ldr pc, undef_vector       /* 踏年盗炭吾           */        ldr pc, swi_vector         /* ソフトウェア充哈み   */        ldr pc, prefech_vector     /* プリフェッチアボ〖ド */        ldr pc, data_abort_vector  /* デ〖タアボ〖ド       */        ldr pc, reset_vector        ldr pc, irq_vector         /* IRQ                  */        ldr pc, fiq_vector         /* IRQ                  *//* *  ベクタ〖テ〖ブル */reset_vector:        .long   startundef_vector:        .long   undef_exceptionswi_vector:        .long   swi_exceptionprefech_vector:        .long   prefetch_exceptiondata_abort_vector:        .long   data_abort_exceptionirq_vector:        .long   irq_exceptionfiq_vector:        .long   fiq_exception        .text        .code 32        .align     0        .global    startstart:        mov  r1,  #(CPSR_SVC|CPSR_FIQ_BIT|CPSR_IRQ_BIT) /* To System mode */		msr  cpsr, r1        /*         * スタックポインタと·フレ〖ムポインタの介袋步         * SL(スタック惧嘎レジスタr10)は肋年する涩妥があるか?         * gccはディフォルトでは-mapcsなので涩妥ない         */        ldr  r3, =STACKTOP        mov  sp, r3        mov  r11, #0        /* Armモ〖ド脱フレ〖ムポインタ   */                 mov  r7, #0         /* Thubmモ〖ド脱フレ〖ムポインタ */        /*         * hardware_init_hookの钙び叫し ∈0でない眷圭∷         *         * タ〖ゲットハ〖ドウェアに巴赂して涩妥な介袋步借妄がある眷圭         * は·hardware_init_hook という簇眶を脱罢する         */        ldr  r0, =hardware_init_hook        cmp  r0, #0x00        blne hardware_init_hook        /*         *  bssセクションのクリア         */        start_1:        ldr  r1, =__bss_start        ldr  r2, =__bss_end        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:#if 0        ldr  r1, =__idata_start        ldr  r3, =__idata_end        cmp  r1, r3        bhs  start_5        ldr  r2, =__data_startstart_4:                ldr  r0, [r1],#4        str  r0, [r2],#4        cmp  r1, r3        blo  start_4#endif                /*         *  software_init_hook を钙叫し∈0 でない眷圭∷         *         *  ソフトウェア茨董∈泼にライブラリ∷に巴赂して涩妥な介袋步借         *  妄がある眷圭は·software_init_hook という簇眶を脱罢すれば         *  よいˉ         */start_5:        ldr   r0, =software_init_hook        cmp   r0, #0x00        blne  software_init_hookstart_6:                bl    kernel_start        

⌨️ 快捷键说明

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