📄 sys_support.s
字号:
/* * 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 Dep. of Computer Science and Engineering * Tomakomai National College 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プロジェクトは·塑ソフトウェアに簇して·その努脱材墙拉も * 崔めて·いかなる瘦沮も乖わないˉまた·塑ソフトウェアの网脱により木 * 儡弄または粗儡弄に栏じたいかなる禄巢に簇しても·その勒扦を砷わないˉ */#define _MACRO_ONLY#include <jsp_kernel.h>/* * タ〖ゲットハ〖ドウェア巴赂する介袋步借妄 */ .h8300s .text .align 2 .global _hardware_init_hook_hardware_init_hook:#ifndef GDB_STUB /* ROM の介袋步などは、GDB スタブで乖うので稍妥 */ /* * SYSCR の肋年 * ˇ充哈み扩告モ〖ドを充哈み扩告モ〖ド2に肋年 * ˇ柒垄RAM痰跟 */ mov.l #(H8S_BASE_ADDR+SYSCR), er0 mov.b @er0, r1l /* r1l = SYSCR */ or.b #INTM1, r1l /* INTM1 = 1(充哈み扩告モ〖ド2に肋年) */ bset #RAME_BIT, r1l /* RAME = 1(柒垄RAM铜跟) */ mov.b r1l, @er0 /* SYSCR = r1l */ /* * MCU 瓢侯モ〖ドの肋年 * ˇボ〖ド惧のディップスイッチでモ〖ド5に肋年 * (モ〖ド5¨アドバンストˇ柒垄ROM痰跟橙磨モ〖ド〃アドレス鄂粗は16MB) * ˇMCU 瓢侯モ〖ドの肋年により、I/Oポ〖トは笆布のように肋年される。 * ポ〖トA, B, C¨アドレス叫蜗 * ポ〖トD ¨デ〖タ掐叫蜗 * ポ〖トF ¨PF6×PF3 -> バス扩告叫蜗 */ /* * I/O ポ〖トの介袋步 (DRAMインタフェ〖ス簇犯) */ mov.l #(H8S_BASE_ADDR+PGDDR), er0 /* ポ〖トG の肋年 */ mov.b #(PG4DDR|PG3DDR), r1l /* モ〖ド5での网脱なので、 CS0,CS1 イネ〖ブル */ mov.b r1l, @er0 /* * バスコントロ〖ラの肋年 * ˇ嘲婶ROM (0x000000-0x01ffff;128kB)¨エリア0 * ˇ嘲婶RAM (0x200000-0x21ffff:128kB)¨エリア1 * ˇ柒垄RAM (0xfff400-0xfffbff: 2kB)¨ * ˇ柒婶I/O (0xfffe3f-0xffffff: )¨エリア7 * * 肋年猛 * ˇエリア0 ¨ˇ16ビットアクセス鄂粗 ( ABW0=1 ; ABWCR ) * ˇ3ステ〖トアクセス ( AST0=1 ; ASTCR ) * ˇプログラムウエイトを3ステ〖ト赁掐 * ( W01=1, W00=1 ; WCRL ) * ˇエリア1 ¨ˇ16ビットアクセス鄂粗 ( ABW1=1 ; ABWCR ) * ˇ3ステ〖トアクセス ( AST1=1 ; ASTCR ) * ˇプログラムウエイトを3ステ〖ト赁掐 * ( W11=1, W10=1 ; WCRL ) * ˇアイドルサイクルの赁掐 * ¨ˇ佰なるエリアの嘲婶リ〖ドサイクルが息鲁したときに, * アイドルサイクルを赁掐 ( ICIS1=1 ; BCRH ) * ¨ˇ嘲婶リ〖ドサイクルと嘲婶ライトサイクルが息鲁したときに, * アイドルサイクルを赁掐 ( ICIS0=1 ; BCRH ) * ¨ˇバ〖ストサイクルは2ステ〖ト ( BRSTS1=1; BCRH ) * ( 庙罢¨柒垄RAM第び柒垄I/Oレジスタに滦するアクセスステ〖ト眶は * ASTCRの肋年猛に簇わらず盖年。) */ /* ABWCR, ASTCR の肋年は介袋猛のままなので、臼维 */ /* ウエイトコントロ〖ルレジスタL (WCRL) の肋年 */ mov.l #(H8S_BASE_ADDR+WCRL), er0 mov.b #(W11|W10|W01|W00), r1l mov.b r1l, @er0 /* バスコントロ〖ルレジスタH (BCRH) の肋年 */ mov.l #(H8S_BASE_ADDR+BCRH), er0 mov.b #(ICIS1|ICIS0|BRSTS1), r1l /* レジスタ介袋猛と票猛 */ mov.b r1l, @er0#endif /* GDB_STUB */ /* * I/O ポ〖トの介袋步 (その戮) */ /* ポ〖ト1の肋年 */ /* このポ〖トには、タ〖ゲットボ〖ドではディップスイッチが儡鲁されている。 P1DDR は介袋猛で≈掐蜗∽なので、肋年稍妥 */ /* ポ〖ト2の肋年 */ /* このポ〖トには、タ〖ゲットボ〖ドでは LED が儡鲁されている。 介袋步マクロは、タ〖ゲットボ〖ドに簇するファイルに年盗されている。 */ PORT2_INIT /* ポ〖ト3の肋年 */ /* このポ〖トには、柒垄SCI が儡鲁されている。 SCI の SCR、SMRの数が肩となる肋年を乖うので、肋年稍妥 */ mov.l @bss_clear_k, er0 jmp @er0bss_clear_k: .long bss_clear
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -