The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 172:65be27845400 1
AnnaBridge 172:65be27845400 2 /** \addtogroup hal */
AnnaBridge 172:65be27845400 3 /** @{*/
AnnaBridge 172:65be27845400 4 /* Copyright (c) 2017-2018 ARM Limited
AnnaBridge 172:65be27845400 5 *
AnnaBridge 172:65be27845400 6 * SPDX-License-Identifier: Apache-2.0
AnnaBridge 172:65be27845400 7 *
AnnaBridge 172:65be27845400 8 * Licensed under the Apache License, Version 2.0 (the "License");
AnnaBridge 172:65be27845400 9 * you may not use this file except in compliance with the License.
AnnaBridge 172:65be27845400 10 * You may obtain a copy of the License at
AnnaBridge 172:65be27845400 11 *
AnnaBridge 172:65be27845400 12 * http://www.apache.org/licenses/LICENSE-2.0
AnnaBridge 172:65be27845400 13 *
AnnaBridge 172:65be27845400 14 * Unless required by applicable law or agreed to in writing, software
AnnaBridge 172:65be27845400 15 * distributed under the License is distributed on an "AS IS" BASIS,
AnnaBridge 172:65be27845400 16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
AnnaBridge 172:65be27845400 17 * See the License for the specific language governing permissions and
AnnaBridge 172:65be27845400 18 * limitations under the License.
AnnaBridge 172:65be27845400 19 */
AnnaBridge 172:65be27845400 20
AnnaBridge 172:65be27845400 21 #ifndef __SPM_API_H__
AnnaBridge 172:65be27845400 22 #define __SPM_API_H__
AnnaBridge 172:65be27845400 23
AnnaBridge 172:65be27845400 24 #include <stdint.h>
AnnaBridge 172:65be27845400 25 #include <stddef.h>
AnnaBridge 172:65be27845400 26
AnnaBridge 172:65be27845400 27 #ifdef __cplusplus
AnnaBridge 172:65be27845400 28 extern "C" {
AnnaBridge 172:65be27845400 29 #endif
AnnaBridge 172:65be27845400 30
AnnaBridge 172:65be27845400 31
AnnaBridge 172:65be27845400 32 /** @defgroup SPM-HAL SPM HAL API
AnnaBridge 172:65be27845400 33 * The HAL functions for PSA SPM
AnnaBridge 172:65be27845400 34 * @{
AnnaBridge 172:65be27845400 35 */
AnnaBridge 172:65be27845400 36
AnnaBridge 172:65be27845400 37
AnnaBridge 172:65be27845400 38 /* ------------------------------------ HAL-SPE API ------------------------- */
AnnaBridge 172:65be27845400 39
AnnaBridge 172:65be27845400 40
AnnaBridge 172:65be27845400 41 #if defined(COMPONENT_SPE)
AnnaBridge 172:65be27845400 42 /**
AnnaBridge 172:65be27845400 43 * Start running the NSPE.
AnnaBridge 172:65be27845400 44 *
AnnaBridge 172:65be27845400 45 * Secure Processing Environment (SPE) expected to boot first. Once all
AnnaBridge 172:65be27845400 46 * the initializations are done, Nonsecure Processing Environment (NSPE)
AnnaBridge 172:65be27845400 47 * should be booted.
AnnaBridge 172:65be27845400 48 *
AnnaBridge 172:65be27845400 49 * @note The function must be implemented by target specific code.
AnnaBridge 172:65be27845400 50 */
AnnaBridge 172:65be27845400 51 void spm_hal_start_nspe(void);
AnnaBridge 172:65be27845400 52
AnnaBridge 172:65be27845400 53
AnnaBridge 172:65be27845400 54 /**
AnnaBridge 172:65be27845400 55 * Configure memory protection mechanism.
AnnaBridge 172:65be27845400 56 *
AnnaBridge 172:65be27845400 57 * Apply memory protection schemes to ensure secure memory can only be accessed
AnnaBridge 172:65be27845400 58 * from secure-state.
AnnaBridge 172:65be27845400 59 *
AnnaBridge 172:65be27845400 60 * @note The function must be implemented by target specific code.
AnnaBridge 172:65be27845400 61 *
AnnaBridge 172:65be27845400 62 */
AnnaBridge 172:65be27845400 63 void spm_hal_memory_protection_init(void);
AnnaBridge 172:65be27845400 64
AnnaBridge 172:65be27845400 65 #endif // defined(COMPONENT_SPE)
AnnaBridge 172:65be27845400 66
AnnaBridge 172:65be27845400 67 /* ---------------------------------- HAL-Mailbox API ----------------------- */
AnnaBridge 172:65be27845400 68
AnnaBridge 172:65be27845400 69 #if defined(COMPONENT_SPM_MAILBOX)
AnnaBridge 172:65be27845400 70 /**
AnnaBridge 172:65be27845400 71 * @brief Wakeup mailbox dispatcher thread
AnnaBridge 172:65be27845400 72 *
AnnaBridge 172:65be27845400 73 * Arm implements this function, which is expected to be called by target-
AnnaBridge 172:65be27845400 74 * specific Inter-Processor-Communication logic on mailbox interrupt handler.
AnnaBridge 172:65be27845400 75 *
AnnaBridge 172:65be27845400 76 */
AnnaBridge 172:65be27845400 77 void spm_mailbox_irq_callback(void);
AnnaBridge 172:65be27845400 78
AnnaBridge 172:65be27845400 79 /**
AnnaBridge 172:65be27845400 80 * @brief Notify the peer processor about a general event occurrence.
AnnaBridge 172:65be27845400 81 *
AnnaBridge 172:65be27845400 82 * Wake up the peer processor waiting on the mailbox driver event.
AnnaBridge 172:65be27845400 83 *
AnnaBridge 172:65be27845400 84 * @note Implement the functions below with target-specific code.
AnnaBridge 172:65be27845400 85 */
AnnaBridge 172:65be27845400 86 void spm_hal_mailbox_notify(void);
AnnaBridge 172:65be27845400 87
AnnaBridge 172:65be27845400 88 #endif // defined(COMPONENT_SPM_MAILBOX)
AnnaBridge 172:65be27845400 89
AnnaBridge 172:65be27845400 90 /** @}*/
AnnaBridge 172:65be27845400 91
AnnaBridge 172:65be27845400 92 #ifdef __cplusplus
AnnaBridge 172:65be27845400 93 }
AnnaBridge 172:65be27845400 94 #endif
AnnaBridge 172:65be27845400 95
AnnaBridge 172:65be27845400 96 #endif // __SPM_API_H__
AnnaBridge 172:65be27845400 97
AnnaBridge 172:65be27845400 98 /** @}*/