VSF Documented
device.h
Go to the documentation of this file.
1/*****************************************************************************
2 * Copyright(C)2009-2022 by VSF Team *
3 * *
4 * Licensed under the Apache License, Version 2.0 (the "License"); *
5 * you may not use this file except in compliance with the License. *
6 * You may obtain a copy of the License at *
7 * *
8 * http://www.apache.org/licenses/LICENSE-2.0 *
9 * *
10 * Unless required by applicable law or agreed to in writing, software *
11 * distributed under the License is distributed on an "AS IS" BASIS, *
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
13 * See the License for the specific language governing permissions and *
14 * limitations under the License. *
15 * *
16 ****************************************************************************/
17
18/*============================ INCLUDES ======================================*/
19
20#include "hal/vsf_hal_cfg.h"
21
22/*============================ MACROS ========================================*/
23
24/*\note first define basic info for arch. */
25#if defined(__VSF_HEADER_ONLY_SHOW_ARCH_INFO__)
27# define VSF_ARCH_PRI_NUM 16
28# define VSF_ARCH_PRI_BIT 4
29
30// software interrupt provided by a dedicated device
31#ifndef VSF_DEV_SWI_NUM
32# define VSF_DEV_SWI_NUM 11
33#endif
34#if VSF_DEV_SWI_NUM > VSF_ARCH_PRI_NUM
35# warning too many VSF_DEV_SWI_NUM, max is VSF_ARCH_PRI_NUM
36# undef VSF_DEV_SWI_NUM
37# define VSF_DEV_SWI_NUM VSF_ARCH_PRI_NUM
38#endif
39
40#elif defined(__VSF_HAL_SHOW_VENDOR_INFO__)
41
42#define __VSF_HEADER_ONLY_SHOW_VENDOR_INFO__
43#include "../common/vendor/Inc/stm32h7xx.h"
44
45#else
46
47#ifndef __HAL_DEVICE_ST_STM32H743VI_H__
48#define __HAL_DEVICE_ST_STM32H743VI_H__
49
50// software interrupt provided by a dedicated device
51#define __VSF_DEF_SWI_LIST_DEF(__N, __PARAM) \
52 VSF_MCONNECT(SWI, __N, _IRQn),
53#define VSF_DEV_SWI_LIST VSF_MREPEAT(VSF_DEV_SWI_NUM, __VSF_DEF_SWI_LIST_DEF, NULL)
54
55/*============================ INCLUDES ======================================*/
56
57/*\note this is should be the only place where common.h is included.*/
58#include "../common/common.h"
59
60/*============================ MACROS ========================================*/
61
62// SWI
63
64#define SWI0_IRQn 42
65#define SWI1_IRQn 66
66#define SWI2_IRQn 67
67#define SWI3_IRQn 147
68
69#define SWI4_IRQn 64
70#define SWI4_IRQHandler CM7_SEV_IRQHandler
71#define SWI5_IRQn 65
72#define SWI5_IRQHandler CM4_SEV_IRQHandler
73#define SWI6_IRQn 79
74#define SWI6_IRQHandler CRYP_IRQHandler
75#define SWI7_IRQn 123
76#define SWI7_IRQHandler DSI_IRQHandler
77#define SWI8_IRQn 126
78#define SWI8_IRQHandler HSEM2_IRQHandler
79#define SWI9_IRQn 143
80#define SWI9_IRQHandler WWDG_RST_IRQHandler
81#define SWI10_IRQn 148
82#define SWI10_IRQHandler HOLD_CORE_IRQHandler
83
84// GPIO
85
86#define VSF_HW_GPIO_PORT_COUNT 11
87#define VSF_HW_GPIO_PIN_COUNT 16
88#define VSF_HW_GPIO_FUNCTION_MAX 16
89#define VSF_HW_GPIO_PORT0_REG_BASE GPIOA
90#define VSF_HW_GPIO_PORT0_CLK_GATING RCU_GPIOA
91#define VSF_HW_GPIO_PORT0_RST RCU_GPIOARST
92#define VSF_HW_GPIO_PORT1_REG_BASE GPIOB
93#define VSF_HW_GPIO_PORT1_CLK_GATING RCU_GPIOB
94#define VSF_HW_GPIO_PORT1_RST RCU_GPIOBRST
95#define VSF_HW_GPIO_PORT2_REG_BASE GPIOC
96#define VSF_HW_GPIO_PORT2_CLK_GATING RCU_GPIOC
97#define VSF_HW_GPIO_PORT2_RST RCU_GPIOCRST
98#define VSF_HW_GPIO_PORT3_REG_BASE GPIOD
99#define VSF_HW_GPIO_PORT3_CLK_GATING RCU_GPIOD
100#define VSF_HW_GPIO_PORT3_RST RCU_GPIODRST
101#define VSF_HW_GPIO_PORT4_REG_BASE GPIOE
102#define VSF_HW_GPIO_PORT4_CLK_GATING RCU_GPIOE
103#define VSF_HW_GPIO_PORT4_RST RCU_GPIOERST
104#define VSF_HW_GPIO_PORT5_REG_BASE GPIOF
105#define VSF_HW_GPIO_PORT5_CLK_GATING RCU_GPIOF
106#define VSF_HW_GPIO_PORT5_RST RCU_GPIOFRST
107#define VSF_HW_GPIO_PORT6_REG_BASE GPIOG
108#define VSF_HW_GPIO_PORT6_CLK_GATING RCU_GPIOG
109#define VSF_HW_GPIO_PORT6_RST RCU_GPIOGRST
110#define VSF_HW_GPIO_PORT7_REG_BASE GPIOH
111#define VSF_HW_GPIO_PORT7_CLK_GATING RCU_GPIOH
112#define VSF_HW_GPIO_PORT7_RST RCU_GPIOHRST
113#define VSF_HW_GPIO_PORT8_REG_BASE GPIOI
114#define VSF_HW_GPIO_PORT8_CLK_GATING RCU_GPIOI
115#define VSF_HW_GPIO_PORT8_RST RCU_GPIOIRST
116#define VSF_HW_GPIO_PORT9_REG_BASE GPIOJ
117#define VSF_HW_GPIO_PORT9_CLK_GATING RCU_GPIOJ
118#define VSF_HW_GPIO_PORT9_RST RCU_GPIOJRST
119#define VSF_HW_GPIO_PORT10_REG_BASE GPIOK
120#define VSF_HW_GPIO_PORT10_CLK_GATING RCU_GPIOK
121#define VSF_HW_GPIO_PORT10_RST RCU_GPIOKRST
122
123// FLASH
124
125#define VSF_HW_FLASH_COUNT 2
126#define VSF_HW_FLASH_IRQN FLASH_IRQn
127#define VSF_HW_FLASH_IRQHandler FLASH_IRQHandler
128#define VSF_HW_FLASH_PROG_WORD_CNT FLASH_NB_32BITWORD_IN_FLASHWORD
129#define VSF_HW_FLASH0_ADDR 0x08000000
130#define VSF_HW_FLASH0_REG_BASE (&FLASH->KEYR1)
131#define VSF_HW_FLASH1_ADDR 0x08100000
132#define VSF_HW_FLASH1_REG_BASE (&FLASH->KEYR2)
133
134// UART/USART
135
136#define VSF_HW_USART_COUNT 8
137#define VSF_HW_USART_MASK 0x01FE // start from 1
138#define VSF_HW_USART1_REG_BASE USART1
139#define VSF_HW_USART1_CLK VSF_HW_CLK_USART1
140#define VSF_HW_USART1_EN VSF_HW_EN_USART1
141#define VSF_HW_USART1_RST VSF_HW_RST_USART1
142#define VSF_HW_USART1_SYNC true
143#define VSF_HW_USART1_IRQN USART1_IRQn
144#define VSF_HW_USART1_IRQHandler USART1_IRQHandler
145#define VSF_HW_USART2_REG_BASE USART2
146#define VSF_HW_USART2_CLK VSF_HW_CLK_USART2
147#define VSF_HW_USART2_EN VSF_HW_EN_USART2
148#define VSF_HW_USART2_RST VSF_HW_RST_USART2
149#define VSF_HW_USART2_SYNC true
150#define VSF_HW_USART2_IRQN USART2_IRQn
151#define VSF_HW_USART2_IRQHandler USART2_IRQHandler
152#define VSF_HW_USART3_REG_BASE USART3
153#define VSF_HW_USART3_CLK VSF_HW_CLK_USART3
154#define VSF_HW_USART3_EN VSF_HW_EN_USART3
155#define VSF_HW_USART3_RST VSF_HW_RST_USART3
156#define VSF_HW_USART3_SYNC true
157#define VSF_HW_USART3_IRQN USART3_IRQn
158#define VSF_HW_USART3_IRQHandler USART3_IRQHandler
159#define VSF_HW_USART4_REG_BASE UART4
160#define VSF_HW_USART4_CLK VSF_HW_CLK_UART4
161#define VSF_HW_USART4_EN VSF_HW_EN_UART4
162#define VSF_HW_USART4_RST VSF_HW_RST_UART4
163#define VSF_HW_USART4_SYNC false
164#define VSF_HW_USART4_IRQN UART4_IRQn
165#define VSF_HW_USART4_IRQHandler UART4_IRQHandler
166#define VSF_HW_USART5_REG_BASE UART5
167#define VSF_HW_USART5_CLK VSF_HW_CLK_UART5
168#define VSF_HW_USART5_EN VSF_HW_EN_UART5
169#define VSF_HW_USART5_RST VSF_HW_RST_UART5
170#define VSF_HW_USART5_SYNC false
171#define VSF_HW_USART5_IRQN UART5_IRQn
172#define VSF_HW_USART5_IRQHandler UART5_IRQHandler
173#define VSF_HW_USART6_REG_BASE USART6
174#define VSF_HW_USART6_CLK VSF_HW_CLK_USART6
175#define VSF_HW_USART6_EN VSF_HW_EN_USART6
176#define VSF_HW_USART6_RST VSF_HW_RST_USART6
177#define VSF_HW_USART6_SYNC true
178#define VSF_HW_USART6_IRQN USART6_IRQn
179#define VSF_HW_USART6_IRQHandler USART6_IRQHandler
180#define VSF_HW_USART7_REG_BASE UART7
181#define VSF_HW_USART7_CLK VSF_HW_CLK_UART7
182#define VSF_HW_USART7_EN VSF_HW_EN_UART7
183#define VSF_HW_USART7_RST VSF_HW_RST_UART7
184#define VSF_HW_USART7_SYNC false
185#define VSF_HW_USART7_IRQN UART7_IRQn
186#define VSF_HW_USART7_IRQHandler UART7_IRQHandler
187#define VSF_HW_USART8_REG_BASE UART8
188#define VSF_HW_USART8_CLK VSF_HW_CLK_UART8
189#define VSF_HW_USART8_EN VSF_HW_EN_UART8
190#define VSF_HW_USART8_RST VSF_HW_RST_UART8
191#define VSF_HW_USART8_SYNC false
192#define VSF_HW_USART8_IRQN UART8_IRQn
193#define VSF_HW_USART8_IRQHandler UART8_IRQHandler
194
195// SDIO
196
197#define VSF_HW_SDIO_COUNT 2
198#define VSF_HW_SDIO_MASK 0x06 // start from 1
199#define VSF_HW_SDIO1_REG_BASE SDMMC1
200#define VSF_HW_SDIO1_CLK VSF_HW_CLK_SDMMC1
201#define VSF_HW_SDIO1_EN VSF_HW_EN_SDMMC1
202#define VSF_HW_SDIO1_RST VSF_HW_RST_SDMMC1
203#define VSF_HW_SDIO1_IRQN SDMMC1_IRQn
204#define VSF_HW_SDIO1_IRQHandler SDMMC1_IRQHandler
205#define VSF_HW_SDIO2_REG_BASE SDMMC2
206#define VSF_HW_SDIO2_CLK VSF_HW_CLK_SDMMC2
207#define VSF_HW_SDIO2_EN VSF_HW_EN_SDMMC2
208#define VSF_HW_SDIO2_RST VSF_HW_RST_SDMMC2
209#define VSF_HW_SDIO2_IRQN SDMMC2_IRQn
210#define VSF_HW_SDIO2_IRQHandler SDMMC2_IRQHandler
211
212/*============================ MACROFIED FUNCTIONS ===========================*/
213/*============================ TYPES =========================================*/
214/*============================ GLOBAL VARIABLES ==============================*/
215/*============================ LOCAL VARIABLES ===============================*/
216/*============================ PROTOTYPES ====================================*/
217
218#endif // __HAL_DEVICE_ST_STM32H743VI_H__
219#endif // __VSF_HEADER_ONLY_SHOW_ARCH_INFO__
220/* EOF */