• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
Keine Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

HOS-V4 Advance の開発リポジトリ


Commit MetaInfo

Revision148c081b57716cc4ce564bf1d169224a380e0b6c (tree)
Zeit2011-04-05 21:51:43
Autorryuz <ryuz@user...>
Commiterryuz

Log Message

add MicroBlaze

Ändern Zusammenfassung

Diff

--- a/kernel/build/mb/mb_v8/gcc/Makefile
+++ b/kernel/build/mb/mb_v8/gcc/Makefile
@@ -61,8 +61,8 @@ SRC_DIRS += $(SRC_PROC_DIR) $(SRC_PROC_DIR) $(SRC_PROC_CC_DIR) $(SRC_IRC_DIR) $(
6161
6262
6363 # %jp{オプションフラグ}%en{option flags}
64-AFLAGS = -mcpu=v8.00.a
65-CFLAGS = -mcpu=v8.00.a
64+AFLAGS = -mcpu=v8.00.a -mlittle-endian
65+CFLAGS = -mcpu=v8.00.a -mlittle-endian
6666 ARFLAGS =
6767
6868
--- a/kernel/source/arch/proc/mb/mb_v8/gcc/kdis_int.S
+++ b/kernel/source/arch/proc/mb/mb_v8/gcc/kdis_int.S
@@ -17,8 +17,11 @@
1717 .align 2
1818 .global _kernel_dis_int
1919 _kernel_dis_int:
20+ mfs r3, rmsr
21+ andi r3, r3, -3
22+ mts rmsr, r3
2023 rtsd r15, 8
21- msrclr r3, 0x2000
24+ nop
2225
2326
2427
--- a/kernel/source/arch/proc/mb/mb_v8/gcc/kena_int.S
+++ b/kernel/source/arch/proc/mb/mb_v8/gcc/kena_int.S
@@ -17,8 +17,11 @@
1717 .align 2
1818 .global _kernel_ena_int
1919 _kernel_ena_int:
20+ mfs r3, rmsr
21+ ori r3, r3, 2
22+ mts rmsr, r3
2023 rtsd r15, 8
21- msrset r3, 0x2000
24+ nop
2225
2326
2427 /* end of file */
--- a/sample/mb/mb_v8/gcc/Makefile
+++ b/sample/mb/mb_v8/gcc/Makefile
@@ -46,7 +46,7 @@ include $(KERNEL_MAKINC_DIR)/common.inc
4646
4747
4848 # %jp{リンカスクリプト}%en{linker script}
49-LINK_SCRIPT = rom.lds
49+LINK_SCRIPT = link.lds
5050
5151
5252 # %jp{内蔵RAM}%en{internal RAM}
@@ -62,10 +62,9 @@ SRC_DIRS += . ..
6262
6363
6464 # %jp{オプションフラグ}%en{option flags}
65-AFLAGS = -mcpu=v8.00.a
66-CFLAGS = -mcpu=v8.00.a
67-LNFLAGS = -mcpu=v8.00.a
68-# -nostartfiles -Wl,-Map,$(TARGET).map,-T$(LINK_SCRIPT)
65+AFLAGS = -mcpu=v8.00.a -mlittle-endian
66+CFLAGS = -mcpu=v8.00.a -mlittle-endian
67+LNFLAGS = -mcpu=v8.00.a -mlittle-endian -nostartfiles -Wl,-Map,$(TARGET).map,-T$(LINK_SCRIPT)
6968
7069
7170 # %jp{コンパイラ依存の設定読込み}%en{compiler dependent definitions}
@@ -88,7 +87,7 @@ TARGET_BIN = $(TARGET).$(EXT_BIN)
8887 # --------------------------------------
8988
9089 # %jp{アセンブラファイルの追加}%en{assembry sources}
91-#ASRCS += ./crt0.S
90+ASRCS += ./crt0.S
9291
9392
9493 # %jp{C言語ファイルの追加}%en{C sources}
--- /dev/null
+++ b/sample/mb/mb_v8/gcc/crt0.S
@@ -0,0 +1,69 @@
1+/* ------------------------------------------------------------------------ */
2+/* Hyper Operating System V4 Advance */
3+/* Sample program for ADuC7000 series */
4+/* */
5+/* Copyright (C) 1998-2007 by Project HOS */
6+/* http://sourceforge.jp/projects/hos/ */
7+/* ------------------------------------------------------------------------ */
8+
9+
10+ .extern _kernel_int_isp
11+ .extern ___data
12+ .extern ___data_end
13+ .extern ___bss
14+ .extern ___bss_end
15+ .extern main
16+
17+ .global _reset_handler
18+
19+ .text
20+
21+
22+
23+/************************************************
24+ リセットハンドラ
25+************************************************/
26+ .align 2
27+_reset_handler:
28+ /* スタック設定 */
29+ lwi r1, r0, _kernel_int_isp
30+
31+ addik r3, r0, ___data
32+ addik r4, r0, ___data_end
33+ addik r5, r0, ___data_ro
34+
35+ /* DATA領域のコピー */
36+ cmpu r18, r4, r3
37+ bgei r18, data_loop_end
38+data_loop:
39+ lwi r6, r5, 0
40+ swi r6, r3, 0
41+ addik r3, r3, 4
42+ cmpu r18, r4, r3
43+ bltid r18, data_loop
44+ addik r5, r5, 4
45+data_loop_end:
46+
47+ /* BSS領域の初期化 */
48+ lwi r3, r0, ___bss
49+ lwi r4, r0, ___bss_end
50+ cmpu r18,r4, r3
51+ bgei r18, bss_loop_end
52+bss_loop:
53+ swi r0, r3, 0
54+ addik r3, r3, 4
55+ cmpu r18, r4, r3
56+ blti r18, bss_loop
57+bss_loop_end:
58+
59+
60+ /* main関数の呼び出し */
61+ brlid r15, main
62+ nop
63+
64+exit_loop:
65+ bri exit_loop
66+
67+
68+
69+/* end of file */
--- /dev/null
+++ b/sample/mb/mb_v8/gcc/link.lds
@@ -0,0 +1,53 @@
1+ENTRY(_reset_handler)
2+
3+MEMORY
4+{
5+ vector : o = 0x00000000, l = 0x00000050
6+ ro : o = 0x00000100, l = 0x00007f00
7+ rw : o = 0x00008000, l = 0x00008000
8+}
9+
10+SECTIONS
11+{
12+ .vector :
13+ {
14+ ___vector = . ;
15+ */vectors.o(.text)
16+ FILL(0xff)
17+ ___vector_end = . ;
18+ } > vector
19+ .text :
20+ {
21+ ___text = . ;
22+ *(.text)
23+ *(.strings)
24+ *(.rodata*)
25+ *(.glue*)
26+ ___text_end = . ;
27+ } > ro
28+ .tors :
29+ {
30+ . = ALIGN(4);
31+ ___ctors = . ;
32+ *(.ctors)
33+ ___ctors_end = . ;
34+ ___dtors = . ;
35+ *(.dtors)
36+ ___dtors_end = . ;
37+ } > ro
38+ data : AT (ADDR(.tors) + SIZEOF(.tors))
39+ {
40+ ___data_ro = ADDR(.tors) + SIZEOF(.tors);
41+ ___data = . ;
42+ *(.data)
43+ ___data_end = . ;
44+ } > rw
45+ .bss :
46+ {
47+ ___bss = . ;
48+ *(.bss)
49+ *(COMMON)
50+ ___bss_end = . ;
51+ } >rw
52+}
53+