mirror of
https://github.com/hathach/tinyusb.git
synced 2025-03-14 04:18:56 +00:00
add iar support for lpc43, add lpcxpresso43s67 to hil farm
This commit is contained in:
parent
78e5b2c6a4
commit
088180e3d8
81
.github/workflows/build_iar.yml
vendored
81
.github/workflows/build_iar.yml
vendored
@ -32,7 +32,7 @@ jobs:
|
||||
# Alphabetical order
|
||||
# Note: bundle multiple families into a matrix since there is only one self-hosted instance can
|
||||
# run IAR build. Too many matrix can hurt due to setup/teardown overhead.
|
||||
- 'stm32f0 stm32f1 stm32f4 stm32f7 stm32g0 stm32g4 stm32h7 stm32l4'
|
||||
- 'lpc43 stm32f0 stm32f1 stm32f4 stm32f7 stm32g0 stm32g4 stm32h7 stm32l4'
|
||||
steps:
|
||||
- name: Clean workspace
|
||||
run: |
|
||||
@ -52,82 +52,3 @@ jobs:
|
||||
- name: Test on actual hardware (hardware in the loop)
|
||||
run: |
|
||||
python3 test/hil/hil_test.py hil_hfp.json
|
||||
|
||||
# # Upload binaries for hardware test with self-hosted
|
||||
# - name: Prepare stm32l412nucleo Artifacts
|
||||
# if: contains(matrix.family, 'stm32l4')
|
||||
# working-directory: ${{github.workspace}}/cmake-build/cmake-build-stm32l412nucleo
|
||||
# run: |
|
||||
# find device/ -name "*.elf" -exec mv {} ../../ \;
|
||||
#
|
||||
# - name: Upload Artifacts for stm32l412nucleo
|
||||
# if: contains(matrix.family, 'stm32l4') && github.repository_owner == 'hathach'
|
||||
# uses: actions/upload-artifact@v3
|
||||
# with:
|
||||
# name: stm32l4
|
||||
# path: |
|
||||
# *.elf
|
||||
|
||||
# ---------------------------------------
|
||||
# Hardware in the loop (HIL)
|
||||
# Current self-hosted instance is running on an EPYC 7232 server hosted by HiFiPhile user
|
||||
# ---------------------------------------
|
||||
# hw-stm32l412nucleo-test:
|
||||
# needs: cmake
|
||||
# runs-on: [self-hosted, Linux, X64, hifiphile]
|
||||
#
|
||||
# steps:
|
||||
# - name: Clean workspace
|
||||
# run: |
|
||||
# echo "Cleaning up previous run"
|
||||
# rm -rf "${{ github.workspace }}"
|
||||
# mkdir -p "${{ github.workspace }}"
|
||||
#
|
||||
# - name: Download stm32l4 Artifacts
|
||||
# uses: actions/download-artifact@v3
|
||||
# with:
|
||||
# name: stm32l4
|
||||
#
|
||||
# - name: Create flash.sh
|
||||
# run: |
|
||||
# echo > flash.sh 'echo halt > flash.jlink'
|
||||
# echo >> flash.sh 'echo r >> flash.jlink'
|
||||
# echo >> flash.sh 'echo loadfile $1 >> flash.jlink'
|
||||
# echo >> flash.sh 'echo r >> flash.jlink'
|
||||
# echo >> flash.sh 'echo go >> flash.jlink'
|
||||
# echo >> flash.sh 'echo exit >> flash.jlink'
|
||||
# echo >> flash.sh 'cmdout=$(JLinkExe -USB 774470029 -device stm32l412kb -if swd -JTAGConf -1,-1 -speed auto -NoGui 1 -ExitOnError 1 -CommandFile flash.jlink)'
|
||||
# echo >> flash.sh 'if (( $? )) ; then echo $cmdout ; fi'
|
||||
# chmod +x flash.sh
|
||||
#
|
||||
# - name: Test cdc_dual_ports
|
||||
# run: |
|
||||
# ./flash.sh cdc_dual_ports.elf
|
||||
# while (! ([ -e /dev/ttyACM1 ] && [ -e /dev/ttyACM2 ])) && [ $SECONDS -le 10 ]; do :; done
|
||||
# test -e /dev/ttyACM1 && echo "ttyACM1 exists"
|
||||
# test -e /dev/ttyACM2 && echo "ttyACM2 exists"
|
||||
#
|
||||
# # Debian does not auto mount usb drive. skip this test for now
|
||||
# - name: Test cdc_msc
|
||||
# if: false
|
||||
# run: |
|
||||
# ./flash.sh cdc_msc.elf
|
||||
# readme='/media/pi/TinyUSB MSC/README.TXT'
|
||||
# while (! ([ -e /dev/ttyACM1 ] && [ -f "$readme" ])) && [ $SECONDS -le 10 ]; do :; done
|
||||
# test -e /dev/ttyACM1 && echo "ttyACM1 exists"
|
||||
# test -f "$readme" && echo "$readme exists"
|
||||
# cat "$readme"
|
||||
#
|
||||
# - name: Test dfu
|
||||
# run: |
|
||||
# ./flash.sh dfu.elf
|
||||
# while (! (dfu-util -l | grep "Found DFU")) && [ $SECONDS -le 10 ]; do :; done
|
||||
# dfu-util -d cafe -a 0 -U dfu0
|
||||
# dfu-util -d cafe -a 1 -U dfu1
|
||||
# grep "TinyUSB DFU! - Partition 0" dfu0
|
||||
# grep "TinyUSB DFU! - Partition 1" dfu1
|
||||
#
|
||||
# - name: Test dfu_runtime
|
||||
# run: |
|
||||
# ./flash.sh dfu_runtime.elf
|
||||
# while (! (dfu-util -l | grep "Found Runtime")) && [ $SECONDS -le 10 ]; do :; done
|
||||
|
@ -22,11 +22,13 @@ target_sources(${PROJECT} PUBLIC
|
||||
)
|
||||
|
||||
# Suppress warnings on fatfs
|
||||
set_source_files_properties(
|
||||
${TOP}/lib/fatfs/source/ff.c
|
||||
PROPERTIES
|
||||
COMPILE_FLAGS "-Wno-conversion -Wno-cast-qual"
|
||||
)
|
||||
if (CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
||||
set_source_files_properties(
|
||||
${TOP}/lib/fatfs/source/ff.c
|
||||
PROPERTIES
|
||||
COMPILE_FLAGS "-Wno-conversion -Wno-cast-qual"
|
||||
)
|
||||
endif ()
|
||||
|
||||
# Example include
|
||||
target_include_directories(${PROJECT} PUBLIC
|
||||
|
@ -63,13 +63,25 @@ const uint32_t ExtRateIn = 0;
|
||||
void SystemInit(void)
|
||||
{
|
||||
#ifdef __USE_LPCOPEN
|
||||
extern void (* const g_pfnVectors[])(void);
|
||||
unsigned int *pSCB_VTOR = (unsigned int *) 0xE000ED08;
|
||||
*pSCB_VTOR = (unsigned int) g_pfnVectors;
|
||||
|
||||
#if __FPU_USED == 1
|
||||
#ifdef __ICCARM__
|
||||
extern void *__vector_table;
|
||||
*pSCB_VTOR = (unsigned int) &__vector_table;
|
||||
|
||||
#elif defined(__ARMCC_VERSION)
|
||||
extern void *__Vectors;
|
||||
*pSCB_VTOR = (unsigned int) &__Vectors;
|
||||
|
||||
#else // other compoiler using cr_startup_lpc43xx.c
|
||||
extern void (* const g_pfnVectors[])(void);
|
||||
*pSCB_VTOR = (unsigned int) g_pfnVectors;
|
||||
#endif
|
||||
|
||||
#if __FPU_USED == 1
|
||||
fpuInit();
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
/* Setup system level pin muxing */
|
||||
|
@ -17,43 +17,48 @@ set(FAMILY_MCUS LPC43XX CACHE INTERNAL "")
|
||||
#------------------------------------
|
||||
# only need to be built ONCE for all examples
|
||||
function(add_board_target BOARD_TARGET)
|
||||
if (NOT TARGET ${BOARD_TARGET})
|
||||
add_library(${BOARD_TARGET} STATIC
|
||||
${SDK_DIR}/../gcc/cr_startup_lpc43xx.c
|
||||
${SDK_DIR}/src/chip_18xx_43xx.c
|
||||
${SDK_DIR}/src/clock_18xx_43xx.c
|
||||
${SDK_DIR}/src/fpu_init.c
|
||||
${SDK_DIR}/src/gpio_18xx_43xx.c
|
||||
${SDK_DIR}/src/iap_18xx_43xx.c
|
||||
${SDK_DIR}/src/sysinit_18xx_43xx.c
|
||||
${SDK_DIR}/src/uart_18xx_43xx.c
|
||||
)
|
||||
target_compile_options(${BOARD_TARGET} PUBLIC
|
||||
-nostdlib
|
||||
)
|
||||
target_compile_definitions(${BOARD_TARGET} PUBLIC
|
||||
__USE_LPCOPEN
|
||||
CORE_M4
|
||||
)
|
||||
target_include_directories(${BOARD_TARGET} PUBLIC
|
||||
${SDK_DIR}/inc
|
||||
${SDK_DIR}/inc/config_43xx
|
||||
)
|
||||
if (TARGET ${BOARD_TARGET})
|
||||
return()
|
||||
endif ()
|
||||
|
||||
update_board(${BOARD_TARGET})
|
||||
# Startup & Linker script
|
||||
set(STARTUP_FILE_GNU ${SDK_DIR}/../gcc/cr_startup_lpc43xx.c)
|
||||
set(STARTUP_FILE_IAR ${SDK_DIR}/../iar/iar_startup_lpc18xx43xx.s)
|
||||
set(LD_FILE_IAR ${SDK_DIR}/../iar/linker/lpc18xx_43xx_ldscript_iflash.icf)
|
||||
|
||||
if (CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
||||
target_link_options(${BOARD_TARGET} PUBLIC
|
||||
"LINKER:--script=${LD_FILE_GNU}"
|
||||
# nanolib
|
||||
--specs=nosys.specs
|
||||
--specs=nano.specs
|
||||
)
|
||||
elseif (CMAKE_C_COMPILER_ID STREQUAL "IAR")
|
||||
target_link_options(${BOARD_TARGET} PUBLIC
|
||||
"LINKER:--config=${LD_FILE_IAR}"
|
||||
)
|
||||
endif ()
|
||||
add_library(${BOARD_TARGET} STATIC
|
||||
${STARTUP_FILE_${CMAKE_C_COMPILER_ID}}
|
||||
${SDK_DIR}/src/chip_18xx_43xx.c
|
||||
${SDK_DIR}/src/clock_18xx_43xx.c
|
||||
${SDK_DIR}/src/fpu_init.c
|
||||
${SDK_DIR}/src/gpio_18xx_43xx.c
|
||||
${SDK_DIR}/src/iap_18xx_43xx.c
|
||||
${SDK_DIR}/src/sysinit_18xx_43xx.c
|
||||
${SDK_DIR}/src/uart_18xx_43xx.c
|
||||
)
|
||||
target_compile_definitions(${BOARD_TARGET} PUBLIC
|
||||
__USE_LPCOPEN
|
||||
CORE_M4
|
||||
)
|
||||
target_include_directories(${BOARD_TARGET} PUBLIC
|
||||
${SDK_DIR}/inc
|
||||
${SDK_DIR}/inc/config_43xx
|
||||
)
|
||||
|
||||
update_board(${BOARD_TARGET})
|
||||
|
||||
if (CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
||||
target_compile_options(${BOARD_TARGET} PUBLIC -nostdlib)
|
||||
target_link_options(${BOARD_TARGET} PUBLIC
|
||||
"LINKER:--script=${LD_FILE_GNU}"
|
||||
# nanolib
|
||||
--specs=nosys.specs
|
||||
--specs=nano.specs
|
||||
)
|
||||
elseif (CMAKE_C_COMPILER_ID STREQUAL "IAR")
|
||||
target_link_options(${BOARD_TARGET} PUBLIC
|
||||
"LINKER:--config=${LD_FILE_IAR}"
|
||||
)
|
||||
endif ()
|
||||
endfunction()
|
||||
|
||||
|
@ -13,6 +13,13 @@
|
||||
"debugger": "jlink",
|
||||
"debugger_sn": "770935966",
|
||||
"cpu": "STM32F746NG"
|
||||
},
|
||||
{
|
||||
"name": "lpcxpresso43s67",
|
||||
"uid": "08F000044528BAAA8D858F58C50700F5",
|
||||
"debugger": "jlink",
|
||||
"debugger_sn": "728973776",
|
||||
"cpu": "LPC43S67_M4"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -48,7 +48,7 @@ deps_optional = {
|
||||
'2204191ec76283371419fbcec207da02e1bc22fa',
|
||||
'nuc'],
|
||||
'hw/mcu/nxp/lpcopen': ['https://github.com/hathach/nxp_lpcopen.git',
|
||||
'43c45c85405a5dd114fff0ea95cca62837740c13',
|
||||
'84e0bd3e43910aaf71eefd62075cf57495418312',
|
||||
'lpc11 lpc13 lpc15 lpc17 lpc18 lpc40 lpc43'],
|
||||
'hw/mcu/nxp/mcux-sdk': ['https://github.com/hathach/mcux-sdk.git',
|
||||
'950819b7de9b32f92c3edf396bc5ffb8d66e7009',
|
||||
|
Loading…
x
Reference in New Issue
Block a user