Go to the documentation of this file.
21#ifdef __VSF_HEADER_ONLY_SHOW_ARCH_INFO__
25# define VSF_ARCH_PRI_NUM 8
26# define VSF_ARCH_PRI_BIT 3
28# define VSF_DEV_COMMON_SWI_NUM 32
30#elif defined(__VSF_HAL_SHOW_VENDOR_INFO__)
37# define __VSF_HEADER_ONLY_SHOW_VENDOR_INFO__
38# include "./vendor/libraries/cmsis/cm4/device_support/at32f402_405.h"
42#ifndef __HAL_DEVICE_COMMON_ATTERY_AT32F402_405_H__
43#define __HAL_DEVICE_COMMON_ATTERY_AT32F402_405_H__
53#define VSF_DEV_COMMON_SWI_LIST \
54 43, 46, 47, 48, 49, 50, 61, 62, \
55 63, 64, 65, 66, 70, 78, 79, 80, \
56 84, 86, 87, 88, 89, 90, 91, 93, \
57 95, 96, 97, 98, 99, 100, 101, 102
61#ifndef VSF_HW_RAM_COUNT
62# define VSF_HW_RAM_COUNT 1
64#if VSF_HW_RAM_COUNT >= 1 && !defined(VSF_HW_RAM0_ADDR)
65# define VSF_HW_RAM0_ADDR 0x20000000
70#ifndef VSF_HW_FLASH_COUNT
71# define VSF_HW_FLASH_COUNT 1
73#if VSF_HW_FLASH_COUNT >= 1
74# define VSF_HW_FLASH0_ADDR 0x08000000
75# define VSF_HW_FLASH0_REG FLASH
76# define VSF_HW_FLASH0_IRQN 4
81#ifndef VSF_HW_GPIO_PORT_MASK
82# ifdef VSF_HW_GPIO_PORT_COUNT
83# define VSF_HW_GPIO_PORT_MASK ((1 << VSF_HW_GPIO_PORT_COUNT) - 1)
85# define VSF_HW_GPIO_PORT_MASK 0x2F
88#if VSF_HW_GPIO_PORT_MASK & ~0x2F
89# error invalid VSF_HW_GPIO_PORT_MASK
92#ifndef VSF_HW_GPIO_PIN_COUNT
93# define VSF_HW_GPIO_PIN_COUNT 16
95#ifndef VSF_HW_GPIO_FUNCTION_MAX
96# define VSF_HW_GPIO_FUNCTION_MAX 16
99#if VSF_HW_GPIO_PORT_MASK & (1 << 0)
100# define VSF_HW_GPIO_PORT0_REG GPIOA
101# ifndef VSF_HW_GPIO_PORT0_MASK
102# define VSF_HW_GPIO_PORT0_MASK 0xFFFF
103# elif VSF_HW_GPIO_PORT0_MASK & ~0xFFFF
104# error invalid VSF_HW_GPIO_PORT0_MASK
107#if VSF_HW_GPIO_PORT_MASK & (1 << 1)
108# define VSF_HW_GPIO_PORT1_REG GPIOB
109# ifndef VSF_HW_GPIO_PORT1_MASK
110# define VSF_HW_GPIO_PORT1_MASK 0xFFFF
111# elif VSF_HW_GPIO_PORT1_MASK & ~0xFFFF
112# error invalid VSF_HW_GPIO_PORT1_MASK
115#if VSF_HW_GPIO_PORT_MASK & (1 << 2)
116# define VSF_HW_GPIO_PORT2_REG GPIOC
117# ifndef VSF_HW_GPIO_PORT2_MASK
118# define VSF_HW_GPIO_PORT2_MASK 0xFFFF
119# elif VSF_HW_GPIO_PORT2_MASK & ~0xFFFF
120# error invalid VSF_HW_GPIO_PORT2_MASK
123#if VSF_HW_GPIO_PORT_MASK & (1 << 3)
124# define VSF_HW_GPIO_PORT3_REG GPIOD
125# ifndef VSF_HW_GPIO_PORT3_MASK
126# define VSF_HW_GPIO_PORT3_MASK 0x0004
127# elif VSF_HW_GPIO_PORT3_MASK & ~0xFFFF
128# error invalid VSF_HW_GPIO_PORT3_MASK
131#if VSF_HW_GPIO_PORT_MASK & (1 << 5)
132# define VSF_HW_GPIO_PORT5_REG GPIOF
133# ifndef VSF_HW_GPIO_PORT5_MASK
134# define VSF_HW_GPIO_PORT5_MASK 0x08F3
135# elif VSF_HW_GPIO_PORT5_MASK & ~0x08F3
136# error invalid VSF_HW_GPIO_PORT5_MASK
142#define VSF_HW_DMA_COUNT 2
143#define VSF_HW_DMA_MASK 0x6
144#define VSF_HW_DMA_CHANNEL_NUM 7
145#define VSF_HW_DMA1_REG DMA1
146#define VSF_HW_DMA1_EN VSF_HW_EN_DMA1
147#define VSF_HW_DMA1_RST VSF_HW_RST_DMA1
148# define VSF_HW_DMA1_CHANNEL0_IRQN 11
149# define VSF_HW_DMA1_CHANNEL1_IRQN 12
150# define VSF_HW_DMA1_CHANNEL2_IRQN 13
151# define VSF_HW_DMA1_CHANNEL3_IRQN 14
152# define VSF_HW_DMA1_CHANNEL4_IRQN 15
153# define VSF_HW_DMA1_CHANNEL5_IRQN 16
154# define VSF_HW_DMA1_CHANNEL6_IRQN 17
155#define VSF_HW_DMA2_REG DMA2
156#define VSF_HW_DMA2_EN VSF_HW_EN_DMA2
157#define VSF_HW_DMA2_RST VSF_HW_RST_DMA2
158# define VSF_HW_DMA2_CHANNEL0_IRQN 56
159# define VSF_HW_DMA2_CHANNEL1_IRQN 57
160# define VSF_HW_DMA2_CHANNEL2_IRQN 58
161# define VSF_HW_DMA2_CHANNEL3_IRQN 59
162# define VSF_HW_DMA2_CHANNEL4_IRQN 60
163# define VSF_HW_DMA2_CHANNEL5_IRQN 68
164# define VSF_HW_DMA2_CHANNEL6_IRQN 69
168#define VSF_HW_EXTI_COUNT 1
169#define VSF_HW_EXTI_MASK 1
170#ifndef VSF_HW_EXTI_CHANNEL_COUNT
171# define VSF_HW_EXTI_CHANNEL_COUNT 22
173#ifndef VSF_HW_EXTI_CHANNEL_MASK
174# define VSF_HW_EXTI_CHANNEL_MASK 0x77FFFF
176#ifndef VSF_HW_EXTI_IRQ_NUM
177# define VSF_HW_EXTI_IRQ_NUM 11
180#if VSF_HW_EXTI_MASK & (1 << 0)
181# define VSF_HW_EXTI0_REG EXINT
182# define VSF_HW_EXTI0_IRQ_NUM 11
183# define VSF_HW_EXTI0_IRQ0_MASK (1 << 0)
184# define VSF_HW_EXTI0_IRQ0_IRQN 6
185# define VSF_HW_EXTI0_IRQ1_MASK (1 << 1)
186# define VSF_HW_EXTI0_IRQ1_IRQN 7
187# define VSF_HW_EXTI0_IRQ2_MASK (1 << 2)
188# define VSF_HW_EXTI0_IRQ2_IRQN 8
189# define VSF_HW_EXTI0_IRQ3_MASK (1 << 3)
190# define VSF_HW_EXTI0_IRQ3_IRQN 9
191# define VSF_HW_EXTI0_IRQ4_MASK (1 << 4)
192# define VSF_HW_EXTI0_IRQ4_IRQN 10
193# define VSF_HW_EXTI0_IRQ5_MASK (0x1F << 5)
194# define VSF_HW_EXTI0_IRQ5_IRQN 23
195# define VSF_HW_EXTI0_IRQ6_MASK (0x3F << 9)
196# define VSF_HW_EXTI0_IRQ6_IRQN 40
197# define VSF_HW_EXTI0_IRQ7_MASK (1 << 16)
198# define VSF_HW_EXTI0_IRQ7_IRQN 1
199# define VSF_HW_EXTI0_IRQ8_MASK (1 << 17)
200# define VSF_HW_EXTI0_IRQ8_IRQN 41
201# define VSF_HW_EXTI0_IRQ9_MASK (1 << 18)
202# define VSF_HW_EXTI0_IRQ9_IRQN 42
203# define VSF_HW_EXTI0_IRQ10_MASK (1 << 20)
204# define VSF_HW_EXTI0_IRQ10_IRQN 76
209#ifndef VSF_HW_USART_MASK
210# ifdef VSF_HW_USART_COUNT
211# define VSF_HW_USART_MASK ((1 << VSF_HW_USART_COUNT) - 1)
213# define VSF_HW_USART_MASK 0x01FE
216#if VSF_HW_USART_MASK & ~0x01FE
217# error invalid VSF_HW_USART_MASK
220#if VSF_HW_USART_MASK & (1 << 1)
221# define VSF_HW_USART1_REG USART1
222# define VSF_HW_USART1_CLK VSF_HW_CLK_USART1
223# define VSF_HW_USART1_EN VSF_HW_EN_USART1
224# define VSF_HW_USART1_RST VSF_HW_RST_USART1
225# define VSF_HW_USART1_SYNC true
226# define VSF_HW_USART1_IRQN 37
228#if VSF_HW_USART_MASK & (1 << 2)
229# define VSF_HW_USART2_REG USART2
230# define VSF_HW_USART2_CLK VSF_HW_CLK_USART2
231# define VSF_HW_USART2_EN VSF_HW_EN_USART2
232# define VSF_HW_USART2_RST VSF_HW_RST_USART2
233# define VSF_HW_USART2_SYNC true
234# define VSF_HW_USART2_IRQN 38
236#if VSF_HW_USART_MASK & (1 << 3)
237# define VSF_HW_USART3_REG USART3
238# define VSF_HW_USART3_CLK VSF_HW_CLK_USART3
239# define VSF_HW_USART3_EN VSF_HW_EN_USART3
240# define VSF_HW_USART3_RST VSF_HW_RST_USART3
241# define VSF_HW_USART3_SYNC true
242# define VSF_HW_USART3_IRQN 39
244#if VSF_HW_USART_MASK & (1 << 4)
245# define VSF_HW_USART4_REG USART4
246# define VSF_HW_USART4_CLK VSF_HW_CLK_USART4
247# define VSF_HW_USART4_EN VSF_HW_EN_USART4
248# define VSF_HW_USART4_RST VSF_HW_RST_USART4
249# define VSF_HW_USART4_SYNC true
250# define VSF_HW_USART4_IRQN 52
252#if VSF_HW_USART_MASK & (1 << 5)
253# define VSF_HW_USART5_REG USART5
254# define VSF_HW_USART5_CLK VSF_HW_CLK_USART5
255# define VSF_HW_USART5_EN VSF_HW_EN_USART5
256# define VSF_HW_USART5_RST VSF_HW_RST_USART5
257# define VSF_HW_USART5_SYNC true
258# define VSF_HW_USART5_IRQN 53
260#if VSF_HW_USART_MASK & (1 << 6)
261# define VSF_HW_USART6_REG USART6
262# define VSF_HW_USART6_CLK VSF_HW_CLK_USART6
263# define VSF_HW_USART6_EN VSF_HW_EN_USART6
264# define VSF_HW_USART6_RST VSF_HW_RST_USART6
265# define VSF_HW_USART6_SYNC true
266# define VSF_HW_USART6_IRQN 71
268#if VSF_HW_USART_MASK & (1 << 7)
269# define VSF_HW_USART7_REG UART7
270# define VSF_HW_USART7_CLK VSF_HW_CLK_UART7
271# define VSF_HW_USART7_EN VSF_HW_EN_UART7
272# define VSF_HW_USART7_RST VSF_HW_RST_UART7
273# define VSF_HW_USART7_SYNC false
274# define VSF_HW_USART7_IRQN 82
276#if VSF_HW_USART_MASK & (1 << 8)
277# define VSF_HW_USART8_REG UART8
278# define VSF_HW_USART8_CLK VSF_HW_CLK_UART8
279# define VSF_HW_USART8_EN VSF_HW_EN_UART8
280# define VSF_HW_USART8_RST VSF_HW_RST_UART8
281# define VSF_HW_USART8_SYNC false
282# define VSF_HW_USART8_IRQN 83
287#ifndef VSF_HW_SPI_MASK
288# ifdef VSF_HW_SPI_COUNT
289# define VSF_HW_SPI_MASK ((1 << VSF_HW_SPI_COUNT) - 1)
291# define VSF_HW_SPI_MASK 0x0E
294#if VSF_HW_SPI_MASK & ~0x0E
295# error invalid VSF_HW_SPI_MASK
298#if VSF_HW_SPI_MASK & (1 << 1)
299# define VSF_HW_SPI1_REG SPI1
300# define VSF_HW_SPI1_CLK VSF_HW_CLK_SPI1
301# define VSF_HW_SPI1_EN VSF_HW_EN_SPI1
302# define VSF_HW_SPI1_RST VSF_HW_RST_SPI1
303# define VSF_HW_SPI1_IRQN 35
305#if VSF_HW_SPI_MASK & (1 << 2)
306# define VSF_HW_SPI2_REG SPI2
307# define VSF_HW_SPI2_CLK VSF_HW_CLK_SPI2
308# define VSF_HW_SPI2_EN VSF_HW_EN_SPI2
309# define VSF_HW_SPI2_RST VSF_HW_RST_SPI2
310# define VSF_HW_SPI2_IRQN 36
312#if VSF_HW_SPI_MASK & (1 << 3)
313# define VSF_HW_SPI3_REG SPI3
314# define VSF_HW_SPI3_CLK VSF_HW_CLK_SPI3
315# define VSF_HW_SPI3_EN VSF_HW_EN_SPI3
316# define VSF_HW_SPI3_RST VSF_HW_RST_SPI3
317# define VSF_HW_SPI3_IRQN 51
322#ifndef VSF_HW_I2C_MASK
323# ifdef VSF_HW_I2C_COUNT
324# define VSF_HW_I2C_MASK ((1 << VSF_HW_I2C_COUNT) - 1)
326# define VSF_HW_I2C_MASK 0x0E
329#if VSF_HW_I2C_MASK & ~0x0E
330# error invalid VSF_HW_I2C_MASK
333#if VSF_HW_I2C_MASK & (1 << 1)
334# define VSF_HW_I2C1_REG I2C1
335# define VSF_HW_I2C1_CLK VSF_HW_CLK_I2C1
336# define VSF_HW_I2C1_EN VSF_HW_EN_I2C1
337# define VSF_HW_I2C1_RST VSF_HW_RST_I2C1
338# define VSF_HW_I2C1_EVENT_IRQN 31
339# define VSF_HW_I2C1_ERROR_IRQN 32
341#if VSF_HW_I2C_MASK & (1 << 2)
342# define VSF_HW_I2C2_REG I2C2
343# define VSF_HW_I2C2_CLK VSF_HW_CLK_I2C2
344# define VSF_HW_I2C2_EN VSF_HW_EN_I2C2
345# define VSF_HW_I2C2_RST VSF_HW_RST_I2C2
346# define VSF_HW_I2C2_EVENT_IRQN 33
347# define VSF_HW_I2C2_ERROR_IRQN 34
349#if VSF_HW_I2C_MASK & (1 << 3)
350# define VSF_HW_I2C3_REG I2C3
351# define VSF_HW_I2C3_CLK VSF_HW_CLK_I2C3
352# define VSF_HW_I2C3_EN VSF_HW_EN_I2C3
353# define VSF_HW_I2C3_RST VSF_HW_RST_I2C3
354# define VSF_HW_I2C3_EVENT_IRQN 72
355# define VSF_HW_I2C3_ERROR_IRQN 73
360#ifndef VSF_HW_USB_OTG_MASK
361# ifdef VSF_HW_USB_OTG_COUNT
362# define VSF_HW_USB_OTG_MASK ((1 << VSF_HW_USB_OTG_COUNT) - 1)
364# define VSF_HW_USB_OTG_MASK 0x03
369#ifndef USB_DWCOTG_MAX_EP_NUM
370# define USB_DWCOTG_MAX_EP_NUM 16
373#if VSF_HW_USB_OTG_MASK & (1 << 0)
374# define VSF_HW_USB_OTG0_IRQN 67
375# define VSF_HW_USB_OTG0_CONFIG \
376 .dc_ep_num = 8 << 1, \
378 .reg = (void *)OTGFS1_BASE, \
379 .irq = VSF_HW_USB_OTG0_IRQN, \
380 .en = VSF_HW_EN_OTGFS1, \
381 .phyclk = &VSF_HW_CLK_HICK, \
382 .phyclk_freq_required = 48 * 1000 * 1000, \
384 .buffer_word_size = 320, \
385 .speed = USB_SPEED_FULL, \
392#if VSF_HW_USB_OTG_MASK & (1 << 1)
394# define VSF_HW_USB_OTG1_IRQN 77
395# define VSF_HW_USB_OTG1_CONFIG \
396 .dc_ep_num = 8 << 1, \
398 .reg = (void *)OTGHS_BASE, \
399 .irq = VSF_HW_USB_OTG1_IRQN, \
400 .en = VSF_HW_EN_OTGHS, \
401 .phyclk = &VSF_HW_CLK_HEXT, \
402 .phyclk_freq_required = 12 * 1000 * 1000, \
404 .buffer_word_size = 1024, \
405 .speed = USB_SPEED_HIGH, \