Skip to content

Commit 717763c

Browse files
committed
cmake change apps/blinky more ports' generic executable target
1 parent ffeeefc commit 717763c

File tree

24 files changed

+113
-99
lines changed

24 files changed

+113
-99
lines changed

.github/workflows/build.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ jobs:
129129
- 'metro_m7_1011'
130130
# - 'stm32f303disco' # overflows flash
131131
- 'stm32f411ve_discovery'
132+
- 'stm32h563_nucleo'
132133

133134
steps:
134135
- name: Checkout

apps/blinky/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ cmake_minimum_required(VERSION 3.17)
77
include(${FAMILY_PATH}/app.cmake)
88

99
add_executable(blinky
10-
blinky.c
10+
src/blinky.c
1111
${FAMILY_PATH}/boards.c
1212
# ${FAMILY_PATH}/board_flash.c
1313
)

ports/ch32v20x/family.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
include_guard()
1+
include_guard(GLOBAL)
22

33
set(UF2_FAMILY_ID 0x699b62ec)
44
set(CH32_FAMILY ch32v20x)

ports/espressif/CMakeLists.txt

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
cmake_minimum_required(VERSION 3.17)
44

55
include(${CMAKE_CURRENT_LIST_DIR}/../family_support.cmake)
6-
include(${CMAKE_CURRENT_LIST_DIR}/boards/${BOARD}/board.cmake)
76

87
# Must be set before including IDF project.cmake
98
set(EXTRA_COMPONENT_DIRS ${TOP}/src ${CMAKE_CURRENT_LIST_DIR}/boards)
@@ -34,6 +33,7 @@ project(tinyuf2)
3433

3534
set(ARTIFACT_PATH ${CMAKE_CURRENT_LIST_DIR}/_bin/${BOARD})
3635
execute_process(COMMAND mkdir -p ${ARTIFACT_PATH})
36+
execute_process(COMMAND mkdir -p ${ARTIFACT_PATH}/apps)
3737

3838
# Create post-build script for combined.bin / combined-ota.bin
3939
file(WRITE ${CMAKE_BINARY_DIR}/tinyuf2.postbuild.sh
@@ -73,15 +73,26 @@ add_custom_command(TARGET app POST_BUILD
7373
VERBATIM
7474
)
7575

76-
# External project for self-update
76+
# flash combined.bin
77+
add_custom_target(combined-flash
78+
DEPENDS tinyuf2.elf
79+
COMMAND ${CMAKE_COMMAND} -E echo "Flashing combined.bin"
80+
COMMAND esptool.py --chip ${IDF_TARGET} write_flash 0x0 combined.bin
81+
VERBATIM
82+
)
83+
84+
#------------------------------
85+
# External project (self_update, blinky etc ...)
86+
#------------------------------
87+
7788
# Post build: generate bootloader_bin.c for self-update and combined.bin
7889
add_custom_command(TARGET app POST_BUILD
7990
COMMAND ${Python_EXECUTABLE} ${UF2CONV_PY} --carray -o ${CMAKE_CURRENT_LIST_DIR}/apps/self_update/main/bootloader_bin.c ${CMAKE_BINARY_DIR}/tinyuf2.bin
8091
)
8192

8293
externalproject_add(self_update
8394
SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/apps/self_update
84-
BINARY_DIR ${CMAKE_BINARY_DIR}/self_update
95+
BINARY_DIR ${CMAKE_BINARY_DIR}/apps/self_update
8596
# Modifying the list separator for the arguments, as such, we won't need to manually
8697
# replace the new separator by the default ';' in the subproject
8798
CMAKE_ARGS -DBOARD=${BOARD}
@@ -90,12 +101,14 @@ externalproject_add(self_update
90101
DEPENDS tinyuf2.elf
91102
)
92103

93-
# flash combined.bin
94-
add_custom_target(combined-flash
95-
DEPENDS tinyuf2.elf
96-
COMMAND ${CMAKE_COMMAND} -E echo "Flashing combined.bin"
97-
COMMAND esptool.py --chip ${IDF_TARGET} write_flash 0x0 combined.bin
98-
VERBATIM
104+
externalproject_add(blinky
105+
SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/apps/blinky
106+
BINARY_DIR ${CMAKE_BINARY_DIR}/apps/blinky
107+
# Modifying the list separator for the arguments, as such, we won't need to manually
108+
# replace the new separator by the default ';' in the subproject
109+
CMAKE_ARGS -DBOARD=${BOARD}
110+
INSTALL_COMMAND ""
111+
BUILD_ALWAYS 1
99112
)
100113

101114
# -------------------------------------------------------------
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# The following five lines of boilerplate have to be in your project's
2+
# CMakeLists in this exact order for cmake to work correctly
3+
cmake_minimum_required(VERSION 3.17)
4+
5+
include(${CMAKE_CURRENT_LIST_DIR}/../../../family_support.cmake)
6+
7+
# Must be set before including IDF project.cmake
8+
set(EXTRA_COMPONENT_DIRS "../../boards" "../../components")
9+
set(SDKCONFIG ${CMAKE_BINARY_DIR}/sdkconfig)
10+
11+
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
12+
13+
add_compile_definitions(
14+
BUILD_APPLICATION
15+
BUILD_NO_TINYUSB
16+
)
17+
18+
project(blinky)
19+
20+
set(ARTIFACT_PATH ${CMAKE_CURRENT_LIST_DIR}/../../_bin/${BOARD})
21+
cmake_print_variables(UF2_FAMILY_ID)
22+
add_custom_command(TARGET app POST_BUILD
23+
COMMAND ${Python_EXECUTABLE} ${UF2CONV_PY} -f ${UF2_FAMILY_ID} -b 0x0 -c -o ${CMAKE_BINARY_DIR}/blinky.uf2 ${CMAKE_BINARY_DIR}/blinky.bin
24+
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/blinky.uf2 ${ARTIFACT_PATH}/apps/blinky.uf2
25+
VERBATIM
26+
)
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Note: bootloader_bin.c is generated by tinyuf2 app target
2+
idf_component_register(
3+
SRCS ${TOP}/apps/blinky/src/blinky.c
4+
INCLUDE_DIRS ${TOP}/src
5+
REQUIRES boards
6+
)

ports/espressif/apps/self_update/CMakeLists.txt

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,24 @@
33
cmake_minimum_required(VERSION 3.17)
44

55
include(${CMAKE_CURRENT_LIST_DIR}/../../../family_support.cmake)
6-
include(${CMAKE_CURRENT_LIST_DIR}/../../boards/${BOARD}/board.cmake)
76

87
# Must be set before including IDF project.cmake
98
set(EXTRA_COMPONENT_DIRS "../../boards" "../../components")
109
set(SDKCONFIG ${CMAKE_BINARY_DIR}/sdkconfig)
1110

12-
set(SELFUPDATE_BUILD 1)
1311
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
1412

15-
add_compile_definitions(TINYUF2_SELF_UPDATE)
13+
add_compile_definitions(
14+
TINYUF2_SELF_UPDATE
15+
BUILD_APPLICATION
16+
BUILD_NO_TINYUSB
17+
)
1618

1719
project(update-tinyuf2)
1820

1921
set(ARTIFACT_PATH ${CMAKE_CURRENT_LIST_DIR}/../../_bin/${BOARD})
2022
add_custom_command(TARGET app POST_BUILD
21-
COMMAND ${Python_EXECUTABLE} ${UF2CONV_PY} -f ${UF2_FAMILY_ID_${IDF_TARGET}} -b 0x0 -c -o ${CMAKE_BINARY_DIR}/update-tinyuf2.uf2 ${CMAKE_BINARY_DIR}/update-tinyuf2.bin
23+
COMMAND ${Python_EXECUTABLE} ${UF2CONV_PY} -f ${UF2_FAMILY_ID} -b 0x0 -c -o ${CMAKE_BINARY_DIR}/update-tinyuf2.uf2 ${CMAKE_BINARY_DIR}/update-tinyuf2.bin
2224
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/update-tinyuf2.uf2 ${ARTIFACT_PATH}/update-tinyuf2.uf2
2325
VERBATIM
2426
)
25-
26-
add_custom_target(flash-update-tinyuf2
27-
DEPENDS app
28-
COMMAND ${Python_EXECUTABLE} ${UF2CONV_PY} -f ${UF2_FAMILY_ID_${IDF_TARGET}} --deploy ${CMAKE_BINARY_DIR}/update-tinyuf2.uf2
29-
VERBATIM
30-
)

ports/espressif/boards/boards.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444

4545
#include "board_api.h"
4646

47-
#ifndef TINYUF2_SELF_UPDATE
47+
#ifndef BUILD_NO_TINYUSB
4848
#include "tusb.h"
4949
#endif
5050

@@ -98,7 +98,7 @@ static void internal_timer_cb(void* arg);
9898
// TinyUSB thread
9999
//--------------------------------------------------------------------+
100100

101-
#ifdef TINYUF2_SELF_UPDATE
101+
#ifdef BUILD_NO_TINYUSB
102102
void app_main(void) {
103103
main();
104104
}
@@ -346,7 +346,7 @@ void board_timer_stop(void) {
346346
//--------------------------------------------------------------------+
347347
// CDC Touch1200
348348
//--------------------------------------------------------------------+
349-
#ifndef TINYUF2_SELF_UPDATE
349+
#ifndef BUILD_NO_TINYUSB
350350

351351
#if CONFIG_IDF_TARGET_ESP32S3
352352
#include "hal/usb_serial_jtag_ll.h"
@@ -458,7 +458,7 @@ void tud_cdc_line_state_cb(uint8_t instance, bool dtr, bool rts) {
458458
}
459459
}
460460
}
461-
#endif // TINYUF2_SELF_UPDATE
461+
#endif
462462

463463
//--------------------------------------------------------------------+
464464
// Display

ports/espressif/family.cmake

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
1+
include(${CMAKE_CURRENT_LIST_DIR}/boards/${BOARD}/board.cmake)
2+
13
set(UF2_FAMILY_ID_esp32s2 0xbfdd4eee)
24
set(UF2_FAMILY_ID_esp32s3 0xc47e5767)
5+
set(UF2_FAMILY_ID ${UF2_FAMILY_ID_${IDF_TARGET}})

0 commit comments

Comments
 (0)