Skip to content

Commit 7bedb10

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

File tree

23 files changed

+111
-82
lines changed

23 files changed

+111
-82
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 & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ project(tinyuf2)
3434

3535
set(ARTIFACT_PATH ${CMAKE_CURRENT_LIST_DIR}/_bin/${BOARD})
3636
execute_process(COMMAND mkdir -p ${ARTIFACT_PATH})
37+
execute_process(COMMAND mkdir -p ${ARTIFACT_PATH}/apps)
3738

3839
# Create post-build script for combined.bin / combined-ota.bin
3940
file(WRITE ${CMAKE_BINARY_DIR}/tinyuf2.postbuild.sh
@@ -73,15 +74,26 @@ add_custom_command(TARGET app POST_BUILD
7374
VERBATIM
7475
)
7576

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

8294
externalproject_add(self_update
8395
SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/apps/self_update
84-
BINARY_DIR ${CMAKE_BINARY_DIR}/self_update
96+
BINARY_DIR ${CMAKE_BINARY_DIR}/apps/self_update
8597
# Modifying the list separator for the arguments, as such, we won't need to manually
8698
# replace the new separator by the default ';' in the subproject
8799
CMAKE_ARGS -DBOARD=${BOARD}
@@ -90,12 +102,14 @@ externalproject_add(self_update
90102
DEPENDS tinyuf2.elf
91103
)
92104

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
105+
externalproject_add(blinky
106+
SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/apps/blinky
107+
BINARY_DIR ${CMAKE_BINARY_DIR}/apps/blinky
108+
# Modifying the list separator for the arguments, as such, we won't need to manually
109+
# replace the new separator by the default ';' in the subproject
110+
CMAKE_ARGS -DBOARD=${BOARD}
111+
INSTALL_COMMAND ""
112+
BUILD_ALWAYS 1
99113
)
100114

101115
# -------------------------------------------------------------
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+
include(${CMAKE_CURRENT_LIST_DIR}/../../boards/${BOARD}/board.cmake)
7+
8+
# Must be set before including IDF project.cmake
9+
set(EXTRA_COMPONENT_DIRS "../../boards" "../../components")
10+
set(SDKCONFIG ${CMAKE_BINARY_DIR}/sdkconfig)
11+
12+
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
13+
14+
add_compile_definitions(
15+
BUILD_APPLICATION
16+
BUILD_NO_TINYUSB
17+
)
18+
19+
project(blinky)
20+
21+
set(ARTIFACT_PATH ${CMAKE_CURRENT_LIST_DIR}/../../_bin/${BOARD})
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 & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,19 @@ include(${CMAKE_CURRENT_LIST_DIR}/../../boards/${BOARD}/board.cmake)
99
set(EXTRA_COMPONENT_DIRS "../../boards" "../../components")
1010
set(SDKCONFIG ${CMAKE_BINARY_DIR}/sdkconfig)
1111

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

15-
add_compile_definitions(TINYUF2_SELF_UPDATE)
14+
add_compile_definitions(
15+
TINYUF2_SELF_UPDATE
16+
BUILD_APPLICATION
17+
BUILD_NO_TINYUSB
18+
)
1619

1720
project(update-tinyuf2)
1821

1922
set(ARTIFACT_PATH ${CMAKE_CURRENT_LIST_DIR}/../../_bin/${BOARD})
2023
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
24+
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
2225
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/update-tinyuf2.uf2 ${ARTIFACT_PATH}/update-tinyuf2.uf2
2326
VERBATIM
2427
)
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: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
set(UF2_FAMILY_ID_esp32s2 0xbfdd4eee)
22
set(UF2_FAMILY_ID_esp32s3 0xc47e5767)
3+
set(UF2_FAMILY_ID ${UF2_FAMILY_ID_${IDF_TARGET}})

0 commit comments

Comments
 (0)