1

Committer:
valeyev
Date:
Tue Mar 13 07:17:50 2018 +0000
Revision:
0:e056ac8fecf8
looking for...

Who changed what in which revision?

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