NuMaker connection with AWS IoT thru MQTT/HTTPS

Dependencies:   MQTT_ON_AWS

Committer:
ccli8
Date:
Tue Oct 29 10:59:34 2019 +0800
Revision:
29:e890b0fdce53
Update to mbed-os 5.14.2 and related modifications

1. Provide custom entropy source on targets without real TRNG
The targets below don't have real TRNG and cannot annouce TRNG support. A custom entropy source with EADC seeded PRNG is given to remedy it:
- NUMAKER_PFM_NUC47
- NUMAKER_PFM_M487
- NUMAKER_IOT_M487
2. Override mbed_main() for:
(1) Simulating provision process
(2) Handling host command via event queue
3. Remove memory statistics printing at end of main(). Printed via host command instead.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ccli8 29:e890b0fdce53 1 /*
ccli8 29:e890b0fdce53 2 * Copyright (c) 2019 Nuvoton Technology Corporation
ccli8 29:e890b0fdce53 3 *
ccli8 29:e890b0fdce53 4 * SPDX-License-Identifier: Apache-2.0
ccli8 29:e890b0fdce53 5 *
ccli8 29:e890b0fdce53 6 * Licensed under the Apache License, Version 2.0 (the "License");
ccli8 29:e890b0fdce53 7 * you may not use this file except in compliance with the License.
ccli8 29:e890b0fdce53 8 * You may obtain a copy of the License at
ccli8 29:e890b0fdce53 9 *
ccli8 29:e890b0fdce53 10 * http://www.apache.org/licenses/LICENSE-2.0
ccli8 29:e890b0fdce53 11 *
ccli8 29:e890b0fdce53 12 * Unless required by applicable law or agreed to in writing, software
ccli8 29:e890b0fdce53 13 * distributed under the License is distributed on an "AS IS" BASIS,
ccli8 29:e890b0fdce53 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
ccli8 29:e890b0fdce53 15 * See the License for the specific language governing permissions and
ccli8 29:e890b0fdce53 16 * limitations under the License.
ccli8 29:e890b0fdce53 17 */
ccli8 29:e890b0fdce53 18
ccli8 29:e890b0fdce53 19 #include "mbed.h"
ccli8 29:e890b0fdce53 20
ccli8 29:e890b0fdce53 21 /* Run pre-main tasks via mbed_main()
ccli8 29:e890b0fdce53 22 *
ccli8 29:e890b0fdce53 23 * In Mbed OS boot sequence, mbed_main(), designed for user application override, is run
ccli8 29:e890b0fdce53 24 * before main(). We use it to run the following tasks:
ccli8 29:e890b0fdce53 25 *
ccli8 29:e890b0fdce53 26 * 1. Simulate provision process for development
ccli8 29:e890b0fdce53 27 * 2. Set up event queue for dispatching host command
ccli8 29:e890b0fdce53 28 *
ccli8 29:e890b0fdce53 29 * WARNING: For mass production, remove this file.
ccli8 29:e890b0fdce53 30 */
ccli8 29:e890b0fdce53 31
ccli8 29:e890b0fdce53 32 /* Check weak reference/definition at the link:
ccli8 29:e890b0fdce53 33 * http://www.keil.com/support/man/docs/ARMLINK/armlink_pge1362065917715.htm */
ccli8 29:e890b0fdce53 34
ccli8 29:e890b0fdce53 35 extern "C" {
ccli8 29:e890b0fdce53 36 MBED_USED void mbed_main(void);
ccli8 29:e890b0fdce53 37 MBED_WEAK void provision(void);
ccli8 29:e890b0fdce53 38 MBED_WEAK void pump_host_command(void);
ccli8 29:e890b0fdce53 39 }
ccli8 29:e890b0fdce53 40
ccli8 29:e890b0fdce53 41 void mbed_main(void)
ccli8 29:e890b0fdce53 42 {
ccli8 29:e890b0fdce53 43 provision();
ccli8 29:e890b0fdce53 44 /* Spare memory if event queue is unnecessary */
ccli8 29:e890b0fdce53 45 if (pump_host_command) {
ccli8 29:e890b0fdce53 46 mbed_event_queue()->call_every(2000, pump_host_command);
ccli8 29:e890b0fdce53 47 }
ccli8 29:e890b0fdce53 48 }