Generic Pelion Device Management example for various Nuvoton-based boards.

DEPRECATED

This example application is not maintained and not recommended. It uses an old version of Mbed OS, Pelion DM, and Arm toolchain. It doesn't work with Mbed Studio.

Please use: https://os.mbed.com/teams/mbed-os-examples/code/mbed-os-example-pelion/

This example is known to work great on the following platforms:

Follow the Quick-Start instructions: https://cloud.mbed.com/quick-start

https://os.mbed.com/media/cache/platforms/NuMaker-IoT-M487_board_front_small.jpg.250x250_q85.jpghttps://os.mbed.com/media/cache/platforms/NuMaker-PFM-M487.png.170x170_q85.png https://os.mbed.com/media/cache/platforms/NuMaker-PFM-NUC472Small.png.170x170_q85.png

Example functionality

This example showcases the following device functionality:

  • On timer button increment, simulate Pelion LWM2M button resource change

Use this example with Mbed CLI


1. Import the application into your desktop:

mbed import https://os.mbed.com/teams/Nuvoton/code/pelion-example-common
cd pelion-example-common


2. Install the CLOUD_SDK_API_KEY

mbed config -G CLOUD_SDK_API_KEY <PELION_DM_API_KEY>

For instructions on how to generate your API key, please see the documentation.

3. Initialize firmware credentials (done once per repository). You can use the following command:

mbed dm init -d "<your company name in Pelion DM>" --model-name "<product model identifier>" -q --force

If above command do not work for your Mbed CLI, please consider upgrading Mbed CLI to version 1.8.x or above.

4. Compile and program:

mbed compile -t <toolchain> -m <TARGET_BOARD>

(supported toolchains : GCC_ARM / ARM / IAR)

5. Copy the binary file pelion-example-common.bin to your mbed device.

Note

This platform and application is suitable for evaluation and initial development. For production purposes, we recommend to use a different variant with built-in security features

Committer:
Sam Chu
Date:
Tue Dec 18 00:07:56 2018 +0800
Revision:
0:e0138281f21d
Child:
2:f07ccb7164d3
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Sam Chu 0:e0138281f21d 1 {
Sam Chu 0:e0138281f21d 2 "macros": [
Sam Chu 0:e0138281f21d 3 "MBEDTLS_USER_CONFIG_FILE=\"bootloader_mbedtls_user_config.h\"",
Sam Chu 0:e0138281f21d 4 "SHOW_PROGRESS_BAR=0",
Sam Chu 0:e0138281f21d 5 "MAX_COPY_RETRIES=1",
Sam Chu 0:e0138281f21d 6 "MAX_BOOT_RETRIES=3",
Sam Chu 0:e0138281f21d 7 "ARM_BOOTLOADER_USE_NVSTORE_ROT=1",
Sam Chu 0:e0138281f21d 8 "ARM_UC_USE_PAL_CRYPTO=0",
Sam Chu 0:e0138281f21d 9 "ARM_UC_USE_PAL_BLOCKDEVICE=1",
Sam Chu 0:e0138281f21d 10 "ARM_UC_PAAL_TRACE_ENABLE=0",
Sam Chu 0:e0138281f21d 11 "ARM_UC_PROFILE_MBED_CLOUD_CLIENT=1",
Sam Chu 0:e0138281f21d 12 "ARM_UC_FEATURE_CRYPTO_PAL=0",
Sam Chu 0:e0138281f21d 13 "ARM_UC_FEATURE_CRYPTO_MBEDTLS=1",
Sam Chu 0:e0138281f21d 14 "MBED_CLOUD_CLIENT_UPDATE_STORAGE=ARM_UCP_FLASHIAP_BLOCKDEVICE",
Sam Chu 0:e0138281f21d 15 "DEFAULT_MAX_APPLICATION_SIZE=(MBED_CONF_APP_FLASH_START_ADDRESS + MBED_CONF_APP_FLASH_SIZE - MBED_CONF_APP_APPLICATION_START_ADDRESS)",
Sam Chu 0:e0138281f21d 16 "DISABLE_ERROR_DESCRIPTION=1",
Sam Chu 0:e0138281f21d 17 "Mutex=PlatformMutex"
Sam Chu 0:e0138281f21d 18 ],
Sam Chu 0:e0138281f21d 19 "config": {
Sam Chu 0:e0138281f21d 20 "application-start-address": {
Sam Chu 0:e0138281f21d 21 "help": "Address to the beginning of the active application firmware in flash",
Sam Chu 0:e0138281f21d 22 "value": null
Sam Chu 0:e0138281f21d 23 },
Sam Chu 0:e0138281f21d 24 "application-jump-address": {
Sam Chu 0:e0138281f21d 25 "help": "Jump address for running the active application firmware",
Sam Chu 0:e0138281f21d 26 "value": null
Sam Chu 0:e0138281f21d 27 },
Sam Chu 0:e0138281f21d 28 "max-application-size": {
Sam Chu 0:e0138281f21d 29 "help": "Maximum size of the active application",
Sam Chu 0:e0138281f21d 30 "value": null
Sam Chu 0:e0138281f21d 31 },
Sam Chu 0:e0138281f21d 32 "flash-start-address": {
Sam Chu 0:e0138281f21d 33 "help": "Start address of internal flash. Only used in this config to help the definition of other macros.",
Sam Chu 0:e0138281f21d 34 "value": null
Sam Chu 0:e0138281f21d 35 },
Sam Chu 0:e0138281f21d 36 "flash-size": {
Sam Chu 0:e0138281f21d 37 "help": "Total size of internal flash. Only used in this config to help the definition of other macros.",
Sam Chu 0:e0138281f21d 38 "value": null
Sam Chu 0:e0138281f21d 39 }
Sam Chu 0:e0138281f21d 40 },
Sam Chu 0:e0138281f21d 41 "target_overrides": {
Sam Chu 0:e0138281f21d 42 "*": {
Sam Chu 0:e0138281f21d 43 "target.features_remove" : ["LWIP"],
Sam Chu 0:e0138281f21d 44 "target.features_add" : ["COMMON_PAL"],
Sam Chu 0:e0138281f21d 45 "platform.stdio-baud-rate" : 115200,
Sam Chu 0:e0138281f21d 46 "platform.stdio-flush-at-exit" : false,
Sam Chu 0:e0138281f21d 47 "update-client.storage-address" : "(1024*1024*64)",
Sam Chu 0:e0138281f21d 48 "update-client.storage-size" : "(1024*1024*2)",
Sam Chu 0:e0138281f21d 49 "update-client.storage-locations" : 1,
Sam Chu 0:e0138281f21d 50 "update-client.firmware-header-version": "2"
Sam Chu 0:e0138281f21d 51 },
Sam Chu 0:e0138281f21d 52 "NUMAKER_PFM_NUC472": {
Sam Chu 0:e0138281f21d 53 "drivers.uart-serial-rxbuf-size" : 1024,
Sam Chu 0:e0138281f21d 54 "drivers.uart-serial-txbuf-size" : 1024,
Sam Chu 0:e0138281f21d 55 "flash-start-address" : "0x0",
Sam Chu 0:e0138281f21d 56 "flash-size" : "(512*1024)",
Sam Chu 0:e0138281f21d 57 "nvstore.area_1_address" : "(MBED_CONF_APP_FLASH_START_ADDRESS + MBED_CONF_APP_FLASH_SIZE - 2*(4*1024))",
Sam Chu 0:e0138281f21d 58 "nvstore.area_1_size" : "(4*1024)",
Sam Chu 0:e0138281f21d 59 "nvstore.area_2_address" : "(MBED_CONF_APP_FLASH_START_ADDRESS + MBED_CONF_APP_FLASH_SIZE - 1*(4*1024))",
Sam Chu 0:e0138281f21d 60 "nvstore.area_2_size" : "(4*1024)",
Sam Chu 0:e0138281f21d 61 "update-client.application-details": "(MBED_CONF_APP_FLASH_START_ADDRESS + 64*1024)",
Sam Chu 0:e0138281f21d 62 "application-start-address" : "(MBED_CONF_APP_FLASH_START_ADDRESS + 65*1024)",
Sam Chu 0:e0138281f21d 63 "max-application-size" : "DEFAULT_MAX_APPLICATION_SIZE"
Sam Chu 0:e0138281f21d 64 },
Sam Chu 0:e0138281f21d 65 "NUMAKER_PFM_M487": {
Sam Chu 0:e0138281f21d 66 "drivers.uart-serial-rxbuf-size" : 1024,
Sam Chu 0:e0138281f21d 67 "drivers.uart-serial-txbuf-size" : 1024,
Sam Chu 0:e0138281f21d 68 "flash-start-address" : "0x0",
Sam Chu 0:e0138281f21d 69 "flash-size" : "(512*1024)",
Sam Chu 0:e0138281f21d 70 "nvstore.area_1_address" : "(MBED_CONF_APP_FLASH_START_ADDRESS + MBED_CONF_APP_FLASH_SIZE - 2*(4*1024))",
Sam Chu 0:e0138281f21d 71 "nvstore.area_1_size" : "(4*1024)",
Sam Chu 0:e0138281f21d 72 "nvstore.area_2_address" : "(MBED_CONF_APP_FLASH_START_ADDRESS + MBED_CONF_APP_FLASH_SIZE - 1*(4*1024))",
Sam Chu 0:e0138281f21d 73 "nvstore.area_2_size" : "(4*1024)",
Sam Chu 0:e0138281f21d 74 "update-client.application-details": "(MBED_CONF_APP_FLASH_START_ADDRESS + 64*1024)",
Sam Chu 0:e0138281f21d 75 "application-start-address" : "(MBED_CONF_APP_FLASH_START_ADDRESS + 65*1024)",
Sam Chu 0:e0138281f21d 76 "max-application-size" : "DEFAULT_MAX_APPLICATION_SIZE"
Sam Chu 0:e0138281f21d 77 },
Sam Chu 0:e0138281f21d 78 "NUMAKER_IOT_M487": {
Sam Chu 0:e0138281f21d 79 "drivers.uart-serial-rxbuf-size" : 1024,
Sam Chu 0:e0138281f21d 80 "drivers.uart-serial-txbuf-size" : 1024,
Sam Chu 0:e0138281f21d 81 "flash-start-address" : "0x0",
Sam Chu 0:e0138281f21d 82 "flash-size" : "(512*1024)",
Sam Chu 0:e0138281f21d 83 "nvstore.area_1_address" : "(MBED_CONF_APP_FLASH_START_ADDRESS + MBED_CONF_APP_FLASH_SIZE - 2*(4*1024))",
Sam Chu 0:e0138281f21d 84 "nvstore.area_1_size" : "(4*1024)",
Sam Chu 0:e0138281f21d 85 "nvstore.area_2_address" : "(MBED_CONF_APP_FLASH_START_ADDRESS + MBED_CONF_APP_FLASH_SIZE - 1*(4*1024))",
Sam Chu 0:e0138281f21d 86 "nvstore.area_2_size" : "(4*1024)",
Sam Chu 0:e0138281f21d 87 "update-client.application-details": "(MBED_CONF_APP_FLASH_START_ADDRESS + 64*1024)",
Sam Chu 0:e0138281f21d 88 "application-start-address" : "(MBED_CONF_APP_FLASH_START_ADDRESS + 65*1024)",
Sam Chu 0:e0138281f21d 89 "max-application-size" : "DEFAULT_MAX_APPLICATION_SIZE"
Sam Chu 0:e0138281f21d 90 }
Sam Chu 0:e0138281f21d 91 }
Sam Chu 0:e0138281f21d 92 }