From 331481cd0c6ba804860f7cdbd5110a87ff0160fe Mon Sep 17 00:00:00 2001 From: JF Date: Sun, 24 May 2020 16:36:04 +0200 Subject: [PATCH] Refactor CMake files to allow building 2 binaries : one standalone and one compatible with mcuboot bootloader (the offset in memory is different). Add documentation about mcuboot image generation and OTA. Re-enable watchdog --- CMakeLists.txt | 1 - README.md | 13 +- bootloader/README.md | 50 ++++ bootloader/mynewt_nosemi.elf_4.1.7.bin | Bin 0 -> 22232 bytes bootloader/mynewt_nosemi_4.1.7.elf | Bin 0 -> 542120 bytes gcc_nrf52-mcuboot.ld | 136 +++++++++++ gcc_nrf52.ld | 2 +- src/CMakeLists.txt | 302 ++++++++++++++++++++----- src/SystemTask/SystemTask.cpp | 10 +- 9 files changed, 447 insertions(+), 67 deletions(-) create mode 100644 bootloader/README.md create mode 100644 bootloader/mynewt_nosemi.elf_4.1.7.bin create mode 100644 bootloader/mynewt_nosemi_4.1.7.elf create mode 100644 gcc_nrf52-mcuboot.ld diff --git a/CMakeLists.txt b/CMakeLists.txt index 5af971f0..b6a4e932 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -66,5 +66,4 @@ endif() set(VERSION_EDIT_WARNING "// Do not edit this file, it is automatically generated by CMAKE!") configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/Version.h.in ${CMAKE_CURRENT_SOURCE_DIR}/src/Version.h) -include("cmake-nRF5x/CMake_nRF5x.cmake") add_subdirectory(src) diff --git a/README.md b/README.md index 790e3de1..fcd4e537 100644 --- a/README.md +++ b/README.md @@ -34,11 +34,13 @@ I've tested this project on the actual PineTime hardware. * Rich user interface (using [LittleVGL](https://littlevgl.com/)) via display, touchpanel and push button. * Digital watch face and 4 demo applications (spinning meter, analog gauche, push button and message box); * Watchdog (automatic reset in case of firmware crash) and reset support (push and hold the button for 7 - 10s); - * BLE Notification support (still Work-In-Progress, [companion app](https://github.com/JF002/gobbledegook) needed). + * BLE Notification support (still Work-In-Progress, [companion app](https://github.com/JF002/gobbledegook) needed); + * **[EXPERIMENTAL]** Firmware update (OTA) via BLE. ## Documentation * [BLE implementation and API](./doc/ble.md) + * [Bootloader and DFU](./bootloader/README.md) ## Stub using NRF52-DK ![Pinetime stub](./images/pinetimestub1.jpg "PinetimeStub") @@ -116,19 +118,12 @@ $ make -j pinetime-app $ make FLASH_ERASE ``` -* Flash softdevice & application +* Flash application ``` -$ make FLASH_SOFTDEVICE $ make FLASH_pinetime-app ``` -Or, with ```mergehex``` - -``` -$ make FLASH_MERGED_pinetime-app -``` - * For your information : list make targets : ``` diff --git a/bootloader/README.md b/bootloader/README.md new file mode 100644 index 00000000..facc0500 --- /dev/null +++ b/bootloader/README.md @@ -0,0 +1,50 @@ +# Bootloader + +## Bootloader binary +The binary comes from https://github.com/lupyuen/pinetime-rust-mynewt/releases/tag/v4.1.7 + +It must be flash at address **0x00** in the internal flash memory. + +Using OpenOCD: + +` +program mynewt_nosemi.elf_4.1.7.bin 0 +` + +## Application firmware image +Build the binary compatible with the booloader: + +` +make pinetime-mcuboot-app +` + +The binary is located in */src/pinetime-mcuboot-app.bin*. + +It must me converted into a MCUBoot image using *imgtool.py* from [MCUBoot](https://github.com/JuulLabs-OSS/mcuboot/tree/master/scripts). + +` +imgtool.py create --align 4 --version 1.0.0 --header-size 32 --slot-size 475136 --pad-header /src/pinetime-mcuboot-app.bin image.bin +` + +The image must be then flashed at address **0x8000** in the internal flash memory. + +Using OpenOCD: + +` +program image.bin 0x8000 +` + +## OTA and DFU +Pack the image into a .zip file for the NRF DFU protocol: + +` +adafruit-nrfutil dfu genpkg --dev-type 0x0052 --application image.bin dfu.zip +` + +Use NRFConnect or dfu.py to upload the zip file to the device: + +` +sudo dfu.py -z /home/jf/nrf52/bootloader/dfu.zip -a --legacy +` + +**TODO** : dfu.py \ No newline at end of file diff --git a/bootloader/mynewt_nosemi.elf_4.1.7.bin b/bootloader/mynewt_nosemi.elf_4.1.7.bin new file mode 100644 index 0000000000000000000000000000000000000000..bd00ec9c6f8ebfa62b5f710831cf5b10f1a3c208 GIT binary patch literal 22232 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 OZ5`6dGZ~9V_`d)OHmWlK literal 0 HcmV?d00001 diff --git a/bootloader/mynewt_nosemi_4.1.7.elf b/bootloader/mynewt_nosemi_4.1.7.elf new file mode 100644 index 0000000000000000000000000000000000000000..3d7c231f39a8637aa1634ac43c36e30e6b8b201c GIT binary patch literal 542120 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 literal 0 HcmV?d00001 diff --git a/gcc_nrf52-mcuboot.ld b/gcc_nrf52-mcuboot.ld new file mode 100644 index 00000000..0746f491 --- /dev/null +++ b/gcc_nrf52-mcuboot.ld @@ -0,0 +1,136 @@ +/* Linker script to configure memory regions. */ + +SEARCH_DIR(.) +GROUP(-lgcc -lc -lnosys) + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x08020, LENGTH = 0x78000 + RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x10000 +} + +SECTIONS +{ +} + +SECTIONS +{ + . = ALIGN(4); + .mem_section_dummy_ram : + { + } + .cli_sorted_cmd_ptrs : + { + PROVIDE(__start_cli_sorted_cmd_ptrs = .); + KEEP(*(.cli_sorted_cmd_ptrs)) + PROVIDE(__stop_cli_sorted_cmd_ptrs = .); + } > RAM + .fs_data : + { + PROVIDE(__start_fs_data = .); + KEEP(*(.fs_data)) + PROVIDE(__stop_fs_data = .); + } > RAM + .log_dynamic_data : + { + PROVIDE(__start_log_dynamic_data = .); + KEEP(*(SORT(.log_dynamic_data*))) + PROVIDE(__stop_log_dynamic_data = .); + } > RAM + .log_filter_data : + { + PROVIDE(__start_log_filter_data = .); + KEEP(*(SORT(.log_filter_data*))) + PROVIDE(__stop_log_filter_data = .); + } > RAM + +} INSERT AFTER .data; + +SECTIONS +{ + .mem_section_dummy_rom : + { + } + .sdh_soc_observers : + { + PROVIDE(__start_sdh_soc_observers = .); + KEEP(*(SORT(.sdh_soc_observers*))) + PROVIDE(__stop_sdh_soc_observers = .); + } > FLASH + .sdh_ble_observers : + { + PROVIDE(__start_sdh_ble_observers = .); + KEEP(*(SORT(.sdh_ble_observers*))) + PROVIDE(__stop_sdh_ble_observers = .); + } > FLASH + .sdh_req_observers : + { + PROVIDE(__start_sdh_req_observers = .); + KEEP(*(SORT(.sdh_req_observers*))) + PROVIDE(__stop_sdh_req_observers = .); + } > FLASH + .sdh_state_observers : + { + PROVIDE(__start_sdh_state_observers = .); + KEEP(*(SORT(.sdh_state_observers*))) + PROVIDE(__stop_sdh_state_observers = .); + } > FLASH + .sdh_stack_observers : + { + PROVIDE(__start_sdh_stack_observers = .); + KEEP(*(SORT(.sdh_stack_observers*))) + PROVIDE(__stop_sdh_stack_observers = .); + } > FLASH + .nrf_queue : + { + PROVIDE(__start_nrf_queue = .); + KEEP(*(.nrf_queue)) + PROVIDE(__stop_nrf_queue = .); + } > FLASH + .nrf_balloc : + { + PROVIDE(__start_nrf_balloc = .); + KEEP(*(.nrf_balloc)) + PROVIDE(__stop_nrf_balloc = .); + } > FLASH + .cli_command : + { + PROVIDE(__start_cli_command = .); + KEEP(*(.cli_command)) + PROVIDE(__stop_cli_command = .); + } > FLASH + .crypto_data : + { + PROVIDE(__start_crypto_data = .); + KEEP(*(SORT(.crypto_data*))) + PROVIDE(__stop_crypto_data = .); + } > FLASH + .pwr_mgmt_data : + { + PROVIDE(__start_pwr_mgmt_data = .); + KEEP(*(SORT(.pwr_mgmt_data*))) + PROVIDE(__stop_pwr_mgmt_data = .); + } > FLASH + .log_const_data : + { + PROVIDE(__start_log_const_data = .); + KEEP(*(SORT(.log_const_data*))) + PROVIDE(__stop_log_const_data = .); + } > FLASH + .log_backends : + { + PROVIDE(__start_log_backends = .); + KEEP(*(SORT(.log_backends*))) + PROVIDE(__stop_log_backends = .); + } > FLASH + .nrf_balloc : + { + PROVIDE(__start_nrf_balloc = .); + KEEP(*(.nrf_balloc)) + PROVIDE(__stop_nrf_balloc = .); + } > FLASH + +} INSERT AFTER .text + + +INCLUDE "./nrf_common.ld" diff --git a/gcc_nrf52.ld b/gcc_nrf52.ld index 0746f491..98e133aa 100644 --- a/gcc_nrf52.ld +++ b/gcc_nrf52.ld @@ -5,7 +5,7 @@ GROUP(-lgcc -lc -lnosys) MEMORY { - FLASH (rx) : ORIGIN = 0x08020, LENGTH = 0x78000 + FLASH (rx) : ORIGIN = 0x00000, LENGTH = 0x78000 RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x10000 } diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e8e5726b..f82f3091 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -5,29 +5,86 @@ project(pinetime-app C CXX ASM) # define some variables just for this example to determine file locations set(NRF_PROJECT_NAME pinetime-app) set(NRF_BOARD pca10040) -#set(NRF_SOFTDEVICE s132) -nRF5x_toolchainSetup() -nRF5x_setup() +# check if all the necessary tools paths have been provided. +if (NOT NRF5_SDK_PATH) + message(FATAL_ERROR "The path to the nRF5 SDK (NRF5_SDK_PATH) must be set.") +endif () +if(DEFINED ARM_NONE_EABI_TOOLCHAIN_PATH) + set(ARM_NONE_EABI_TOOLCHAIN_BIN_PATH ${ARM_NONE_EABI_TOOLCHAIN_PATH}/bin) +endif() -#nRF5x_addAppScheduler() -#nRF5x_addAppFIFO() -#nRF5x_addAppTimer() -#nRF5x_addAppUART() -nRF5x_addAppButton() -nRF5x_addBSP(FALSE FALSE FALSE) -nRF5x_addAppGpiote() -#nRF5x_addBLEGATT() -# -#nRF5x_addBLEService(ble_lbs) +if (NOT NRF_TARGET MATCHES "nrf52") + message(FATAL_ERROR "Only rRF52 boards are supported right now") +endif() -add_definitions(-DCONFIG_GPIO_AS_PINRESET) -add_definitions(-DDEBUG) -add_definitions(-DNIMBLE_CFG_CONTROLLER) -add_definitions(-DOS_CPUTIME_FREQ) +# Setup toolchain +include(${CMAKE_SOURCE_DIR}/cmake-nRF5x/arm-gcc-toolchain.cmake) -include_directories(.) -include_directories(libs/) +if(NOT DEFINED ARM_GCC_TOOLCHAIN) + message(FATAL_ERROR "The toolchain must be set up before calling this macro") +endif() +set(CMAKE_OSX_SYSROOT "/") +set(CMAKE_OSX_DEPLOYMENT_TARGET "") + + +set(SDK_SOURCE_FILES + # Startup + "${NRF5_SDK_PATH}/modules/nrfx/mdk/system_nrf52.c" + "${NRF5_SDK_PATH}/modules/nrfx/mdk/gcc_startup_nrf52.S" + + # Base SDK + "${NRF5_SDK_PATH}/components/boards/boards.c" + "${NRF5_SDK_PATH}/integration/nrfx/legacy/nrf_drv_clock.c" + "${NRF5_SDK_PATH}/modules/nrfx/drivers/src/nrfx_clock.c" + "${NRF5_SDK_PATH}/modules/nrfx/drivers/src/nrfx_gpiote.c" + "${NRF5_SDK_PATH}/modules/nrfx/soc/nrfx_atomic.c" + "${NRF5_SDK_PATH}/modules/nrfx/drivers/src/nrfx_saadc.c" + + # FreeRTOS + ${NRF5_SDK_PATH}/external/freertos/source/croutine.c + ${NRF5_SDK_PATH}/external/freertos/source/event_groups.c + ${NRF5_SDK_PATH}/external/freertos/source/portable/MemMang/heap_1.c + ${NRF5_SDK_PATH}/external/freertos/source/list.c + ${NRF5_SDK_PATH}/external/freertos/source/queue.c + ${NRF5_SDK_PATH}/external/freertos/source/stream_buffer.c + ${NRF5_SDK_PATH}/external/freertos/source/tasks.c + ${NRF5_SDK_PATH}/external/freertos/source/timers.c + ${NRF5_SDK_PATH}/components/libraries/timer/app_timer_freertos.c + + # Libs + "${NRF5_SDK_PATH}/components/libraries/atomic/nrf_atomic.c" + "${NRF5_SDK_PATH}/components/libraries/balloc/nrf_balloc.c" + "${NRF5_SDK_PATH}/components/libraries/util/nrf_assert.c" + "${NRF5_SDK_PATH}/components/libraries/util/app_error.c" + "${NRF5_SDK_PATH}/components/libraries/util/app_error_weak.c" + "${NRF5_SDK_PATH}/components/libraries/util/app_error_handler_gcc.c" + "${NRF5_SDK_PATH}/components/libraries/util/app_util_platform.c" + "${NRF5_SDK_PATH}/components/libraries/log/src/nrf_log_backend_rtt.c" + "${NRF5_SDK_PATH}/components/libraries/log/src/nrf_log_backend_serial.c" + "${NRF5_SDK_PATH}/components/libraries/log/src/nrf_log_default_backends.c" + "${NRF5_SDK_PATH}/components/libraries/log/src/nrf_log_frontend.c" + "${NRF5_SDK_PATH}/components/libraries/log/src/nrf_log_str_formatter.c" + "${NRF5_SDK_PATH}/components/libraries/memobj/nrf_memobj.c" + "${NRF5_SDK_PATH}/components/libraries/ringbuf/nrf_ringbuf.c" + "${NRF5_SDK_PATH}/components/libraries/strerror/nrf_strerror.c" + + # Segger RTT + "${NRF5_SDK_PATH}/external/segger_rtt/SEGGER_RTT_Syscalls_GCC.c" + "${NRF5_SDK_PATH}/external/segger_rtt/SEGGER_RTT.c" + "${NRF5_SDK_PATH}/external/segger_rtt/SEGGER_RTT_printf.c" + + # Other + "${NRF5_SDK_PATH}/external/utf_converter/utf.c" + "${NRF5_SDK_PATH}/external/fprintf/nrf_fprintf.c" + "${NRF5_SDK_PATH}/external/fprintf/nrf_fprintf_format.c" + + # TWI + "${NRF5_SDK_PATH}/modules/nrfx/drivers/src/nrfx_twi.c" + + # GPIOTE + "${NRF5_SDK_PATH}/components/libraries/gpiote/app_gpiote.c" +) set(TINYCRYPT_SRC libs/mynewt-nimble/ext/tinycrypt/src/aes_encrypt.c @@ -37,9 +94,6 @@ set(TINYCRYPT_SRC set(NIMBLE_SRC libs/mynewt-nimble/porting/npl/freertos/src/nimble_port_freertos.c libs/mynewt-nimble/porting/npl/freertos/src/npl_os_freertos.c - - - libs/mynewt-nimble/nimble/host/src/ble_hs.c libs/mynewt-nimble/nimble/host/src/ble_hs_hci_evt.c libs/mynewt-nimble/nimble/host/src/ble_l2cap_sig_cmd.c @@ -78,11 +132,7 @@ set(NIMBLE_SRC libs/mynewt-nimble/nimble/host/src/ble_hs_stop.c libs/mynewt-nimble/nimble/host/src/ble_hs_startup.c libs/mynewt-nimble/nimble/host/store/ram/src/ble_store_ram.c - libs/mynewt-nimble/nimble/transport/ram/src/ble_hci_ram.c - - - libs/mynewt-nimble/nimble/controller/src/ble_ll.c libs/mynewt-nimble/nimble/controller/src/ble_ll_rand.c libs/mynewt-nimble/nimble/controller/src/ble_ll_conn.c @@ -97,9 +147,6 @@ set(NIMBLE_SRC libs/mynewt-nimble/nimble/controller/src/ble_ll_supp_cmd.c libs/mynewt-nimble/nimble/controller/src/ble_ll_hci_ev.c libs/mynewt-nimble/nimble/controller/src/ble_ll_rfmgmt.c - - - libs/mynewt-nimble/porting/nimble/src/os_cputime.c libs/mynewt-nimble/porting/nimble/src/os_cputime_pwr2.c libs/mynewt-nimble/porting/nimble/src/os_mbuf.c @@ -108,13 +155,10 @@ set(NIMBLE_SRC libs/mynewt-nimble/porting/nimble/src/mem.c libs/mynewt-nimble/porting/nimble/src/endian.c libs/mynewt-nimble/porting/nimble/src/os_msys_init.c - libs/mynewt-nimble/nimble/drivers/nrf52/src/ble_hw.c libs/mynewt-nimble/nimble/drivers/nrf52/src/ble_phy.c - libs/mynewt-nimble/nimble/host/services/gap/src/ble_svc_gap.c libs/mynewt-nimble/nimble/host/services/gatt/src/ble_svc_gatt.c - libs/mynewt-nimble/nimble/host/util/src/addr.c ) @@ -135,7 +179,6 @@ set(LVGL_SRC libs/lvgl/src/lv_core/lv_refr.h libs/lvgl/src/lv_core/lv_style.c libs/lvgl/src/lv_core/lv_style.h - libs/lvgl/src/lv_misc/lv_anim.c libs/lvgl/src/lv_misc/lv_anim.h libs/lvgl/src/lv_misc/lv_async.h @@ -175,7 +218,6 @@ set(LVGL_SRC libs/lvgl/src/lv_misc/lv_types.h libs/lvgl/src/lv_misc/lv_utils.c libs/lvgl/src/lv_misc/lv_utils.h - libs/lvgl/src/lv_draw/lv_draw.c libs/lvgl/src/lv_draw/lv_draw.h libs/lvgl/src/lv_draw/lv_draw_arc.c @@ -196,7 +238,6 @@ set(LVGL_SRC libs/lvgl/src/lv_draw/lv_img_cache.h libs/lvgl/src/lv_draw/lv_img_decoder.c libs/lvgl/src/lv_draw/lv_img_decoder.h - libs/lvgl/src/lv_hal/lv_hal.h libs/lvgl/src/lv_hal/lv_hal_disp.c libs/lvgl/src/lv_hal/lv_hal_disp.h @@ -204,31 +245,23 @@ set(LVGL_SRC libs/lvgl/src/lv_hal/lv_hal_indev.h libs/lvgl/src/lv_hal/lv_hal_tick.c libs/lvgl/src/lv_hal/lv_hal_tick.h - libs/lvgl/src/lv_font/lv_font.c libs/lvgl/src/lv_font/lv_font.h libs/lvgl/src/lv_font/lv_font_fmt_txt.c libs/lvgl/src/lv_font/lv_font_fmt_txt.h -# libs/lvgl/src/lv_font/lv_font_roboto_16.c libs/lvgl/src/lv_font/lv_symbol_def.h - libs/lvgl/src/lv_themes/lv_theme.c libs/lvgl/src/lv_themes/lv_theme.h - libs/lvgl/src/lv_objx/lv_btn.h libs/lvgl/src/lv_objx/lv_btn.c - libs/lvgl/src/lv_objx/lv_cont.h libs/lvgl/src/lv_objx/lv_cont.c - libs/lvgl/src/lv_objx/lv_label.h libs/lvgl/src/lv_objx/lv_label.c - libs/lvgl/src/lv_themes/lv_theme.c libs/lvgl/src/lv_themes/lv_theme.h libs/lvgl/src/lv_themes/lv_theme_night.h libs/lvgl/src/lv_themes/lv_theme_night.c - libs/lvgl/src/lv_objx/lv_list.c libs/lvgl/src/lv_objx/lv_list.h libs/lvgl/src/lv_objx/lv_tileview.c @@ -247,20 +280,16 @@ set(LVGL_SRC libs/lvgl/src/lv_objx/lv_arc.h libs/lvgl/src/lv_objx/lv_gauge.c libs/lvgl/src/lv_objx/lv_gauge.h - libs/lvgl/src/lv_objx/lv_mbox.c libs/lvgl/src/lv_objx/lv_mbox.h - libs/lvgl/src/lv_objx/lv_bar.c libs/lvgl/src/lv_objx/lv_bar.h libs/lvgl/src/lv_objx/lv_slider.h libs/lvgl/src/lv_objx/lv_slider.c - ) list(APPEND IMAGE_FILES DisplayApp/Icons/battery/os_battery_error.c - DisplayApp/Icons/battery/os_battery_100.c DisplayApp/Icons/battery/os_battery_090.c DisplayApp/Icons/battery/os_battery_080.c @@ -331,6 +360,7 @@ list(APPEND SOURCE_FILES ${NIMBLE_SRC} ${LVGL_SRC} ${IMAGE_FILES} + ${SDK_SOURCE_FILES} DisplayApp/LittleVgl.cpp DisplayApp/Fonts/jetbrains_mono_extrabold_compressed.c @@ -385,13 +415,14 @@ set(INCLUDE_FILES libs/date/includes/date/julian.h libs/date/includes/date/ptz.h libs/date/includes/date/tz_private.h - DisplayApp/LittleVgl.h - SystemTask/SystemTask.h ) include_directories( + . + ../ + libs/ FreeRTOS/ libs/date/includes libs/mynewt-nimble/porting/npl/freertos/include @@ -406,10 +437,179 @@ include_directories( libs/mynewt-nimble/nimble/host/services/gatt/include libs/mynewt-nimble/nimble/host/util/include libs/mynewt-nimble/nimble/host/store/ram/include + + "${NRF5_SDK_PATH}/components/drivers_nrf/nrf_soc_nosd" + "${NRF5_SDK_PATH}/components" + "${NRF5_SDK_PATH}/components/boards" + "${NRF5_SDK_PATH}/components/softdevice/common" + "${NRF5_SDK_PATH}/integration/nrfx" + "${NRF5_SDK_PATH}/integration/nrfx/legacy" + "${NRF5_SDK_PATH}/modules/nrfx" + "${NRF5_SDK_PATH}/modules/nrfx/drivers/include" + "${NRF5_SDK_PATH}/modules/nrfx/hal" + "${NRF5_SDK_PATH}/modules/nrfx/mdk" + ${NRF5_SDK_PATH}/external/freertos/source/include + "${NRF5_SDK_PATH}/components/toolchain/cmsis/include" + "${NRF5_SDK_PATH}/components/libraries/atomic" + "${NRF5_SDK_PATH}/components/libraries/atomic_fifo" + "${NRF5_SDK_PATH}/components/libraries/atomic_flags" + "${NRF5_SDK_PATH}/components/libraries/balloc" + "${NRF5_SDK_PATH}/components/libraries/bootloader/ble_dfu" + "${NRF5_SDK_PATH}/components/libraries/cli" + "${NRF5_SDK_PATH}/components/libraries/crc16" + "${NRF5_SDK_PATH}/components/libraries/crc32" + "${NRF5_SDK_PATH}/components/libraries/crypto" + "${NRF5_SDK_PATH}/components/libraries/csense" + "${NRF5_SDK_PATH}/components/libraries/csense_drv" + "${NRF5_SDK_PATH}/components/libraries/delay" + "${NRF5_SDK_PATH}/components/libraries/ecc" + "${NRF5_SDK_PATH}/components/libraries/experimental_section_vars" + "${NRF5_SDK_PATH}/components/libraries/experimental_task_manager" + "${NRF5_SDK_PATH}/components/libraries/fds" + "${NRF5_SDK_PATH}/components/libraries/fstorage" + "${NRF5_SDK_PATH}/components/libraries/gfx" + "${NRF5_SDK_PATH}/components/libraries/gpiote" + "${NRF5_SDK_PATH}/components/libraries/hardfault" + "${NRF5_SDK_PATH}/components/libraries/hci" + "${NRF5_SDK_PATH}/components/libraries/led_softblink" + "${NRF5_SDK_PATH}/components/libraries/log" + "${NRF5_SDK_PATH}/components/libraries/log/src" + "${NRF5_SDK_PATH}/components/libraries/low_power_pwm" + "${NRF5_SDK_PATH}/components/libraries/mem_manager" + "${NRF5_SDK_PATH}/components/libraries/memobj" + "${NRF5_SDK_PATH}/components/libraries/mpu" + "${NRF5_SDK_PATH}/components/libraries/mutex" + "${NRF5_SDK_PATH}/components/libraries/pwm" + "${NRF5_SDK_PATH}/components/libraries/pwr_mgmt" + "${NRF5_SDK_PATH}/components/libraries/queue" + "${NRF5_SDK_PATH}/components/libraries/ringbuf" + "${NRF5_SDK_PATH}/components/libraries/scheduler" + "${NRF5_SDK_PATH}/components/libraries/sdcard" + "${NRF5_SDK_PATH}/components/libraries/slip" + "${NRF5_SDK_PATH}/components/libraries/sortlist" + "${NRF5_SDK_PATH}/components/libraries/spi_mngr" + "${NRF5_SDK_PATH}/components/libraries/stack_guard" + "${NRF5_SDK_PATH}/components/libraries/strerror" + "${NRF5_SDK_PATH}/components/libraries/svc" + "${NRF5_SDK_PATH}/components/libraries/timer" + "${NRF5_SDK_PATH}/components/libraries/usbd" + "${NRF5_SDK_PATH}/components/libraries/usbd/class/audio" + "${NRF5_SDK_PATH}/components/libraries/usbd/class/cdc" + "${NRF5_SDK_PATH}/components/libraries/usbd/class/cdc/acm" + "${NRF5_SDK_PATH}/components/libraries/usbd/class/hid" + "${NRF5_SDK_PATH}/components/libraries/usbd/class/hid/generic" + "${NRF5_SDK_PATH}/components/libraries/usbd/class/hid/kbd" + "${NRF5_SDK_PATH}/components/libraries/usbd/class/hid/mouse" + "${NRF5_SDK_PATH}/components/libraries/usbd/class/msc" + "${NRF5_SDK_PATH}/components/libraries/util" + "${NRF5_SDK_PATH}/external/segger_rtt/" + "${NRF5_SDK_PATH}/external/fprintf/" + "${NRF5_SDK_PATH}/external/thedotfactory_fonts" + "${NRF5_SDK_PATH}/components/libraries/gpiote" + ) link_directories( - ../ ) -nRF5x_addExecutable(pinetime-app "${SOURCE_FILES}" ${INCLUDE_FILES}) + +set(COMMON_FLAGS -MP -MD -mthumb -mabi=aapcs -Wall -g3 -ffunction-sections -fdata-sections -fno-strict-aliasing -fno-builtin --short-enums -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -Wreturn-type -Werror=return-type) +add_definitions(-DCONFIG_GPIO_AS_PINRESET) +add_definitions(-DDEBUG) +add_definitions(-DNIMBLE_CFG_CONTROLLER) +add_definitions(-DOS_CPUTIME_FREQ) +add_definitions(-DNRF52 -DNRF52832 -DNRF52832_XXAA -DNRF52_PAN_74 -DNRF52_PAN_64 -DNRF52_PAN_12 -DNRF52_PAN_58 -DNRF52_PAN_54 -DNRF52_PAN_31 -DNRF52_PAN_51 -DNRF52_PAN_36 -DNRF52_PAN_15 -DNRF52_PAN_20 -DNRF52_PAN_55 -DBOARD_PCA10040) +add_definitions(-DFREERTOS) +add_definitions(-DDEBUG_NRF_USER) + +# Build autonomous binary (without support for bootloader) +set(EXECUTABLE_NAME "pinetime-app") +set(NRF5_LINKER_SCRIPT "${CMAKE_SOURCE_DIR}/gcc_nrf52.ld") +add_executable(${EXECUTABLE_NAME} ${SOURCE_FILES}) +target_compile_options(${EXECUTABLE_NAME} PUBLIC + $<$,$>: ${COMMON_FLAGS} -O0 -g3> + $<$,$>: ${COMMON_FLAGS} -O3> + $<$,$>: ${COMMON_FLAGS} -O0 -g3> + $<$,$>: ${COMMON_FLAGS} -O3> + $<$: -MP -MD -std=c99 -x assembler-with-cpp> +) + +set_target_properties(${EXECUTABLE_NAME} PROPERTIES + SUFFIX ".out" + LINK_FLAGS "-mthumb -mabi=aapcs -std=gnu++98 -std=c99 -L ${NRF5_SDK_PATH}/modules/nrfx/mdk -T${NRF5_LINKER_SCRIPT} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -Wl,--gc-sections --specs=nano.specs -lc -lnosys -lm -Wl,-Map=${EXECUTABLE_NAME}.map" + CXX_STANDARD 11 + C_STANDARD 99 + ) + +add_custom_command(TARGET ${EXECUTABLE_NAME} + POST_BUILD + COMMAND ${CMAKE_SIZE_UTIL} ${EXECUTABLE_NAME}.out + COMMAND ${CMAKE_OBJCOPY} -O binary ${EXECUTABLE_NAME}.out "${EXECUTABLE_NAME}.bin" + COMMAND ${CMAKE_OBJCOPY} -O ihex ${EXECUTABLE_NAME}.out "${EXECUTABLE_NAME}.hex" + COMMENT "post build steps for ${EXECUTABLE_NAME}") + + +# Build binary intended to be used by bootloader +set(EXECUTABLE_MCUBOOT_NAME "pinetime-mcuboot-app") +set(EXECUTABLE_MCUBOOT_WITH_BOOTLOADER_NAME "pinetime-mcuboot-app-wth-bootloader") +set(NRF5_LINKER_SCRIPT_MCUBOOT "${CMAKE_SOURCE_DIR}/gcc_nrf52-mcuboot.ld") +add_executable(${EXECUTABLE_MCUBOOT_NAME} ${SOURCE_FILES}) +target_compile_options(${EXECUTABLE_MCUBOOT_NAME} PUBLIC + $<$,$>: ${COMMON_FLAGS} -O0 -g3> + $<$,$>: ${COMMON_FLAGS} -O3> + $<$,$>: ${COMMON_FLAGS} -O0 -g3> + $<$,$>: ${COMMON_FLAGS} -O3> + $<$: -MP -MD -std=c99 -x assembler-with-cpp> + ) + +set_target_properties(${EXECUTABLE_MCUBOOT_NAME} PROPERTIES + SUFFIX ".out" + LINK_FLAGS "-mthumb -mabi=aapcs -std=gnu++98 -std=c99 -L ${NRF5_SDK_PATH}/modules/nrfx/mdk -T${NRF5_LINKER_SCRIPT_MCUBOOT} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -Wl,--gc-sections --specs=nano.specs -lc -lnosys -lm -Wl,-Map=${EXECUTABLE_MCUBOOT_NAME}.map" + CXX_STANDARD 11 + C_STANDARD 99 + ) + +add_custom_command(TARGET ${EXECUTABLE_MCUBOOT_NAME} + POST_BUILD + COMMAND ${CMAKE_SIZE_UTIL} ${EXECUTABLE_MCUBOOT_NAME}.out + COMMAND ${CMAKE_OBJCOPY} -O binary ${EXECUTABLE_MCUBOOT_NAME}.out "${EXECUTABLE_MCUBOOT_NAME}.bin" + COMMAND ${CMAKE_OBJCOPY} -O ihex ${EXECUTABLE_MCUBOOT_NAME}.out "${EXECUTABLE_MCUBOOT_NAME}.hex" + COMMENT "post build steps for ${EXECUTABLE_MCUBOOT_NAME}" +) + +# FLASH +if(USE_JLINK) + add_custom_target(FLASH_ERASE + COMMAND ${NRFJPROG} --eraseall -f ${NRF_TARGET} + COMMENT "erasing flashing" + ) + add_custom_target("FLASH_${EXECUTABLE_NAME}" + DEPENDS ${EXECUTABLE_NAME} + COMMAND ${NRFJPROG} --program ${EXECUTABLE_NAME}.hex -f ${NRF_TARGET} --sectorerase + COMMAND sleep 0.5s + COMMAND ${NRFJPROG} --reset -f ${NRF_TARGET} + COMMENT "flashing ${EXECUTABLE_NAME}.hex" + ) + +elseif(USE_GDB_CLIENT) + add_custom_target(FLASH_ERASE + COMMAND ${GDB_CLIENT_BIN_PATH} -nx --batch -ex 'target extended-remote ${GDB_CLIENT_TARGET_REMOTE}' -ex 'monitor swdp_scan' -ex 'attach 1' -ex 'mon erase_mass' + COMMENT "erasing flashing" + ) + add_custom_target("FLASH_${EXECUTABLE_NAME}" + DEPENDS ${EXECUTABLE_NAME} + COMMAND ${GDB_CLIENT_BIN_PATH} -nx --batch -ex 'target extended-remote ${GDB_CLIENT_TARGET_REMOTE}' -ex 'monitor swdp_scan' -ex 'attach 1' -ex 'load' -ex 'kill' ${EXECUTABLE_NAME}.hex + COMMENT "flashing ${EXECUTABLE_NAME}.hex" + ) +elseif(USE_OPENOCD) + add_custom_target(FLASH_ERASE + COMMAND ${OPENOCD_BIN_PATH} -f interface/stlink.cfg -c 'transport select hla_swd' -f target/nrf52.cfg -c init -c halt -c 'nrf5 mass_erase' -c reset -c shutdown + COMMENT "erasing flashing" + ) + add_custom_target("FLASH_${EXECUTABLE_NAME}" + DEPENDS ${EXECUTABLE_NAME} + COMMAND ${OPENOCD_BIN_PATH} -c "tcl_port disabled" -c "gdb_port 3333" -c "telnet_port 4444" -f interface/stlink.cfg -c 'transport select hla_swd' -f target/nrf52.cfg -c "program \"${EXECUTABLE_NAME}.hex\"" -c reset -c shutdown + COMMENT "flashing ${EXECUTABLE_NAME}.hex" + ) + +endif() \ No newline at end of file diff --git a/src/SystemTask/SystemTask.cpp b/src/SystemTask/SystemTask.cpp index 021bac3d..84392c7d 100644 --- a/src/SystemTask/SystemTask.cpp +++ b/src/SystemTask/SystemTask.cpp @@ -60,19 +60,19 @@ void nrf52_nvmc_write_word(uint32_t address, uint32_t value) { } void SystemTask::Work() { -// watchdog.Setup(7); -// watchdog.Start(); + watchdog.Setup(7); + watchdog.Start(); NRF_LOG_INFO("Last reset reason : %s", Pinetime::Drivers::Watchdog::ResetReasonToString(watchdog.ResetReason())); APP_GPIOTE_INIT(2); spi.Init(); spiNorFlash.Init(); - // TODO write magic only if it's not already 1 - nrf52_nvmc_write_word(0x7BFE8, 1); - uint32_t* magicptr = reinterpret_cast(0x7BFE8); uint32_t magic = *magicptr; + if(magic != 1) + nrf52_nvmc_write_word(0x7BFE8, 1); + NRF_LOG_INFO("MAGIC : %d", magic); nimbleController.Init();