123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264 |
- /** @file sys_core.h
- * @brief System Core Header File
- * @date 29.May.2013
- * @version 03.05.02
- *
- * This file contains:
- * - Core Interface Functions
- * .
- * which are relevant for the System driver.
- */
- /* (c) Texas Instruments 2009-2013, All rights reserved. */
- #ifndef __SYS_CORE_H__
- #define __SYS_CORE_H__
- #include "sys_common.h"
- /* USER CODE BEGIN (0) */
- /* USER CODE END */
- /* System Core Interface Functions */
- /** @fn void _coreInitRegisters_(void)
- * @brief Initialize Core register
- */
- void _coreInitRegisters_(void);
- /** @fn void _coreInitStackPointer_(void)
- * @brief Initialize Core stack pointer
- */
- void _coreInitStackPointer_(void);
- /** @fn void _getCPSRValue_(void)
- * @brief Get CPSR Value
- */
- uint32 _getCPSRValue_(void);
- /** @fn void _gotoCPUIdle_(void)
- * @brief Take CPU to Idle state
- */
- void _gotoCPUIdle_(void);
- /** @fn void _coreEnableIrqVicOffset_(void)
- * @brief Enable Irq offset propagation via Vic controller
- */
- void _coreEnableIrqVicOffset_(void);
- /** @fn void _coreEnableVfp_(void)
- * @brief Enable vector floating point unit
- */
- void _coreEnableVfp_(void);
- /** @fn void _coreEnableEventBusExport_(void)
- * @brief Enable event bus export for external monitoring modules
- * @note It is required to enable event bus export to process ecc issues.
- *
- * This function enables event bus exports to external monitoring modules
- * like tightly coupled RAM wrapper, Flash wrapper and error signaling module.
- */
- void _coreEnableEventBusExport_(void);
- /** @fn void _coreDisableEventBusExport_(void)
- * @brief Disable event bus export for external monitoring modules
- *
- * This function disables event bus exports to external monitoring modules
- * like tightly coupled RAM wrapper, Flash wrapper and error signaling module.
- */
- void _coreDisableEventBusExport_(void);
- /** @fn void _coreEnableRamEcc_(void)
- * @brief Enable external ecc error for RAM odd and even bank
- * @note It is required to enable event bus export to process ecc issues.
- */
- void _coreEnableRamEcc_(void);
- /** @fn void _coreDisableRamEcc_(void)
- * @brief Disable external ecc error for RAM odd and even bank
- */
- void _coreDisableRamEcc_(void);
- /** @fn void _coreEnableFlashEcc_(void)
- * @brief Enable external ecc error for the Flash
- * @note It is required to enable event bus export to process ecc issues.
- */
- void _coreEnableFlashEcc_(void);
- /** @fn void _coreDisableFlashEcc_(void)
- * @brief Disable external ecc error for the Flash
- */
- void _coreDisableFlashEcc_(void);
- /** @fn uint32 _coreGetDataFault_(void)
- * @brief Get core data fault status register
- * @return The function will return the data fault status register value:
- * - bit [10,3..0]:
- * - 0b00001: Alignment -> address is valid
- * - 0b00000: Background -> address is valid
- * - 0b01101: Permission -> address is valid
- * - 0b01000: Precise External Abort -> address is valid
- * - 0b10110: Imprecise External Abort -> address is unpredictable
- * - 0b11001: Precise ECC Error -> address is valid
- * - 0b11000: Imprecise ECC Error -> address is unpredictable
- * - 0b00010: Debug -> address is unchanged
- * - bit [11]:
- * - 0: Read
- * - 1: Write
- * - bit [12]:
- * - 0: AXI Decode Error (DECERR)
- * - 1: AXI Slave Error (SLVERR)
- */
- uint32 _coreGetDataFault_(void);
- /** @fn void _coreClearDataFault_(void)
- * @brief Clear core data fault status register
- */
- void _coreClearDataFault_(void);
- /** @fn uint32 _coreGetInstructionFault_(void)
- * @brief Get core instruction fault status register
- * @return The function will return the instruction fault status register value:
- * - bit [10,3..0]:
- * - 0b00001: Alignment -> address is valid
- * - 0b00000: Background -> address is valid
- * - 0b01101: Permission -> address is valid
- * - 0b01000: Precise External Abort -> address is valid
- * - 0b10110: Imprecise External Abort -> address is unpredictable
- * - 0b11001: Precise ECC Error -> address is valid
- * - 0b11000: Imprecise ECC Error -> address is unpredictable
- * - 0b00010: Debug -> address is unchanged
- * - bit [12]:
- * - 0: AXI Decode Error (DECERR)
- * - 1: AXI Slave Error (SLVERR)
- */
- uint32 _coreGetInstructionFault_(void);
- /** @fn void _coreClearInstructionFault_(void)
- * @brief Clear core instruction fault status register
- */
- void _coreClearInstructionFault_(void);
- /** @fn uint32 _coreGetDataFaultAddress_(void)
- * @brief Get core data fault address register
- * @return The function will return the data fault address:
- */
- uint32 _coreGetDataFaultAddress_(void);
- /** @fn void _coreClearDataFaultAddress_(void)
- * @brief Clear core data fault address register
- */
- void _coreClearDataFaultAddress_(void);
- /** @fn uint32 _coreGetInstructionFaultAddress_(void)
- * @brief Get core instruction fault address register
- * @return The function will return the instruction fault address:
- */
- uint32 _coreGetInstructionFaultAddress_(void);
- /** @fn void _coreClearInstructionFaultAddress_(void)
- * @brief Clear core instruction fault address register
- */
- void _coreClearInstructionFaultAddress_(void);
- /** @fn uint32 _coreGetAuxiliaryDataFault_(void)
- * @brief Get core auxiliary data fault status register
- * @return The function will return the auxiliary data fault status register value:
- * - bit [13..5]:
- * - Index value for access giving error
- * - bit [21]:
- * - 0: Unrecoverable error
- * - 1: Recoverable error
- * - bit [23..22]:
- * - 0: Side cache
- * - 1: Side ATCM (Flash)
- * - 2: Side BTCM (RAM)
- * - 3: Reserved
- * - bit [27..24]:
- * - Cache way or way in which error occurred
- */
- uint32 _coreGetAuxiliaryDataFault_(void);
- /** @fn void _coreClearAuxiliaryDataFault_(void)
- * @brief Clear core auxiliary data fault status register
- */
- void _coreClearAuxiliaryDataFault_(void);
- /** @fn uint32 _coreGetAuxiliaryInstructionFault_(void)
- * @brief Get core auxiliary instruction fault status register
- * @return The function will return the auxiliary instruction fault status register value:
- * - bit [13..5]:
- * - Index value for access giving error
- * - bit [21]:
- * - 0: Unrecoverable error
- * - 1: Recoverable error
- * - bit [23..22]:
- * - 0: Side cache
- * - 1: Side ATCM (Flash)
- * - 2: Side BTCM (RAM)
- * - 3: Reserved
- * - bit [27..24]:
- * - Cache way or way in which error occurred
- */
- uint32 _coreGetAuxiliaryInstructionFault_(void);
- /** @fn void _coreClearAuxiliaryInstructionFault_(void)
- * @brief Clear core auxiliary instruction fault status register
- */
- void _coreClearAuxiliaryInstructionFault_(void);
- /** @fn void _disable_interrupt_(void)
- * @brief Disable IRQ and FIQ Interrupt mode in CPSR register
- *
- * This function disables IRQ and FIQ Interrupt mode in CPSR register.
- */
- void _disable_interrupt_(void);
- /** @fn void _disable_IRQ_interrupt_(void)
- * @brief Disable IRQ Interrupt mode in CPSR register
- *
- * This function disables IRQ Interrupt mode in CPSR register.
- */
- void _disable_IRQ_interrupt_(void);
- /** @fn void _disable_FIQ_interrupt_(void)
- * @brief Disable FIQ Interrupt mode in CPSR register
- *
- * This function disables IRQ Interrupt mode in CPSR register.
- */
- void _disable_FIQ_interrupt_(void);
- /** @fn void _enable_interrupt_(void)
- * @brief Enable IRQ and FIQ Interrupt mode in CPSR register
- *
- * This function Enables IRQ and FIQ Interrupt mode in CPSR register.
- * User must call this function to enable Interrupts in non-OS environments.
- */
- void _enable_interrupt_(void);
- /** @fn void _esmCcmErrorsClear_(void)
- * @brief Clears ESM Error caused due to CCM Errata in RevA Silicon
- *
- * This function Clears ESM Error caused due to CCM Errata
- * in RevA Silicon immediately after powerup.
- */
- void _esmCcmErrorsClear_(void);
- /** @fn void _errata_CORTEXR4_66_(void)
- * @brief Work Around for Errata CORTEX-R4#66
- *
- * This function Disable out-of-order completion for divide
- * instructions in Auxiliary Control register.
- */
- void _errata_CORTEXR4_66_(void);
- /** @fn void _errata_CORTEXR4_57_(void)
- * @brief Work Around for Errata CORTEX-R4#57
- *
- * Disable out-of-order single-precision floating point
- * multiply-accumulate instruction completion.
- */
- void _errata_CORTEXR4_57_(void);
- #endif
|