add iar support for lpc43, add lpcxpresso43s67 to hil farm
This commit is contained in:
81
.github/workflows/build_iar.yml
vendored
81
.github/workflows/build_iar.yml
vendored
@@ -32,7 +32,7 @@ jobs:
|
|||||||
# Alphabetical order
|
# Alphabetical order
|
||||||
# Note: bundle multiple families into a matrix since there is only one self-hosted instance can
|
# 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.
|
# 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:
|
steps:
|
||||||
- name: Clean workspace
|
- name: Clean workspace
|
||||||
run: |
|
run: |
|
||||||
@@ -52,82 +52,3 @@ jobs:
|
|||||||
- name: Test on actual hardware (hardware in the loop)
|
- name: Test on actual hardware (hardware in the loop)
|
||||||
run: |
|
run: |
|
||||||
python3 test/hil/hil_test.py hil_hfp.json
|
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
|
# Suppress warnings on fatfs
|
||||||
set_source_files_properties(
|
if (CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
||||||
${TOP}/lib/fatfs/source/ff.c
|
set_source_files_properties(
|
||||||
PROPERTIES
|
${TOP}/lib/fatfs/source/ff.c
|
||||||
COMPILE_FLAGS "-Wno-conversion -Wno-cast-qual"
|
PROPERTIES
|
||||||
)
|
COMPILE_FLAGS "-Wno-conversion -Wno-cast-qual"
|
||||||
|
)
|
||||||
|
endif ()
|
||||||
|
|
||||||
# Example include
|
# Example include
|
||||||
target_include_directories(${PROJECT} PUBLIC
|
target_include_directories(${PROJECT} PUBLIC
|
||||||
|
@@ -63,13 +63,25 @@ const uint32_t ExtRateIn = 0;
|
|||||||
void SystemInit(void)
|
void SystemInit(void)
|
||||||
{
|
{
|
||||||
#ifdef __USE_LPCOPEN
|
#ifdef __USE_LPCOPEN
|
||||||
extern void (* const g_pfnVectors[])(void);
|
|
||||||
unsigned int *pSCB_VTOR = (unsigned int *) 0xE000ED08;
|
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();
|
fpuInit();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Setup system level pin muxing */
|
/* Setup system level pin muxing */
|
||||||
|
@@ -17,43 +17,48 @@ set(FAMILY_MCUS LPC43XX CACHE INTERNAL "")
|
|||||||
#------------------------------------
|
#------------------------------------
|
||||||
# only need to be built ONCE for all examples
|
# only need to be built ONCE for all examples
|
||||||
function(add_board_target BOARD_TARGET)
|
function(add_board_target BOARD_TARGET)
|
||||||
if (NOT TARGET ${BOARD_TARGET})
|
if (TARGET ${BOARD_TARGET})
|
||||||
add_library(${BOARD_TARGET} STATIC
|
return()
|
||||||
${SDK_DIR}/../gcc/cr_startup_lpc43xx.c
|
endif ()
|
||||||
${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
|
|
||||||
)
|
|
||||||
|
|
||||||
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")
|
add_library(${BOARD_TARGET} STATIC
|
||||||
target_link_options(${BOARD_TARGET} PUBLIC
|
${STARTUP_FILE_${CMAKE_C_COMPILER_ID}}
|
||||||
"LINKER:--script=${LD_FILE_GNU}"
|
${SDK_DIR}/src/chip_18xx_43xx.c
|
||||||
# nanolib
|
${SDK_DIR}/src/clock_18xx_43xx.c
|
||||||
--specs=nosys.specs
|
${SDK_DIR}/src/fpu_init.c
|
||||||
--specs=nano.specs
|
${SDK_DIR}/src/gpio_18xx_43xx.c
|
||||||
)
|
${SDK_DIR}/src/iap_18xx_43xx.c
|
||||||
elseif (CMAKE_C_COMPILER_ID STREQUAL "IAR")
|
${SDK_DIR}/src/sysinit_18xx_43xx.c
|
||||||
target_link_options(${BOARD_TARGET} PUBLIC
|
${SDK_DIR}/src/uart_18xx_43xx.c
|
||||||
"LINKER:--config=${LD_FILE_IAR}"
|
)
|
||||||
)
|
target_compile_definitions(${BOARD_TARGET} PUBLIC
|
||||||
endif ()
|
__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 ()
|
endif ()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
@@ -13,6 +13,13 @@
|
|||||||
"debugger": "jlink",
|
"debugger": "jlink",
|
||||||
"debugger_sn": "770935966",
|
"debugger_sn": "770935966",
|
||||||
"cpu": "STM32F746NG"
|
"cpu": "STM32F746NG"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "lpcxpresso43s67",
|
||||||
|
"uid": "08F000044528BAAA8D858F58C50700F5",
|
||||||
|
"debugger": "jlink",
|
||||||
|
"debugger_sn": "728973776",
|
||||||
|
"cpu": "LPC43S67_M4"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@@ -48,7 +48,7 @@ deps_optional = {
|
|||||||
'2204191ec76283371419fbcec207da02e1bc22fa',
|
'2204191ec76283371419fbcec207da02e1bc22fa',
|
||||||
'nuc'],
|
'nuc'],
|
||||||
'hw/mcu/nxp/lpcopen': ['https://github.com/hathach/nxp_lpcopen.git',
|
'hw/mcu/nxp/lpcopen': ['https://github.com/hathach/nxp_lpcopen.git',
|
||||||
'43c45c85405a5dd114fff0ea95cca62837740c13',
|
'84e0bd3e43910aaf71eefd62075cf57495418312',
|
||||||
'lpc11 lpc13 lpc15 lpc17 lpc18 lpc40 lpc43'],
|
'lpc11 lpc13 lpc15 lpc17 lpc18 lpc40 lpc43'],
|
||||||
'hw/mcu/nxp/mcux-sdk': ['https://github.com/hathach/mcux-sdk.git',
|
'hw/mcu/nxp/mcux-sdk': ['https://github.com/hathach/mcux-sdk.git',
|
||||||
'950819b7de9b32f92c3edf396bc5ffb8d66e7009',
|
'950819b7de9b32f92c3edf396bc5ffb8d66e7009',
|
||||||
|
Reference in New Issue
Block a user