-
Notifications
You must be signed in to change notification settings - Fork 0
/
CmakeLists.txt
239 lines (227 loc) · 12 KB
/
CmakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
cmake_minimum_required(VERSION 3.5)
# Setting compiler - set these path accordingly to your compiler
set(COMPILER_PATH "C:/Tool/arm-gnu-gcc-1.12")
set(CMAKE_C_COMPILER "${COMPILER_PATH}/bin/arm-none-eabi-gcc.exe")
set(CMAKE_CXX_COMPILER "${COMPILER_PATH}/bin/arm-none-eabi-g++.exe")
set(COMPILER_INCLUDE "${COMPILER_PATH}/bin/arm-none-eabi/include")
set(OBJCOPY "${COMPILER_PATH}/bin/arm-none-eabi-objcopy.exe")
# set this path to be your SDK path
set(SDK_ROOT "C:/Users/Walas/Downloads/nrf5_sdk_17.1.0_ddde560/nRF5_SDK_17.1.0_ddde560")
# Setting Linker
set(LINKER_SCRIPT "ble_app_blinky_gcc_nrf52.ld")
################################################################# THIS SHOULD BE FINE #################################################################
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_SYSTEM_PROCESSOR "ARM")
set(PROJECT_NAME ble_app_blinky_pca10040e_s112)
set(TARGETS nrf52832_xxaa)
#fixes missing links to __exit __sbrk
set(CMAKE_C_COMPILER_FORCED TRUE)
set(CMAKE_CXX_COMPILER_FORCED TRUE)
message(STATUS "compiler in use: ${CMAKE_C_COMPILER}")
# Setting SDK
set(STACK_SIZE "-D__STACK_SIZE=8192")
set(HEAP_SIZE "-D__STACK_SIZE=8192")
##TODO: check when it is fixed https://github.com/micropython/micropython/issues/8685 [reqs work around with -Wno-array-bounds]
set(CMAKE_C_FLAGS "-g3 -ggdb -DAPP_TIMER_V2 -DAPP_TIMER_V2_RTC1_ENABLED -DBOARD_PCA10040 -DCONFIG_GPIO_AS_PINRESET -DFLOAT_ABI_HARD -DNRF52832_XXAA -DNRF_SD_BLE_API_VERSION=7 -DS132 -DSOFTDEVICE_PRESENT -mcpu=cortex-m4 -mthumb -mabi=aapcs -Wall -Werror -Wno-array-bounds -mfloat-abi=hard -mfpu=fpv4-sp-d16 -ffunction-sections -fdata-sections -fno-strict-aliasing -fno-builtin -fshort-enums ${HEAP_SIZE} ${STACK_SIZE}")
set(CMAKE_ASM_FLAGS "-g3 -ggdb -mcpu=cortex-m4 -mthumb -mabi=aapcs -mfloat-abi=hard -mfpu=fpv4-sp-d16 -DAPP_TIMER_V2 -DAPP_TIMER_V2_RTC1_ENABLED -DBOARD_PCA10056 -DCONFIG_GPIO_AS_PINRESET -DFLOAT_ABI_HARD -DNRF52832_XXAA -DNRF_SD_BLE_API_VERSION=7 -DS132 -DSOFTDEVICE_PRESENT ${HEAP_SIZE} ${STACK_SIZE}")
set(LDFLAGS "-O3 -g3 -mthumb -mabi=aapcs -L${SDK_ROOT}/modules/nrfx/mdk -T${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_SCRIPT} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs --specs=nosys.specs -Wl,--gc-sections -lc -lnosys -lm")
# set(LIB_FILES "-lc -lnosys -lm")
project(LedDemo.elf LANGUAGES C CXX ASM)
add_executable(LedDemo.elf
main.c
sdk_config.h
${SDK_ROOT}/modules/nrfx/mdk/gcc_startup_nrf52.S
${SDK_ROOT}/components/libraries/log/src/nrf_log_backend_rtt.c
${SDK_ROOT}/components/libraries/log/src/nrf_log_backend_serial.c
${SDK_ROOT}/components/libraries/log/src/nrf_log_backend_uart.c
${SDK_ROOT}/components/libraries/log/src/nrf_log_default_backends.c
${SDK_ROOT}/components/libraries/log/src/nrf_log_frontend.c
${SDK_ROOT}/components/libraries/log/src/nrf_log_str_formatter.c
${SDK_ROOT}/components/libraries/button/app_button.c
${SDK_ROOT}/components/libraries/util/app_error.c
${SDK_ROOT}/components/libraries/util/app_error_handler_gcc.c
${SDK_ROOT}/components/libraries/util/app_error_weak.c
${SDK_ROOT}/components/libraries/scheduler/app_scheduler.c
${SDK_ROOT}/components/libraries/timer/app_timer2.c
${SDK_ROOT}/components/libraries/util/app_util_platform.c
${SDK_ROOT}/components/libraries/timer/drv_rtc.c
${SDK_ROOT}/components/libraries/hardfault/hardfault_implementation.c
${SDK_ROOT}/components/libraries/util/nrf_assert.c
${SDK_ROOT}/components/libraries/atomic_fifo/nrf_atfifo.c
${SDK_ROOT}/components/libraries/atomic_flags/nrf_atflags.c
${SDK_ROOT}/components/libraries/atomic/nrf_atomic.c
${SDK_ROOT}/components/libraries/balloc/nrf_balloc.c
${SDK_ROOT}/external/fprintf/nrf_fprintf.c
${SDK_ROOT}/external/fprintf/nrf_fprintf_format.c
${SDK_ROOT}/components/libraries/memobj/nrf_memobj.c
${SDK_ROOT}/components/libraries/pwr_mgmt/nrf_pwr_mgmt.c
${SDK_ROOT}/components/libraries/ringbuf/nrf_ringbuf.c
${SDK_ROOT}/components/libraries/experimental_section_vars/nrf_section_iter.c
${SDK_ROOT}/components/libraries/sortlist/nrf_sortlist.c
${SDK_ROOT}/components/libraries/strerror/nrf_strerror.c
${SDK_ROOT}/modules/nrfx/mdk/system_nrf52.c
${SDK_ROOT}/components/boards/boards.c
${SDK_ROOT}/integration/nrfx/legacy/nrf_drv_clock.c
${SDK_ROOT}/integration/nrfx/legacy/nrf_drv_uart.c
${SDK_ROOT}/modules/nrfx/soc/nrfx_atomic.c
${SDK_ROOT}/modules/nrfx/drivers/src/nrfx_clock.c
${SDK_ROOT}/modules/nrfx/drivers/src/nrfx_gpiote.c
${SDK_ROOT}/modules/nrfx/drivers/src/prs/nrfx_prs.c
${SDK_ROOT}/modules/nrfx/drivers/src/nrfx_uart.c
${SDK_ROOT}/modules/nrfx/drivers/src/nrfx_uarte.c
${SDK_ROOT}/external/segger_rtt/SEGGER_RTT.c
${SDK_ROOT}/external/segger_rtt/SEGGER_RTT_Syscalls_GCC.c
${SDK_ROOT}/external/segger_rtt/SEGGER_RTT_printf.c
${SDK_ROOT}/components/ble/common/ble_advdata.c
${SDK_ROOT}/components/ble/common/ble_conn_params.c
${SDK_ROOT}/components/ble/common/ble_conn_state.c
${SDK_ROOT}/components/ble/common/ble_srv_common.c
${SDK_ROOT}/components/ble/nrf_ble_gatt/nrf_ble_gatt.c
${SDK_ROOT}/components/ble/nrf_ble_qwr/nrf_ble_qwr.c
${SDK_ROOT}/external/utf_converter/utf.c
${SDK_ROOT}/components/ble/ble_services/ble_lbs/ble_lbs.c
${SDK_ROOT}/components/softdevice/common/nrf_sdh.c
${SDK_ROOT}/components/softdevice/common/nrf_sdh_ble.c
${SDK_ROOT}/components/softdevice/common/nrf_sdh_soc.c
)
include_directories(LedDemo.elf
.
${COMPILER_INCLUDE}
${SDK_ROOT}/components/nfc/ndef/generic/message
${SDK_ROOT}/components/nfc/t2t_lib
${SDK_ROOT}/components/nfc/t4t_parser/hl_detection_procedure
${SDK_ROOT}/components/ble/ble_services/ble_ancs_c
${SDK_ROOT}/components/ble/ble_services/ble_ias_c
${SDK_ROOT}/components/libraries/pwm
${SDK_ROOT}/components/softdevice/s132/headers/nrf52
${SDK_ROOT}/components/libraries/usbd/class/cdc/acm
${SDK_ROOT}/components/libraries/usbd/class/hid/generic
${SDK_ROOT}/components/libraries/usbd/class/msc
${SDK_ROOT}/components/libraries/usbd/class/hid
${SDK_ROOT}/modules/nrfx/hal
${SDK_ROOT}/components/nfc/ndef/conn_hand_parser/le_oob_rec_parser
${SDK_ROOT}/components/libraries/log
${SDK_ROOT}/components/ble/ble_services/ble_gls
${SDK_ROOT}/components/libraries/fstorage
${SDK_ROOT}/components/nfc/ndef/text
${SDK_ROOT}/components/libraries/mutex
${SDK_ROOT}/components/libraries/gpiote
${SDK_ROOT}/components/libraries/bootloader/ble_dfu
${SDK_ROOT}/components/nfc/ndef/connection_handover/common
${SDK_ROOT}/components/boards
${SDK_ROOT}/components/nfc/ndef/generic/record
${SDK_ROOT}/components/nfc/t4t_parser/cc_file
${SDK_ROOT}/components/ble/ble_advertising
${SDK_ROOT}/external/utf_converter
${SDK_ROOT}/components/ble/ble_services/ble_bas_c
${SDK_ROOT}/modules/nrfx/drivers/include
${SDK_ROOT}/components/libraries/experimental_task_manager
${SDK_ROOT}/components/ble/ble_services/ble_hrs_c
${SDK_ROOT}/components/nfc/ndef/connection_handover/le_oob_rec
${SDK_ROOT}/components/libraries/queue
${SDK_ROOT}/components/libraries/pwr_mgmt
${SDK_ROOT}/components/ble/ble_dtm
${SDK_ROOT}/components/toolchain/cmsis/include
${SDK_ROOT}/components/ble/ble_services/ble_rscs_c
${SDK_ROOT}/components/ble/common
${SDK_ROOT}/components/ble/ble_services/ble_lls
${SDK_ROOT}/components/nfc/platform
${SDK_ROOT}/components/nfc/ndef/connection_handover/ac_rec
${SDK_ROOT}/components/ble/ble_services/ble_bas
${SDK_ROOT}/components/libraries/mpu
${SDK_ROOT}/components/libraries/experimental_section_vars
${SDK_ROOT}/components/softdevice/s132/headers
${SDK_ROOT}/components/ble/ble_services/ble_ans_c
${SDK_ROOT}/components/libraries/slip
${SDK_ROOT}/components/libraries/delay
${SDK_ROOT}/components/libraries/csense_drv
${SDK_ROOT}/components/libraries/memobj
${SDK_ROOT}/components/ble/ble_services/ble_nus_c
${SDK_ROOT}/components/softdevice/common
${SDK_ROOT}/components/ble/ble_services/ble_ias
${SDK_ROOT}/components/libraries/usbd/class/hid/mouse
${SDK_ROOT}/components/libraries/low_power_pwm
${SDK_ROOT}/components/nfc/ndef/conn_hand_parser/ble_oob_advdata_parser
${SDK_ROOT}/components/ble/ble_services/ble_dfu
${SDK_ROOT}/external/fprintf
${SDK_ROOT}/components/libraries/svc
${SDK_ROOT}/components/libraries/atomic
${SDK_ROOT}/components
${SDK_ROOT}/components/libraries/scheduler
${SDK_ROOT}/components/libraries/cli
${SDK_ROOT}/components/ble/ble_services/ble_lbs
${SDK_ROOT}/components/ble/ble_services/ble_hts
${SDK_ROOT}/components/libraries/crc16
${SDK_ROOT}/components/nfc/t4t_parser/apdu
${SDK_ROOT}/components/libraries/util
${SDK_ROOT}/components/libraries/usbd/class/cdc
${SDK_ROOT}/components/libraries/csense
${SDK_ROOT}/components/libraries/balloc
${SDK_ROOT}/components/libraries/ecc
${SDK_ROOT}/components/libraries/hardfault
${SDK_ROOT}/components/ble/ble_services/ble_cscs
${SDK_ROOT}/components/libraries/hci
${SDK_ROOT}/components/libraries/timer
${SDK_ROOT}/integration/nrfx
${SDK_ROOT}/components/nfc/t4t_parser/tlv
${SDK_ROOT}/components/libraries/sortlist
${SDK_ROOT}/components/libraries/spi_mngr
${SDK_ROOT}/components/libraries/led_softblink
${SDK_ROOT}/components/nfc/ndef/conn_hand_parser
${SDK_ROOT}/components/libraries/sdcard
${SDK_ROOT}/components/nfc/ndef/parser/record
${SDK_ROOT}/modules/nrfx/mdk
${SDK_ROOT}/components/ble/ble_services/ble_cts_c
${SDK_ROOT}/components/ble/ble_services/ble_nus
${SDK_ROOT}/components/libraries/twi_mngr
${SDK_ROOT}/components/ble/ble_services/ble_hids
${SDK_ROOT}/components/libraries/strerror
${SDK_ROOT}/components/libraries/crc32
${SDK_ROOT}/components/nfc/ndef/connection_handover/ble_oob_advdata
${SDK_ROOT}/components/nfc/t2t_parser
${SDK_ROOT}/components/nfc/ndef/connection_handover/ble_pair_msg
${SDK_ROOT}/components/libraries/usbd/class/audio
${SDK_ROOT}/components/nfc/t4t_lib
${SDK_ROOT}/components/ble/peer_manager
${SDK_ROOT}/components/libraries/mem_manager
${SDK_ROOT}/components/libraries/ringbuf
${SDK_ROOT}/components/ble/ble_services/ble_tps
${SDK_ROOT}/components/nfc/ndef/parser/message
${SDK_ROOT}/components/ble/ble_services/ble_dis
${SDK_ROOT}/components/nfc/ndef/uri
${SDK_ROOT}/components/ble/nrf_ble_gatt
${SDK_ROOT}/components/ble/nrf_ble_qwr
${SDK_ROOT}/components/libraries/gfx
${SDK_ROOT}/components/libraries/button
${SDK_ROOT}/modules/nrfx
${SDK_ROOT}/components/libraries/twi_sensor
${SDK_ROOT}/integration/nrfx/legacy
${SDK_ROOT}/components/libraries/usbd/class/hid/kbd
${SDK_ROOT}/components/nfc/ndef/connection_handover/ep_oob_rec
${SDK_ROOT}/external/segger_rtt
${SDK_ROOT}/components/libraries/atomic_fifo
${SDK_ROOT}/components/ble/ble_services/ble_lbs_c
${SDK_ROOT}/components/nfc/ndef/connection_handover/ble_pair_lib
${SDK_ROOT}/components/libraries/crypto
${SDK_ROOT}/components/ble/ble_racp
${SDK_ROOT}/components/libraries/fds
${SDK_ROOT}/components/nfc/ndef/launchapp
${SDK_ROOT}/components/libraries/atomic_flags
${SDK_ROOT}/components/ble/ble_services/ble_hrs
${SDK_ROOT}/components/ble/ble_services/ble_rscs
${SDK_ROOT}/components/nfc/ndef/connection_handover/hs_rec
${SDK_ROOT}/components/libraries/usbd
${SDK_ROOT}/components/nfc/ndef/conn_hand_parser/ac_rec_parser
${SDK_ROOT}/components/libraries/stack_guard
${SDK_ROOT}/components/libraries/log/src
)
set_target_properties(LedDemo.elf PROPERTIES COMPILE_FLAGS ${CMAKE_ASM_FLAGS})
target_link_libraries(LedDemo.elf PRIVATE ${LDFLAGS} c nosys m)
set(HEX_FILE ${PROJECT_SOURCE_DIR}/build/LedDemo.hex)
set(BIN_FILE ${PROJECT_SOURCE_DIR}/build/LedDemo.bin)
add_custom_command(TARGET LedDemo.elf
POST_BUILD
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${OBJCOPY} ARGS -O binary LedDemo.elf ${BIN_FILE}
COMMAND ${OBJCOPY} ARGS -O ihex LedDemo.elf ${HEX_FILE}
)