test

Dependencies:   mbed Watchdog

Dependents:   STM32-MC_node

Committer:
ommpy
Date:
Mon Jul 06 17:18:59 2020 +0530
Revision:
0:d383e2dee0f7
first commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ommpy 0:d383e2dee0f7 1 /** \addtogroup hal */
ommpy 0:d383e2dee0f7 2 /** @{*/
ommpy 0:d383e2dee0f7 3 /* mbed Microcontroller Library
ommpy 0:d383e2dee0f7 4 * Copyright (c) 2017 ARM Limited
ommpy 0:d383e2dee0f7 5 * SPDX-License-Identifier: Apache-2.0
ommpy 0:d383e2dee0f7 6 *
ommpy 0:d383e2dee0f7 7 * Licensed under the Apache License, Version 2.0 (the "License");
ommpy 0:d383e2dee0f7 8 * you may not use this file except in compliance with the License.
ommpy 0:d383e2dee0f7 9 * You may obtain a copy of the License at
ommpy 0:d383e2dee0f7 10 *
ommpy 0:d383e2dee0f7 11 * http://www.apache.org/licenses/LICENSE-2.0
ommpy 0:d383e2dee0f7 12 *
ommpy 0:d383e2dee0f7 13 * Unless required by applicable law or agreed to in writing, software
ommpy 0:d383e2dee0f7 14 * distributed under the License is distributed on an "AS IS" BASIS,
ommpy 0:d383e2dee0f7 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
ommpy 0:d383e2dee0f7 16 * See the License for the specific language governing permissions and
ommpy 0:d383e2dee0f7 17 * limitations under the License.
ommpy 0:d383e2dee0f7 18 */
ommpy 0:d383e2dee0f7 19
ommpy 0:d383e2dee0f7 20 #ifndef MBED_ITM_API_H
ommpy 0:d383e2dee0f7 21 #define MBED_ITM_API_H
ommpy 0:d383e2dee0f7 22
ommpy 0:d383e2dee0f7 23 #if DEVICE_ITM
ommpy 0:d383e2dee0f7 24
ommpy 0:d383e2dee0f7 25 #include <stdint.h>
ommpy 0:d383e2dee0f7 26 #include <stddef.h>
ommpy 0:d383e2dee0f7 27
ommpy 0:d383e2dee0f7 28 #ifdef __cplusplus
ommpy 0:d383e2dee0f7 29 extern "C" {
ommpy 0:d383e2dee0f7 30 #endif
ommpy 0:d383e2dee0f7 31
ommpy 0:d383e2dee0f7 32 /**
ommpy 0:d383e2dee0f7 33 * \defgroup itm_hal Instrumented Trace Macrocell HAL API
ommpy 0:d383e2dee0f7 34 * @{
ommpy 0:d383e2dee0f7 35 */
ommpy 0:d383e2dee0f7 36
ommpy 0:d383e2dee0f7 37 enum {
ommpy 0:d383e2dee0f7 38 ITM_PORT_SWO = 0
ommpy 0:d383e2dee0f7 39 };
ommpy 0:d383e2dee0f7 40
ommpy 0:d383e2dee0f7 41 /**
ommpy 0:d383e2dee0f7 42 * @brief Target specific initialization function.
ommpy 0:d383e2dee0f7 43 * This function is responsible for initializing and configuring
ommpy 0:d383e2dee0f7 44 * the debug clock for the ITM and setting up the SWO pin for
ommpy 0:d383e2dee0f7 45 * debug output.
ommpy 0:d383e2dee0f7 46 *
ommpy 0:d383e2dee0f7 47 * The only Cortex-M register that should be modified is the clock
ommpy 0:d383e2dee0f7 48 * prescaler in TPI->ACPR.
ommpy 0:d383e2dee0f7 49 *
ommpy 0:d383e2dee0f7 50 * The generic mbed_itm_init initialization function will setup:
ommpy 0:d383e2dee0f7 51 *
ommpy 0:d383e2dee0f7 52 * ITM->LAR
ommpy 0:d383e2dee0f7 53 * ITM->TPR
ommpy 0:d383e2dee0f7 54 * ITM->TCR
ommpy 0:d383e2dee0f7 55 * ITM->TER
ommpy 0:d383e2dee0f7 56 * TPI->SPPR
ommpy 0:d383e2dee0f7 57 * TPI->FFCR
ommpy 0:d383e2dee0f7 58 * DWT->CTRL
ommpy 0:d383e2dee0f7 59 *
ommpy 0:d383e2dee0f7 60 * for SWO output on stimulus port 0.
ommpy 0:d383e2dee0f7 61 */
ommpy 0:d383e2dee0f7 62 void itm_init(void);
ommpy 0:d383e2dee0f7 63
ommpy 0:d383e2dee0f7 64 /**
ommpy 0:d383e2dee0f7 65 * @brief Initialization function for both generic registers and target specific clock and pin.
ommpy 0:d383e2dee0f7 66 */
ommpy 0:d383e2dee0f7 67 void mbed_itm_init(void);
ommpy 0:d383e2dee0f7 68
ommpy 0:d383e2dee0f7 69 /**
ommpy 0:d383e2dee0f7 70 * @brief Send data over ITM stimulus port.
ommpy 0:d383e2dee0f7 71 *
ommpy 0:d383e2dee0f7 72 * @param[in] port The stimulus port to send data over.
ommpy 0:d383e2dee0f7 73 * @param[in] data The 32-bit data to send.
ommpy 0:d383e2dee0f7 74 *
ommpy 0:d383e2dee0f7 75 * The data is written as a single 32-bit write to the port.
ommpy 0:d383e2dee0f7 76 *
ommpy 0:d383e2dee0f7 77 * @return value of data sent.
ommpy 0:d383e2dee0f7 78 */
ommpy 0:d383e2dee0f7 79 uint32_t mbed_itm_send(uint32_t port, uint32_t data);
ommpy 0:d383e2dee0f7 80
ommpy 0:d383e2dee0f7 81 /**
ommpy 0:d383e2dee0f7 82 * @brief Send a block of data over ITM stimulus port.
ommpy 0:d383e2dee0f7 83 *
ommpy 0:d383e2dee0f7 84 * @param[in] port The stimulus port to send data over.
ommpy 0:d383e2dee0f7 85 * @param[in] data The block of data to send.
ommpy 0:d383e2dee0f7 86 * @param[in] len The number of bytes of data to send.
ommpy 0:d383e2dee0f7 87 *
ommpy 0:d383e2dee0f7 88 * The data is written using multiple appropriately-sized port accesses for
ommpy 0:d383e2dee0f7 89 * efficient transfer.
ommpy 0:d383e2dee0f7 90 */
ommpy 0:d383e2dee0f7 91 void mbed_itm_send_block(uint32_t port, const void *data, size_t len);
ommpy 0:d383e2dee0f7 92
ommpy 0:d383e2dee0f7 93 /**@}*/
ommpy 0:d383e2dee0f7 94
ommpy 0:d383e2dee0f7 95 #ifdef __cplusplus
ommpy 0:d383e2dee0f7 96 }
ommpy 0:d383e2dee0f7 97 #endif
ommpy 0:d383e2dee0f7 98
ommpy 0:d383e2dee0f7 99 #endif
ommpy 0:d383e2dee0f7 100
ommpy 0:d383e2dee0f7 101 #endif /* MBED_ITM_API_H */
ommpy 0:d383e2dee0f7 102
ommpy 0:d383e2dee0f7 103 /**@}*/