Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 4 additions & 2 deletions .github/ALL_BSP_COMPILE.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,14 @@
"at32/at32f457-start",
"at32/at32m412-start",
"at32/at32m416-start",
"hc32/ev_hc32f4a0_lqfp176",
"hc32/ev_hc32f4a8_lqfp176",
"hc32/ev_hc32f334_lqfp64",
"hc32/ev_hc32f448_lqfp80",
"hc32/ev_hc32f460_lqfp100_v2",
"hc32/ev_hc32f467_lqfp144",
"hc32/ev_hc32f472_lqfp100",
"hc32/ev_hc32f4a0_lqfp176",
"hc32/ev_hc32f4a2_lqfp176",
"hc32/ev_hc32f4a8_lqfp176",
"hc32/lckfb-hc32f4a0-lqfp100",
"hc32l196",
"hc32l136",
Expand Down
2 changes: 1 addition & 1 deletion bsp/hc32/docs/HC32系列BSP制作教程.md
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ HC32 BSP 的制作规范主要分为 3 个方面:工程配置,ENV 配置和

- 系统心跳统一设置为 1000(宏:RT_TICK_PER_SECOND)
- BSP 中需要打开调试选项中的断言(宏:RT_DEBUG)
- 系统空闲线程栈大小统一设置为 256(宏:IDLE_THREAD_STACK_SIZE)
- 系统空闲线程栈大小统一设置为 512(宏:IDLE_THREAD_STACK_SIZE)
- 开启组件自动初始化(宏:RT_USING_COMPONENTS_INIT)
- 需要开启 user main 选项(宏:RT_USING_USER_MAIN)
- FinSH 默认只使用 MSH 模式(宏:FINSH_USING_MSH_ONLY)
Expand Down
2 changes: 1 addition & 1 deletion bsp/hc32/docs/HC32系列驱动介绍.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
| 8 | [ADC](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/adc/adc) | 测量管脚上的模拟量 |
| 9 | [DAC](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/dac/dac) | 通过管脚输出模拟量 |
| 10 | [CAN](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/can/can) | 通过 CAN 收发数据 |
| 11 | [HWTIMER](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/hwtimer/hwtimer) | 通过硬件定时器计时 |
| 11 | [CLOCK_TIMER](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/clock_timer/clock_timer) | 通过硬件定时器计时 |
| 12 | [PWM](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/pwm/pwm) | 在特定的管脚输出 PWM 波形 |
| 13 | [RTC](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/rtc/rtc) | 设置和读取时间 |
| 14 | [WDT](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/watchdog/watchdog) | 看门狗驱动 |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ devices.flash:
devices.gpio:
kconfig:
- CONFIG_BSP_USING_GPIO=y
devices.hwtimer:
devices.clock_timer:
kconfig:
- CONFIG_BSP_USING_HWTIMER=y
- CONFIG_BSP_USING_CLOCK_TIMER=y
- CONFIG_BSP_USING_TMRA_1=y
devices.i2c:
kconfig:
Expand Down
2 changes: 1 addition & 1 deletion bsp/hc32/ev_hc32f334_lqfp64/.config
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ CONFIG_RT_HOOK_USING_FUNC_PTR=y
# CONFIG_RT_USING_HOOKLIST is not set
CONFIG_RT_USING_IDLE_HOOK=y
CONFIG_RT_IDLE_HOOK_LIST_SIZE=4
CONFIG_IDLE_THREAD_STACK_SIZE=256
CONFIG_IDLE_THREAD_STACK_SIZE=512
# CONFIG_RT_USING_TIMER_SOFT is not set
# CONFIG_RT_USING_CPU_USAGE_TRACER is not set

Expand Down
2 changes: 1 addition & 1 deletion bsp/hc32/ev_hc32f334_lqfp64/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ EV_F334_LQ64 开发板常用 **板载资源** 如下:
| DAC | 支持 | |
| FLASH | 支持 | |
| GPIO | 支持 | PA0,PA1...PF3 ---> PIN:0,1...68 |
| HwTimer | 支持 | |
| CLOCK_TIMER | 支持 | |
| I2C | 支持 | 软件、硬件 I2C |
| InputCapture | 支持 | |
| MCAN | 支持 | |
Expand Down
2 changes: 1 addition & 1 deletion bsp/hc32/ev_hc32f334_lqfp64/applications/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
#include <board.h>

/* defined the LED_BLUE pin: PC13 */
#define LED_BLUE_PIN GET_PIN(C, 13)
#define LED_BLUE_PIN GET_PIN(C, 13)

int main(void)
{
Expand Down
16 changes: 8 additions & 8 deletions bsp/hc32/ev_hc32f334_lqfp64/applications/xtal32_fcm.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@

#if defined(BSP_RTC_USING_XTAL32) || defined(RT_USING_PM)

#define XTAL32_FCM_THREAD_STACK_SIZE (1024)
#define XTAL32_FCM_UNIT (CM_FCM)
#define XTAL32_FCM_THREAD_STACK_SIZE (1024)
#define XTAL32_FCM_UNIT (CM_FCM)

/**
* @brief This thread is used to monitor whether XTAL32 is stable.
Expand All @@ -36,13 +36,13 @@ void xtal32_fcm_thread_entry(void *parameter)
/* FCM config */
FCG_Fcg0PeriphClockCmd(FCG0_PERIPH_FCM, ENABLE);
(void)FCM_StructInit(&stcFcmInit);
stcFcmInit.u32RefClock = FCM_REF_CLK_MRC;
stcFcmInit.u32RefClockDiv = FCM_REF_CLK_DIV8192; /* ~1ms cycle */
stcFcmInit.u32RefClockEdge = FCM_REF_CLK_RISING;
stcFcmInit.u32TargetClock = FCM_TARGET_CLK_XTAL32;
stcFcmInit.u32RefClock = FCM_REF_CLK_MRC;
stcFcmInit.u32RefClockDiv = FCM_REF_CLK_DIV8192; /* ~1ms cycle */
stcFcmInit.u32RefClockEdge = FCM_REF_CLK_RISING;
stcFcmInit.u32TargetClock = FCM_TARGET_CLK_XTAL32;
stcFcmInit.u32TargetClockDiv = FCM_TARGET_CLK_DIV1;
stcFcmInit.u16LowerLimit = (uint16_t)((XTAL32_VALUE / (MRC_VALUE / 8192U)) * 96UL / 100UL);
stcFcmInit.u16UpperLimit = (uint16_t)((XTAL32_VALUE / (MRC_VALUE / 8192U)) * 104UL / 100UL);
stcFcmInit.u16LowerLimit = (uint16_t)((XTAL32_VALUE / (MRC_VALUE / 8192U)) * 96UL / 100UL);
stcFcmInit.u16UpperLimit = (uint16_t)((XTAL32_VALUE / (MRC_VALUE / 8192U)) * 104UL / 100UL);
(void)FCM_Init(XTAL32_FCM_UNIT, &stcFcmInit);
/* Enable FCM, to ensure xtal32 stable */
FCM_Cmd(XTAL32_FCM_UNIT, ENABLE);
Expand Down
12 changes: 6 additions & 6 deletions bsp/hc32/ev_hc32f334_lqfp64/board/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -528,24 +528,24 @@ menu "On-chip Peripheral Drivers"
endif

menuconfig BSP_USING_CLOCK_TIMER
bool "Enable Hw Timer"
bool "Enable Clock Timer"
default n
select RT_USING_CLOCK_TIME
if BSP_USING_CLOCK_TIMER
config BSP_USING_TMRA_1
bool "Use Timer_a1 As The Hw Timer"
bool "Use Timer_a1 As The Clock Timer"
default n
config BSP_USING_TMRA_2
bool "Use Timer_a2 As The Hw Timer"
bool "Use Timer_a2 As The Clock Timer"
default n
config BSP_USING_TMRA_3
bool "Use Timer_a3 As The Hw Timer"
bool "Use Timer_a3 As The Clock Timer"
default n
config BSP_USING_TMRA_4
bool "Use Timer_a4 As The Hw Timer"
bool "Use Timer_a4 As The Clock Timer"
default n
config BSP_USING_TMRA_5
bool "Use Timer_a5 As The Hw Timer"
bool "Use Timer_a5 As The Clock Timer"
default n
endif

Expand Down
16 changes: 8 additions & 8 deletions bsp/hc32/ev_hc32f334_lqfp64/board/board.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@
#include "board_config.h"

/* unlock/lock peripheral */
#define EXAMPLE_PERIPH_WE (LL_PERIPH_GPIO | LL_PERIPH_EFM | LL_PERIPH_FCG | \
LL_PERIPH_PWC_CLK_RMU | LL_PERIPH_SRAM | LL_PERIPH_LVD)
#define EXAMPLE_PERIPH_WP (LL_PERIPH_EFM | LL_PERIPH_FCG | LL_PERIPH_SRAM)
#define EXAMPLE_PERIPH_WE (LL_PERIPH_GPIO | LL_PERIPH_EFM | LL_PERIPH_FCG | \
LL_PERIPH_PWC_CLK_RMU | LL_PERIPH_SRAM | LL_PERIPH_LVD)
#define EXAMPLE_PERIPH_WP (LL_PERIPH_EFM | LL_PERIPH_FCG | LL_PERIPH_SRAM)

/** System Base Configuration
*/
Expand Down Expand Up @@ -54,9 +54,9 @@ void SystemClock_Config(void)
GPIO_AnalogCmd(XTAL_PORT, XTAL_IN_PIN | XTAL_OUT_PIN, ENABLE);
(void)CLK_XtalStructInit(&stcXtalInit);
/* Config Xtal and enable Xtal */
stcXtalInit.u8Mode = CLK_XTAL_MD_OSC;
stcXtalInit.u8Drv = CLK_XTAL_DRV_ULOW;
stcXtalInit.u8State = CLK_XTAL_ON;
stcXtalInit.u8Mode = CLK_XTAL_MD_OSC;
stcXtalInit.u8Drv = CLK_XTAL_DRV_ULOW;
stcXtalInit.u8State = CLK_XTAL_ON;
stcXtalInit.u8StableTime = CLK_XTAL_STB_2MS;
(void)CLK_XtalInit(&stcXtalInit);

Expand All @@ -82,8 +82,8 @@ void SystemClock_Config(void)
/* Xtal32 config */
GPIO_AnalogCmd(XTAL32_PORT, XTAL32_PIN, ENABLE);
(void)CLK_Xtal32StructInit(&stcXtal32Init);
stcXtal32Init.u8State = CLK_XTAL32_ON;
stcXtal32Init.u8Drv = CLK_XTAL32_DRV_HIGH;
stcXtal32Init.u8State = CLK_XTAL32_ON;
stcXtal32Init.u8Drv = CLK_XTAL32_DRV_HIGH;
stcXtal32Init.u8Filter = CLK_XTAL32_FILTER_RUN_MD;
(void)CLK_Xtal32Init(&stcXtal32Init);
#endif
Expand Down
24 changes: 12 additions & 12 deletions bsp/hc32/ev_hc32f334_lqfp64/board/board.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,27 +19,27 @@
extern "C" {
#endif

#define HC32_FLASH_ERASE_GRANULARITY (4 * 1024)
#define HC32_FLASH_WRITE_GRANULARITY (4)
#define HC32_FLASH_SIZE (128 * 1024)
#define HC32_FLASH_START_ADDRESS (0)
#define HC32_FLASH_END_ADDRESS (HC32_FLASH_START_ADDRESS + HC32_FLASH_SIZE)
#define HC32_FLASH_ERASE_GRANULARITY (4 * 1024)
#define HC32_FLASH_WRITE_GRANULARITY (4)
#define HC32_FLASH_SIZE (128 * 1024)
#define HC32_FLASH_START_ADDRESS (0)
#define HC32_FLASH_END_ADDRESS (HC32_FLASH_START_ADDRESS + HC32_FLASH_SIZE)

#define HC32_SRAM_SIZE (32)
#define HC32_SRAM_END (0x1FFFC000 + HC32_SRAM_SIZE * 1024)
#define HC32_SRAM_SIZE (32)
#define HC32_SRAM_END (0x1FFFC000 + HC32_SRAM_SIZE * 1024)

#ifdef __ARMCC_VERSION
extern int Image$$RW_IRAM2$$ZI$$Limit;
#define HEAP_BEGIN (&Image$$RW_IRAM2$$ZI$$Limit)
#define HEAP_BEGIN (&Image$$RW_IRAM2$$ZI$$Limit)
#elif __ICCARM__
#pragma section="HEAP"
#define HEAP_BEGIN (__segment_end("HEAP"))
#pragma section = "HEAP"
#define HEAP_BEGIN (__segment_end("HEAP"))
#else
extern int __bss_end;
#define HEAP_BEGIN (&__bss_end)
#define HEAP_BEGIN (&__bss_end)
#endif

#define HEAP_END HC32_SRAM_END
#define HEAP_END HC32_SRAM_END

void PeripheralRegister_Unlock(void);
void PeripheralClock_Config(void);
Expand Down
18 changes: 9 additions & 9 deletions bsp/hc32/ev_hc32f334_lqfp64/board/board_config.c
Original file line number Diff line number Diff line change
Expand Up @@ -141,13 +141,13 @@ void CanPhyEnable(void)
#if defined(BSP_USING_MCAN1)
GPIO_StructInit(&stcGpioInit);
stcGpioInit.u16PinState = PIN_STAT_RST;
stcGpioInit.u16PinDir = PIN_DIR_OUT;
stcGpioInit.u16PinDir = PIN_DIR_OUT;
GPIO_Init(MCAN1_PHY_STBY_PORT, MCAN1_PHY_STBY_PIN, &stcGpioInit);
#endif
#if defined(BSP_USING_MCAN2)
GPIO_StructInit(&stcGpioInit);
stcGpioInit.u16PinState = PIN_STAT_RST;
stcGpioInit.u16PinDir = PIN_DIR_OUT;
stcGpioInit.u16PinDir = PIN_DIR_OUT;
GPIO_Init(MCAN2_PHY_STBY_PORT, MCAN2_PHY_STBY_PIN, &stcGpioInit);
#endif
}
Expand Down Expand Up @@ -179,7 +179,7 @@ rt_err_t rt_hw_board_mcan_init(CM_MCAN_TypeDef *MCANx)
}
#endif

#if defined (RT_USING_SPI)
#if defined(RT_USING_SPI)
rt_err_t rt_hw_spi_board_init(CM_SPI_TypeDef *CM_SPIx)
{
rt_err_t result = RT_EOK;
Expand All @@ -194,10 +194,10 @@ rt_err_t rt_hw_spi_board_init(CM_SPI_TypeDef *CM_SPIx)
(void)GPIO_StructInit(&stcGpioInit);
stcGpioInit.u16PinDrv = PIN_HIGH_DRV;
stcGpioInit.u16PinInputType = PIN_IN_TYPE_CMOS;
(void)GPIO_Init(SPI1_SCK_PORT, SPI1_SCK_PIN, &stcGpioInit);
(void)GPIO_Init(SPI1_SCK_PORT, SPI1_SCK_PIN, &stcGpioInit);
(void)GPIO_Init(SPI1_MOSI_PORT, SPI1_MOSI_PIN, &stcGpioInit);
(void)GPIO_Init(SPI1_MISO_PORT, SPI1_MISO_PIN, &stcGpioInit);
GPIO_SetFunc(SPI1_SCK_PORT, SPI1_SCK_PIN, SPI1_SCK_FUNC);
GPIO_SetFunc(SPI1_SCK_PORT, SPI1_SCK_PIN, SPI1_SCK_FUNC);
GPIO_SetFunc(SPI1_MOSI_PORT, SPI1_MOSI_PIN, SPI1_MOSI_FUNC);
GPIO_SetFunc(SPI1_MISO_PORT, SPI1_MISO_PIN, SPI1_MISO_FUNC);
break;
Expand Down Expand Up @@ -311,24 +311,24 @@ rt_err_t rt_hw_board_pwm_tmr6_init(CM_TMR6_TypeDef *TMR6x)
#endif
#endif

#if defined (BSP_USING_INPUT_CAPTURE)
#if defined(BSP_USING_INPUT_CAPTURE)
rt_err_t rt_hw_board_input_capture_init(uint32_t *tmr_instance)
{
rt_err_t result = RT_EOK;

switch ((rt_uint32_t)tmr_instance)
{
#if defined (BSP_USING_INPUT_CAPTURE_TMR6_1)
#if defined(BSP_USING_INPUT_CAPTURE_TMR6_1)
case (rt_uint32_t)CM_TMR6_1:
GPIO_SetFunc(INPUT_CAPTURE_TMR6_1_PORT, INPUT_CAPTURE_TMR6_1_PIN, INPUT_CAPTURE_TMR6_FUNC);
break;
#endif
#if defined (BSP_USING_INPUT_CAPTURE_TMR6_2)
#if defined(BSP_USING_INPUT_CAPTURE_TMR6_2)
case (rt_uint32_t)CM_TMR6_2:
GPIO_SetFunc(INPUT_CAPTURE_TMR6_2_PORT, INPUT_CAPTURE_TMR6_2_PIN, INPUT_CAPTURE_TMR6_FUNC);
break;
#endif
#if defined (BSP_USING_INPUT_CAPTURE_TMR6_3)
#if defined(BSP_USING_INPUT_CAPTURE_TMR6_3)
case (rt_uint32_t)CM_TMR6_3:
GPIO_SetFunc(INPUT_CAPTURE_TMR6_3_PORT, INPUT_CAPTURE_TMR6_3_PIN, INPUT_CAPTURE_TMR6_FUNC);
break;
Expand Down
Loading
Loading