Skip to content

Commit 4e6069d

Browse files
committed
dfu release compiles but not working
1 parent de79f8c commit 4e6069d

7 files changed

Lines changed: 733 additions & 6203 deletions

File tree

apps/firmware/README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ cp _build/secure_bootloader_moko.hex ../../firmware/dfu_images
3333
cd ../../
3434
```
3535

36-
### Compile the firmeare
36+
### Compile the firmware
3737
```
3838
cd firmware/build
3939
make
@@ -56,3 +56,8 @@ Merge the bootloader settings, the bootloader itself, the softdevice and the app
5656
mergehex -m bl_settings.hex secure_bootloader_moko.hex nrf52810_xxaa.hex ../../../nRF5_SDK_17.0.2_d674dde/components/softdevice/s112/hex/s112_nrf52_7.2.0_softdevice.hex --output full_dfu.hex
5757
```
5858

59+
Flash the firmware
60+
```
61+
nrfjprog -f nrf52 --recover; while [ $? != 0 ]; do nrfjprog -f nrf52 --recover; done;
62+
nrfjprog -f nrf52 --program full_dfu.hex --reset
63+
```

apps/firmware/build/Makefile

Lines changed: 63 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ SDK_ROOT := ../../../nRF5_SDK_17.0.2_d674dde
77
PROJ_DIR := ../src
88

99
$(OUTPUT_DIRECTORY)/nrf52810_xxaa.out: \
10-
LINKER_SCRIPT := moko.ld
10+
LINKER_SCRIPT := moko_dfu.ld
1111

1212
# Source files common to all targets
1313
SRC_FILES += \
@@ -18,29 +18,33 @@ SRC_FILES += \
1818
$(SDK_ROOT)/components/libraries/log/src/nrf_log_default_backends.c \
1919
$(SDK_ROOT)/components/libraries/log/src/nrf_log_frontend.c \
2020
$(SDK_ROOT)/components/libraries/log/src/nrf_log_str_formatter.c \
21+
$(SDK_ROOT)/components/boards/boards.c \
22+
$(SDK_ROOT)/modules/nrfx/mdk/system_nrf52810.c \
2123
$(SDK_ROOT)/components/libraries/button/app_button.c \
2224
$(SDK_ROOT)/components/libraries/util/app_error.c \
2325
$(SDK_ROOT)/components/libraries/util/app_error_handler_gcc.c \
2426
$(SDK_ROOT)/components/libraries/util/app_error_weak.c \
2527
$(SDK_ROOT)/components/libraries/scheduler/app_scheduler.c \
2628
$(SDK_ROOT)/components/libraries/timer/app_timer2.c \
2729
$(SDK_ROOT)/components/libraries/util/app_util_platform.c \
30+
$(SDK_ROOT)/components/libraries/crc16/crc16.c \
2831
$(SDK_ROOT)/components/libraries/timer/drv_rtc.c \
29-
$(SDK_ROOT)/components/libraries/hardfault/hardfault_implementation.c \
32+
$(SDK_ROOT)/components/libraries/fds/fds.c \
3033
$(SDK_ROOT)/components/libraries/util/nrf_assert.c \
3134
$(SDK_ROOT)/components/libraries/atomic_fifo/nrf_atfifo.c \
35+
$(SDK_ROOT)/components/libraries/atomic_flags/nrf_atflags.c \
3236
$(SDK_ROOT)/components/libraries/atomic/nrf_atomic.c \
3337
$(SDK_ROOT)/components/libraries/balloc/nrf_balloc.c \
3438
$(SDK_ROOT)/external/fprintf/nrf_fprintf.c \
3539
$(SDK_ROOT)/external/fprintf/nrf_fprintf_format.c \
40+
$(SDK_ROOT)/components/libraries/fstorage/nrf_fstorage.c \
41+
$(SDK_ROOT)/components/libraries/fstorage/nrf_fstorage_sd.c \
3642
$(SDK_ROOT)/components/libraries/memobj/nrf_memobj.c \
3743
$(SDK_ROOT)/components/libraries/pwr_mgmt/nrf_pwr_mgmt.c \
3844
$(SDK_ROOT)/components/libraries/ringbuf/nrf_ringbuf.c \
3945
$(SDK_ROOT)/components/libraries/experimental_section_vars/nrf_section_iter.c \
4046
$(SDK_ROOT)/components/libraries/sortlist/nrf_sortlist.c \
4147
$(SDK_ROOT)/components/libraries/strerror/nrf_strerror.c \
42-
$(SDK_ROOT)/modules/nrfx/mdk/system_nrf52810.c \
43-
$(SDK_ROOT)/components/boards/boards.c \
4448
$(SDK_ROOT)/integration/nrfx/legacy/nrf_drv_clock.c \
4549
$(SDK_ROOT)/integration/nrfx/legacy/nrf_drv_uart.c \
4650
$(SDK_ROOT)/modules/nrfx/soc/nrfx_atomic.c \
@@ -50,128 +54,94 @@ SRC_FILES += \
5054
$(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_uart.c \
5155
$(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_uarte.c \
5256
$(SDK_ROOT)/components/libraries/bsp/bsp.c \
57+
$(SDK_ROOT)/components/libraries/bsp/bsp_btn_ble.c \
5358
$(PROJ_DIR)/ble_stack.c \
5459
$(PROJ_DIR)/openhaystack.c \
5560
$(PROJ_DIR)/main.c \
5661
$(PROJ_DIR)/dfu/ble_dfu_bonded.c \
5762
$(PROJ_DIR)/dfu/ble_dfu_unbonded.c \
5863
$(PROJ_DIR)/dfu/ble_dfu.c \
5964
$(PROJ_DIR)/dfu/nrf_dfu_svci.c \
65+
$(SDK_ROOT)/components/libraries/bootloader/dfu/nrf_dfu_svci.c \
6066
$(SDK_ROOT)/external/segger_rtt/SEGGER_RTT.c \
6167
$(SDK_ROOT)/external/segger_rtt/SEGGER_RTT_Syscalls_GCC.c \
6268
$(SDK_ROOT)/external/segger_rtt/SEGGER_RTT_printf.c \
69+
$(SDK_ROOT)/components/ble/peer_manager/auth_status_tracker.c \
6370
$(SDK_ROOT)/components/ble/common/ble_advdata.c \
71+
$(SDK_ROOT)/components/ble/ble_advertising/ble_advertising.c \
72+
$(SDK_ROOT)/components/ble/common/ble_conn_params.c \
73+
$(SDK_ROOT)/components/ble/common/ble_conn_state.c \
6474
$(SDK_ROOT)/components/ble/common/ble_srv_common.c \
65-
$(SDK_ROOT)/external/utf_converter/utf.c \
75+
$(SDK_ROOT)/components/ble/peer_manager/gatt_cache_manager.c \
76+
$(SDK_ROOT)/components/ble/peer_manager/gatts_cache_manager.c \
77+
$(SDK_ROOT)/components/ble/peer_manager/id_manager.c \
78+
$(SDK_ROOT)/components/ble/nrf_ble_gatt/nrf_ble_gatt.c \
79+
$(SDK_ROOT)/components/ble/nrf_ble_qwr/nrf_ble_qwr.c \
80+
$(SDK_ROOT)/components/ble/peer_manager/peer_data_storage.c \
81+
$(SDK_ROOT)/components/ble/peer_manager/peer_database.c \
82+
$(SDK_ROOT)/components/ble/peer_manager/peer_id.c \
83+
$(SDK_ROOT)/components/ble/peer_manager/peer_manager.c \
84+
$(SDK_ROOT)/components/ble/peer_manager/peer_manager_handler.c \
85+
$(SDK_ROOT)/components/ble/peer_manager/pm_buffer.c \
86+
$(SDK_ROOT)/components/ble/peer_manager/security_dispatcher.c \
87+
$(SDK_ROOT)/components/ble/peer_manager/security_manager.c \
88+
$(SDK_ROOT)/components/ble/ble_services/ble_dfu/ble_dfu.c \
89+
$(SDK_ROOT)/components/ble/ble_services/ble_dfu/ble_dfu_bonded.c \
90+
$(SDK_ROOT)/components/ble/ble_services/ble_dfu/ble_dfu_unbonded.c \
6691
$(SDK_ROOT)/components/softdevice/common/nrf_sdh.c \
6792
$(SDK_ROOT)/components/softdevice/common/nrf_sdh_ble.c \
6893
$(SDK_ROOT)/components/softdevice/common/nrf_sdh_soc.c \
6994

7095
# Include folders common to all targets
7196
INC_FOLDERS += \
72-
$(SDK_ROOT)/components/ble/ble_services/ble_ancs_c \
73-
$(SDK_ROOT)/components/ble/ble_services/ble_ias_c \
74-
$(SDK_ROOT)/components/libraries/pwm \
97+
$(SDK_ROOT)/components \
98+
$(SDK_ROOT)/modules/nrfx/mdk \
99+
$(SDK_ROOT)/components/libraries/scheduler \
75100
$(SDK_ROOT)/components/softdevice/s112/headers/nrf52 \
76-
$(SDK_ROOT)/components/libraries/usbd/class/cdc/acm \
77-
$(SDK_ROOT)/components/libraries/usbd/class/hid/generic \
78-
$(SDK_ROOT)/components/libraries/usbd/class/msc \
79-
$(SDK_ROOT)/components/libraries/usbd/class/hid \
80-
$(SDK_ROOT)/modules/nrfx/hal \
81-
$(SDK_ROOT)/components/libraries/log \
82-
$(SDK_ROOT)/components/ble/ble_services/ble_gls \
83-
$(SDK_ROOT)/components/libraries/fstorage \
84-
$(SDK_ROOT)/components/libraries/mutex \
85-
$(SDK_ROOT)/components/libraries/gpiote \
86-
$(SDK_ROOT)/components/libraries/bootloader/ble_dfu \
87-
$(SDK_ROOT)/components/boards \
88-
$(SDK_ROOT)/components/ble/ble_advertising \
89-
$(SDK_ROOT)/external/utf_converter \
90-
$(SDK_ROOT)/components/ble/ble_services/ble_bas_c \
91-
$(SDK_ROOT)/modules/nrfx/drivers/include \
92-
$(SDK_ROOT)/components/libraries/experimental_task_manager \
93-
$(SDK_ROOT)/components/ble/ble_services/ble_hrs_c \
94-
$(SDK_ROOT)/components/libraries/queue \
95101
$(SDK_ROOT)/components/libraries/pwr_mgmt \
96-
$(SDK_ROOT)/components/ble/ble_dtm \
97-
$(SDK_ROOT)/components/toolchain/cmsis/include \
98-
$(SDK_ROOT)/components/ble/ble_services/ble_rscs_c \
99-
$(SDK_ROOT)/components/ble/common \
100-
$(SDK_ROOT)/components/ble/ble_services/ble_lls \
101-
$(SDK_ROOT)/components/libraries/bsp \
102-
$(SDK_ROOT)/components/ble/ble_services/ble_bas \
103-
$(SDK_ROOT)/components/libraries/mpu \
104-
$(SDK_ROOT)/components/libraries/experimental_section_vars \
105-
$(SDK_ROOT)/components/ble/ble_services/ble_ans_c \
106-
$(SDK_ROOT)/components/libraries/slip \
107-
$(SDK_ROOT)/components/libraries/delay \
108-
$(SDK_ROOT)/components/libraries/csense_drv \
109-
$(SDK_ROOT)/components/libraries/memobj \
110-
$(SDK_ROOT)/components/ble/ble_services/ble_nus_c \
102+
$(SDK_ROOT)/components/libraries/sortlist \
103+
$(SDK_ROOT)/modules/nrfx \
104+
$(SDK_ROOT)/components/libraries/strerror \
111105
$(SDK_ROOT)/components/softdevice/common \
112-
$(SDK_ROOT)/components/ble/ble_services/ble_ias \
113-
$(SDK_ROOT)/components/libraries/usbd/class/hid/mouse \
114-
$(SDK_ROOT)/components/libraries/low_power_pwm \
115-
$(SDK_ROOT)/components/ble/ble_services/ble_dfu \
116-
$(SDK_ROOT)/external/fprintf \
117-
$(SDK_ROOT)/components/libraries/svc \
118-
$(SDK_ROOT)/components/libraries/atomic \
119-
$(SDK_ROOT)/components \
120-
$(SDK_ROOT)/components/libraries/scheduler \
121-
$(SDK_ROOT)/components/libraries/cli \
122-
$(SDK_ROOT)/components/ble/ble_services/ble_lbs \
123-
$(SDK_ROOT)/components/ble/ble_services/ble_hts \
124106
$(SDK_ROOT)/components/libraries/crc16 \
107+
$(SDK_ROOT)/components/libraries/bootloader/dfu \
108+
$(SDK_ROOT)/components/toolchain/cmsis/include \
125109
$(SDK_ROOT)/components/libraries/util \
126110
../config \
127-
$(SDK_ROOT)/components/libraries/usbd/class/cdc \
128-
$(SDK_ROOT)/components/libraries/csense \
111+
$(SDK_ROOT)/components/ble/common \
129112
$(SDK_ROOT)/components/libraries/balloc \
130-
$(SDK_ROOT)/components/libraries/ecc \
131-
$(SDK_ROOT)/components/libraries/hardfault \
132-
$(SDK_ROOT)/components/ble/ble_services/ble_cscs \
133-
$(SDK_ROOT)/components/libraries/hci \
134-
$(SDK_ROOT)/components/libraries/timer \
135-
$(SDK_ROOT)/integration/nrfx \
136-
$(SDK_ROOT)/components/libraries/sortlist \
137-
$(SDK_ROOT)/components/libraries/spi_mngr \
138-
$(SDK_ROOT)/components/softdevice/s112/headers \
139-
$(SDK_ROOT)/components/libraries/led_softblink \
140-
$(SDK_ROOT)/components/libraries/sdcard \
141-
$(SDK_ROOT)/modules/nrfx/mdk \
142-
$(SDK_ROOT)/components/ble/ble_services/ble_cts_c \
143-
$(SDK_ROOT)/components/ble/ble_services/ble_nus \
144-
$(SDK_ROOT)/components/libraries/twi_mngr \
145-
$(SDK_ROOT)/components/ble/ble_services/ble_hids \
146-
$(SDK_ROOT)/components/libraries/strerror \
147-
$(SDK_ROOT)/components/libraries/crc32 \
148-
$(SDK_ROOT)/components/libraries/usbd/class/audio \
149113
$(SDK_ROOT)/components/ble/peer_manager \
150-
$(SDK_ROOT)/components/libraries/mem_manager \
151114
$(SDK_ROOT)/components/libraries/ringbuf \
152-
$(SDK_ROOT)/components/ble/ble_services/ble_tps \
153-
$(SDK_ROOT)/components/ble/ble_services/ble_dis \
115+
$(SDK_ROOT)/modules/nrfx/hal \
116+
$(SDK_ROOT)/components/libraries/bsp \
117+
$(SDK_ROOT)/components/libraries/timer \
118+
$(SDK_ROOT)/external/segger_rtt \
119+
$(SDK_ROOT)/components/libraries/log \
120+
$(SDK_ROOT)/components/ble/nrf_ble_gatt \
154121
$(SDK_ROOT)/components/ble/nrf_ble_qwr \
155-
$(SDK_ROOT)/components/libraries/gfx \
156122
$(SDK_ROOT)/components/libraries/button \
157-
$(SDK_ROOT)/modules/nrfx \
158-
$(SDK_ROOT)/components/libraries/twi_sensor \
123+
$(SDK_ROOT)/components/libraries/bootloader \
124+
$(SDK_ROOT)/components/libraries/fstorage \
125+
$(SDK_ROOT)/components/libraries/experimental_section_vars \
159126
$(SDK_ROOT)/integration/nrfx/legacy \
160-
$(SDK_ROOT)/components/libraries/usbd/class/hid/kbd \
161-
$(SDK_ROOT)/external/segger_rtt \
127+
$(SDK_ROOT)/components/libraries/mutex \
128+
$(SDK_ROOT)/components/libraries/delay \
129+
$(SDK_ROOT)/components/libraries/bootloader/ble_dfu \
162130
$(SDK_ROOT)/components/libraries/atomic_fifo \
163-
$(SDK_ROOT)/components/ble/ble_services/ble_lbs_c \
164-
$(SDK_ROOT)/components/libraries/crypto \
165-
$(SDK_ROOT)/components/ble/ble_racp \
131+
$(SDK_ROOT)/components/libraries/atomic \
132+
$(SDK_ROOT)/components/boards \
133+
$(SDK_ROOT)/components/libraries/memobj \
134+
$(SDK_ROOT)/integration/nrfx \
166135
$(SDK_ROOT)/components/libraries/fds \
167-
$(SDK_ROOT)/components/ble/ble_services/ble_hrs \
168-
$(SDK_ROOT)/components/ble/ble_services/ble_rscs \
169-
$(SDK_ROOT)/components/libraries/usbd \
170-
$(SDK_ROOT)/components/libraries/stack_guard \
136+
$(SDK_ROOT)/components/ble/ble_advertising \
137+
$(SDK_ROOT)/components/libraries/atomic_flags \
138+
$(SDK_ROOT)/components/softdevice/s112/headers \
139+
$(SDK_ROOT)/modules/nrfx/drivers/include \
140+
$(SDK_ROOT)/components/ble/ble_services/ble_dfu \
141+
$(SDK_ROOT)/external/fprintf \
142+
$(SDK_ROOT)/components/libraries/svc \
171143
$(SDK_ROOT)/components/libraries/log/src \
172-
$(SDK_ROOT)/components/libraries/bootloader \
173-
$(SDK_ROOT)/components/libraries/bootloader/dfu \
174-
$(SDK_ROOT)/components/libraries/bootloader/ble_dfu \
144+
175145

176146
# Libraries common to all targets
177147
LIB_FILES += \

apps/firmware/build/secure_bootloader_gcc_nrf52.ld renamed to apps/firmware/build/moko_dfu.ld

Lines changed: 29 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,9 @@ GROUP(-lgcc -lc -lnosys)
55

66
MEMORY
77
{
8-
FLASH (rx) : ORIGIN = 0x28000, LENGTH = 0x6000
9-
RAM (rwx) : ORIGIN = 0x20002390, LENGTH = 0x3c70
10-
uicr_bootloader_start_address (r) : ORIGIN = 0x00000FF8, LENGTH = 0x4
11-
uicr_mbr_params_page (r) : ORIGIN = 0x00000FFC, LENGTH = 0x4
12-
mbr_params_page (r) : ORIGIN = 0x0002E000, LENGTH = 0x1000
13-
bootloader_settings_page (r) : ORIGIN = 0x0002F000, LENGTH = 0x1000
8+
FLASH (rx) : ORIGIN = 0x19000, LENGTH = 0xf000
9+
RAM (rwx) : ORIGIN = 0x20001a50, LENGTH = 0x45b0
10+
uicr_bootloader_start_address (r) : ORIGIN = 0x10001014, LENGTH = 0x4
1411
}
1512

1613
SECTIONS
@@ -22,27 +19,6 @@ SECTIONS
2219
KEEP(*(SORT(.uicr_bootloader_start_address*)))
2320
PROVIDE(__stop_uicr_bootloader_start_address = .);
2421
} > uicr_bootloader_start_address
25-
. = ALIGN(4);
26-
.uicr_mbr_params_page :
27-
{
28-
PROVIDE(__start_uicr_mbr_params_page = .);
29-
KEEP(*(SORT(.uicr_mbr_params_page*)))
30-
PROVIDE(__stop_uicr_mbr_params_page = .);
31-
} > uicr_mbr_params_page
32-
. = ALIGN(4);
33-
.mbr_params_page(NOLOAD) :
34-
{
35-
PROVIDE(__start_mbr_params_page = .);
36-
KEEP(*(SORT(.mbr_params_page*)))
37-
PROVIDE(__stop_mbr_params_page = .);
38-
} > mbr_params_page
39-
. = ALIGN(4);
40-
.bootloader_settings_page(NOLOAD) :
41-
{
42-
PROVIDE(__start_bootloader_settings_page = .);
43-
KEEP(*(SORT(.bootloader_settings_page*)))
44-
PROVIDE(__stop_bootloader_settings_page = .);
45-
} > bootloader_settings_page
4622
}
4723

4824
SECTIONS
@@ -77,47 +53,29 @@ SECTIONS
7753
.mem_section_dummy_rom :
7854
{
7955
}
80-
.crypto_data :
81-
{
82-
PROVIDE(__start_crypto_data = .);
83-
KEEP(*(SORT(.crypto_data*)))
84-
PROVIDE(__stop_crypto_data = .);
85-
} > FLASH
86-
.log_const_data :
87-
{
88-
PROVIDE(__start_log_const_data = .);
89-
KEEP(*(SORT(.log_const_data*)))
90-
PROVIDE(__stop_log_const_data = .);
91-
} > FLASH
92-
.nrf_queue :
93-
{
94-
PROVIDE(__start_nrf_queue = .);
95-
KEEP(*(.nrf_queue))
96-
PROVIDE(__stop_nrf_queue = .);
97-
} > FLASH
98-
.dfu_trans :
56+
.sdh_ble_observers :
9957
{
100-
PROVIDE(__start_dfu_trans = .);
101-
KEEP(*(SORT(.dfu_trans*)))
102-
PROVIDE(__stop_dfu_trans = .);
58+
PROVIDE(__start_sdh_ble_observers = .);
59+
KEEP(*(SORT(.sdh_ble_observers*)))
60+
PROVIDE(__stop_sdh_ble_observers = .);
10361
} > FLASH
104-
.nrf_balloc :
62+
.sdh_soc_observers :
10563
{
106-
PROVIDE(__start_nrf_balloc = .);
107-
KEEP(*(.nrf_balloc))
108-
PROVIDE(__stop_nrf_balloc = .);
64+
PROVIDE(__start_sdh_soc_observers = .);
65+
KEEP(*(SORT(.sdh_soc_observers*)))
66+
PROVIDE(__stop_sdh_soc_observers = .);
10967
} > FLASH
110-
.svc_data :
68+
.pwr_mgmt_data :
11169
{
112-
PROVIDE(__start_svc_data = .);
113-
KEEP(*(.svc_data))
114-
PROVIDE(__stop_svc_data = .);
70+
PROVIDE(__start_pwr_mgmt_data = .);
71+
KEEP(*(SORT(.pwr_mgmt_data*)))
72+
PROVIDE(__stop_pwr_mgmt_data = .);
11573
} > FLASH
116-
.sdh_ble_observers :
74+
.log_const_data :
11775
{
118-
PROVIDE(__start_sdh_ble_observers = .);
119-
KEEP(*(SORT(.sdh_ble_observers*)))
120-
PROVIDE(__stop_sdh_ble_observers = .);
76+
PROVIDE(__start_log_const_data = .);
77+
KEEP(*(SORT(.log_const_data*)))
78+
PROVIDE(__stop_log_const_data = .);
12179
} > FLASH
12280
.sdh_req_observers :
12381
{
@@ -137,11 +95,17 @@ SECTIONS
13795
KEEP(*(SORT(.sdh_stack_observers*)))
13896
PROVIDE(__stop_sdh_stack_observers = .);
13997
} > FLASH
140-
.sdh_soc_observers :
98+
.log_backends :
14199
{
142-
PROVIDE(__start_sdh_soc_observers = .);
143-
KEEP(*(SORT(.sdh_soc_observers*)))
144-
PROVIDE(__stop_sdh_soc_observers = .);
100+
PROVIDE(__start_log_backends = .);
101+
KEEP(*(SORT(.log_backends*)))
102+
PROVIDE(__stop_log_backends = .);
103+
} > FLASH
104+
.nrf_balloc :
105+
{
106+
PROVIDE(__start_nrf_balloc = .);
107+
KEEP(*(.nrf_balloc))
108+
PROVIDE(__stop_nrf_balloc = .);
145109
} > FLASH
146110

147111
} INSERT AFTER .text

0 commit comments

Comments
 (0)