📄 start.src
字号:
;; TOPPERS/JSP Kernel; Toyohashi Open Platform for Embedded Real-Time Systems/; Just Standard Profile Kernel;; Copyright (C) 2000-2004 by Embedded and Real-Time Systems Laboratory; Toyohashi Univ. of Technology, JAPAN; Copyright (C) 2001-2004 by Industrial Technology Institute,; Miyagi Prefectural Government, JAPAN;; 惧淡螟侯涪荚は·笆布の (1)×(4) の掘凤か·Free Software Foundation; によって给山されている GNU General Public License の Version 2 に淡; 揭されている掘凤を塔たす眷圭に嘎り·塑ソフトウェア∈塑ソフトウェア; を猖恃したものを崔むˉ笆布票じ∷を蝗脱ˇ剩澜ˇ猖恃ˇ浩芹邵∈笆布·; 网脱と钙ぶ∷することを痰浸で钓满するˉ; (1) 塑ソフトウェアをソ〖スコ〖ドの妨で网脱する眷圭には·惧淡の螟侯; 涪山绩·この网脱掘凤および布淡の痰瘦沮惮年が·そのままの妨でソ〖; スコ〖ド面に崔まれていることˉ; (2) 塑ソフトウェアを·ライブラリ妨及など·戮のソフトウェア倡券に蝗; 脱できる妨で浩芹邵する眷圭には·浩芹邵に燃うドキュメント∈网脱; 荚マニュアルなど∷に·惧淡の螟侯涪山绩·この网脱掘凤および布淡; の痰瘦沮惮年を非很することˉ; (3) 塑ソフトウェアを·怠达に寥み哈むなど·戮のソフトウェア倡券に蝗; 脱できない妨で浩芹邵する眷圭には·肌のいずれかの掘凤を塔たすこ; とˉ; (a) 浩芹邵に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟; 侯涪山绩·この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ; (b) 浩芹邵の妨轮を·侍に年める数恕によって·TOPPERSプロジェクトに; 鼠桂することˉ; (4) 塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じるいかなる禄; 巢からも·惧淡螟侯涪荚およびTOPPERSプロジェクトを倘勒することˉ;; 塑ソフトウェアは·痰瘦沮で捏丁されているものであるˉ惧淡螟侯涪荚お; よびTOPPERSプロジェクトは·塑ソフトウェアに簇して·その努脱材墙拉も; 崔めて·いかなる瘦沮も乖わないˉまた·塑ソフトウェアの网脱により木; 儡弄または粗儡弄に栏じたいかなる禄巢に簇しても·その勒扦を砷わないˉ;; @(#) $Id: start.src,v 1.6 2005/11/13 14:05:01 honda Exp $;; H8脱スタ〖トアップモジュ〖ル; カ〖ネルはアプリケ〖ションとリンクして蝗脱するので、; このモジュ〖ルはJSPカ〖ネル弹瓢箕のみ蝗脱する。 .CPU 300HA ; STARTOF遍换灰、SIZEOF遍换灰を铜跟にするためのセクション离咐 .SECTION D,DATA,ALIGN=2 .SECTION R,DATA,ALIGN=2 .SECTION B,DATA,ALIGN=2 .SECTION P,CODE,ALIGN=2 .INCLUDE "sys_config_asm.inc" .INCLUDE "cpu_config_asm.inc" .IMPORT _kernel_start .AIFDEF HARDWARE_INIT_HOOK .IMPORT HARDWARE_INIT_HOOK .AENDI ; HARDWARE_INIT_HOOK .AIFDEF SOFTWARE_INIT_HOOK .IMPORT SOFTWARE_INIT_HOOK .AENDI ; SOFTWARE_INIT_HOOK .AIFDEF WITHOUT_INNER_RAM .GLOBAL start_1 .AENDI ; WITHOUT_INNER_RAM .GLOBAL _start_start: ; ; 润タスクコンテキストのスタックポインタをSTACKTOPに介袋步する ; H8ではリセット箕にスタックポインタが介袋步されないため、 ; スタ〖トアップル〖チンの黎片で介袋步する涩妥がある ; ∈STACKTOPは、user_config_asm.incで年盗∷ ; mov.l #STACKTOP, sp ; ; モ〖ドコントロ〖ルレジスタMDCRの粕み叫し ; E10T惧で悸乖する狠に涩妥な介袋步借妄 ; .AIFDEF E10T; mov.b @H8MDCR, er0 .AENDI ; E10T ; ; CCRを介袋步する。∈充哈み敦贿∷ ; orc.b #CCR_DISINT_ALL, ccr ; ; ハ〖ドウェア介袋步簇眶の钙び叫し ; ; ハ〖ドウェア巴赂に涩妥な介袋步借妄がある眷圭は· ; ハ〖ドウェア介袋步簇眶を脱罢し、その黎片アドレスを ; HARDWARE_INIT_HOOKマクロとして年盗する。 ; 恶挛弄にはROM步の狠、RAMを蝗脱材墙にするための ; バスˇステ〖トˇコントロ〖ラの介袋步霹を乖う。 ; ハ〖ドウェア介袋步簇眶の悸刘はsys_support.src 柒で乖い、 ; HARDWARE_INIT_HOOKマクロをsys_config_asm.incで年盗する ; のを筛洁とする。 .AIFDEF HARDWARE_INIT_HOOKstart_0: .AIFDEF WITHOUT_INNER_RAM ; 柒垄RAMを蝗脱しない眷圭は、嘲婶RAMが铜跟にならないとスタッ ; クエリアが蝗えない。そのため、提り戎孟をスタックに姥むH8プ ; ロセッサの簇眶钙び叫しは∈アセンブラであっても∷このタイミ ; ングではまだできない。つまり、HARDWARE_INIT_HOOKからは痰 ; 掘凤尸呆炭吾で提ってくる。 ; ∈ラベルstart_1をエクスポ〖トする。∷ jmp @HARDWARE_INIT_HOOK .AELSE ; WITHOUT_INNER_RAM jsr @HARDWARE_INIT_HOOK .AENDI ; WITHOUT_INNER_RAM .AENDI ; HARDWARE_INIT_HOOK ; Bセクションをクリアstart_1: mov.l @_bss_start_k, er0 mov.l @_end_k, er1 sub.l er2, er2start_2: mov.l er2, @er0 add.l #4, er0 cmp.l er1, er0 blo start_2 ; er1 > er0 ; ; Dセクションを介袋步する∈ROM步滦炳∷ˉ ; ; __idata_start から __idata_end までを·__data_start 笆惯に ; コピ〖するˉstart_3: mov.l @__idata_start_k, er0 mov.l @__idata_end_k, er1 mov.l @__data_start_k, er2start_4: mov.l @er0+, er4 ; *er2++ = *er0 ++; mov.l er4, @er2 add.l #4, er2 cmp.l er1, er0 blo start_4 ; er1 > er0 ; ; ソフトウェア茨董介袋步簇眶の钙び叫し ; ; ソフトウェア茨董∈泼にライブラリ∷に巴赂して涩妥な介袋步借 ; 妄がある眷圭は·ソフトウェア茨董介袋步簇眶を脱罢し、その黎片 ; アドレスをSOFTWARE_INIT_HOOKマクロとして年盗する。 ; software_init_hook簇眶の悸刘はsys_support.src 柒で乖い、 ; SOFTWARE_INIT_HOOKマクロをuser_config_asm.incで年盗する ; のを筛洁とする。 .AIFDEF SOFTWARE_INIT_HOOKstart_5: jsr @SOFTWARE_INIT_HOOK .AENDI ; SOFTWARE_INIT_HOOK ; カ〖ネルを弹瓢するstart_6: jmp @_kernel_start .ALIGN 4_bss_start_k: .DATA.L STARTOF B_end_k: .DATA.L STARTOF B + SIZEOF B__idata_start_k: .DATA.L STARTOF D__idata_end_k: .DATA.L STARTOF D + SIZEOF D__data_start_k: .DATA.L STARTOF R .END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -