Skip to content

Commit e252264

Browse files
Add debug and release build versions (#171)
1 parent e3543f0 commit e252264

File tree

5 files changed

+107
-22
lines changed

5 files changed

+107
-22
lines changed

.github/scripts/ci_tests.sh

Lines changed: 95 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,22 @@ function sample_build() {
3333
local vendor=$1
3434
local board=$2
3535
local outdir=$3
36+
local buildver=$4
3637

3738
if [ $vendor == "ESPRESSIF" ]
3839
then
39-
idf.py build -C ./demos/projects/ESPRESSIF/$board
40+
idf.py build -DCMAKE_BUILD_TYPE=$buildver -C ./demos/projects/ESPRESSIF/$board
41+
echo -e "::group::Print Size for $board $buildver"
42+
ninja -C ./demos/projects/ESPRESSIF/$board/build size-components
4043
else
41-
cmake -G Ninja -DBOARD=$board -DVENDOR=$vendor -B$outdir -DFREERTOS_PATH=$TEST_FREERTOS_SRC .
42-
cmake --build $outdir
44+
cmake -G Ninja -DBOARD=$board -DVENDOR=$vendor -B$outdir -DFREERTOS_PATH=$TEST_FREERTOS_SRC -DCMAKE_BUILD_TYPE=$buildver .
45+
cmake --build $outdir | tee build.txt
4346
fi
4447
}
4548

4649
function fetch_freertos()
4750
{
48-
if [ $FREERTOS_FETCHED == 0 ]
51+
if [ ! -d "`pwd`/libs/FreeRTOS" ]
4952
then
5053
$TEST_SCRIPT_DIR/fetch_freertos.sh $TEST_FREERTOS_SRC
5154
FREERTOS_FETCHED=1
@@ -56,44 +59,119 @@ for arg in $RUN_BOARDS_BUILD
5659
do
5760
case "$arg" in
5861
"-esp")
59-
echo -e "::group::Building sample for ESPRESSIF ESP32 port"
60-
sample_build "ESPRESSIF" "esp32" "build"
62+
echo -e "::group::Building sample for ESPRESSIF ESP32 port - Debug"
63+
sample_build "ESPRESSIF" "esp32" "build" "Debug"
6164
exit_if_binary_does_not_exist "./demos/projects/ESPRESSIF/esp32/build" "azure_iot_freertos_esp32.bin"
62-
sample_build "ESPRESSIF" "aziotkit" "build"
65+
sample_build "ESPRESSIF" "aziotkit" "build" "Debug"
66+
exit_if_binary_does_not_exist "./demos/projects/ESPRESSIF/aziotkit/build" "azure_iot_freertos_esp32.bin"
67+
68+
rm -rf build
69+
70+
echo -e "::group::Building sample for ESPRESSIF ESP32 port - Release"
71+
sample_build "ESPRESSIF" "esp32" "build" "Release"
72+
exit_if_binary_does_not_exist "./demos/projects/ESPRESSIF/esp32/build" "azure_iot_freertos_esp32.bin"
73+
sample_build "ESPRESSIF" "aziotkit" "build" "Release"
6374
exit_if_binary_does_not_exist "./demos/projects/ESPRESSIF/aziotkit/build" "azure_iot_freertos_esp32.bin"
6475
;;
6576
"-nxp")
6677
fetch_freertos
6778

68-
echo -e "::group::Building sample for NXP mimxrt1060 port"
69-
sample_build "NXP" "mimxrt1060" "build_nxp_mimxrt1060"
79+
echo -e "::group::Building sample for NXP mimxrt1060 port - Debug"
80+
sample_build "NXP" "mimxrt1060" "build_nxp_mimxrt1060" "Debug"
7081
exit_if_binary_does_not_exist "build_nxp_mimxrt1060" "iot-middleware-sample.elf"
7182
exit_if_binary_does_not_exist "build_nxp_mimxrt1060" "iot-middleware-sample-pnp.elf"
83+
84+
echo -e "::group::Print Size for Debug"
85+
grep -A9 "Linking C executable demos/projects/NXP/mimxrt1060/iot-middleware-sample.elf" build.txt
86+
grep -A9 "Linking C executable demos/projects/NXP/mimxrt1060/iot-middleware-sample-pnp.elf" build.txt
87+
88+
rm -rf build_nxp_mimxrt1060
89+
90+
echo -e "::group::Building sample for NXP mimxrt1060 port - Release"
91+
sample_build "NXP" "mimxrt1060" "build_nxp_mimxrt1060" "Release"
92+
exit_if_binary_does_not_exist "build_nxp_mimxrt1060" "iot-middleware-sample.elf"
93+
exit_if_binary_does_not_exist "build_nxp_mimxrt1060" "iot-middleware-sample-pnp.elf"
94+
95+
echo -e "::group::Print Size for Release"
96+
grep -A9 "Linking C executable demos/projects/NXP/mimxrt1060/iot-middleware-sample.elf" build.txt
97+
grep -A9 "Linking C executable demos/projects/NXP/mimxrt1060/iot-middleware-sample-pnp.elf" build.txt
7298
;;
7399
"-st")
74100
fetch_freertos
75101

76-
echo -e "::group::Building sample for ST b-l475e-iot01a port"
77-
sample_build "ST" "b-l475e-iot01a" "build_st_b-l475e-iot01a"
102+
# STM32 BL475E-IoT1A
103+
echo -e "::group::Building sample for ST b-l475e-iot01a port - Debug"
104+
sample_build "ST" "b-l475e-iot01a" "build_st_b-l475e-iot01a" "Debug"
105+
exit_if_binary_does_not_exist "build_st_b-l475e-iot01a" "iot-middleware-sample.elf"
106+
exit_if_binary_does_not_exist "build_st_b-l475e-iot01a" "iot-middleware-sample-pnp.elf"
107+
exit_if_binary_does_not_exist "build_st_b-l475e-iot01a" "iot-middleware-sample-gsg.elf"
108+
echo -e "::group::Print Size for Debug"
109+
grep -A5 "Linking C executable demos/projects/ST/b-l475e-iot01a/iot-middleware-sample.elf" build.txt
110+
grep -A5 "Linking C executable demos/projects/ST/b-l475e-iot01a/iot-middleware-sample-pnp.elf" build.txt
111+
grep -A5 "Linking C executable demos/projects/ST/b-l475e-iot01a/iot-middleware-sample-gsg.elf" build.txt
112+
113+
rm -rf build_st_b-l475e-iot01a
114+
115+
echo -e "::group::Building sample for ST b-l475e-iot01a port - Release"
116+
sample_build "ST" "b-l475e-iot01a" "build_st_b-l475e-iot01a" "Release"
78117
exit_if_binary_does_not_exist "build_st_b-l475e-iot01a" "iot-middleware-sample.elf"
79118
exit_if_binary_does_not_exist "build_st_b-l475e-iot01a" "iot-middleware-sample-pnp.elf"
80119
exit_if_binary_does_not_exist "build_st_b-l475e-iot01a" "iot-middleware-sample-gsg.elf"
120+
echo -e "::group::Print Size for Release"
121+
grep -A5 "Linking C executable demos/projects/ST/b-l475e-iot01a/iot-middleware-sample.elf" build.txt
122+
grep -A5 "Linking C executable demos/projects/ST/b-l475e-iot01a/iot-middleware-sample-pnp.elf" build.txt
123+
grep -A5 "Linking C executable demos/projects/ST/b-l475e-iot01a/iot-middleware-sample-gsg.elf" build.txt
81124

82-
echo -e "::group::Building sample for ST stm32h745i-disco port"
83-
sample_build "ST" "stm32h745i-disco" "build_st_stm32h745i-disco"
125+
# STM32 H745 Discovery
126+
echo -e "::group::Building sample for ST stm32h745i-disco port - Debug"
127+
sample_build "ST" "stm32h745i-disco" "build_st_stm32h745i-disco" "Debug"
84128
exit_if_binary_does_not_exist "build_st_stm32h745i-disco" "iot-middleware-sample.elf"
85129
exit_if_binary_does_not_exist "build_st_stm32h745i-disco" "iot-middleware-sample-pnp.elf"
130+
echo -e "::group::Print Size for Debug"
131+
grep -A5 "Linking C executable demos/projects/ST/stm32h745i-disco/cm7/iot-middleware-sample.elf" build.txt
132+
grep -A5 "Linking C executable demos/projects/ST/stm32h745i-disco/cm7/iot-middleware-sample-pnp.elf" build.txt
133+
134+
rm -rf build_st_stm32h745i-disco
86135

87-
echo -e "::group::Building sample for ST b-l4s5i-iot01a port"
88-
sample_build "ST" "b-l4s5i-iot01a" "build_st_b-l4s5i-iot01a"
136+
echo -e "::group::Building sample for ST stm32h745i-disco port - Release"
137+
sample_build "ST" "stm32h745i-disco" "build_st_stm32h745i-disco" "Release"
138+
exit_if_binary_does_not_exist "build_st_stm32h745i-disco" "iot-middleware-sample.elf"
139+
exit_if_binary_does_not_exist "build_st_stm32h745i-disco" "iot-middleware-sample-pnp.elf"
140+
echo -e "::group::Print Size for Release"
141+
grep -A5 "Linking C executable demos/projects/ST/stm32h745i-disco/cm7/iot-middleware-sample.elf" build.txt
142+
grep -A5 "Linking C executable demos/projects/ST/stm32h745i-disco/cm7/iot-middleware-sample-pnp.elf" build.txt
143+
144+
# STM32 BL4S5I-IoT1A
145+
echo -e "::group::Building sample for ST b-l4s5i-iot01a port - Debug"
146+
sample_build "ST" "b-l4s5i-iot01a" "build_st_b-l4s5i-iot01a" "Debug"
89147
exit_if_binary_does_not_exist "build_st_b-l4s5i-iot01a" "iot-middleware-sample.elf"
90148
exit_if_binary_does_not_exist "build_st_b-l4s5i-iot01a" "iot-middleware-sample-pnp.elf"
149+
echo -e "::group::Print Size for Debug"
150+
grep -A5 "Linking C executable demos/projects/ST/b-l4s5i-iot01a/iot-middleware-sample.elf" build.txt
151+
grep -A5 "Linking C executable demos/projects/ST/b-l4s5i-iot01a/iot-middleware-sample-pnp.elf" build.txt
152+
153+
rm -rf build_st_b-l4s5i-iot01a
154+
155+
echo -e "::group::Building sample for ST b-l4s5i-iot01a port - Release"
156+
sample_build "ST" "b-l4s5i-iot01a" "build_st_b-l4s5i-iot01a" "Release"
157+
exit_if_binary_does_not_exist "build_st_b-l4s5i-iot01a" "iot-middleware-sample.elf"
158+
exit_if_binary_does_not_exist "build_st_b-l4s5i-iot01a" "iot-middleware-sample-pnp.elf"
159+
echo -e "::group::Print Size for Release"
160+
grep -A5 "Linking C executable demos/projects/ST/b-l4s5i-iot01a/iot-middleware-sample.elf" build.txt
161+
grep -A5 "Linking C executable demos/projects/ST/b-l4s5i-iot01a/iot-middleware-sample-pnp.elf" build.txt
91162
;;
92163
"-pc")
93164
fetch_freertos
94165

95-
echo -e "::group::Building sample for linux port"
96-
sample_build "PC" "linux" "build_pc_linux"
166+
echo -e "::group::Building sample for linux port - Debug"
167+
sample_build "PC" "linux" "build_pc_linux" "Debug"
168+
exit_if_binary_does_not_exist "build_pc_linux" "iot-middleware-sample"
169+
exit_if_binary_does_not_exist "build_pc_linux" "iot-middleware-sample-pnp"
170+
171+
rm -rf build_pc_linux
172+
173+
echo -e "::group::Building sample for linux port - Release"
174+
sample_build "PC" "linux" "build_pc_linux" "Release"
97175
exit_if_binary_does_not_exist "build_pc_linux" "iot-middleware-sample"
98176
exit_if_binary_does_not_exist "build_pc_linux" "iot-middleware-sample-pnp"
99177
;;

.github/workflows/ci_tests_linux.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,11 @@ jobs:
1919
uses: snickerbockers/submodules-init@v4
2020
- name: Configure
2121
run: .github/scripts/install_software.sh
22-
- name: Check-in Tests
23-
run: sudo bash -c ".github/scripts/ci_tests.sh -st -nxp -pc"
24-
- name: Build Esp32 Samples
22+
- name: Build PC Samples
23+
run: sudo bash -c ".github/scripts/ci_tests.sh -pc"
24+
- name: Build NXP Samples
25+
run: sudo bash -c ".github/scripts/ci_tests.sh -nxp"
26+
- name: Build ST Samples
27+
run: sudo bash -c ".github/scripts/ci_tests.sh -st"
28+
- name: Build ESP32 Samples
2529
run: docker run -v "${PWD}:/iot-middleware-freertos-samples" -w /iot-middleware-freertos-samples espressif/idf:v4.3 .github/scripts/ci_tests.sh -esp

demos/projects/NXP/mimxrt1060/gcc_flags.cmake

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ set(CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS} " \
4242
-fdata-sections \
4343
-ffreestanding \
4444
-fno-builtin -mthumb -mapcs \
45-
-Xlinker --gc-sections \
45+
-Xlinker --gc-sections \
46+
-Xlinker -print-memory-usage \
4647
-Xlinker -static \
4748
-Xlinker -z -Xlinker muldefs \
4849
-Xlinker --whole-archive \

demos/projects/ST/b-l475e-iot01a/gcc_flags.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ set(MCU_C_FLAGS -mcpu=cortex-m4
55
-ffunction-sections CACHE INTERNAL "MCU build flags")
66
string (REPLACE ";" " " MCU_C_FLAGS_STR "${MCU_C_FLAGS}")
77
set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} ${MCU_C_FLAGS_STR})
8-
set(CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS} "-Wl,--gc-sections \
8+
set(CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS} "-Wl,--gc-sections,-print-memory-usage \
99
-static -z muldefs -mthumb -Wl,--start-group -lc -lm -Wl,--end-group")
1010

1111
function(add_map_file TARGET_NAME MAP_FILE_NAME)

demos/projects/ST/stm32h745i-disco/cm7/gcc_flags.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ set(MCU_C_FLAGS -mcpu=cortex-m7
55
-mfpu=fpv5-sp-d16 -mfloat-abi=hard CACHE INTERNAL "MCU build flags")
66
string (REPLACE ";" " " MCU_C_FLAGS_STR "${MCU_C_FLAGS}")
77
set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} ${MCU_C_FLAGS_STR})
8+
set(CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS} "-Wl,--gc-sections,-print-memory-usage \
9+
-static -z muldefs -mthumb -Wl,--start-group -lc -lm -Wl,--end-group")
810

911
function(add_map_file TARGET_NAME MAP_FILE_NAME)
1012
target_link_options(${TARGET_NAME} PRIVATE -Wl,-Map=${MAP_FILE_NAME})

0 commit comments

Comments
 (0)