NuMaker mbed OS v5.x LoRaWAN

Committer:
cyliang
Date:
Tue Sep 01 21:06:51 2020 +0800
Revision:
0:895bbd4e6398
Mbed OS v5.x LoRaWAN example for NuMaker platforms based on https://github.com/ARMmbed/mbed-os-example-lorawan.git

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cyliang 0:895bbd4e6398 1 /**
cyliang 0:895bbd4e6398 2 * Copyright (c) 2017, Arm Limited and affiliates.
cyliang 0:895bbd4e6398 3 * SPDX-License-Identifier: Apache-2.0
cyliang 0:895bbd4e6398 4 *
cyliang 0:895bbd4e6398 5 * Licensed under the Apache License, Version 2.0 (the "License");
cyliang 0:895bbd4e6398 6 * you may not use this file except in compliance with the License.
cyliang 0:895bbd4e6398 7 * You may obtain a copy of the License at
cyliang 0:895bbd4e6398 8 *
cyliang 0:895bbd4e6398 9 * http://www.apache.org/licenses/LICENSE-2.0
cyliang 0:895bbd4e6398 10 *
cyliang 0:895bbd4e6398 11 * Unless required by applicable law or agreed to in writing, software
cyliang 0:895bbd4e6398 12 * distributed under the License is distributed on an "AS IS" BASIS,
cyliang 0:895bbd4e6398 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
cyliang 0:895bbd4e6398 14 * See the License for the specific language governing permissions and
cyliang 0:895bbd4e6398 15 * limitations under the License.
cyliang 0:895bbd4e6398 16 */
cyliang 0:895bbd4e6398 17
cyliang 0:895bbd4e6398 18 /**
cyliang 0:895bbd4e6398 19 * If we have tracing library available, we can see traces from within the
cyliang 0:895bbd4e6398 20 * stack. The library could be made unavailable by removing FEATURE_COMMON_PAL
cyliang 0:895bbd4e6398 21 * from the mbed_app.json to save RAM.
cyliang 0:895bbd4e6398 22 */
cyliang 0:895bbd4e6398 23
cyliang 0:895bbd4e6398 24 #include "mbed_trace.h"
cyliang 0:895bbd4e6398 25
cyliang 0:895bbd4e6398 26 #ifdef FEA_TRACE_SUPPORT
cyliang 0:895bbd4e6398 27 #include "platform/PlatformMutex.h"
cyliang 0:895bbd4e6398 28
cyliang 0:895bbd4e6398 29 /**
cyliang 0:895bbd4e6398 30 * Local mutex object for synchronization
cyliang 0:895bbd4e6398 31 */
cyliang 0:895bbd4e6398 32 static PlatformMutex mutex;
cyliang 0:895bbd4e6398 33
cyliang 0:895bbd4e6398 34 static void serial_lock();
cyliang 0:895bbd4e6398 35 static void serial_unlock();
cyliang 0:895bbd4e6398 36
cyliang 0:895bbd4e6398 37 /**
cyliang 0:895bbd4e6398 38 * Sets up trace for the application
cyliang 0:895bbd4e6398 39 * Wouldn't do anything if the FEATURE_COMMON_PAL is not added
cyliang 0:895bbd4e6398 40 * or if the trace is disabled using mbed_app.json
cyliang 0:895bbd4e6398 41 */
cyliang 0:895bbd4e6398 42 void setup_trace()
cyliang 0:895bbd4e6398 43 {
cyliang 0:895bbd4e6398 44 // setting up Mbed trace.
cyliang 0:895bbd4e6398 45 mbed_trace_mutex_wait_function_set(serial_lock);
cyliang 0:895bbd4e6398 46 mbed_trace_mutex_release_function_set(serial_unlock);
cyliang 0:895bbd4e6398 47 mbed_trace_init();
cyliang 0:895bbd4e6398 48 }
cyliang 0:895bbd4e6398 49
cyliang 0:895bbd4e6398 50 /**
cyliang 0:895bbd4e6398 51 * Lock provided for serial printing used by trace library
cyliang 0:895bbd4e6398 52 */
cyliang 0:895bbd4e6398 53 static void serial_lock()
cyliang 0:895bbd4e6398 54 {
cyliang 0:895bbd4e6398 55 mutex.lock();
cyliang 0:895bbd4e6398 56 }
cyliang 0:895bbd4e6398 57
cyliang 0:895bbd4e6398 58 /**
cyliang 0:895bbd4e6398 59 * Releasing lock provided for serial printing used by trace library
cyliang 0:895bbd4e6398 60 */
cyliang 0:895bbd4e6398 61 static void serial_unlock()
cyliang 0:895bbd4e6398 62 {
cyliang 0:895bbd4e6398 63 mutex.unlock();
cyliang 0:895bbd4e6398 64 }
cyliang 0:895bbd4e6398 65 #else
cyliang 0:895bbd4e6398 66 void setup_trace()
cyliang 0:895bbd4e6398 67 {
cyliang 0:895bbd4e6398 68
cyliang 0:895bbd4e6398 69 }
cyliang 0:895bbd4e6398 70 #endif
cyliang 0:895bbd4e6398 71
cyliang 0:895bbd4e6398 72