📄 i386.txt
字号:
♂ TOPPERS/JSPカ〖ネル ユ〖ザズマニュアル ♂ ∈i386 タ〖ゲット巴赂婶∷ ∈Release 1.2滦炳·呵姜构糠: 14-Nov-2001∷------------------------------------------------------------------------ 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 Copyright (C) 2002 by Monami software, Limited Partners 惧淡螟侯涪荚は·Free Software Foundation によって给山されている GNU General Public License の Version 2 に淡揭されている掘凤か·笆 布の(1)×(4)の掘凤を塔たす眷圭に嘎り·塑ソフトウェア∈塑ソフトウェ アを猖恃したものを崔むˉ笆布票じ∷を蝗脱ˇ剩澜ˇ猖恃ˇ浩芹邵∈笆布· 网脱と钙ぶ∷することを痰浸で钓满するˉ (1) 塑ソフトウェアをソ〖スコ〖ドの妨で网脱する眷圭には·惧淡の螟侯 涪山绩·この网脱掘凤および布淡の痰瘦沮惮年が·そのままの妨でソ〖 スコ〖ド面に崔まれていることˉ (2) 塑ソフトウェアを浩网脱材墙なバイナリコ〖ド∈リロケ〖タブルオブ ジェクトファイルやライブラリなど∷の妨で网脱する眷圭には·网脱 に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟侯涪山绩· この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ (3) 塑ソフトウェアを浩网脱稍材墙なバイナリコ〖ドの妨または怠达に寥 み哈んだ妨で网脱する眷圭には·肌のいずれかの掘凤を塔たすことˉ (a) 网脱に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟侯 涪山绩·この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ (b) 网脱の妨轮を·侍に年める数恕によって·惧淡螟侯涪荚に鼠桂する ことˉ (4) 塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じるいかなる禄 巢からも·惧淡螟侯涪荚を倘勒することˉ 塑ソフトウェアは·痰瘦沮で捏丁されているものであるˉ惧淡螟侯涪荚は· 塑ソフトウェアに簇して·その努脱材墙拉も崔めて·いかなる瘦沮も乖わ ないˉまた·塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じたい かなる禄巢に簇しても·その勒扦を砷わないˉ @(#) $Id: i386.txt,v 1.2 2002/04/06 12:23:01 honda Exp $------------------------------------------------------------------------1ˉi386 タ〖ゲット巴赂婶の车妥1.1 タ〖ゲットシステムと倡券茨董i386 プロセッサのタ〖ゲットシステムとしては·PC/AT高垂のPC脱マザ〖ボ〖ドをサポ〖トしているˉまた·FPU はサポ〖トしてない.CPUはi386惧疤高垂であれば啼玛なく瓢侯するが、笆布では、i386惧疤高垂CPUの另疚としてi386という山附を脱いる.倡券茨董には·GCC などの GNU倡券茨董を脱い·オブジェクトファイルフォ〖マットは ELF を筛洁とするˉ1.2 サポ〖トする怠墙の车妥i386 巴赂の怠墙として·充哈みの敦贿と钓材(dis_int·ena_int)をサポ〖トしている.充哈みマスクの恃构ˇ徊救(chg_ixx·get_ixx)と·拉墙删擦脱システム箕癸徊救怠墙(vxget_tim)をはサポ〖トしていないˉ1.3 戮のタ〖ゲットへのポ〖ティングCPUはi386惧疤高垂であれば啼玛なく瓢侯すると蛔われる。瓢侯澄千に脱いたCPUはPentium (133MHz)である。1.4 ブ〖トロ〖ダi386惹のTOPPERS/JSPカ〖ネルは、multiboot洁凋のブ〖トロ〖ダから弹瓢することを涟捏としている。戮のCPU脱のTOPPERS/JSP カ〖ネルとは佰なり、i386惹のカ〖ネルには GDB スタブのサポ〖トが赂哼しない。そのため·sys_putc は充り哈みハンドラを木谩きすることで悸附している。GDB_STUB というコンパイルフラグは脱いられないので庙罢が涩妥である。1.5 シリアルポ〖トi386惹では·カ〖ネルのログ叫蜗脱に1つのシリアルポ〖ト蝗脱するˉ蝗脱するポ〖トは、いわゆるCOM1である。ボ〖レ〖ト:9600bps,デ〖タ:8bit,Parity:none,Stop:1bitであるˉ2ˉi386 プロセッサ巴赂婶の怠墙この泪では·カ〖ネルおよびシステムサ〖ビスの怠墙の面で·i386巴赂の婶尸について豺棱するˉ2.1 デ〖タ房int房および unsigned int房のサイズは 32ビットであるˉ2.2 充哈み瓷妄怠墙と充哈みハンドラDEF_INH で回年する充哈みハンドラ戎规(inhno)は·i386 では·充り哈みディスクリプタテ〖ブル(IDT)の充哈み戎规である.i386では,inhnoは33から255までが铜跟である. この认跋嘲のinhnoを回年した眷圭の瓢侯は瘦沮されない. (IDTの充哈み戎规0x20笆布の戎规は,インテル家によって经丸のプロセッサのために徒腆されている.)この认跋のinhnoを回年した眷圭の瓢侯も瘦沮されない.2.3 CPU毋嘲瓷妄怠墙とCPU毋嘲ハンドラDEF_EXC で回年する充哈みハンドラ戎规(excno)は·i386 でのフォ〖ルトもしくはアボ〖トに陵碰する充り哈み戎规である.2.4 スタ〖トアップモジュ〖ルi386巴赂のスタ〖トアップモジュ〖ル(start.S)では·肌の介袋步借妄を乖うˉ(A) プロセッサモ〖ドの介袋步とスタックポインタの介袋步呵介に·スタックポインタを STACKTOP に肋年するˉここで充哈みスタックポインタに肋年されたスタック挝拌は·カ〖ネル弹瓢稿は润タスクコンテキスト脱のスタック挝拌として蝗われるˉSTACKTOP は·sys_config.h 婶で年盗することを鳞年しているˉ(B) hardware_init_hook の钙叫しhardware_init_hook が 0 でない眷圭には·hardware_init_hook を钙び叫すˉhardware_init_hook は·カ〖ネルが弹瓢される涟に乖う涩妥があるタ〖ゲット巴赂の介袋步を乖うために脱罢しているˉhardware_init_hook がどこでも年盗されていない眷圭·リンカでこのシンボルを 0 に年盗する(リンカスクリプト柒に淡揭あり)ˉ(C) software_init_hook の钙叫しsoftware_init_hook が 0 でない眷圭には·software_init_hook を钙び叫すˉsoftware_init_hook は·カ〖ネルが弹瓢される涟に乖う涩妥があるソフトウェア茨董(恶挛弄には·ライブラリ)巴赂の介袋步を乖うために脱罢しているˉsoftware_init_hook がどこでも年盗されていない眷圭·リンカでこのシンボルを 0 に年盗する(リンカスクリプト柒に淡揭あり)ˉ(E) カ〖ネルの弹瓢kernel_start へ尸呆し·カ〖ネルを弹瓢するˉkernel_start からリタ〖ンしてくることは鳞年していないˉ3ˉシステム巴赂婶の怠墙3.1 システムクロックドライバシステムクロックドライバが isig_tim を钙び叫す件袋は·sys_defs.h 面の TIC_NUME と TIC_DENO で年盗されている(筛洁は 1ミリ擅件袋)ˉこの年盗を恃构することで·isig_tim を钙び叫す件袋を恃构することができるˉただし·タイマの篮刨が 1μ擅であるため·1μ擅帽疤で眉眶になる猛を肋年した眷圭には·isig_tim の钙叫し件袋に疙汗が栏じることになるˉ3.2 拉墙删擦脱システム箕癸徊救怠墙i386巴赂婶では·拉墙删擦脱システム箕癸徊救怠墙(vxget_tim)をサポ〖トしていないˉ3.3 シリアルインタフェ〖スドライバシリアルインタフェ〖スドライバは·PC/AT高垂茨董で办忍弄な16550高垂のシリアルをサポ〖トしてるˉ COM1がI/O port 0x3F9, IRQ4 の充り哈みを脱いることを涟捏としている. ポ〖トアドレスや充り哈みを恃构する眷圭にはsys_config.hやhw_serial.hを努倒今き垂えること。COM2,COM3,COM4 のための借妄は,附哼のところサポ〖トされていない.3.4 メモリマップ4GBフラットメモリモデルである。コ〖ド挝拌は 0x01000000×4ˉ倡券茨董の菇蜜倡券茨董の菇蜜数恕については·GNU倡券茨董菇蜜マニュアルを徊救のことˉ4.1 倡券茨董のバ〖ジョン瓢侯澄千したツ〖ルのバ〖ジョンは笆布の奶りであるˉ BINUTILS : 2.10.1 GCC-CORE : 2.95.3 GDB : 4.18 NEWLIB : 1.9.05ˉその戮5.1 ディレクトリˇファイル菇喇i386 タ〖ゲット巴赂婶の称ファイルの车妥は肌の奶りˉ config/i386/ Makefile.config Makefileの i386 巴赂年盗 cpu_defs.h プロセッサ巴赂婶のアプリケ〖ション脱年盗 cpu_config.h プロセッサ巴赂婶の菇喇年盗 cpu_config.c プロセッサ巴赂婶の簇眶 cpu_support.S プロセッサ巴赂婶のサブル〖チン cpu_context.h コンテキスト拎侯 makeoffset.c offset.h 栏喇サポ〖トプログラム cpu_insn.h 你レベルのプロセッサ拎侯ル〖チン i386.h i386 の年盗 elf_i386.ld ロ〖ダ脱のスクリプト年盗 config/i386/pcat/ Makefile.config Makefileの PC/AT 巴赂年盗 hw_serial.h シリアルインタフェ〖スデバイス拎侯ル〖チン hw_timer.h タイマ拎侯ル〖チン irc.h 充り哈みコントロ〖ラの菇喇年盗 irc_inline.h 充り哈みコントロ〖ラ脱のインライン簇眶凡 multiboot.h マルチブ〖ト筛洁脱の菇喇年盗 start.S スタ〖トアップモジュ〖ル(multiboot脱) sys_config.c システム巴赂婶の簇眶 sys_config.h システム巴赂婶の菇喇年盗 sys_defs.h システム巴赂婶のアプリケ〖ション脱年盗 sys_support.S システム巴赂婶のサブル〖チン
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -