Enable APM32F0 dependency fetching and CI

This commit is contained in:
Jie Feng
2026-07-25 11:25:05 +08:00
parent 2d56dc533e
commit 7b9761f191
10 changed files with 135 additions and 4 deletions

View File

@ -16,6 +16,7 @@ toolchain_list = [
# family: [supported toolchain]
family_list = {
"apm32f0xx": ["arm-gcc"],
"at32f402_405": ["arm-gcc"],
"at32f403a_407": ["arm-gcc"],
"at32f413": ["arm-gcc"],

1
.gitignore vendored
View File

@ -78,6 +78,7 @@ hw/mcu/artery/
hw/mcu/broadcom/
hw/mcu/bridgetek/ft9xx/ft90x-sdk/
hw/mcu/gd/
hw/mcu/geehy/
hw/mcu/hpmicro/
hw/mcu/infineon/
hw/mcu/microchip/

View File

@ -1,3 +1,4 @@
mcu:APM32F0XX
mcu:CH32V103
mcu:CH32V20X
mcu:LPC11UXX

View File

@ -0,0 +1,108 @@
/*
* The MIT License (MIT)
*
* Copyright (c) 2026, Ha Thach (tinyusb.org)
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
* This file is part of the TinyUSB stack.
*/
#ifndef FREERTOS_CONFIG_H_
#define FREERTOS_CONFIG_H_
#ifndef __IASMARM__
#include "apm32f0xx.h"
#endif
#define configENABLE_MPU 0
#define configENABLE_FPU 0
#define configENABLE_TRUSTZONE 0
#define configMINIMAL_SECURE_STACK_SIZE 1024
#define configUSE_PREEMPTION 1
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 0
#define configCPU_CLOCK_HZ SystemCoreClock
#define configTICK_RATE_HZ 1000
#define configMAX_PRIORITIES 5
#define configMINIMAL_STACK_SIZE 128
#define configTOTAL_HEAP_SIZE ( configSUPPORT_DYNAMIC_ALLOCATION * 4 * 1024 )
#define configMAX_TASK_NAME_LEN 16
#define configUSE_16_BIT_TICKS 0
#define configIDLE_SHOULD_YIELD 1
#define configUSE_MUTEXES 1
#define configUSE_RECURSIVE_MUTEXES 1
#define configUSE_COUNTING_SEMAPHORES 1
#define configQUEUE_REGISTRY_SIZE 4
#define configUSE_QUEUE_SETS 0
#define configUSE_TIME_SLICING 0
#define configUSE_NEWLIB_REENTRANT 0
#define configENABLE_BACKWARD_COMPATIBILITY 1
#define configSTACK_ALLOCATION_FROM_SEPARATE_HEAP 0
#define configSUPPORT_STATIC_ALLOCATION 1
#define configSUPPORT_DYNAMIC_ALLOCATION 0
#define configUSE_IDLE_HOOK 0
#define configUSE_TICK_HOOK 0
#define configUSE_MALLOC_FAILED_HOOK 0
#define configCHECK_FOR_STACK_OVERFLOW 2
#define configCHECK_HANDLER_INSTALLATION 0
#define configGENERATE_RUN_TIME_STATS 0
#define configRECORD_STACK_HIGH_ADDRESS 1
#define configUSE_TRACE_FACILITY 1
#define configUSE_STATS_FORMATTING_FUNCTIONS 0
#define configUSE_CO_ROUTINES 0
#define configMAX_CO_ROUTINE_PRIORITIES 2
#define configUSE_TIMERS 1
#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 2 )
#define configTIMER_QUEUE_LENGTH 32
#define configTIMER_TASK_STACK_DEPTH configMINIMAL_STACK_SIZE
#define INCLUDE_vTaskPrioritySet 0
#define INCLUDE_uxTaskPriorityGet 0
#define INCLUDE_vTaskDelete 0
#define INCLUDE_vTaskSuspend 1
#define INCLUDE_xResumeFromISR 0
#define INCLUDE_vTaskDelayUntil 1
#define INCLUDE_vTaskDelay 1
#define INCLUDE_xTaskGetSchedulerState 0
#define INCLUDE_xTaskGetCurrentTaskHandle 1
#define INCLUDE_uxTaskGetStackHighWaterMark 0
#define INCLUDE_xTaskGetIdleTaskHandle 0
#define INCLUDE_xTimerGetTimerDaemonTaskHandle 0
#define INCLUDE_pcTaskGetTaskName 0
#define INCLUDE_eTaskGetState 0
#define INCLUDE_xEventGroupSetBitFromISR 0
#define INCLUDE_xTimerPendFunctionCall 0
#define xPortPendSVHandler PendSV_Handler
#define xPortSysTickHandler SysTick_Handler
#define vPortSVCHandler SVC_Handler
#define configPRIO_BITS __NVIC_PRIO_BITS
#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY ( ( 1 << configPRIO_BITS ) - 1 )
#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 2
#define configKERNEL_INTERRUPT_PRIORITY ( configLIBRARY_LOWEST_INTERRUPT_PRIORITY << ( 8 - configPRIO_BITS ) )
#define configMAX_SYSCALL_INTERRUPT_PRIORITY ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << ( 8 - configPRIO_BITS ) )
#endif

View File

@ -4,5 +4,10 @@ set(MCU_LINKER_NAME APM32F07xxB)
set(JLINK_DEVICE APM32F072RB)
function(update_board TARGET)
target_compile_definitions(${TARGET} PUBLIC ${MCU_VARIANT})
target_compile_definitions(${TARGET} PUBLIC
${MCU_VARIANT}
CFG_EXAMPLE_MSC_READONLY
CFG_EXAMPLE_MSC_DUAL_READONLY
CFG_EXAMPLE_VIDEO_READONLY
)
endfunction()

View File

@ -4,4 +4,7 @@ MCU_LINKER_NAME = APM32F07xxB
JLINK_DEVICE = APM32F072RB
CFLAGS += \
-D${MCU_VARIANT}
-D${MCU_VARIANT} \
-DCFG_EXAMPLE_MSC_READONLY \
-DCFG_EXAMPLE_MSC_DUAL_READONLY \
-DCFG_EXAMPLE_VIDEO_READONLY

View File

@ -36,6 +36,15 @@
#include "bsp/board_api.h"
#include "board.h"
void USBD_IRQHandler(void);
#if CFG_TUSB_OS == OPT_OS_NONE
void SysTick_Handler(void);
void SVC_Handler(void);
void PendSV_Handler(void);
#endif
void HardFault_Handler(void);
void _init(void);
//--------------------------------------------------------------------+
// Forward USB interrupt events to TinyUSB IRQ Handler
//--------------------------------------------------------------------+

View File

@ -1,7 +1,7 @@
include_guard()
set(APM32_FAMILY apm32f0xx)
set(APM32_SDK ${TOP}/hw/mcu/geehy/APM32F0xx_SDK_V1.8.6/Libraries)
set(APM32_SDK ${TOP}/hw/mcu/geehy/APM32F0xx_SDK/Libraries)
# include board specific
include(${CMAKE_CURRENT_LIST_DIR}/boards/${BOARD}/board.cmake)

View File

@ -1,5 +1,5 @@
APM32_FAMILY = apm32f0xx
APM32_SDK = hw/mcu/geehy/APM32F0xx_SDK_V1.8.6/Libraries
APM32_SDK = hw/mcu/geehy/APM32F0xx_SDK/Libraries
include $(TOP)/$(BOARD_PATH)/board.mk

View File

@ -46,6 +46,9 @@ deps_optional = {
'hw/mcu/gd/nuclei-sdk': ['https://github.com/Nuclei-Software/nuclei-sdk.git',
'7eb7bfa9ea4fbeacfafe1d5f77d5a0e6ed3922e7',
'gd32vf103'],
'hw/mcu/geehy/APM32F0xx_SDK': ['https://github.com/GeehySemi/APM32F0xx_SDK.git',
'cfc1fe826e1869133de86d4c6b298fc153e6bc32',
'apm32f0xx'],
'hw/mcu/infineon/mtb-xmclib-cat3': ['https://github.com/Infineon/mtb-xmclib-cat3.git',
'daf5500d03cba23e68c2f241c30af79cd9d63880',
'xmc4000'],