source: asp_ewarm/asp-1.7.0/target/stm32_discovery_EWARM2/stm32_discovery.h@ 61

Last change on this file since 61 was 61, checked in by ertl-honda, 11 years ago

ASP for EWARM のコミット.

File size: 8.2 KB
Line 
1/*
2 * TOPPERS/JSP Kernel
3 * Toyohashi Open Platform for Embedded Real-Time Systems/
4 * Just Standard Profile Kernel
5 *
6 * Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
7 * Toyohashi Univ. of Technology, JAPAN
8 * Copyright (C) 2005-2007 by Embedded and Real-Time Systems Laboratory
9 * Graduate School of Information Science, Nagoya Univ., JAPAN
10 *
11 * ã‹L’˜ìŒ ŽÒ‚́CFree Software Foundation ‚É‚æ‚Á‚ÄŒö•\‚³‚ê‚Ä‚¢‚é
12 * GNU General Public License ‚Ì Version 2 ‚É‹Lq‚³‚ê‚Ä‚¢‚éðŒ‚©CˆÈ
13 * ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒFƒAi–{ƒ\ƒtƒgƒEƒF
14 * ƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏEÄ”z•ziˆÈ‰ºC
15 * —˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
16 * (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
17 * Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
18 * ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
19 * (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðÄ—˜—p‰Â”\‚ȃoƒCƒiƒŠƒR[ƒhiƒŠƒƒP[ƒ^ƒuƒ‹ƒIƒu
20 * ƒWƒFƒNƒgƒtƒ@ƒCƒ‹‚⃉ƒCƒuƒ‰ƒŠ‚Ȃǁj‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́C—˜—p
21 * ‚É”º‚¤ƒhƒLƒ…
22ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ…
23ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C
24 * ‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
25 * (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðÄ—˜—p•s‰Â”\‚ȃoƒCƒiƒŠƒR[ƒh‚ÌŒ`‚Ü‚½‚Í‹@Ší‚É‘g
26 * ‚ݍž‚ñ‚¾Œ`‚Å—˜—p‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±‚ƁD
27 * (a) —˜—p‚É”º‚¤ƒhƒLƒ…
28ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ…
29ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ì
30 * Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
31 * (b) —˜—p‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCã‹L’˜ìŒ ŽÒ‚É•ñ‚·‚é
32 * ‚±‚ƁD
33 * (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
34 * ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚ð–Ɛӂ·‚邱‚ƁD
35 *
36 * –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚́C
37 * –{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC‚»‚Ì“K—p‰Â”\«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í
38 * ‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢
39 * ‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚𕉂í‚È‚¢D
40 *
41 */
42#ifndef TOPPERS_CQ_STARM_H
43#define TOPPERS_CQ_STARM_H
44
45#include <sil.h>
46
47/*
48 * CORTEX-M3 CPU‚̈ˑ¶•”‚̃Cƒ“ƒNƒ‹[ƒh
49 */
50#include "arm_m_iccarm/arm_m.h"
51
52/*
53 * ƒVƒXƒeƒ€ƒNƒƒbƒN‚Ì’è‹`i”­UŽqŽü”g”8MHzj
54 */
55#define HSE_CLOCK (8000000)
56#define SYS_CLOCK (HSE_CLOCK * 3)
57#define PCLK1_CLOCK (HSE_CLOCK * 3)
58#define PCLK2_CLOCK (HSE_CLOCK * 3)
59
60/*
61 * Š„ž‚ݔԍ†‚̍őå’l
62 */
63#define TMAX_INTNO (16 + 60)
64
65/*
66 * Š„ž‚Ý—Dæ“x‚̃rƒbƒg•
67 */
68#define TBITW_IPRI 4
69
70/*
71 * Š„ž‚Ý—Dæ“xƒrƒbƒg•’†‚̃Tƒu—Dæ“x‚̃rƒbƒg•
72 */
73#define TBITW_SUBIPRI 0
74
75/*
76 * Š„ž‚݃xƒNƒ^”ԍ†’è‹`
77 */
78#define IRQ_VECTOR_USART1 (16 + 37)
79
80
81/* STM32F10X‚̃yƒŠƒtƒFƒ‰ƒ‹ƒŒƒWƒXƒ^’è‹` */
82#define PERIPH_REG_BASE (0x40000000UL)
83#define SRAM_BASE (0x20000000UL)
84
85#define APB1_PERIPH (PERIPH_REG_BASE)
86#define APB2_PERIPH (PERIPH_REG_BASE + 0x10000)
87#define AHB_PERIPH (PERIPH_REG_BASE + 0x20000)
88
89/* BUS:APB1 */
90#define TIM2_BASE (APB1_PERIPH)
91#define TIM3_BASE (APB1_PERIPH + 0x400)
92#define TIM4_BASE (APB1_PERIPH + 0x800)
93#define TIM6_BASE (APB1_PERIPH + 0x1000)
94#define TIM7_BASE (APB1_PERIPH + 0x1400)
95#define RTC_BASE (APB1_PERIPH + 0x2800)
96#define WWDG_BASE (APB1_PERIPH + 0x2C00)
97#define IWDG_BASE (APB1_PERIPH + 0x3000)
98#define SPI2_BASE (APB1_PERIPH + 0x3800)
99#define USART2_BASE (APB1_PERIPH + 0x4400)
100#define USART3_BASE (APB1_PERIPH + 0x4800)
101#define I2C1_BASE (APB1_PERIPH + 0x5400)
102#define I2C2_BASE (APB1_PERIPH + 0x5800)
103#define BKP_BASE (APB1_PERIPH + 0x6C00)
104#define PWR_BASE (APB1_PERIPH + 0x7000)
105#define DAC_BASE (APB1_PERIPH + 0x7400)
106#define CEC_BASE (APB1_PERIPH + 0x7800)
107
108/* BUS:APB2 */
109#define AFIO_BASE (APB2_PERIPH)
110#define EXTI_BASE (APB2_PERIPH + 0x400)
111#define GPIOA_BASE (APB2_PERIPH + 0x800)
112#define GPIOB_BASE (APB2_PERIPH + 0xC00)
113#define GPIOC_BASE (APB2_PERIPH + 0x1000)
114#define GPIOD_BASE (APB2_PERIPH + 0x1400)
115#define GPIOE_BASE (APB2_PERIPH + 0x1800)
116#define ADC1_BASE (APB2_PERIPH + 0x2400)
117#define TIM1_BASE (APB2_PERIPH + 0x2C00)
118#define SPI1_BASE (APB2_PERIPH + 0x3000)
119#define USART1_BASE (APB2_PERIPH + 0x3800)
120#define TIM15_BASE (APB2_PERIPH + 0x4000)
121#define TIM16_BASE (APB2_PERIPH + 0x4400)
122#define TIM17_BASE (APB2_PERIPH + 0x4800)
123
124/* BUS:AHB */
125#define DMA_BASE (AHB_PERIPH)
126#define RCC_BASE (AHB_PERIPH + 0x1000)
127#define FLASH_BASE (AHB_PERIPH + 0x2000)
128#define CRC_BASE (AHB_PERIPH + 0x3000)
129
130/* System Control space */
131#define SCS_BASE (0xE000E000)
132#define SYSTM_BASE (SCS_BASE + 0x0010)
133#define NVIC_BASE (SCS_BASE + 0x0100)
134#define SYSCB_BASE (SCS_BASE + 0x0D00)
135
136/* RCC */
137#define RCC_CR (RCC_BASE)
138#define RCC_CFGR (RCC_BASE + 0x04)
139#define RCC_CIR (RCC_BASE + 0x08)
140#define RCC_APB2RSTR (RCC_BASE + 0x0C)
141#define RCC_APB1RSTR (RCC_BASE + 0x10)
142#define RCC_AHBENR (RCC_BASE + 0x14)
143#define RCC_APB2ENR (RCC_BASE + 0x18)
144#define RCC_APB1ENR (RCC_BASE + 0x1C)
145#define RCC_BDCR (RCC_BASE + 0x20)
146#define RCC_CSR (RCC_BASE + 0x24)
147#define RCC_CFGR2 (RCC_BASE + 0x2C)
148
149/* NVIC */
150#define NVIC_ENAVLE_REG(ch) (NVIC_BASE + ((ch) >> 5))
151#define NVIC_DISABLE_REG(ch) (NVIC_BASE + 0x80 + ((ch) >> 5))
152#define NVIC_SET_PEND_REG(ch) (NVIC_BASE + 0x100 + ((ch) >> 5))
153#define NVIC_CLEAR_PEND_REG(ch) (NVIC_BASE + 0x180 + ((ch) >> 5))
154#define NVIC_ACTIVE_REG(ch) (NVIC_BASE + 0x200 + ((ch) >> 5))
155#define NVIC_PRIO_REG(ch) (NVIC_BASE + 0x300 + ((ch) >> 2))
156
157/* GPIOx */
158#define GPIO_CRL(x) (x)
159#define GPIO_CRH(x) ((x) + 0x04)
160#define GPIO_IDR(x) ((x) + 0x08)
161#define GPIO_ODR(x) ((x) + 0x0C)
162#define GPIO_BSRR(x) ((x) + 0x10)
163#define GPIO_BRR(x) ((x) + 0x14)
164#define GPIO_LCKR(x) ((x) + 0x18)
165
166/* AFIO */
167#define AFIO_EVCR (AFIO_BASE)
168#define AFIO_MAPR (AFIO_BASE + 0x04)
169#define AFIO_EXTICR1 (AFIO_BASE + 0x08)
170#define AFIO_EXTICR2 (AFIO_BASE + 0x0C)
171#define AFIO_EXTICR3 (AFIO_BASE + 0x10)
172#define AFIO_EXTICR4 (AFIO_BASE + 0x14)
173#define AFIO_MAPR2 (AFIO_BASE + 0x0C)
174
175/* FLASH */
176#define FLASH_ACR (FLASH_BASE)
177
178/* RCCƒŒƒWƒXƒ^’è‹` */
179#define CR_PLL_RDY (0x02000000)
180#define CR_PLL_ON (0x01000000)
181#define CR_HSE_RDY (0x00020000)
182#define CR_HSE_ON (0x00010000)
183#define CR_HSI_RDY (0x00000002)
184#define CR_HSI_ON (0x00000001)
185#define CFGR_PLLMUL_MASK (0x003C0000)
186#define CFGR_PLL_XTPRE (0x00020000)
187#define CFGR_PLL_SRC (0x00010000)
188#define CFGR_HPRE_MASK (0x000000F0)
189#define CFGR_PPRE2_MASK (0x00003800)
190#define CFGR_PPRE1_MASK (0x00000700)
191#define CFGR_SWS_MASK (0x0000000C)
192#define CFGR_SW_MASK (0x00000003)
193#define CFGR_SW_PLL (0x02)
194#define APB2ENR_ADC3_EN (0x8000)
195#define APB2ENR_USART1_EN (0x4000)
196#define APB2ENR_TIM8_EN (0x2000)
197#define APB2ENR_SPI1_EN (0x1000)
198#define APB2ENR_TIM1_EN (0x0800)
199#define APB2ENR_ADC2_EN (0x0400)
200#define APB2ENR_ADC1_EN (0x0200)
201#define APB2ENR_IOPG_EN (0x0100)
202#define APB2ENR_IOPF_EN (0x0080)
203#define APB2ENR_IOPE_EN (0x0040)
204#define APB2ENR_IOPD_EN (0x0020)
205#define APB2ENR_IOPC_EN (0x0010)
206#define APB2ENR_IOPB_EN (0x0008)
207#define APB2ENR_IOPA_EN (0x0004)
208#define APB2ENR_AFIO_EN (0x0001)
209#define AHBENR_SDIO_EN (0x0400)
210#define AHBENR_FSMC_EN (0x0100)
211#define AHBENR_CRCE_EN (0x0040)
212#define AHBENR_FLITF_EN (0x0010)
213#define AHBENR_SRAM_EN (0x0004)
214#define AHBENR_DMA_EN (0x0001)
215
216/* FLASHƒŒƒWƒXƒ^’è‹` */
217#define ACR_LATENCY_MASK (0x07)
218#define ACR_LATENCY_ZERO (0x00)
219#define ACR_LATENCY_ONE (0x01)
220#define ACR_LATENCY_TWO (0x02)
221
222/* GPIOxƒŒƒWƒXƒ^’è‹` */
223#define CNF_IN_ANALOG (0x00)
224#define CNF_IN_FLOATING (0x01)
225#define CNF_IN_PULL (0x02)
226#define CNF_OUT_GP_PP (0x00)
227#define CNF_OUT_GP_OD (0x01)
228#define CNF_OUT_AF_PP (0x02)
229#define CNF_OUT_AF_OD (0x03)
230#define MODE_INPUT (0x00)
231#define MODE_OUTPUT_10MHZ (0x01)
232#define MODE_OUTPUT_2MHZ (0x02)
233#define MODE_OUTPUT_50MHZ (0x03)
234
235#define CR_MODE_MASK(x) (0x03 << ((x) << 2))
236#define CR_CNF_MASK(x) (0x0C << ((x) << 2))
237#define CR_MODE(x,v) (((v) & 0x03) << ((x) << 2))
238#define CR_CNF(x,v) ((((v) << 2) & 0x0C) << ((x) << 2))
239
240#ifndef TOPPERS_MACRO_ONLY
241
242#endif /* TOPPERS_MACRO_ONLY */
243#endif /* TOPPERS_CQ_STARM_H */
Note: See TracBrowser for help on using the repository browser.