NuMaker Pelion Device Management example
Fork of mbed-os-example-pelion by
update_default_resources.c@0:f78ec4a22e67, 2019-10-09 (annotated)
- Committer:
- ccli8
- Date:
- Wed Oct 09 14:19:44 2019 +0800
- Revision:
- 0:f78ec4a22e67
Support Nuvoton targets
Based on mbed-os-pelion-example master/mbed-bootloader 4.1.0/mbed-cloud-client 4.0.0,
support Nuvoton targets:
1. Support Nuvoton targets:
- NUMAKER_PFM_NUC472
- NUMAKER_PFM_M487
- NUMAKER_IOT_M487 V1.3
Compared to V1.2, V1.3 adds support for ESP8266 RTS/CTS/RST pins. V1.3 is incompatible with V1.2 on ESP8266.
- NUMAKER_IOT_M263A
2. Change storage to NUSD (SD card in SDIO bus mode) from SD (SD card SPI bus mode)
(1) Add COMPONENT_NUSD.lib.
(2) Add component NUSD (target.components_add).
(3) Change default BlockDevice to NUSD:
Override BlockDevice::get_default_instance (nusd.provide-default-blockdevice).
Required since mbed-cloud-client 2.1.0 (arm_uc_blockdevice_ext) or in:
mbed-bootloader/modules/storage/pal-blockdevice/source/arm_uc_pal_blockdevice_mbed.cpp
(4) Enable kvstore with blockdevice type being "other".
i) Override get_other_blockdevice() (nusd.provide-kvstore-other-blockdevice).
ii) Configure storage type to "FILESYSTEM".
iii)Configure file system type to "LITTLE".
vi) Configure block device type to "other".
v) Configure external size to 64MiB, which cannot overlap with update-client.
storage-address/update-client.storage-size.
3. Change back UARTSerial tx/rx buffer size from 1024/1024 to 256/256. This can reduce
memory footprint by (1024 - 256) * 2 = 1.5KiB. Because this configuration influences
both ESP8266 and default console (platfrom/mbed_retarget.cpp), memory reduction can
achieve 1.5KiB x 2 = 3KiB.
4. Enlarge ESP8266 'send tcp data' timeout on Nuvoton targets
Pelion connection has some failure rate with this. Enlarging ESP8266_SEND_TIMEOUT
can just relieve the issue. A ticket has raised to address it:
https://github.com/ARMmbed/mbed-os/issues/11544
5. Requirements for mbed-os version:
- mbed-os 5.13.0 (or afterwards) to support kvstore with block device type being "other"
- mbed-os 5.13.1 (or afterwards) to fix 'undefined pal_plat_osEntropyInject(...)' error
- mbed-os 5.14.0 (or afterwards) to support NUMAKER_IOT_M263A
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ccli8 |
0:f78ec4a22e67 | 1 | // ---------------------------------------------------------------------------- |
ccli8 |
0:f78ec4a22e67 | 2 | // Copyright 2016-2017 ARM Ltd. |
ccli8 |
0:f78ec4a22e67 | 3 | // |
ccli8 |
0:f78ec4a22e67 | 4 | // SPDX-License-Identifier: Apache-2.0 |
ccli8 |
0:f78ec4a22e67 | 5 | // |
ccli8 |
0:f78ec4a22e67 | 6 | // Licensed under the Apache License, Version 2.0 (the "License"); |
ccli8 |
0:f78ec4a22e67 | 7 | // you may not use this file except in compliance with the License. |
ccli8 |
0:f78ec4a22e67 | 8 | // You may obtain a copy of the License at |
ccli8 |
0:f78ec4a22e67 | 9 | // |
ccli8 |
0:f78ec4a22e67 | 10 | // http://www.apache.org/licenses/LICENSE-2.0 |
ccli8 |
0:f78ec4a22e67 | 11 | // |
ccli8 |
0:f78ec4a22e67 | 12 | // Unless required by applicable law or agreed to in writing, software |
ccli8 |
0:f78ec4a22e67 | 13 | // distributed under the License is distributed on an "AS IS" BASIS, |
ccli8 |
0:f78ec4a22e67 | 14 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
ccli8 |
0:f78ec4a22e67 | 15 | // See the License for the specific language governing permissions and |
ccli8 |
0:f78ec4a22e67 | 16 | // limitations under the License. |
ccli8 |
0:f78ec4a22e67 | 17 | // ---------------------------------------------------------------------------- |
ccli8 |
0:f78ec4a22e67 | 18 | |
ccli8 |
0:f78ec4a22e67 | 19 | #ifdef MBED_CLOUD_CLIENT_USER_CONFIG_FILE |
ccli8 |
0:f78ec4a22e67 | 20 | #include MBED_CLOUD_CLIENT_USER_CONFIG_FILE |
ccli8 |
0:f78ec4a22e67 | 21 | #endif |
ccli8 |
0:f78ec4a22e67 | 22 | |
ccli8 |
0:f78ec4a22e67 | 23 | #include <stdint.h> |
ccli8 |
0:f78ec4a22e67 | 24 | |
ccli8 |
0:f78ec4a22e67 | 25 | #ifdef MBED_CLOUD_DEV_UPDATE_ID |
ccli8 |
0:f78ec4a22e67 | 26 | const uint8_t arm_uc_vendor_id[16] = { "dev_manufacturer" }; |
ccli8 |
0:f78ec4a22e67 | 27 | const uint16_t arm_uc_vendor_id_size = sizeof(arm_uc_vendor_id); |
ccli8 |
0:f78ec4a22e67 | 28 | |
ccli8 |
0:f78ec4a22e67 | 29 | const uint8_t arm_uc_class_id[16] = { "dev_model_number" }; |
ccli8 |
0:f78ec4a22e67 | 30 | const uint16_t arm_uc_class_id_size = sizeof(arm_uc_class_id); |
ccli8 |
0:f78ec4a22e67 | 31 | #endif |
ccli8 |
0:f78ec4a22e67 | 32 | |
ccli8 |
0:f78ec4a22e67 | 33 | #ifdef MBED_CLOUD_DEV_UPDATE_CERT |
ccli8 |
0:f78ec4a22e67 | 34 | const uint8_t arm_uc_default_fingerprint[32] = { 0 }; |
ccli8 |
0:f78ec4a22e67 | 35 | const uint16_t arm_uc_default_fingerprint_size = |
ccli8 |
0:f78ec4a22e67 | 36 | sizeof(arm_uc_default_fingerprint); |
ccli8 |
0:f78ec4a22e67 | 37 | |
ccli8 |
0:f78ec4a22e67 | 38 | const uint8_t arm_uc_default_certificate[1] = { 0 }; |
ccli8 |
0:f78ec4a22e67 | 39 | const uint16_t arm_uc_default_certificate_size = |
ccli8 |
0:f78ec4a22e67 | 40 | sizeof(arm_uc_default_certificate); |
ccli8 |
0:f78ec4a22e67 | 41 | #endif |