source: ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc.tf@ 93

Last change on this file since 93 was 93, checked in by nmir-saito, 9 years ago

add Combined package of SSP kernel for QB-R5F100LE-TB(RL78 processor)

File size: 3.0 KB
Line 
1$
2$ ƒpƒX2‚̃A[ƒLƒeƒNƒ`ƒƒˆË‘¶ƒeƒ“ƒvƒŒ[ƒgiARM-M—pj
3$
4
5$
6$ —LŒø‚ÈŠ„ž‚ݔԍ†CŠ„ž‚݃nƒ“ƒhƒ‰”ԍ†
7$
8$INTNO_VALID = RANGE(15, TMAX_INTNO)$
9$INHNO_VALID = INTNO_VALID$
10
11$
12$ —LŒø‚ÈCPU—áŠO”ԍ†
13$
14$EXCNO_VALID = { 2,3,4,5,6,11,12,14 }$
15
16$
17$ ATT_ISR‚ÅŽg—p‚Å‚«‚銄ž‚ݔԍ†‚Æ‚»‚ê‚ɑΉž‚·‚銄ž‚݃nƒ“ƒhƒ‰”ԍ†
18$
19$INTNO_ATTISR_VALID = INTNO_VALID$
20$INHNO_ATTISR_VALID = INHNO_VALID$
21
22$
23$ DEF_INT^DEF_EXC‚ÅŽg—p‚Å‚«‚銄ž‚݃nƒ“ƒhƒ‰”ԍ†^CPU—áŠOƒnƒ“ƒhƒ‰”ԍ†
24$
25$INHNO_DEFINH_VALID = INHNO_VALID$
26$EXCNO_DEFEXC_VALID = EXCNO_VALID$
27
28$
29$ ƒ`ƒFƒbƒN•û–@‚ÌŽw’è
30$
31$CHECK_STKSZ_ALIGN = 8$
32
33$
34$ CFG_INT‚ÅŽg—p‚Å‚«‚銄ž‚ݔԍ†‚ÆŠ„ž‚Ý—Dæ“x
35$
36$INTNO_CFGINT_VALID = INTNO_VALID$
37$INTPRI_CFGINT_VALID = RANGE(-(1 << TBITW_IPRI),-1)$
38
39$
40$ Š„ž‚Ý‘®«’†‚̃^[ƒQƒbƒgˆË‘¶‚É—p‚¢‚éƒrƒbƒg
41$
42$ TARGET_INTATR = $
43
44$
45$ •W€ƒeƒ“ƒvƒŒ[ƒgƒtƒ@ƒCƒ‹‚̃Cƒ“ƒNƒ‹[ƒh
46$
47$INCLUDE "kernel/kernel.tf"$
48
49/*$NL$
50$SPC$* Target-dependent Definitions (ARM-M)$NL$
51$SPC$*/$NL$
52$NL$
53
54$
55$ ƒxƒNƒ^[ƒe[ƒuƒ‹
56$
57
58$FILE "kernel_cfg.c"$
59$NL$
60
61extern void kernel_svc_handler(void);$NL$
62$NL$
63
64__attribute__ ((section(".vector"))) $NL$
65const FP _kernel_vector_table[] = $NL$
66{ $NL$
67$ $TAB$(FP)(TOPPERS_ISTKPT(TOPPERS_ISTK, TOPPERS_ISTKSZ)), // 0 The initial stack pointer $NL$
68 $TAB$(FP)(TOPPERS_ISTKPT(TOPPERS_STK, TOPPERS_STKSZ)), // 0 The initial stack pointer $NL$
69 $TAB$(FP)_start, // 1 The reset handler $NL$
70
71$FOREACH excno {2,3,...,14}$
72 $IF excno == 11$
73 $TAB$(FP)(kernel_svc_handler), // 11 SVCall handler
74 $ELSE$
75 $TAB$(FP)(_kernel_exc_entry),
76 $END$
77 $SPC$$FORMAT("/* %d */", +excno)$$NL$
78$END$
79
80$FOREACH inhno INTNO_VALID$
81 $IF LENGTH(INH.INHNO[inhno]) && (INT.INTPRI[inhno] < TIPM_LOCK)$
82 $TAB$(FP)($INH.INTHDR[inhno]$),
83 $ELSE$
84 $TAB$(FP)(_kernel_int_entry),
85 $END$
86 $SPC$$FORMAT("/* %d */", +inhno)$$NL$
87$END$
88
89
90$NL$};$NL$
91$NL$
92
93$NL$
94const FP _kernel_exc_tbl[] = $NL$
95{$NL$
96$FOREACH excno {0,1,...,14}$
97 $IF LENGTH(EXC.EXCNO[excno])$
98 $TAB$(FP)($EXC.EXCHDR[excno]$),
99 $ELSE$
100 $TAB$(FP)(_kernel_default_exc_handler),
101 $END$
102 $SPC$$FORMAT("/* %d */", +excno)$$NL$
103$END$
104
105
106$FOREACH inhno INTNO_VALID$
107 $IF LENGTH(INH.INHNO[inhno])$
108 $TAB$(FP)($INH.INTHDR[inhno]$),
109 $ELSE$
110 $TAB$(FP)(_kernel_default_int_handler),
111 $END$
112 $SPC$$FORMAT("/* %d */", +inhno)$$NL$
113$END$
114
115
116$NL$};$NL$
117$NL$
118
119$
120$ _kernel_bitpat_cfgint‚̐¶¬
121$
122
123$bitpat_cfgint_num = 0$
124$bitpat_cfgint = 0$
125
126
127const uint32_t _kernel_bitpat_cfgint[
128$IF (TMAX_INTNO & 0x0f) == 0x00 $
129 $bitpat_cfgint_num = (TMAX_INTNO >> 4)$
130$ELSE$
131 $bitpat_cfgint_num = (TMAX_INTNO >> 4) + 1$
132$END$
133 $bitpat_cfgint_num$
134] = {$NL$
135$FOREACH num RANGE(0,(bitpat_cfgint_num-1))$
136 $bitpat_cfgint = 0$
137 $FOREACH inhno RANGE(num*32, (num*32)+31)$
138 $IF LENGTH(INH.INHNO[inhno])$
139 $bitpat_cfgint = bitpat_cfgint | (1 << (inhno & 0x01f))$
140 $END$
141 $END$
142 $TAB$UINT32_C($FORMAT("0x%08x", bitpat_cfgint)$), $NL$
143$END$
144
145$NL$};$NL$
146$NL$
Note: See TracBrowser for help on using the repository browser.