diff --git a/.github/workflows/compile-examples.yml b/.github/workflows/compile-examples.yml index b944eaba0..e380f0e3f 100644 --- a/.github/workflows/compile-examples.yml +++ b/.github/workflows/compile-examples.yml @@ -36,6 +36,7 @@ jobs: - fqbn: electroniccats:mbed:bastble - fqbn: electroniccats:mbed:bast_frontier - fqbn: electroniccats:mbed:rak_wistrio5010 + - fqbn: electroniccats:mbed:wisblock_rak4631 # compile only the examples compatible with each board include: @@ -48,6 +49,9 @@ jobs: - board: fqbn: electroniccats:mbed:rak_wistrio5010 additional-sketch-paths: '"libraries/ThreadDebug"' + - board: + fqbn: electroniccats:mbed:wisblock_rak4631 + additional-sketch-paths: '"libraries/ThreadDebug"' steps: - name: Checkout repository diff --git a/boards.txt b/boards.txt index 7540b9ec6..d269a7c25 100644 --- a/boards.txt +++ b/boards.txt @@ -128,3 +128,47 @@ rak_wistrio5010.bootloader.extra_action.preflash=echo INFO:removed_mass-erase rak_wistrio5010.bootloader.config=-f target/nrf52.cfg rak_wistrio5010.bootloader.programmer=-f interface/cmsis-dap.cfg rak_wistrio5010.bootloader.file=bast_frontier/bast_frontier_bootloader-0.3.2.hex + +############################################################## +# WISBLOCK RAK4631 + +wisblock_rak4631.name=WisBlock RAK4631 +wisblock_rak4631.build.core=arduino +wisblock_rak4631.build.crossprefix=arm-none-eabi- +wisblock_rak4631.build.compiler_path={runtime.tools.arm-none-eabi-gcc.path}/bin/ + +wisblock_rak4631.build.variant=RAK4631 +wisblock_rak4631.build.mcu=cortex-m4 +wisblock_rak4631.build.extra_flags= +wisblock_rak4631.build.architecture=cortex-m4 +wisblock_rak4631.build.fpu=fpv4-sp-d16 +wisblock_rak4631.build.float-abi=softfp +wisblock_rak4631.build.board=RAK4631 +wisblock_rak4631.build.ldscript=linker_script.ld +wisblock_rak4631.compiler.mbed.arch.define=-DARDUINO_ARCH_NRF52840 +wisblock_rak4631.compiler.mbed.defines={build.variant.path}/defines.txt +wisblock_rak4631.compiler.mbed.ldflags={build.variant.path}/ldflags.txt +wisblock_rak4631.compiler.mbed.cflags={build.variant.path}/cflags.txt +wisblock_rak4631.compiler.mbed.cxxflags={build.variant.path}/cxxflags.txt +wisblock_rak4631.compiler.mbed.includes={build.variant.path}/includes.txt +wisblock_rak4631.compiler.mbed.extra_ldflags=-lstdc++ -lsupc++ -lm -lc -lgcc -lnosys +wisblock_rak4631.compiler.mbed="{build.variant.path}/libs/libmbed.a" "{build.variant.path}/libs/libcc_310_core.a" "{build.variant.path}/libs/libcc_310_ext.a" "{build.variant.path}/libs/libcc_310_trng.a" +wisblock_rak4631.vid.0=0x239A +wisblock_rak4631.pid.0=0x8029 +wisblock_rak4631.vid.1=0x239A +wisblock_rak4631.pid.1=0x8029 + +# Upload +wisblock_rak4631.bootloader.tool=bootburn +wisblock_rak4631.upload.tool=nrfutil +wisblock_rak4631.upload.protocol=nrfutil +wisblock_rak4631.upload.use_1200bps_touch=true +wisblock_rak4631.upload.wait_for_upload_port=true +wisblock_rak4631.upload.maximum_size=983040 +wisblock_rak4631.upload.maximum_data_size=262144 + +wisblock_rak4631.bootloader.tool=openocd +wisblock_rak4631.bootloader.extra_action.preflash=echo INFO:removed_mass-erase +wisblock_rak4631.bootloader.config=-f target/nrf52.cfg +wisblock_rak4631.bootloader.programmer=-f interface/cmsis-dap.cfg +wisblock_rak4631.bootloader.file=wisblock_rak4631/wisblock_rak4631_bootloader-0.3.2.hex diff --git a/variants/RAK4631/cflags.txt b/variants/RAK4631/cflags.txt new file mode 100644 index 000000000..7edfc56f0 --- /dev/null +++ b/variants/RAK4631/cflags.txt @@ -0,0 +1,25 @@ +-c +-std=gnu11 +-DAPPLICATION_ADDR=0x000000 +-DAPPLICATION_SIZE=0x01000 +-DMBED_RAM_SIZE=0x20000008 +-DMBED_RAM_START=0x20000000 +-DMBED_ROM_SIZE=0x800 +-DMBED_ROM_START=0x0 +-DMBED_TRAP_ERRORS_ENABLED=1 +-Os +-Wall +-Wextra +-Wno-missing-field-initializers +-Wno-unused-parameter +-fdata-sections +-ffunction-sections +-fmessage-length=0 +-fno-exceptions +-fomit-frame-pointer +-funsigned-char +-g +-mcpu=cortex-m4 +-mfloat-abi=softfp +-mfpu=fpv4-sp-d16 +-mthumb diff --git a/variants/RAK4631/conf/mbed_app.json b/variants/RAK4631/conf/mbed_app.json new file mode 100644 index 000000000..19c721b37 --- /dev/null +++ b/variants/RAK4631/conf/mbed_app.json @@ -0,0 +1,19 @@ +{ + "macros": [ + "MBED_HEAP_STATS_ENABLED=1", + "MBED_STACK_STATS_ENABLED=1", + "MBED_MEM_TRACING_ENABLED=1", + "NRFX_GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS=8" + ], + "target_overrides": { + "*": { + "target.printf_lib": "std", + "platform.stdio-buffered-serial": true, + "platform.stdio-baud-rate": 115200, + "platform.default-serial-baud-rate": 115200, + "platform.callback-nontrivial": true, + "rtos.main-thread-stack-size": 32768, + "target.mbed_app_start": "0x10000" + } + } +} \ No newline at end of file diff --git a/variants/RAK4631/cxxflags.txt b/variants/RAK4631/cxxflags.txt new file mode 100644 index 000000000..0d121934d --- /dev/null +++ b/variants/RAK4631/cxxflags.txt @@ -0,0 +1,27 @@ +-Wvla +-c +-fno-rtti +-std=gnu++14 +-DAPPLICATION_ADDR=0x000000 +-DAPPLICATION_SIZE=0x01000 +-DMBED_RAM_SIZE=0x20000008 +-DMBED_RAM_START=0x20000000 +-DMBED_ROM_SIZE=0x800 +-DMBED_ROM_START=0x0 +-DMBED_TRAP_ERRORS_ENABLED=1 +-Os +-Wall +-Wextra +-Wno-missing-field-initializers +-Wno-unused-parameter +-fdata-sections +-ffunction-sections +-fmessage-length=0 +-fno-exceptions +-fomit-frame-pointer +-funsigned-char +-g +-mcpu=cortex-m4 +-mfloat-abi=softfp +-mfpu=fpv4-sp-d16 +-mthumb diff --git a/variants/RAK4631/defines.txt b/variants/RAK4631/defines.txt new file mode 100644 index 000000000..adbbefe15 --- /dev/null +++ b/variants/RAK4631/defines.txt @@ -0,0 +1,67 @@ + +-DARM_MATH_CM4 +-DBOARD_PCA10056 +-D__CMSIS_RTOS +-DCMSIS_VECTAB_VIRTUAL +-DCMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\" +-DCOMPONENT_FLASHIAP=1 +-DCONFIG_GPIO_AS_PINRESET +-D__CORTEX_M4 +-DDEVICE_ANALOGIN=1 +-DDEVICE_FLASH=1 +-DDEVICE_I2C=1 +-DDEVICE_I2C_ASYNCH=1 +-DDEVICE_I2CSLAVE=1 +-DDEVICE_INTERRUPTIN=1 +-DDEVICE_LPTICKER=1 +-DDEVICE_PORTIN=1 +-DDEVICE_PORTINOUT=1 +-DDEVICE_PORTOUT=1 +-DDEVICE_PWMOUT=1 +-DDEVICE_SERIAL=1 +-DDEVICE_SERIAL_ASYNCH=1 +-DDEVICE_SERIAL_FC=1 +-DDEVICE_SLEEP=1 +-DDEVICE_SPI=1 +-DDEVICE_SPI_ASYNCH=1 +-DDEVICE_SYSTICK_CLK_OFF_DURING_SLEEP=1 +-DDEVICE_TRNG=1 +-DDEVICE_USBDEVICE=1 +-DDEVICE_USTICKER=1 +-DFEATURE_BLE=1 +-DFEATURE_CRYPTOCELL310=1 +-DFEATURE_STORAGE=1 +-D__FPU_PRESENT=1 +-D__MBED__=1 +-DMBED_BUILD_TIMESTAMP=1595839671.5680196 +-D__MBED_CMSIS_RTOS_CM +-DMBED_MPU_CUSTOM +-DMBED_TICKLESS +-DMBEDTLS_CONFIG_HW_SUPPORT +-DNRF52840_XXAA +-DNRF52_PAN_20 +-DSWI_DISABLE0 +-DTARGET_BAST_FRONTIER +-DTARGET_CORDIO +-DTARGET_CORDIO_LL +-DTARGET_CORTEX +-DTARGET_CORTEX_M +-DTARGET_LIKE_CORTEX_M4 +-DTARGET_LIKE_MBED +-DTARGET_M4 +-DTARGET_MCU_NRF52840 +-DTARGET_NAME=BAST_FRONTIER +-DTARGET_NORDIC +-DTARGET_NORDIC_CORDIO +-DTARGET_NRF52 +-DTARGET_NRF52840 +-DTARGET_NRF5x +-DTARGET_RELEASE +-DTARGET_RTOS_M4_M7 +-DTARGET_SDK_15_0 +-DTARGET_SOFTDEVICE_NONE +-DTOOLCHAIN_GCC +-DTOOLCHAIN_GCC_ARM +-DWSF_MAX_HANDLERS=10 +-DMBED_NO_GLOBAL_USING_DIRECTIVE=1 +-DUSE_ARDUINO_PINOUT diff --git a/variants/RAK4631/includes.txt b/variants/RAK4631/includes.txt new file mode 100644 index 000000000..f07359315 --- /dev/null +++ b/variants/RAK4631/includes.txt @@ -0,0 +1,354 @@ +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/modules/softdevice/common +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/modules/softdevice +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/modules/nrfx/soc +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/modules/nrfx/mdk +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/modules/nrfx/hal +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/modules/nrfx/drivers/src/prs +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/modules/nrfx/drivers/src +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/modules/nrfx/drivers/include +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/modules/nrfx/drivers +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/modules/nrfx +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/modules +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/integration/nrfx/legacy/ble_flash +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/integration/nrfx/legacy +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/integration/nrfx +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/integration +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries/util +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries/twi_mngr +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries/strerror +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries/spi_mngr +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries/queue +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries/fstorage +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries/fds +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries/experimental_section_vars +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries/experimental_memobj +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries/experimental_log/src +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries/experimental_log +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries/delay +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries/balloc +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries/atomic_fifo +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries/atomic +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/TARGET_SOFTDEVICE_NONE/nrf_soc_nosd +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/TARGET_SOFTDEVICE_NONE/libraries/fstorage +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/TARGET_SOFTDEVICE_NONE/libraries +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/TARGET_SOFTDEVICE_NONE +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0 +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840/device +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840/config +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840/TARGET_BAST_FRONTIER +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840 +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52 +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x +-iwithprefixbefore/mbed/targets/TARGET_NORDIC +-iwithprefixbefore/mbed/rtos/source/TARGET_CORTEX/rtx5/RTX/Source +-iwithprefixbefore/mbed/rtos/source/TARGET_CORTEX/rtx5/RTX/Include +-iwithprefixbefore/mbed/rtos/source/TARGET_CORTEX/rtx5/RTX/Config +-iwithprefixbefore/mbed/rtos/source/TARGET_CORTEX/rtx5/RTX +-iwithprefixbefore/mbed/rtos/source/TARGET_CORTEX/rtx5/Include +-iwithprefixbefore/mbed/rtos/source/TARGET_CORTEX/rtx5 +-iwithprefixbefore/mbed/rtos/source/TARGET_CORTEX/rtx4 +-iwithprefixbefore/mbed/rtos/source/TARGET_CORTEX +-iwithprefixbefore/mbed/rtos/source +-iwithprefixbefore/mbed/rtos +-iwithprefixbefore/mbed/platform/source/minimal-printf +-iwithprefixbefore/mbed/platform/source +-iwithprefixbefore/mbed/platform/internal +-iwithprefixbefore/mbed/platform/cxxsupport +-iwithprefixbefore/mbed/platform +-iwithprefixbefore/mbed/hal/usb +-iwithprefixbefore/mbed/hal +-iwithprefixbefore/mbed/features/storage/kvstore/tdbstore +-iwithprefixbefore/mbed/features/storage/kvstore/securestore +-iwithprefixbefore/mbed/features/storage/kvstore/kv_map +-iwithprefixbefore/mbed/features/storage/kvstore/include +-iwithprefixbefore/mbed/features/storage/kvstore/global_api +-iwithprefixbefore/mbed/features/storage/kvstore/filesystemstore +-iwithprefixbefore/mbed/features/storage/kvstore/direct_access_devicekey +-iwithprefixbefore/mbed/features/storage/kvstore/conf +-iwithprefixbefore/mbed/features/storage/kvstore +-iwithprefixbefore/mbed/features/storage/filesystem/littlefsv2/littlefs +-iwithprefixbefore/mbed/features/storage/filesystem/littlefsv2 +-iwithprefixbefore/mbed/features/storage/filesystem/littlefs/littlefs +-iwithprefixbefore/mbed/features/storage/filesystem/littlefs +-iwithprefixbefore/mbed/features/storage/filesystem/fat/ChaN +-iwithprefixbefore/mbed/features/storage/filesystem/fat +-iwithprefixbefore/mbed/features/storage/filesystem +-iwithprefixbefore/mbed/features/storage/blockdevice +-iwithprefixbefore/mbed/features/storage +-iwithprefixbefore/mbed/features/nfc/stack/transceiver/pn512 +-iwithprefixbefore/mbed/features/nfc/stack/transceiver +-iwithprefixbefore/mbed/features/nfc/stack/tech/type4 +-iwithprefixbefore/mbed/features/nfc/stack/tech/isodep +-iwithprefixbefore/mbed/features/nfc/stack/tech/iso7816 +-iwithprefixbefore/mbed/features/nfc/stack/tech +-iwithprefixbefore/mbed/features/nfc/stack/platform +-iwithprefixbefore/mbed/features/nfc/stack/ndef +-iwithprefixbefore/mbed/features/nfc/stack +-iwithprefixbefore/mbed/features/nfc/nfc/ndef/common +-iwithprefixbefore/mbed/features/nfc/nfc/ndef +-iwithprefixbefore/mbed/features/nfc/nfc +-iwithprefixbefore/mbed/features/nfc/controllers +-iwithprefixbefore/mbed/features/nfc/acore/acore +-iwithprefixbefore/mbed/features/nfc/acore +-iwithprefixbefore/mbed/features/nfc +-iwithprefixbefore/mbed/features/netsocket/ppp/include/polarssl +-iwithprefixbefore/mbed/features/netsocket/ppp/include +-iwithprefixbefore/mbed/features/netsocket/ppp +-iwithprefixbefore/mbed/features/netsocket +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/libNET/src +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/libNET +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/libDHCPv6 +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/ipv6_stack +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/configs/base +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/configs +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/whiteboard +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/utils +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/pan_blacklist +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/nist_aes_kw +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/nd_proxy +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/mle_service +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/mdns/fnet/fnet_stack/stack +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/mdns/fnet/fnet_stack/services/serial +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/mdns/fnet/fnet_stack/services/poll +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/mdns/fnet/fnet_stack/services/mdns +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/mdns/fnet/fnet_stack/services/dns +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/mdns/fnet/fnet_stack/services +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/mdns/fnet/fnet_stack/port/cpu +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/mdns/fnet/fnet_stack/port/compiler +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/mdns/fnet/fnet_stack/port +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/mdns/fnet/fnet_stack +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/mdns/fnet +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/mdns +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/mac_neighbor_table +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/load_balance +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/ieee_802_11 +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/hmac +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/fnv_hash +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/fhss +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/etx +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/blacklist +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/Trickle +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/Neighbor_cache +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Security/protocols/tls_sec_prot +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Security/protocols/key_sec_prot +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Security/protocols/gkh_sec_prot +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Security/protocols/fwh_sec_prot +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Security/protocols/eap_tls_sec_prot +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Security/protocols +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Security/kmp +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Security/eapol +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Security/TLS +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Security/PANA +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Security/Common +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Security +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/RPL +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/NWK_INTERFACE/Include +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/NWK_INTERFACE +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/MPL +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/MLE +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/MAC/virtual_rf +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/MAC/IEEE802_15_4 +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/MAC +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/DHCPv6_client +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/DHCPv6_Server +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Core/include +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Core +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Common_Protocols +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/BorderRouter +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/6LoWPAN/ws +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/6LoWPAN/Thread +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/6LoWPAN/NVM +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/6LoWPAN/ND +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/6LoWPAN/Mesh +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/6LoWPAN/MAC +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/6LoWPAN/IPHC_Decode +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/6LoWPAN/Fragmentation +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/6LoWPAN/Bootstraps +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/6LoWPAN +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/nanostack/platform +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/nanostack +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack-eventloop/source +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack-eventloop/nanostack-event-loop/platform +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack-eventloop/nanostack-event-loop +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack-eventloop +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack +-iwithprefixbefore/mbed/features/nanostack/nanostack-interface +-iwithprefixbefore/mbed/features/nanostack/nanostack-hal-mbed-cmsis-rtos +-iwithprefixbefore/mbed/features/nanostack/mbed-mesh-api/source/include +-iwithprefixbefore/mbed/features/nanostack/mbed-mesh-api/source +-iwithprefixbefore/mbed/features/nanostack/mbed-mesh-api/mbed-mesh-api +-iwithprefixbefore/mbed/features/nanostack/mbed-mesh-api +-iwithprefixbefore/mbed/features/nanostack/coap-service/source/include +-iwithprefixbefore/mbed/features/nanostack/coap-service/source +-iwithprefixbefore/mbed/features/nanostack/coap-service/coap-service +-iwithprefixbefore/mbed/features/nanostack/coap-service +-iwithprefixbefore/mbed/features/nanostack +-iwithprefixbefore/mbed/features/mbedtls/platform/inc +-iwithprefixbefore/mbed/features/mbedtls/platform +-iwithprefixbefore/mbed/features/mbedtls/inc/mbedtls +-iwithprefixbefore/mbed/features/mbedtls/inc +-iwithprefixbefore/mbed/features/mbedtls +-iwithprefixbefore/mbed/features/lwipstack/lwip/src/include/netif +-iwithprefixbefore/mbed/features/lwipstack/lwip/src/include/lwip/prot +-iwithprefixbefore/mbed/features/lwipstack/lwip/src/include/lwip/priv +-iwithprefixbefore/mbed/features/lwipstack/lwip/src/include/lwip +-iwithprefixbefore/mbed/features/lwipstack/lwip/src/include/compat/posix/sys +-iwithprefixbefore/mbed/features/lwipstack/lwip/src/include/compat/posix/net +-iwithprefixbefore/mbed/features/lwipstack/lwip/src/include/compat/posix/arpa +-iwithprefixbefore/mbed/features/lwipstack/lwip/src/include/compat/posix +-iwithprefixbefore/mbed/features/lwipstack/lwip/src/include/compat +-iwithprefixbefore/mbed/features/lwipstack/lwip/src/include +-iwithprefixbefore/mbed/features/lwipstack/lwip/src +-iwithprefixbefore/mbed/features/lwipstack/lwip-sys/arch +-iwithprefixbefore/mbed/features/lwipstack/lwip-sys +-iwithprefixbefore/mbed/features/lwipstack/lwip +-iwithprefixbefore/mbed/features/lwipstack +-iwithprefixbefore/mbed/features/lorawan/system +-iwithprefixbefore/mbed/features/lorawan/lorastack/phy +-iwithprefixbefore/mbed/features/lorawan/lorastack/mac +-iwithprefixbefore/mbed/features/lorawan/lorastack +-iwithprefixbefore/mbed/features/lorawan +-iwithprefixbefore/mbed/features/frameworks/utest/utest +-iwithprefixbefore/mbed/features/frameworks/utest +-iwithprefixbefore/mbed/features/frameworks/unity/unity +-iwithprefixbefore/mbed/features/frameworks/unity +-iwithprefixbefore/mbed/features/frameworks/nanostack-libservice/mbed-client-libservice/platform +-iwithprefixbefore/mbed/features/frameworks/nanostack-libservice/mbed-client-libservice +-iwithprefixbefore/mbed/features/frameworks/nanostack-libservice +-iwithprefixbefore/mbed/features/frameworks/mbed-trace/mbed-trace +-iwithprefixbefore/mbed/features/frameworks/mbed-trace +-iwithprefixbefore/mbed/features/frameworks/mbed-coap/source/include +-iwithprefixbefore/mbed/features/frameworks/mbed-coap/source +-iwithprefixbefore/mbed/features/frameworks/mbed-coap/mbed-coap +-iwithprefixbefore/mbed/features/frameworks/mbed-coap +-iwithprefixbefore/mbed/features/frameworks/mbed-client-randlib/mbed-client-randlib/platform +-iwithprefixbefore/mbed/features/frameworks/mbed-client-randlib/mbed-client-randlib +-iwithprefixbefore/mbed/features/frameworks/mbed-client-randlib +-iwithprefixbefore/mbed/features/frameworks/mbed-client-cli/mbed-client-cli +-iwithprefixbefore/mbed/features/frameworks/mbed-client-cli +-iwithprefixbefore/mbed/features/frameworks/greentea-client/greentea-client +-iwithprefixbefore/mbed/features/frameworks/greentea-client +-iwithprefixbefore/mbed/features/frameworks +-iwithprefixbefore/mbed/features/device_key/source +-iwithprefixbefore/mbed/features/device_key +-iwithprefixbefore/mbed/features/cryptocell/FEATURE_CRYPTOCELL310/include +-iwithprefixbefore/mbed/features/cryptocell/FEATURE_CRYPTOCELL310/TARGET_MCU_NRF52840 +-iwithprefixbefore/mbed/features/cryptocell/FEATURE_CRYPTOCELL310 +-iwithprefixbefore/mbed/features/cellular/framework/targets/UBLOX/PPP +-iwithprefixbefore/mbed/features/cellular/framework/targets/UBLOX/N2XX +-iwithprefixbefore/mbed/features/cellular/framework/targets/UBLOX/AT +-iwithprefixbefore/mbed/features/cellular/framework/targets/UBLOX +-iwithprefixbefore/mbed/features/cellular/framework/targets/TELIT/ME910 +-iwithprefixbefore/mbed/features/cellular/framework/targets/TELIT/ME310 +-iwithprefixbefore/mbed/features/cellular/framework/targets/TELIT/HE910 +-iwithprefixbefore/mbed/features/cellular/framework/targets/TELIT +-iwithprefixbefore/mbed/features/cellular/framework/targets/RiotMicro/AT +-iwithprefixbefore/mbed/features/cellular/framework/targets/RiotMicro +-iwithprefixbefore/mbed/features/cellular/framework/targets/QUECTEL/UG96 +-iwithprefixbefore/mbed/features/cellular/framework/targets/QUECTEL/M26 +-iwithprefixbefore/mbed/features/cellular/framework/targets/QUECTEL/EC2X +-iwithprefixbefore/mbed/features/cellular/framework/targets/QUECTEL/BG96 +-iwithprefixbefore/mbed/features/cellular/framework/targets/QUECTEL/BC95 +-iwithprefixbefore/mbed/features/cellular/framework/targets/QUECTEL +-iwithprefixbefore/mbed/features/cellular/framework/targets/MultiTech/DragonflyNano/PPP +-iwithprefixbefore/mbed/features/cellular/framework/targets/MultiTech/DragonflyNano +-iwithprefixbefore/mbed/features/cellular/framework/targets/MultiTech +-iwithprefixbefore/mbed/features/cellular/framework/targets/GENERIC/GENERIC_AT3GPP +-iwithprefixbefore/mbed/features/cellular/framework/targets/GENERIC +-iwithprefixbefore/mbed/features/cellular/framework/targets/GEMALTO/CINTERION +-iwithprefixbefore/mbed/features/cellular/framework/targets/GEMALTO +-iwithprefixbefore/mbed/features/cellular/framework/targets/Altair/ALT1250/PPP +-iwithprefixbefore/mbed/features/cellular/framework/targets/Altair/ALT1250 +-iwithprefixbefore/mbed/features/cellular/framework/targets/Altair +-iwithprefixbefore/mbed/features/cellular/framework/targets +-iwithprefixbefore/mbed/features/cellular/framework/device +-iwithprefixbefore/mbed/features/cellular/framework/common +-iwithprefixbefore/mbed/features/cellular/framework/AT +-iwithprefixbefore/mbed/features/cellular/framework/API +-iwithprefixbefore/mbed/features/cellular/framework +-iwithprefixbefore/mbed/features/cellular +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_NORDIC/TARGET_NORDIC_CORDIO/TARGET_NRF5x +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack_adaptation +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/thirdparty/uecc +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/thirdparty/nordic-bsp/components/boards +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/thirdparty/nordic-bsp/components +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/thirdparty/nordic-bsp +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/thirdparty +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/controller/sources/common/sch +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/controller/sources/common/bb +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/controller/sources/common +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/controller/sources/ble/sch +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/controller/sources/ble/lhci +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/controller/sources/ble/lctr +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/controller/sources/ble/include +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/controller/sources/ble/bb +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/controller/sources/ble +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/controller/sources +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/controller/include/common +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/controller/include/ble +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/controller/include +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/controller +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack_adaptation +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/wsf/include/util +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/wsf/include +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/wsf +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/platform/include +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/platform +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/ble-host/sources/stack/smp +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/ble-host/sources/stack/l2c +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/ble-host/sources/stack/hci +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/ble-host/sources/stack/dm +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/ble-host/sources/stack/cfg +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/ble-host/sources/stack/att +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/ble-host/sources/stack +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/ble-host/sources/sec/common +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/ble-host/sources/sec +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/ble-host/sources/hci/dual_chip +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/ble-host/sources/hci +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/ble-host/sources +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/ble-host/include +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/ble-host +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/source +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/driver +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO +-iwithprefixbefore/mbed/features/FEATURE_BLE/source/generic +-iwithprefixbefore/mbed/features/FEATURE_BLE/source/gap +-iwithprefixbefore/mbed/features/FEATURE_BLE/source +-iwithprefixbefore/mbed/features/FEATURE_BLE/ble/services +-iwithprefixbefore/mbed/features/FEATURE_BLE/ble/pal +-iwithprefixbefore/mbed/features/FEATURE_BLE/ble/generic +-iwithprefixbefore/mbed/features/FEATURE_BLE/ble/gap +-iwithprefixbefore/mbed/features/FEATURE_BLE/ble/common +-iwithprefixbefore/mbed/features/FEATURE_BLE/ble +-iwithprefixbefore/mbed/features/FEATURE_BLE +-iwithprefixbefore/mbed/features +-iwithprefixbefore/mbed/events/internal +-iwithprefixbefore/mbed/events +-iwithprefixbefore/mbed/drivers/internal +-iwithprefixbefore/mbed/drivers +-iwithprefixbefore/mbed/components/wifi/esp8266-driver/ESP8266 +-iwithprefixbefore/mbed/components/wifi/esp8266-driver +-iwithprefixbefore/mbed/components/wifi +-iwithprefixbefore/mbed/components/storage/blockdevice/COMPONENT_FLASHIAP/COMMON +-iwithprefixbefore/mbed/components/storage/blockdevice/COMPONENT_FLASHIAP +-iwithprefixbefore/mbed/components/802.15.4_RF/stm-s2lp-rf-driver/stm-s2lp-rf-driver +-iwithprefixbefore/mbed/components/802.15.4_RF/stm-s2lp-rf-driver/source +-iwithprefixbefore/mbed/components/802.15.4_RF/stm-s2lp-rf-driver +-iwithprefixbefore/mbed/components/802.15.4_RF/mcr20a-rf-driver/source +-iwithprefixbefore/mbed/components/802.15.4_RF/mcr20a-rf-driver/mcr20a-rf-driver +-iwithprefixbefore/mbed/components/802.15.4_RF/mcr20a-rf-driver +-iwithprefixbefore/mbed/components/802.15.4_RF/atmel-rf-driver/source +-iwithprefixbefore/mbed/components/802.15.4_RF/atmel-rf-driver/atmel-rf-driver +-iwithprefixbefore/mbed/components/802.15.4_RF/atmel-rf-driver +-iwithprefixbefore/mbed/components/802.15.4_RF +-iwithprefixbefore/mbed/components +-iwithprefixbefore/mbed/cmsis/TARGET_CORTEX_M +-iwithprefixbefore/mbed/cmsis +-iwithprefixbefore/mbed diff --git a/variants/RAK4631/ldflags.txt b/variants/RAK4631/ldflags.txt new file mode 100644 index 000000000..e27ccf5cc --- /dev/null +++ b/variants/RAK4631/ldflags.txt @@ -0,0 +1,22 @@ +-DMBED_APP_SIZE=0x01000 +-DMBED_APP_START=0x000000 +-DMBED_BOOT_STACK_SIZE=0x800 +-DMBED_RAM_SIZE=0x20000008 +-DMBED_RAM_START=0x20000000 +-DMBED_ROM_SIZE=0x100000 +-DMBED_ROM_START=0x0 +-DXIP_ENABLE=0 +-Wl,--gc-sections +-Wl,--wrap,_calloc_r +-Wl,--wrap,_free_r +-Wl,--wrap,_malloc_r +-Wl,--wrap,_memalign_r +-Wl,--wrap,_realloc_r +-Wl,--wrap,atexit +-Wl,--wrap,exit +-Wl,--wrap,main +-Wl,-n +-mcpu=cortex-m4 +-mfloat-abi=softfp +-mfpu=fpv4-sp-d16 +-mthumb diff --git a/variants/RAK4631/libs/libcc_310_core.a b/variants/RAK4631/libs/libcc_310_core.a new file mode 100644 index 000000000..bace518f9 Binary files /dev/null and b/variants/RAK4631/libs/libcc_310_core.a differ diff --git a/variants/RAK4631/libs/libcc_310_ext.a b/variants/RAK4631/libs/libcc_310_ext.a new file mode 100644 index 000000000..64c57cceb Binary files /dev/null and b/variants/RAK4631/libs/libcc_310_ext.a differ diff --git a/variants/RAK4631/libs/libcc_310_trng.a b/variants/RAK4631/libs/libcc_310_trng.a new file mode 100644 index 000000000..df24c2c2c Binary files /dev/null and b/variants/RAK4631/libs/libcc_310_trng.a differ diff --git a/variants/RAK4631/libs/libmbed.a b/variants/RAK4631/libs/libmbed.a new file mode 100644 index 000000000..fc56719a0 Binary files /dev/null and b/variants/RAK4631/libs/libmbed.a differ diff --git a/variants/RAK4631/linker_script.ld b/variants/RAK4631/linker_script.ld new file mode 100644 index 000000000..ce12f58fa --- /dev/null +++ b/variants/RAK4631/linker_script.ld @@ -0,0 +1,154 @@ +MEMORY +{ + FLASH (rx) : ORIGIN = 0x01000, LENGTH = 0xf0000 + RAM_NVIC (rwx) : ORIGIN = 0x20000000, LENGTH = 0x100 + RAM_CRASH_DATA (rwx) : ORIGIN = (0x20000000 + 0x100), LENGTH = 0x100 + RAM (rwx) : ORIGIN = ((0x20000000 + 0x100) + 0x100), LENGTH = (0x40000 - (0x100 + 0x100)) +} +OUTPUT_FORMAT ("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") +ENTRY(Reset_Handler) +SECTIONS +{ + .text : + { + KEEP(*(.Vectors)) + *(.text*) + KEEP(*(.init)) + KEEP(*(.fini)) + *crtbegin.o(.ctors) + *crtbegin?.o(.ctors) + *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors) + *(SORT(.ctors.*)) + *(.ctors) + *crtbegin.o(.dtors) + *crtbegin?.o(.dtors) + *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors) + *(SORT(.dtors.*)) + *(.dtors) + *(.rodata*) + KEEP(*(.eh_frame*)) + } > FLASH + .sdh_soc_observers : + { + PROVIDE(__start_sdh_soc_observers = .); + KEEP(*(SORT(.sdh_soc_observers*))) + PROVIDE(__stop_sdh_soc_observers = .); + } > FLASH + .sdh_stack_observers : + { + PROVIDE(__start_sdh_stack_observers = .); + KEEP(*(SORT(.sdh_stack_observers*))) + PROVIDE(__stop_sdh_stack_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_ble_observers : + { + PROVIDE(__start_sdh_ble_observers = .); + KEEP(*(SORT(.sdh_ble_observers*))) + PROVIDE(__stop_sdh_ble_observers = .); + } > FLASH + .ARM.extab : + { + *(.ARM.extab* .gnu.linkonce.armextab.*) + } > FLASH + __exidx_start = .; + .ARM.exidx : + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + } > FLASH + __exidx_end = .; + __etext = .; + .data : AT (__etext) + { + __data_start__ = .; + *(vtable) + *(.data*) + . = ALIGN(8); + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP(*(.preinit_array)) + PROVIDE_HIDDEN (__preinit_array_end = .); + . = ALIGN(8); + PROVIDE_HIDDEN (__init_array_start = .); + KEEP(*(SORT(.init_array.*))) + KEEP(*(.init_array)) + PROVIDE_HIDDEN (__init_array_end = .); + . = ALIGN(8); + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP(*(SORT(.fini_array.*))) + KEEP(*(.fini_array)) + PROVIDE_HIDDEN (__fini_array_end = .); + . = ALIGN(8); + PROVIDE(__start_fs_data = .); + KEEP(*(.fs_data)) + PROVIDE(__stop_fs_data = .); + *(.jcr) + . = ALIGN(8); + __data_end__ = .; + } > RAM + __edata = .; + .nvictable (NOLOAD) : + { + PROVIDE(__start_nvictable = .); + KEEP(*(.nvictable)) + PROVIDE(__stop_nvictable = .); + } > RAM_NVIC + .crash_data_ram : + { + . = ALIGN(8); + __CRASH_DATA_RAM__ = .; + __CRASH_DATA_RAM_START__ = .; + KEEP(*(.keep.crash_data_ram)) + *(.m_crash_data_ram) + . += 0x100; + . = ALIGN(8); + __CRASH_DATA_RAM_END__ = .; + } > RAM_CRASH_DATA + .noinit (NOLOAD) : + { + PROVIDE(__start_noinit = .); + KEEP(*(.noinit)) + PROVIDE(__stop_noinit = .); + } > RAM + .bss : + { + . = ALIGN(8); + __bss_start__ = .; + *(.bss*) + *(COMMON) + . = ALIGN(8); + __bss_end__ = .; + } > RAM + .heap (NOLOAD): + { + __end__ = .; + end = __end__; + *(.heap*); + ASSERT(. <= (ORIGIN(RAM) + LENGTH(RAM) - 1024), "heap region overflowed into stack"); + . = ORIGIN(RAM) + LENGTH(RAM) - 1024; + __HeapLimit = .; + } > RAM + PROVIDE(__heap_start = ADDR(.heap)); + PROVIDE(__heap_size = SIZEOF(.heap)); + PROVIDE(__mbed_sbrk_start = ADDR(.heap)); + PROVIDE(__mbed_krbs_start = ADDR(.heap) + SIZEOF(.heap)); + .stack (NOLOAD): + { + __StackLimit = .; + *(.stack*) + . = ORIGIN(RAM) + LENGTH(RAM); + } > RAM + __StackTop = ORIGIN(RAM) + LENGTH(RAM); + __StackLimit = __StackTop - 1024; + PROVIDE(__stack = __StackTop); +} diff --git a/variants/RAK4631/mbed_config.h b/variants/RAK4631/mbed_config.h new file mode 100644 index 000000000..bc326756a --- /dev/null +++ b/variants/RAK4631/mbed_config.h @@ -0,0 +1,438 @@ +/* + * mbed SDK + * Copyright (c) 2017 ARM Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Automatically generated configuration file. +// DO NOT EDIT, content will be overwritten. + +#ifndef __MBED_CONFIG_DATA__ +#define __MBED_CONFIG_DATA__ + +// Configuration parameters +#define ATT_NUM_SIMUL_NTF 1 // set by library:cordio +#define ATT_NUM_SIMUL_WRITE_CMD 1 // set by library:cordio +#define BLE_FEATURE_EXTENDED_ADVERTISING 1 // set by library:ble +#define BLE_FEATURE_GATT_CLIENT 1 // set by library:ble +#define BLE_FEATURE_GATT_SERVER 1 // set by library:ble +#define BLE_FEATURE_PERIODIC_ADVERTISING 1 // set by library:ble +#define BLE_FEATURE_PHY_MANAGEMENT 1 // set by library:ble +#define BLE_FEATURE_PRIVACY 1 // set by library:ble +#define BLE_FEATURE_SECURE_CONNECTIONS 1 // set by library:ble +#define BLE_FEATURE_SECURITY 1 // set by library:ble +#define BLE_FEATURE_SIGNING 1 // set by library:ble +#define BLE_FEATURE_WHITELIST 1 // set by library:ble +#define BLE_ROLE_BROADCASTER 1 // set by library:ble +#define BLE_ROLE_CENTRAL 1 // set by library:ble +#define BLE_ROLE_OBSERVER 1 // set by library:ble +#define BLE_ROLE_PERIPHERAL 1 // set by library:ble +#define BLE_SECURITY_DATABASE_FILESYSTEM 1 // set by library:ble +#define BLE_SECURITY_DATABASE_KVSTORE 0 // set by library:ble +#define BLE_SECURITY_DATABASE_MAX_ENTRIES 5 // set by library:ble +#define CHCI_TR_CUSTOM 1 // set by library:cordio-ll +#define CHCI_TR_UART 0 // set by library:cordio-ll +#define CORDIO_ZERO_COPY_HCI 1 // set by library:cordio-nordic-ll +#define DM_CONN_MAX 3 // set by library:cordio +#define DM_NUM_ADV_SETS 3 // set by library:cordio +#define DM_NUM_PHYS 3 // set by library:cordio +#define DM_SYNC_MAX 1 // set by library:cordio +#define EATT_CONN_CHAN_MAX 1 // set by library:cordio +#define L2C_COC_CHAN_MAX 1 // set by library:cordio +#define L2C_COC_REG_MAX 1 // set by library:cordio +#define LHCI_ENABLE_VS 0 // set by library:cordio-ll +#define MBED_CONF_ALT1250_PPP_BAUDRATE 115200 // set by library:ALT1250_PPP +#define MBED_CONF_ALT1250_PPP_PROVIDE_DEFAULT 0 // set by library:ALT1250_PPP +#define MBED_CONF_ATMEL_RF_ASSUME_SPACED_SPI 0 // set by library:atmel-rf +#define MBED_CONF_ATMEL_RF_FULL_SPI_SPEED 7500000 // set by library:atmel-rf +#define MBED_CONF_ATMEL_RF_FULL_SPI_SPEED_BYTE_SPACING 250 // set by library:atmel-rf +#define MBED_CONF_ATMEL_RF_IRQ_THREAD_STACK_SIZE 1024 // set by library:atmel-rf +#define MBED_CONF_ATMEL_RF_LOW_SPI_SPEED 3750000 // set by library:atmel-rf +#define MBED_CONF_ATMEL_RF_PROVIDE_DEFAULT 0 // set by library:atmel-rf +#define MBED_CONF_ATMEL_RF_USE_SPI_SPACING_API 0 // set by library:atmel-rf +#define MBED_CONF_BLE_PRESENT 1 // set by library:ble +#define MBED_CONF_CELLULAR_CONTROL_PLANE_OPT 0 // set by library:cellular +#define MBED_CONF_CELLULAR_DEBUG_AT 0 // set by library:cellular +#define MBED_CONF_CELLULAR_MAX_CP_DATA_RECV_LEN 1358 // set by library:cellular +#define MBED_CONF_CELLULAR_RANDOM_MAX_START_DELAY 0 // set by library:cellular +#define MBED_CONF_CELLULAR_USE_APN_LOOKUP 0 // set by library:cellular +#define MBED_CONF_CELLULAR_USE_SMS 0 // set by library:cellular +#define MBED_CONF_CORDIO_DESIRED_ATT_MTU 23 // set by library:cordio +#define MBED_CONF_CORDIO_LL_DEFAULT_EXTENDED_ADVERTISING_FRAGMENTATION_SIZE 64 // set by library:cordio-ll +#define MBED_CONF_CORDIO_LL_EXTENDED_ADVERTISING_SIZE 251 // set by library:cordio-ll +#define MBED_CONF_CORDIO_LL_MAX_ACL_SIZE 256 // set by library:cordio-ll +#define MBED_CONF_CORDIO_LL_MAX_ADVERTISING_REPORTS 4 // set by library:cordio-ll +#define MBED_CONF_CORDIO_LL_MAX_ADVERTISING_SETS 3 // set by library:cordio-ll +#define MBED_CONF_CORDIO_LL_MAX_SCAN_REQUEST_EVENTS 4 // set by library:cordio-ll +#define MBED_CONF_CORDIO_LL_NRF52840_CRYPTOCELL310_ACCELERATION 1 // set by library:cordio-ll-nrf52840 +#define MBED_CONF_CORDIO_LL_NRF52840_EXTENDED_ADVERTISING_SIZE 512 // set by library:cordio-ll-nrf52840 +#define MBED_CONF_CORDIO_LL_NRF52840_MAX_ACL_SIZE 256 // set by library:cordio-ll-nrf52840 +#define MBED_CONF_CORDIO_LL_NRF52840_PHY_CODED_SUPPORT 1 // set by library:cordio-ll-nrf52840 +#define MBED_CONF_CORDIO_LL_NRF52840_TX_BUFFERS 4 // set by library:cordio-ll-nrf52840 +#define MBED_CONF_CORDIO_LL_PHY_2M_SUPPORT 1 // set by library:cordio-ll +#define MBED_CONF_CORDIO_LL_PHY_CODED_SUPPORT 0 // set by library:cordio-ll +#define MBED_CONF_CORDIO_LL_RX_BUFFERS 4 // set by library:cordio-ll +#define MBED_CONF_CORDIO_LL_TX_BUFFERS 4 // set by library:cordio-ll +#define MBED_CONF_CORDIO_MAX_PREPARED_WRITES 4 // set by library:cordio +#define MBED_CONF_CORDIO_PREFERRED_TX_POWER 0 // set by library:cordio +#define MBED_CONF_CORDIO_ROUTE_UNHANDLED_COMMAND_COMPLETE_EVENTS 1 // set by library:cordio +#define MBED_CONF_CORDIO_RX_ACL_BUFFER_SIZE 70 // set by library:cordio +#define MBED_CONF_CRYPTOCELL310_PRESENT 1 // set by library:cryptocell310 +#define MBED_CONF_DRIVERS_QSPI_CSN QSPI_FLASH1_CSN // set by library:drivers +#define MBED_CONF_DRIVERS_QSPI_IO0 QSPI_FLASH1_IO0 // set by library:drivers +#define MBED_CONF_DRIVERS_QSPI_IO1 QSPI_FLASH1_IO1 // set by library:drivers +#define MBED_CONF_DRIVERS_QSPI_IO2 QSPI_FLASH1_IO2 // set by library:drivers +#define MBED_CONF_DRIVERS_QSPI_IO3 QSPI_FLASH1_IO3 // set by library:drivers +#define MBED_CONF_DRIVERS_QSPI_SCK QSPI_FLASH1_SCK // set by library:drivers +#define MBED_CONF_DRIVERS_UART_SERIAL_RXBUF_SIZE 256 // set by library:drivers +#define MBED_CONF_DRIVERS_UART_SERIAL_TXBUF_SIZE 256 // set by library:drivers +#define MBED_CONF_ESP8266_BUILT_IN_DNS 0 // set by library:esp8266 +#define MBED_CONF_ESP8266_DEBUG 0 // set by library:esp8266 +#define MBED_CONF_ESP8266_POWER_OFF_TIME_MS 3 // set by library:esp8266 +#define MBED_CONF_ESP8266_POWER_ON_POLARITY 0 // set by library:esp8266 +#define MBED_CONF_ESP8266_POWER_ON_TIME_MS 3 // set by library:esp8266 +#define MBED_CONF_ESP8266_PROVIDE_DEFAULT 0 // set by library:esp8266 +#define MBED_CONF_ESP8266_SERIAL_BAUDRATE 115200 // set by library:esp8266 +#define MBED_CONF_ESP8266_SNTP_ENABLE 0 // set by library:esp8266 +#define MBED_CONF_ESP8266_SNTP_SERVER0 "" // set by library:esp8266 +#define MBED_CONF_ESP8266_SNTP_SERVER1 "" // set by library:esp8266 +#define MBED_CONF_ESP8266_SNTP_SERVER2 "" // set by library:esp8266 +#define MBED_CONF_ESP8266_SNTP_TIMEZONE 0 // set by library:esp8266 +#define MBED_CONF_ESP8266_SOCKET_BUFSIZE 8192 // set by library:esp8266 +#define MBED_CONF_EVENTS_PRESENT 1 // set by library:events +#define MBED_CONF_EVENTS_SHARED_DISPATCH_FROM_APPLICATION 0 // set by library:events +#define MBED_CONF_EVENTS_SHARED_EVENTSIZE 768 // set by library:events +#define MBED_CONF_EVENTS_SHARED_HIGHPRIO_EVENTSIZE 256 // set by library:events +#define MBED_CONF_EVENTS_SHARED_HIGHPRIO_STACKSIZE 1024 // set by library:events +#define MBED_CONF_EVENTS_SHARED_STACKSIZE 2048 // set by library:events +#define MBED_CONF_EVENTS_USE_LOWPOWER_TIMER_TICKER 0 // set by library:events +#define MBED_CONF_FAT_CHAN_FFS_DBG 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_CODE_PAGE 437 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_FS_EXFAT 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_FS_HEAPBUF 1 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_FS_LOCK 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_FS_MINIMIZE 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_FS_NOFSINFO 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_FS_NORTC 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_FS_READONLY 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_FS_REENTRANT 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_FS_RPATH 1 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_FS_TIMEOUT 1000 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_FS_TINY 1 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_LFN_BUF 255 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_LFN_UNICODE 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_MAX_LFN 255 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_MAX_SS 4096 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_MIN_SS 512 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_MULTI_PARTITION 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_NORTC_MDAY 1 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_NORTC_MON 1 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_NORTC_YEAR 2017 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_SFN_BUF 12 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_STRF_ENCODE 3 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_STR_VOLUME_ID 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_SYNC_T HANDLE // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_USE_CHMOD 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_USE_EXPAND 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_USE_FASTSEEK 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_USE_FIND 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_USE_FORWARD 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_USE_LABEL 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_USE_LFN 3 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_USE_MKFS 1 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_USE_STRFUNC 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_USE_TRIM 1 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_VOLUMES 4 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_VOLUME_STRS "RAM","NAND","CF","SD","SD2","USB","USB2","USB3" // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FLUSH_ON_NEW_CLUSTER 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FLUSH_ON_NEW_SECTOR 1 // set by library:fat_chan +#define MBED_CONF_FILESYSTEM_PRESENT 1 // set by library:filesystem +#define MBED_CONF_FLASHIAP_BLOCK_DEVICE_BASE_ADDRESS 0xFFFFFFFF // set by library:flashiap-block-device +#define MBED_CONF_FLASHIAP_BLOCK_DEVICE_SIZE 0 // set by library:flashiap-block-device +#define MBED_CONF_GEMALTO_CINTERION_BAUDRATE 115200 // set by library:GEMALTO_CINTERION +#define MBED_CONF_GEMALTO_CINTERION_PROVIDE_DEFAULT 0 // set by library:GEMALTO_CINTERION +#define MBED_CONF_GENERIC_AT3GPP_BAUDRATE 115200 // set by library:GENERIC_AT3GPP +#define MBED_CONF_GENERIC_AT3GPP_PROVIDE_DEFAULT 0 // set by library:GENERIC_AT3GPP +#define MBED_CONF_LORA_ADR_ON 1 // set by library:lora +#define MBED_CONF_LORA_APPLICATION_EUI {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} // set by library:lora +#define MBED_CONF_LORA_APPLICATION_KEY {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} // set by library:lora +#define MBED_CONF_LORA_APPSKEY {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} // set by library:lora +#define MBED_CONF_LORA_APP_PORT 15 // set by library:lora +#define MBED_CONF_LORA_AUTOMATIC_UPLINK_MESSAGE 1 // set by library:lora +#define MBED_CONF_LORA_DEVICE_ADDRESS 0x00000000 // set by library:lora +#define MBED_CONF_LORA_DEVICE_EUI {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} // set by library:lora +#define MBED_CONF_LORA_DOWNLINK_PREAMBLE_LENGTH 5 // set by library:lora +#define MBED_CONF_LORA_DUTY_CYCLE_ON 1 // set by library:lora +#define MBED_CONF_LORA_DUTY_CYCLE_ON_JOIN 1 // set by library:lora +#define MBED_CONF_LORA_FSB_MASK {0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00FF} // set by library:lora +#define MBED_CONF_LORA_FSB_MASK_CHINA {0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF} // set by library:lora +#define MBED_CONF_LORA_LBT_ON 0 // set by library:lora +#define MBED_CONF_LORA_MAX_SYS_RX_ERROR 5 // set by library:lora +#define MBED_CONF_LORA_NB_TRIALS 12 // set by library:lora +#define MBED_CONF_LORA_NWKSKEY {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} // set by library:lora +#define MBED_CONF_LORA_OVER_THE_AIR_ACTIVATION 1 // set by library:lora +#define MBED_CONF_LORA_PHY EU868 // set by library:lora +#define MBED_CONF_LORA_PUBLIC_NETWORK 1 // set by library:lora +#define MBED_CONF_LORA_TX_MAX_SIZE 64 // set by library:lora +#define MBED_CONF_LORA_UPLINK_PREAMBLE_LENGTH 8 // set by library:lora +#define MBED_CONF_LORA_WAKEUP_TIME 5 // set by library:lora +#define MBED_CONF_LWIP_ADDR_TIMEOUT 5 // set by library:lwip +#define MBED_CONF_LWIP_ADDR_TIMEOUT_MODE 1 // set by library:lwip +#define MBED_CONF_LWIP_DEBUG_ENABLED 0 // set by library:lwip +#define MBED_CONF_LWIP_DEFAULT_THREAD_STACKSIZE 512 // set by library:lwip +#define MBED_CONF_LWIP_DHCP_TIMEOUT 60 // set by library:lwip +#define MBED_CONF_LWIP_ENABLE_PPP_TRACE 0 // set by library:lwip +#define MBED_CONF_LWIP_ETHERNET_ENABLED 1 // set by library:lwip +#define MBED_CONF_LWIP_IPV4_ENABLED 1 // set by library:lwip +#define MBED_CONF_LWIP_IPV6_ENABLED 0 // set by library:lwip +#define MBED_CONF_LWIP_IP_VER_PREF 4 // set by library:lwip +#define MBED_CONF_LWIP_L3IP_ENABLED 0 // set by library:lwip +#define MBED_CONF_LWIP_MBOX_SIZE 8 // set by library:lwip +#define MBED_CONF_LWIP_MEMP_NUM_TCPIP_MSG_INPKT 8 // set by library:lwip +#define MBED_CONF_LWIP_MEMP_NUM_TCP_SEG 16 // set by library:lwip +#define MBED_CONF_LWIP_MEM_SIZE 1600 // set by library:lwip +#define MBED_CONF_LWIP_NUM_NETBUF 8 // set by library:lwip +#define MBED_CONF_LWIP_NUM_PBUF 8 // set by library:lwip +#define MBED_CONF_LWIP_PBUF_POOL_SIZE 5 // set by library:lwip +#define MBED_CONF_LWIP_PPP_ENABLED 0 // set by library:lwip +#define MBED_CONF_LWIP_PPP_IPV4_ENABLED 0 // set by library:lwip +#define MBED_CONF_LWIP_PPP_IPV6_ENABLED 0 // set by library:lwip +#define MBED_CONF_LWIP_PPP_THREAD_STACKSIZE 768 // set by library:lwip +#define MBED_CONF_LWIP_PRESENT 1 // set by library:lwip +#define MBED_CONF_LWIP_RAW_SOCKET_ENABLED 0 // set by library:lwip +#define MBED_CONF_LWIP_SOCKET_MAX 4 // set by library:lwip +#define MBED_CONF_LWIP_TCPIP_THREAD_PRIORITY osPriorityNormal // set by library:lwip +#define MBED_CONF_LWIP_TCPIP_THREAD_STACKSIZE 1200 // set by library:lwip +#define MBED_CONF_LWIP_TCP_CLOSE_TIMEOUT 1000 // set by library:lwip +#define MBED_CONF_LWIP_TCP_ENABLED 1 // set by library:lwip +#define MBED_CONF_LWIP_TCP_MAXRTX 6 // set by library:lwip +#define MBED_CONF_LWIP_TCP_MSS 536 // set by library:lwip +#define MBED_CONF_LWIP_TCP_SERVER_MAX 4 // set by library:lwip +#define MBED_CONF_LWIP_TCP_SND_BUF (2 * TCP_MSS) // set by library:lwip +#define MBED_CONF_LWIP_TCP_SOCKET_MAX 4 // set by library:lwip +#define MBED_CONF_LWIP_TCP_SYNMAXRTX 6 // set by library:lwip +#define MBED_CONF_LWIP_TCP_WND (4 * TCP_MSS) // set by library:lwip +#define MBED_CONF_LWIP_UDP_SOCKET_MAX 4 // set by library:lwip +#define MBED_CONF_LWIP_USE_MBED_TRACE 0 // set by library:lwip +#define MBED_CONF_MBED_MESH_API_6LOWPAN_ND_CHANNEL 0 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_6LOWPAN_ND_CHANNEL_MASK 0x7fff800 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_6LOWPAN_ND_CHANNEL_PAGE 0 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_6LOWPAN_ND_DEVICE_TYPE NET_6LOWPAN_ROUTER // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_6LOWPAN_ND_PANID_FILTER 0xffff // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_6LOWPAN_ND_PSK_KEY {0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf} // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_6LOWPAN_ND_PSK_KEY_ID 1 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_6LOWPAN_ND_SECURITY_MODE NONE // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_6LOWPAN_ND_SEC_LEVEL 5 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_HEAP_SIZE 32500 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_HEAP_STAT_INFO NULL // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_MAC_NEIGH_TABLE_SIZE 32 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_THREAD_CONFIG_CHANNEL 22 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_THREAD_CONFIG_CHANNEL_MASK 0x7fff800 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_THREAD_CONFIG_CHANNEL_PAGE 0 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_THREAD_CONFIG_COMMISSIONING_DATASET_TIMESTAMP 0x10000 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_THREAD_CONFIG_EXTENDED_PANID {0xf1, 0xb5, 0xa1, 0xb2,0xc4, 0xd5, 0xa1, 0xbd } // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_THREAD_CONFIG_ML_PREFIX {0xfd, 0x0, 0x0d, 0xb8, 0x0, 0x0, 0x0, 0x0} // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_THREAD_CONFIG_NETWORK_NAME "Thread Network" // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_THREAD_CONFIG_PANID 0x0700 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_THREAD_CONFIG_PSKC {0xc8, 0xa6, 0x2e, 0xae, 0xf3, 0x68, 0xf3, 0x46, 0xa9, 0x9e, 0x57, 0x85, 0x98, 0x9d, 0x1c, 0xd0} // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_THREAD_DEVICE_TYPE MESH_DEVICE_TYPE_THREAD_ROUTER // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_THREAD_MASTER_KEY {0x10, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff} // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_THREAD_PSKD "ABCDEFGH" // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_THREAD_SECURITY_POLICY 255 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_THREAD_USE_STATIC_LINK_CONFIG 1 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_USE_MALLOC_FOR_HEAP 0 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_WISUN_BC_CHANNEL_FUNCTION 255 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_WISUN_BC_DWELL_INTERVAL 0 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_WISUN_BC_FIXED_CHANNEL 65535 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_WISUN_BC_INTERVAL 0 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_WISUN_DEVICE_TYPE MESH_DEVICE_TYPE_WISUN_ROUTER // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_WISUN_NETWORK_NAME "Wi-SUN Network" // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_WISUN_OPERATING_CLASS 255 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_WISUN_OPERATING_MODE 255 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_WISUN_REGULATORY_DOMAIN 3 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_WISUN_UC_CHANNEL_FUNCTION 255 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_WISUN_UC_DWELL_INTERVAL 255 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_WISUN_UC_FIXED_CHANNEL 65535 // set by library:mbed-mesh-api +#define MBED_CONF_MCR20A_PROVIDE_DEFAULT 0 // set by library:mcr20a +#define MBED_CONF_NANOSTACK_CONFIGURATION nanostack_full // set by library:nanostack +#define MBED_CONF_NANOSTACK_HAL_CRITICAL_SECTION_USABLE_FROM_INTERRUPT 0 // set by library:nanostack-hal +#define MBED_CONF_NANOSTACK_HAL_EVENT_LOOP_DISPATCH_FROM_APPLICATION 0 // set by library:nanostack-hal +#define MBED_CONF_NANOSTACK_HAL_EVENT_LOOP_THREAD_STACK_SIZE 6144 // set by library:nanostack-hal +#define MBED_CONF_NANOSTACK_HAL_EVENT_LOOP_USE_MBED_EVENTS 0 // set by library:nanostack-hal +#define MBED_CONF_NANOSTACK_HAL_KVSTORE_PATH "/kv/" // set by library:nanostack-hal +#define MBED_CONF_NANOSTACK_HAL_USE_KVSTORE 0 // set by library:nanostack-hal +#define MBED_CONF_NORDIC_NRF_LF_CLOCK_CALIB_MODE_CONFIG 2 // set by target:MCU_NRF52840 +#define MBED_CONF_NORDIC_NRF_LF_CLOCK_CALIB_TIMER_INTERVAL 16 // set by target:MCU_NRF52840 +#define MBED_CONF_NORDIC_NRF_LF_CLOCK_SRC NRF_LF_SRC_RC // set by target:MCU_NRF52840 +#define MBED_CONF_NSAPI_DEFAULT_MESH_TYPE THREAD // set by library:nsapi +#define MBED_CONF_NSAPI_DEFAULT_STACK LWIP // set by library:nsapi +#define MBED_CONF_NSAPI_DEFAULT_WIFI_SECURITY NONE // set by library:nsapi +#define MBED_CONF_NSAPI_DNS_ADDRESSES_LIMIT 10 // set by library:nsapi +#define MBED_CONF_NSAPI_DNS_CACHE_SIZE 3 // set by library:nsapi +#define MBED_CONF_NSAPI_DNS_RESPONSE_WAIT_TIME 10000 // set by library:nsapi +#define MBED_CONF_NSAPI_DNS_RETRIES 1 // set by library:nsapi +#define MBED_CONF_NSAPI_DNS_TOTAL_ATTEMPTS 10 // set by library:nsapi +#define MBED_CONF_NSAPI_PRESENT 1 // set by library:nsapi +#define MBED_CONF_NSAPI_SOCKET_STATS_ENABLED 0 // set by library:nsapi +#define MBED_CONF_NSAPI_SOCKET_STATS_MAX_COUNT 10 // set by library:nsapi +#define MBED_CONF_PLATFORM_CALLBACK_COMPARABLE 1 // set by library:platform +#define MBED_CONF_PLATFORM_CALLBACK_NONTRIVIAL 1 // set by application[*] +#define MBED_CONF_PLATFORM_CRASH_CAPTURE_ENABLED 0 // set by library:platform +#define MBED_CONF_PLATFORM_CTHUNK_COUNT_MAX 8 // set by library:platform +#define MBED_CONF_PLATFORM_DEFAULT_SERIAL_BAUD_RATE 115200 // set by application[*] +#define MBED_CONF_PLATFORM_ERROR_ALL_THREADS_INFO 0 // set by library:platform +#define MBED_CONF_PLATFORM_ERROR_FILENAME_CAPTURE_ENABLED 0 // set by library:platform +#define MBED_CONF_PLATFORM_ERROR_HIST_ENABLED 0 // set by library:platform +#define MBED_CONF_PLATFORM_ERROR_HIST_SIZE 4 // set by library:platform +#define MBED_CONF_PLATFORM_ERROR_REBOOT_MAX 1 // set by library:platform +#define MBED_CONF_PLATFORM_FATAL_ERROR_AUTO_REBOOT_ENABLED 0 // set by library:platform +#define MBED_CONF_PLATFORM_MAX_ERROR_FILENAME_LEN 16 // set by library:platform +#define MBED_CONF_PLATFORM_MINIMAL_PRINTF_ENABLE_64_BIT 1 // set by library:platform +#define MBED_CONF_PLATFORM_MINIMAL_PRINTF_ENABLE_FLOATING_POINT 0 // set by library:platform +#define MBED_CONF_PLATFORM_MINIMAL_PRINTF_SET_FLOATING_POINT_MAX_DECIMALS 6 // set by library:platform +#define MBED_CONF_PLATFORM_POLL_USE_LOWPOWER_TIMER 0 // set by library:platform +#define MBED_CONF_PLATFORM_STDIO_BAUD_RATE 115200 // set by application[*] +#define MBED_CONF_PLATFORM_STDIO_BUFFERED_SERIAL 1 // set by application[*] +#define MBED_CONF_PLATFORM_STDIO_CONVERT_NEWLINES 1 // set by library:platform +#define MBED_CONF_PLATFORM_STDIO_CONVERT_TTY_NEWLINES 1 // set by library:platform +#define MBED_CONF_PLATFORM_STDIO_FLUSH_AT_EXIT 1 // set by library:platform +#define MBED_CONF_PLATFORM_STDIO_MINIMAL_CONSOLE_ONLY 0 // set by library:platform +#define MBED_CONF_PLATFORM_USE_MPU 1 // set by library:platform +#define MBED_CONF_PPP_ENABLED 0 // set by library:ppp +#define MBED_CONF_PPP_ENABLE_TRACE 0 // set by library:ppp +#define MBED_CONF_PPP_IPV4_ENABLED 1 // set by library:ppp +#define MBED_CONF_PPP_IPV6_ENABLED 0 // set by library:ppp +#define MBED_CONF_PPP_MBED_EVENT_QUEUE 0 // set by library:ppp +#define MBED_CONF_PPP_THREAD_STACKSIZE 816 // set by library:ppp +#define MBED_CONF_QUECTEL_BC95_BAUDRATE 9600 // set by library:QUECTEL_BC95 +#define MBED_CONF_QUECTEL_BC95_PROVIDE_DEFAULT 0 // set by library:QUECTEL_BC95 +#define MBED_CONF_QUECTEL_BG96_BAUDRATE 115200 // set by library:QUECTEL_BG96 +#define MBED_CONF_QUECTEL_BG96_PROVIDE_DEFAULT 0 // set by library:QUECTEL_BG96 +#define MBED_CONF_QUECTEL_EC2X_BAUDRATE 115200 // set by library:QUECTEL_EC2X +#define MBED_CONF_QUECTEL_EC2X_PROVIDE_DEFAULT 0 // set by library:QUECTEL_EC2X +#define MBED_CONF_QUECTEL_EC2X_START_TIMEOUT 15000 // set by library:QUECTEL_EC2X +#define MBED_CONF_QUECTEL_M26_BAUDRATE 115200 // set by library:QUECTEL_M26 +#define MBED_CONF_QUECTEL_M26_PROVIDE_DEFAULT 0 // set by library:QUECTEL_M26 +#define MBED_CONF_QUECTEL_UG96_BAUDRATE 115200 // set by library:QUECTEL_UG96 +#define MBED_CONF_QUECTEL_UG96_PROVIDE_DEFAULT 0 // set by library:QUECTEL_UG96 +#define MBED_CONF_RM1000_AT_BAUDRATE 230400 // set by library:RM1000_AT +#define MBED_CONF_RM1000_AT_PROVIDE_DEFAULT 0 // set by library:RM1000_AT +#define MBED_CONF_RTOS_API_PRESENT 1 // set by library:rtos-api +#define MBED_CONF_RTOS_EVFLAGS_NUM 0 // set by library:rtos +#define MBED_CONF_RTOS_IDLE_THREAD_STACK_SIZE 512 // set by library:rtos +#define MBED_CONF_RTOS_IDLE_THREAD_STACK_SIZE_DEBUG_EXTRA 0 // set by library:rtos +#define MBED_CONF_RTOS_IDLE_THREAD_STACK_SIZE_TICKLESS_EXTRA 256 // set by library:rtos +#define MBED_CONF_RTOS_MAIN_THREAD_STACK_SIZE 32768 // set by application[*] +#define MBED_CONF_RTOS_MSGQUEUE_DATA_SIZE 0 // set by library:rtos +#define MBED_CONF_RTOS_MSGQUEUE_NUM 0 // set by library:rtos +#define MBED_CONF_RTOS_MUTEX_NUM 0 // set by library:rtos +#define MBED_CONF_RTOS_PRESENT 1 // set by library:rtos +#define MBED_CONF_RTOS_SEMAPHORE_NUM 0 // set by library:rtos +#define MBED_CONF_RTOS_THREAD_NUM 0 // set by library:rtos +#define MBED_CONF_RTOS_THREAD_STACK_SIZE 4096 // set by library:rtos +#define MBED_CONF_RTOS_THREAD_USER_STACK_SIZE 0 // set by library:rtos +#define MBED_CONF_RTOS_TIMER_NUM 0 // set by library:rtos +#define MBED_CONF_RTOS_TIMER_THREAD_STACK_SIZE 768 // set by library:rtos +#define MBED_CONF_S2LP_PROVIDE_DEFAULT 0 // set by library:s2lp +#define MBED_CONF_SARA4_PPP_BAUDRATE 115200 // set by library:SARA4_PPP +#define MBED_CONF_SARA4_PPP_PROVIDE_DEFAULT 0 // set by library:SARA4_PPP +#define MBED_CONF_STORAGE_DEFAULT_KV kv // set by library:storage +#define MBED_CONF_STORAGE_FILESYSTEM_BLOCKDEVICE default // set by library:storage_filesystem +#define MBED_CONF_STORAGE_FILESYSTEM_EXTERNAL_BASE_ADDRESS 0 // set by library:storage_filesystem +#define MBED_CONF_STORAGE_FILESYSTEM_EXTERNAL_SIZE 0 // set by library:storage_filesystem +#define MBED_CONF_STORAGE_FILESYSTEM_FILESYSTEM default // set by library:storage_filesystem +#define MBED_CONF_STORAGE_FILESYSTEM_FOLDER_PATH kvstore // set by library:storage_filesystem +#define MBED_CONF_STORAGE_FILESYSTEM_INTERNAL_BASE_ADDRESS 0 // set by library:storage_filesystem +#define MBED_CONF_STORAGE_FILESYSTEM_MOUNT_POINT kv // set by library:storage_filesystem +#define MBED_CONF_STORAGE_FILESYSTEM_NO_RBP_BLOCKDEVICE default // set by library:storage_filesystem_no_rbp +#define MBED_CONF_STORAGE_FILESYSTEM_NO_RBP_EXTERNAL_BASE_ADDRESS 0 // set by library:storage_filesystem_no_rbp +#define MBED_CONF_STORAGE_FILESYSTEM_NO_RBP_EXTERNAL_SIZE 0 // set by library:storage_filesystem_no_rbp +#define MBED_CONF_STORAGE_FILESYSTEM_NO_RBP_FILESYSTEM default // set by library:storage_filesystem_no_rbp +#define MBED_CONF_STORAGE_FILESYSTEM_NO_RBP_FOLDER_PATH kvstore // set by library:storage_filesystem_no_rbp +#define MBED_CONF_STORAGE_FILESYSTEM_NO_RBP_MOUNT_POINT kv // set by library:storage_filesystem_no_rbp +#define MBED_CONF_STORAGE_FILESYSTEM_RBP_INTERNAL_SIZE 0 // set by library:storage_filesystem +#define MBED_CONF_STORAGE_STORAGE_TYPE default // set by library:storage +#define MBED_CONF_STORAGE_TDB_EXTERNAL_BLOCKDEVICE default // set by library:storage_tdb_external +#define MBED_CONF_STORAGE_TDB_EXTERNAL_EXTERNAL_BASE_ADDRESS 0 // set by library:storage_tdb_external +#define MBED_CONF_STORAGE_TDB_EXTERNAL_EXTERNAL_SIZE 0 // set by library:storage_tdb_external +#define MBED_CONF_STORAGE_TDB_EXTERNAL_INTERNAL_BASE_ADDRESS 0 // set by library:storage_tdb_external +#define MBED_CONF_STORAGE_TDB_EXTERNAL_NO_RBP_BLOCKDEVICE default // set by library:storage_tdb_external_no_rbp +#define MBED_CONF_STORAGE_TDB_EXTERNAL_NO_RBP_EXTERNAL_BASE_ADDRESS 0 // set by library:storage_tdb_external_no_rbp +#define MBED_CONF_STORAGE_TDB_EXTERNAL_NO_RBP_EXTERNAL_SIZE 0 // set by library:storage_tdb_external_no_rbp +#define MBED_CONF_STORAGE_TDB_EXTERNAL_RBP_INTERNAL_SIZE 0 // set by library:storage_tdb_external +#define MBED_CONF_STORAGE_TDB_INTERNAL_INTERNAL_BASE_ADDRESS 0 // set by library:storage_tdb_internal +#define MBED_CONF_STORAGE_TDB_INTERNAL_INTERNAL_SIZE 0 // set by library:storage_tdb_internal +#define MBED_CONF_TARGET_BOOT_STACK_SIZE 0x400 // set by library:rtos[*] +#define MBED_CONF_TARGET_CONSOLE_UART 1 // set by target:Target +#define MBED_CONF_TARGET_DEEP_SLEEP_LATENCY 0 // set by target:Target +#define MBED_CONF_TARGET_DEFAULT_ADC_VREF NAN // set by target:Target +#define MBED_CONF_TARGET_INIT_US_TICKER_AT_BOOT 0 // set by target:Target +#define MBED_CONF_TARGET_MPU_ROM_END 0x1fffffff // set by target:MCU_NRF52840 +#define MBED_CONF_TARGET_TICKLESS_FROM_US_TICKER 0 // set by target:Target +#define MBED_CONF_TARGET_UART_0_FIFO_SIZE 32 // set by target:MCU_NRF52840 +#define MBED_CONF_TARGET_UART_1_FIFO_SIZE 32 // set by target:MCU_NRF52840 +#define MBED_CONF_TARGET_XIP_ENABLE 0 // set by target:Target +#define MBED_CONF_TELIT_HE910_BAUDRATE 115200 // set by library:TELIT_HE910 +#define MBED_CONF_TELIT_HE910_PROVIDE_DEFAULT 0 // set by library:TELIT_HE910 +#define MBED_CONF_TELIT_ME310_BAUDRATE 115200 // set by library:TELIT_ME310 +#define MBED_CONF_TELIT_ME310_PROVIDE_DEFAULT 0 // set by library:TELIT_ME310 +#define MBED_CONF_TELIT_ME910_BAUDRATE 115200 // set by library:TELIT_ME910 +#define MBED_CONF_TELIT_ME910_PROVIDE_DEFAULT 0 // set by library:TELIT_ME910 +#define MBED_CONF_UBLOX_AT_BAUDRATE 115200 // set by library:UBLOX_AT +#define MBED_CONF_UBLOX_AT_PROVIDE_DEFAULT 0 // set by library:UBLOX_AT +#define MBED_CONF_UBLOX_N2XX_BAUDRATE 9600 // set by library:UBLOX_N2XX +#define MBED_CONF_UBLOX_N2XX_PROVIDE_DEFAULT 0 // set by library:UBLOX_N2XX +#define MBED_CONF_UBLOX_PPP_BAUDRATE 115200 // set by library:UBLOX_PPP +#define MBED_CONF_UBLOX_PPP_PROVIDE_DEFAULT 0 // set by library:UBLOX_PPP +#define MBED_CRC_TABLE_SIZE 16 // set by library:drivers +#define MBED_LFS2_BLOCK_CYCLES 1024 // set by library:littlefs2 +#define MBED_LFS2_BLOCK_SIZE 512 // set by library:littlefs2 +#define MBED_LFS2_CACHE_SIZE 64 // set by library:littlefs2 +#define MBED_LFS2_ENABLE_INFO 0 // set by library:littlefs2 +#define MBED_LFS2_INTRINSICS 1 // set by library:littlefs2 +#define MBED_LFS2_LOOKAHEAD_SIZE 64 // set by library:littlefs2 +#define MBED_LFS_BLOCK_SIZE 512 // set by library:littlefs +#define MBED_LFS_ENABLE_INFO 0 // set by library:littlefs +#define MBED_LFS_INTRINSICS 1 // set by library:littlefs +#define MBED_LFS_LOOKAHEAD 512 // set by library:littlefs +#define MBED_LFS_PROG_SIZE 64 // set by library:littlefs +#define MBED_LFS_READ_SIZE 64 // set by library:littlefs +#define MBED_STACK_DUMP_ENABLED 0 // set by library:platform +#define MEM_ALLOC malloc // set by library:mbed-trace +#define MEM_FREE free // set by library:mbed-trace +#define PPP_DEBUG 0 // set by library:ppp +#define SEC_CCM_CFG 1 // set by library:cordio +#define SMP_DB_MAX_DEVICES 3 // set by library:cordio +// Macros +#define BB_CLK_RATE_HZ 1000000 // defined by library:cordio-nordic-ll +#define INIT_BROADCASTER // defined by library:cordio-nordic-ll +#define INIT_CENTRAL // defined by library:cordio-nordic-ll +#define INIT_ENCRYPTED // defined by library:cordio-nordic-ll +#define INIT_OBSERVER // defined by library:cordio-nordic-ll +#define INIT_PERIPHERAL // defined by library:cordio-nordic-ll +#define LHCI_ENABLE_VS 0 // defined by library:cordio-nordic-ll +#define LL_MAX_PER_SCAN 3 // defined by library:cordio-nordic-ll +#define MBEDTLS_CIPHER_MODE_CTR // defined by library:SecureStore +#define MBEDTLS_CMAC_C // defined by library:SecureStore +#define MBED_HEAP_STATS_ENABLED 1 // defined by application +#define MBED_MEM_TRACING_ENABLED 1 // defined by application +#define MBED_STACK_STATS_ENABLED 1 // defined by application +#define NRFX_GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS 8 // defined by application +#define NSAPI_PPP_AVAILABLE (MBED_CONF_PPP_ENABLED || MBED_CONF_LWIP_PPP_ENABLED) // defined by library:ppp +#define NS_USE_EXTERNAL_MBED_TLS // defined by library:nanostack +#define UNITY_INCLUDE_CONFIG_H // defined by library:utest +#define WSF_MS_PER_TICK 10 // defined by library:cordio +#define _RTE_ // defined by library:rtos + +#endif diff --git a/variants/RAK4631/pinmode_arduino.h b/variants/RAK4631/pinmode_arduino.h new file mode 100644 index 000000000..49686cced --- /dev/null +++ b/variants/RAK4631/pinmode_arduino.h @@ -0,0 +1,49 @@ + +/* Define mock symbols to nullify PinMode definitions */ +#define PullNone TempPullNone +#define PullDown TempPullDown +#define PullUp TempPullUp +#define PullDefault TempPullDefault + +#define INPUT TempINPUT +#define OUTPUT TempOUTPUT +#define INPUT_PULLUP TempINPUT_PULLUP +#define INPUT_PULLDOWN TempINPUT_PULLDOWN + +/* Rename symbol PinMode into MbedPinMode for all the file PinNames.h + * Functions using PinMode should be redeclared with the correct PinMode symbol */ +#define PinMode MbedPinMode +#include "mbed_config.h" +#include "PinNames.h" +#undef PinMode + +/* Rename symbol PinMode into ArduinoPinMode for all the file Common.h + * Functions using PinMode should be redeclared with the correct PinMode symbol */ +#define PinMode ArduinoPinMode +#include "api/Common.h" +#undef PinMode + +#undef PullNone +#undef PullDown +#undef PullUp +#undef PullDefault + +#undef INPUT +#undef OUTPUT +#undef INPUT_PULLUP +#undef INPUT_PULLDOWN + +typedef enum { + PullNone = TempPullNone, + PullDown = TempPullDown, + PullUp = TempPullUp, + PullDefault = TempPullDefault, + INPUT = TempINPUT, + OUTPUT = TempOUTPUT, + INPUT_PULLUP = TempINPUT_PULLUP, + INPUT_PULLDOWN = TempINPUT_PULLDOWN +} PinMode; + +/* Redeclare Common.h functions with the updated PinMode */ +void pinMode(pin_size_t pinNumber, PinMode pinMode); + diff --git a/variants/RAK4631/pins_arduino.h b/variants/RAK4631/pins_arduino.h new file mode 100644 index 000000000..3c8f18e85 --- /dev/null +++ b/variants/RAK4631/pins_arduino.h @@ -0,0 +1,187 @@ +#pragma once +#include +#include + +#ifndef __PINS_ARDUINO__ +#define __PINS_ARDUINO__ + +#define ANALOG_CONFIG + +/* Analog reference options + * Different possibilities available combining Reference and Gain + */ +enum _AnalogReferenceMode +{ + AR_VDD, // 3.3 V + AR_INTERNAL, // 0.6 V + AR_INTERNAL1V2, // 1.2 V + AR_INTERNAL2V4 // 2.4 V +}; + +/* Analog acquisition time options */ +enum _AnalogAcquisitionTime +{ + AT_3_US, + AT_5_US, + AT_10_US, // Default value + AT_15_US, + AT_20_US, + AT_40_US +}; + +// Frequency of the board main oscillator +#define VARIANT_MAINOSC (32768ul) + +// Master clock frequency +#define VARIANT_MCK (64000000ul) + +// Pins +// ---- + +// Number of pins defined in PinDescription array +#ifdef __cplusplus +extern "C" unsigned int PINCOUNT_fn(); +#endif +#define PINS_COUNT (PINCOUNT_fn()) +#define NUM_DIGITAL_PINS (25u) +#define NUM_ANALOG_INPUTS (6u) +#define NUM_ANALOG_OUTPUTS (0u) + +// LEDs +// ---- +#define PIN_LED (13u) +#define LED_BUILTIN PIN_LED + +#define RFM_RST (28u) +#define BUSY (29u) +#define RFM_DIO1 (30u) +#define RFM_DIO2 (31u) +#define ANTSW (32u) + +// Analog pins +// ----------- +#define PIN_A0 (14u) +#define PIN_A1 (15u) +#define PIN_A2 (16u) +#define PIN_A3 (17u) +#define PIN_A4 (18u) +#define PIN_A5 (19u) + +static const uint8_t A0 = PIN_A0; +static const uint8_t A1 = PIN_A1; +static const uint8_t A2 = PIN_A2; +static const uint8_t A3 = PIN_A3; +static const uint8_t A4 = PIN_A4; +static const uint8_t A5 = PIN_A5; + +#define ADC_RESOLUTION 12 + +// Digital pins +// ----------- +#define D0 0 +#define D1 1 +#define D2 2 +#define D3 3 +#define D4 4 +#define D5 5 +#define D6 6 +#define D7 7 +#define D8 8 +#define D9 9 +#define D10 10 +#define D11 11 +#define D12 12 +#define D13 13 + +/* + * Serial interfaces + */ +// Serial (EDBG) +#define PIN_SERIAL_RX (7ul) +#define PIN_SERIAL_TX (8ul) + +/* + * SPI Interfaces + */ +#define SPI_INTERFACES_COUNT 1 //SPI on pins + +#define PIN_SPI_MISO (24u) +#define PIN_SPI_MOSI (25u) +#define PIN_SPI_SCK (26u) +#define PIN_SPI_SS (27u) + +static const uint8_t SS = PIN_SPI_SS; // SPI Slave SS not used. Set here only for reference. +static const uint8_t MOSI = PIN_SPI_MOSI; +static const uint8_t MISO = PIN_SPI_MISO; +static const uint8_t SCK = PIN_SPI_SCK; + +#define PIN_SPI1_MISO (8u) +#define PIN_SPI1_MOSI (7u) +#define PIN_SPI1_SCK (4u) +#define PIN_SPI1_SS (10u) + +static const uint8_t SS1 = PIN_SPI1_SS; +static const uint8_t MOSI1 = PIN_SPI1_MOSI; +static const uint8_t MISO1 = PIN_SPI1_MISO; +static const uint8_t SCK1 = PIN_SPI1_SCK; + +// Wire +#define PIN_WIRE_SDA (9u) +#define PIN_WIRE_SCL (10u) + +// These serial port names are intended to allow libraries and architecture-neutral +// sketches to automatically default to the correct port name for a particular type +// of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN, +// the first hardware serial port whose RX/TX pins are not dedicated to another use. +// +// SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor +// +// SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial +// +// SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library +// +// SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins. +// +// SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX +// pins are NOT connected to anything by default. +#define SERIAL_PORT_USBVIRTUAL SerialUSB +#define SERIAL_PORT_MONITOR SerialUSB +#define SERIAL_PORT_HARDWARE Serial1 +#define SERIAL_PORT_HARDWARE_OPEN Serial1 +#define Serial SerialUSB + +// Mbed specific defines +#define SERIAL_HOWMANY 1 +#define SERIAL1_TX (digitalPinToPinName(PIN_SERIAL_TX)) +#define SERIAL1_RX (digitalPinToPinName(PIN_SERIAL_RX)) + +#define SERIAL_CDC 1 +#define HAS_UNIQUE_ISERIAL_DESCRIPTOR +#define BOARD_VENDORID 0x239A +#define BOARD_PRODUCTID 0x8029 +#define BOARD_NAME "RAK4631" + +#define DFU_MAGIC_SERIAL_ONLY_RESET 0xb0 + +#define WIRE_HOWMANY 1 + +#define I2C_SDA (digitalPinToPinName(PIN_WIRE_SDA)) +#define I2C_SCL (digitalPinToPinName(PIN_WIRE_SCL)) + +#define SPI_HOWMANY 1 + +#define SPI_MISO (digitalPinToPinName(PIN_SPI_MISO)) +#define SPI_MOSI (digitalPinToPinName(PIN_SPI_MOSI)) +#define SPI_SCK (digitalPinToPinName(PIN_SPI_SCK)) + +#define SPI1_MISO (digitalPinToPinName(PIN_SPI1_MISO)) +#define SPI1_MOSI (digitalPinToPinName(PIN_SPI1_MOSI)) +#define SPI1_SCK (digitalPinToPinName(PIN_SPI1_SCK)) + + +#define digitalPinToPort(P) (digitalPinToPinName(P)/24) + +uint8_t getUniqueSerialNumber(uint8_t* name); +void _ontouch1200bps_(); + +#endif //__PINS_ARDUINO__ diff --git a/variants/RAK4631/variant.cpp b/variants/RAK4631/variant.cpp new file mode 100644 index 000000000..2d8cb0f10 --- /dev/null +++ b/variants/RAK4631/variant.cpp @@ -0,0 +1,192 @@ +#include "Arduino.h" + +/* wiring_analog variables definition */ +/* Flag to indicate whether the ADC config has been changed from the default one */ +bool isAdcConfigChanged = false; + +/* + * Configuration used for all the active ADC channels, it is initialized with the mbed default values + * When it is changed, all the ADC channels are reconfigured accordingly + */ +analogin_config_t adcCurrentConfig = { + .resistor_p = NRF_SAADC_RESISTOR_DISABLED, + .resistor_n = NRF_SAADC_RESISTOR_DISABLED, + .gain = NRF_SAADC_GAIN1_4, + .reference = NRF_SAADC_REFERENCE_VDD4, + .acq_time = NRF_SAADC_ACQTIME_10US, + .mode = NRF_SAADC_MODE_SINGLE_ENDED, + .burst = NRF_SAADC_BURST_DISABLED, + .pin_p = NRF_SAADC_INPUT_DISABLED, + .pin_n = NRF_SAADC_INPUT_DISABLED +}; + +void analogReference(uint8_t mode) +{ + nrf_saadc_reference_t reference = NRF_SAADC_REFERENCE_VDD4; + nrf_saadc_gain_t gain = NRF_SAADC_GAIN1_4; + if (mode == AR_VDD) { + reference = NRF_SAADC_REFERENCE_VDD4; + gain = NRF_SAADC_GAIN1_4; + } else if (mode == AR_INTERNAL) { + reference = NRF_SAADC_REFERENCE_INTERNAL; + gain = NRF_SAADC_GAIN1; + } else if (mode == AR_INTERNAL1V2) { + reference = NRF_SAADC_REFERENCE_INTERNAL; + gain = NRF_SAADC_GAIN1_2; + } else if (mode == AR_INTERNAL2V4) { + reference = NRF_SAADC_REFERENCE_INTERNAL; + gain = NRF_SAADC_GAIN1_4; + } + adcCurrentConfig.reference = reference; + adcCurrentConfig.gain = gain; + analogUpdate(); +} + +void analogAcquisitionTime(uint8_t time) +{ + nrf_saadc_acqtime_t acqTime = NRF_SAADC_ACQTIME_10US; + if (time == AT_3_US) { + acqTime = NRF_SAADC_ACQTIME_3US; + } else if (time == AT_5_US) { + acqTime = NRF_SAADC_ACQTIME_5US; + } else if (time == AT_10_US) { + acqTime = NRF_SAADC_ACQTIME_10US; + } else if (time == AT_15_US) { + acqTime = NRF_SAADC_ACQTIME_15US; + } else if (time == AT_20_US) { + acqTime = NRF_SAADC_ACQTIME_20US; + } else if (time == AT_40_US) { + acqTime = NRF_SAADC_ACQTIME_40US; + } + adcCurrentConfig.acq_time = acqTime; + analogUpdate(); +} + +AnalogPinDescription g_AAnalogPinDescription[] = { + // A0 - A5 + { P0_5, NULL }, // A0 + { P0_31, NULL }, // A1 + { P0_28, NULL }, // A2 + { P0_29, NULL }, // A3 + { P0_30, NULL }, // A4 + { P0_31, NULL }, // A5 +}; + +PinDescription g_APinDescription[] = { + + // D0 - D8 + { P0_17, NULL, NULL, NULL }, // SLOT_A SLOT_B + { P1_2, NULL, NULL, NULL }, // SLOT_A SLOT_B + { P0_21, NULL, NULL, NULL }, // SLOT_C + { P0_4, NULL, NULL, NULL }, // SLOT_C + { P0_9, NULL, NULL, NULL }, // SLOT_D + { P0_10, NULL, NULL, NULL }, // SLOT_D + { P1_1, NULL, NULL, NULL }, // IO_SLOT + { P0_5, NULL, NULL, NULL }, // IO_SLOT + { P0_31, NULL, NULL, NULL }, // IO_SLOT + + // D9 - D12 + { P0_13, NULL, NULL, NULL }, // SENSOR_SLOT ID_SLOT + { P0_14, NULL, NULL, NULL }, // SENSOR_SLOT ID_SLOT + { P0_24, NULL, NULL, NULL }, // IO_SLOT + { P0_25, NULL, NULL, NULL }, // IO_SLOT + + // D13 - LED + { P1_4, NULL, NULL, NULL }, // D13 + + // D14..D19 - A0 - A5 + { P0_5, NULL, NULL, NULL }, // A0 + { P0_31, NULL, NULL, NULL }, // A1 + { P0_28, NULL, NULL, NULL }, // A2 + { P0_29, NULL, NULL, NULL }, // A3 + { P0_30, NULL, NULL, NULL }, // A4 + { P0_31, NULL, NULL, NULL }, // A5 + + // 20..25 - FLASH SPI + { P0_26, NULL, NULL, NULL }, // QSPI_CS + { P0_3, NULL, NULL, NULL }, // QSPI_SCK + { P0_29, NULL, NULL, NULL }, // QSPI_DATA1 + { P0_30, NULL, NULL, NULL }, // QSPI_DATA0 + + // 24..32 - RADIO LORA SX1262 + { P1_13, NULL, NULL, NULL }, // CIPO - MISO + { P1_12, NULL, NULL, NULL }, // COPI - MOSI + { P1_11, NULL, NULL, NULL }, // CLK + { P1_10, NULL, NULL, NULL }, // NSS + { P1_6, NULL, NULL, NULL }, // NRESET + { P1_14, NULL, NULL, NULL }, // BUSY + { P1_15, NULL, NULL, NULL }, // DIO1 + { P1_7, NULL, NULL, NULL }, // DIO2 + { P1_5, NULL, NULL, NULL }, // ANT_SW +}; + +extern "C" { + unsigned int PINCOUNT_fn() { + return (sizeof(g_APinDescription) / sizeof(g_APinDescription[0])); + } +} + +#include "nrf_rtc.h" +#include "nrf_uarte.h" +#include "nrf_uart.h" + +void initVariant() { + + // Errata Nano33BLE - I2C pullup is on SWO line, need to disable TRACE + // was being enabled by nrfx_clock_anomaly_132 + //CoreDebug->DEMCR = 0; + //NRF_CLOCK->TRACECONFIG = 0; + + // FIXME: bootloader enables interrupt on COMPARE[0], which we don't handle + // Disable it here to avoid getting stuck when OVERFLOW irq is triggered + //nrf_rtc_event_disable(NRF_RTC1, NRF_RTC_INT_COMPARE0_MASK); + //nrf_rtc_int_disable(NRF_RTC1, NRF_RTC_INT_COMPARE0_MASK); + + // Disable UARTE0 which is initially enabled by the bootloader + //nrf_uarte_task_trigger(NRF_UARTE0, NRF_UARTE_TASK_STOPRX); + //while (!nrf_uarte_event_check(NRF_UARTE0, NRF_UARTE_EVENT_RXTO)) ; + //NRF_UARTE0->ENABLE = 0; + //NRF_UART0->ENABLE = 0; + + NRF_PWM_Type* PWM[] = { + NRF_PWM0, NRF_PWM1, NRF_PWM2 +#ifdef NRF_PWM3 + ,NRF_PWM3 +#endif + }; + + for (unsigned int i = 0; i < (sizeof(PWM)/sizeof(PWM[0])); i++) { + PWM[i]->ENABLE = 0; + PWM[i]->PSEL.OUT[0] = 0xFFFFFFFFUL; + } +} + +#ifdef SERIAL_CDC + +static void utox8(uint32_t val, uint8_t* s) { + for (int i = 0; i < 16; i=i+2) { + int d = val & 0XF; + val = (val >> 4); + + s[15 - i -1] = d > 9 ? 'A' + d - 10 : '0' + d; + s[15 - i] = '\0'; + } +} + +uint8_t getUniqueSerialNumber(uint8_t* name) { + #define SERIAL_NUMBER_WORD_0 NRF_FICR->DEVICEADDR[1] + #define SERIAL_NUMBER_WORD_1 NRF_FICR->DEVICEADDR[0] + + utox8(SERIAL_NUMBER_WORD_0, &name[0]); + utox8(SERIAL_NUMBER_WORD_1, &name[16]); + + return 32; +} + +void _ontouch1200bps_() { + __disable_irq(); + NRF_POWER->GPREGRET = DFU_MAGIC_SERIAL_ONLY_RESET; + NVIC_SystemReset(); +} + +#endif