UCOS_TI_LM3S_Keil
 全部 结构体 文件 函数 变量 类型定义 宏定义 
cpu.h 文件参考
#include <cpu_def.h>
#include <cpu_cfg.h>
cpu.h 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

宏定义

#define CPU_CFG_ADDR_SIZE   CPU_WORD_SIZE_32 /* Defines CPU address word size (in octets). */
 
#define CPU_CFG_DATA_SIZE   CPU_WORD_SIZE_32 /* Defines CPU data word size (in octets). */
 
#define CPU_CFG_ENDIAN_TYPE   CPU_ENDIAN_TYPE_LITTLE /* Defines CPU data word-memory order (see Note #2). */
 
#define CPU_CFG_STK_GROWTH   CPU_STK_GROWTH_HI_TO_LO /* Defines CPU stack growth order (see Note #1). */
 
#define CPU_CFG_CRITICAL_METHOD   CPU_CRITICAL_METHOD_STATUS_LOCAL
 
#define CPU_SR_ALLOC()   CPU_SR cpu_sr = (CPU_SR)0;
 
#define CPU_INT_DIS()   { cpu_sr = CPU_SR_Save(); } /* Save CPU status word & disable interrupts. */
 
#define CPU_INT_EN()   { CPU_SR_Restore(cpu_sr); } /* Restore CPU status word. */
 
#define CPU_CRITICAL_ENTER()   { CPU_INT_DIS(); } /* Disable interrupts. */
 
#define CPU_CRITICAL_EXIT()   { CPU_INT_EN(); } /* Re-enable interrupts. */
 
#define CPU_CFG_LEAD_ZEROS_ASM_PRESENT   /* See Note #1. */
 
#define CPU_INT_STK_PTR   0u
 
#define CPU_INT_RESET   1u
 
#define CPU_INT_NMI   2u
 
#define CPU_INT_HFAULT   3u
 
#define CPU_INT_MEM   4u
 
#define CPU_INT_BUSFAULT   5u
 
#define CPU_INT_USAGEFAULT   6u
 
#define CPU_INT_RSVD_07   7u
 
#define CPU_INT_RSVD_08   8u
 
#define CPU_INT_RSVD_09   9u
 
#define CPU_INT_RSVD_10   10u
 
#define CPU_INT_SVCALL   11u
 
#define CPU_INT_DBGMON   12u
 
#define CPU_INT_RSVD_13   13u
 
#define CPU_INT_PENDSV   14u
 
#define CPU_INT_SYSTICK   15u
 
#define CPU_REG_NVIC_NVIC   (*((CPU_REG32 *)(0xE000E004))) /* Int Ctrl'er Type Reg. */
 
#define CPU_REG_NVIC_ST_CTRL   (*((CPU_REG32 *)(0xE000E010))) /* SysTick Ctrl & Status Reg. */
 
#define CPU_REG_NVIC_ST_RELOAD   (*((CPU_REG32 *)(0xE000E014))) /* SysTick Reload Value Reg. */
 
#define CPU_REG_NVIC_ST_CURRENT   (*((CPU_REG32 *)(0xE000E018))) /* SysTick Current Value Reg. */
 
#define CPU_REG_NVIC_ST_CAL   (*((CPU_REG32 *)(0xE000E01C))) /* SysTick Calibration Value Reg. */
 
#define CPU_REG_NVIC_SETEN(n)   (*((CPU_REG32 *)(0xE000E100 + (n) * 4u))) /* IRQ Set En Reg. */
 
#define CPU_REG_NVIC_CLREN(n)   (*((CPU_REG32 *)(0xE000E180 + (n) * 4u))) /* IRQ Clr En Reg. */
 
#define CPU_REG_NVIC_SETPEND(n)   (*((CPU_REG32 *)(0xE000E200 + (n) * 4u))) /* IRQ Set Pending Reg. */
 
#define CPU_REG_NVIC_CLRPEND(n)   (*((CPU_REG32 *)(0xE000E280 + (n) * 4u))) /* IRQ Clr Pending Reg. */
 
#define CPU_REG_NVIC_ACTIVE(n)   (*((CPU_REG32 *)(0xE000E300 + (n) * 4u))) /* IRQ Active Reg. */
 
#define CPU_REG_NVIC_PRIO(n)   (*((CPU_REG32 *)(0xE000E400 + (n) * 4u))) /* IRQ Prio Reg. */
 
#define CPU_REG_NVIC_CPUID   (*((CPU_REG32 *)(0xE000ED00))) /* CPUID Base Reg. */
 
#define CPU_REG_NVIC_ICSR   (*((CPU_REG32 *)(0xE000ED04))) /* Int Ctrl State Reg. */
 
#define CPU_REG_NVIC_VTOR   (*((CPU_REG32 *)(0xE000ED08))) /* Vect Tbl Offset Reg. */
 
#define CPU_REG_NVIC_AIRCR   (*((CPU_REG32 *)(0xE000ED0C))) /* App Int/Reset Ctrl Reg. */
 
#define CPU_REG_NVIC_SCR   (*((CPU_REG32 *)(0xE000ED10))) /* System Ctrl Reg. */
 
#define CPU_REG_NVIC_CCR   (*((CPU_REG32 *)(0xE000ED14))) /* Cfg Ctrl Reg. */
 
#define CPU_REG_NVIC_SHPRI1   (*((CPU_REG32 *)(0xE000ED18))) /* System Handlers 4 to 7 Prio. */
 
#define CPU_REG_NVIC_SHPRI2   (*((CPU_REG32 *)(0xE000ED1C))) /* System Handlers 8 to 11 Prio. */
 
#define CPU_REG_NVIC_SHPRI3   (*((CPU_REG32 *)(0xE000ED20))) /* System Handlers 12 to 15 Prio. */
 
#define CPU_REG_NVIC_SHCSR   (*((CPU_REG32 *)(0xE000ED24))) /* System Handler Ctrl & State Reg. */
 
#define CPU_REG_NVIC_CFSR   (*((CPU_REG32 *)(0xE000ED28))) /* Configurable Fault Status Reg. */
 
#define CPU_REG_NVIC_HFSR   (*((CPU_REG32 *)(0xE000ED2C))) /* Hard Fault Status Reg. */
 
#define CPU_REG_NVIC_DFSR   (*((CPU_REG32 *)(0xE000ED30))) /* Debug Fault Status Reg. */
 
#define CPU_REG_NVIC_MMFAR   (*((CPU_REG32 *)(0xE000ED34))) /* Mem Manage Addr Reg. */
 
#define CPU_REG_NVIC_BFAR   (*((CPU_REG32 *)(0xE000ED38))) /* Bus Fault Addr Reg. */
 
#define CPU_REG_NVIC_AFSR   (*((CPU_REG32 *)(0xE000ED3C))) /* Aux Fault Status Reg. */
 
#define CPU_REG_NVIC_PFR0   (*((CPU_REG32 *)(0xE000ED40))) /* Processor Feature Reg 0. */
 
#define CPU_REG_NVIC_PFR1   (*((CPU_REG32 *)(0xE000ED44))) /* Processor Feature Reg 1. */
 
#define CPU_REG_NVIC_DFR0   (*((CPU_REG32 *)(0xE000ED48))) /* Debug Feature Reg 0. */
 
#define CPU_REG_NVIC_AFR0   (*((CPU_REG32 *)(0xE000ED4C))) /* Aux Feature Reg 0. */
 
#define CPU_REG_NVIC_MMFR0   (*((CPU_REG32 *)(0xE000ED50))) /* Memory Model Feature Reg 0. */
 
#define CPU_REG_NVIC_MMFR1   (*((CPU_REG32 *)(0xE000ED54))) /* Memory Model Feature Reg 1. */
 
#define CPU_REG_NVIC_MMFR2   (*((CPU_REG32 *)(0xE000ED58))) /* Memory Model Feature Reg 2. */
 
#define CPU_REG_NVIC_MMFR3   (*((CPU_REG32 *)(0xE000ED5C))) /* Memory Model Feature Reg 3. */
 
#define CPU_REG_NVIC_ISAFR0   (*((CPU_REG32 *)(0xE000ED60))) /* ISA Feature Reg 0. */
 
#define CPU_REG_NVIC_ISAFR1   (*((CPU_REG32 *)(0xE000ED64))) /* ISA Feature Reg 1. */
 
#define CPU_REG_NVIC_ISAFR2   (*((CPU_REG32 *)(0xE000ED68))) /* ISA Feature Reg 2. */
 
#define CPU_REG_NVIC_ISAFR3   (*((CPU_REG32 *)(0xE000ED6C))) /* ISA Feature Reg 3. */
 
#define CPU_REG_NVIC_ISAFR4   (*((CPU_REG32 *)(0xE000ED70))) /* ISA Feature Reg 4. */
 
#define CPU_REG_NVIC_SW_TRIG   (*((CPU_REG32 *)(0xE000EF00))) /* Software Trigger Int Reg. */
 
#define CPU_REG_MPU_TYPE   (*((CPU_REG32 *)(0xE000ED90))) /* MPU Type Reg. */
 
#define CPU_REG_MPU_CTRL   (*((CPU_REG32 *)(0xE000ED94))) /* MPU Ctrl Reg. */
 
#define CPU_REG_MPU_REG_NBR   (*((CPU_REG32 *)(0xE000ED98))) /* MPU Region Nbr Reg. */
 
#define CPU_REG_MPU_REG_BASE   (*((CPU_REG32 *)(0xE000ED9C))) /* MPU Region Base Addr Reg. */
 
#define CPU_REG_MPU_REG_ATTR   (*((CPU_REG32 *)(0xE000EDA0))) /* MPU Region Attrib & Size Reg. */
 
#define CPU_REG_DBG_CTRL   (*((CPU_REG32 *)(0xE000EDF0))) /* Debug Halting Ctrl & Status Reg. */
 
#define CPU_REG_DBG_SELECT   (*((CPU_REG32 *)(0xE000EDF4))) /* Debug Core Reg Selector Reg. */
 
#define CPU_REG_DBG_DATA   (*((CPU_REG32 *)(0xE000EDF8))) /* Debug Core Reg Data Reg. */
 
#define CPU_REG_DBG_INT   (*((CPU_REG32 *)(0xE000EDFC))) /* Debug Except & Monitor Ctrl Reg. */
 
#define CPU_REG_NVIC_ST_CTRL_COUNTFLAG   0x00010000
 
#define CPU_REG_NVIC_ST_CTRL_CLKSOURCE   0x00000004
 
#define CPU_REG_NVIC_ST_CTRL_TICKINT   0x00000002
 
#define CPU_REG_NVIC_ST_CTRL_ENABLE   0x00000001
 
#define CPU_REG_NVIC_ST_CAL_NOREF   0x80000000
 
#define CPU_REG_NVIC_ST_CAL_SKEW   0x40000000
 
#define CPU_REG_NVIC_ICSR_NMIPENDSET   0x80000000
 
#define CPU_REG_NVIC_ICSR_PENDSVSET   0x10000000
 
#define CPU_REG_NVIC_ICSR_PENDSVCLR   0x08000000
 
#define CPU_REG_NVIC_ICSR_PENDSTSET   0x04000000
 
#define CPU_REG_NVIC_ICSR_PENDSTCLR   0x02000000
 
#define CPU_REG_NVIC_ICSR_ISRPREEMPT   0x00800000
 
#define CPU_REG_NVIC_ICSR_ISRPENDING   0x00400000
 
#define CPU_REG_NVIC_ICSR_RETTOBASE   0x00000800
 
#define CPU_REG_NVIC_VTOR_TBLBASE   0x20000000
 
#define CPU_REG_NVIC_AIRCR_ENDIANNESS   0x00008000
 
#define CPU_REG_NVIC_AIRCR_SYSRESETREQ   0x00000004
 
#define CPU_REG_NVIC_AIRCR_VECTCLRACTIVE   0x00000002
 
#define CPU_REG_NVIC_AIRCR_VECTRESET   0x00000001
 
#define CPU_REG_NVIC_SCR_SEVONPEND   0x00000010
 
#define CPU_REG_NVIC_SCR_SLEEPDEEP   0x00000004
 
#define CPU_REG_NVIC_SCR_SLEEPONEXIT   0x00000002
 
#define CPU_REG_NVIC_CCR_STKALIGN   0x00000200
 
#define CPU_REG_NVIC_CCR_BFHFNMIGN   0x00000100
 
#define CPU_REG_NVIC_CCR_DIV_0_TRP   0x00000010
 
#define CPU_REG_NVIC_CCR_UNALIGN_TRP   0x00000008
 
#define CPU_REG_NVIC_CCR_USERSETMPEND   0x00000002
 
#define CPU_REG_NVIC_CCR_NONBASETHRDENA   0x00000001
 
#define CPU_REG_NVIC_SHCSR_USGFAULTENA   0x00040000
 
#define CPU_REG_NVIC_SHCSR_BUSFAULTENA   0x00020000
 
#define CPU_REG_NVIC_SHCSR_MEMFAULTENA   0x00010000
 
#define CPU_REG_NVIC_SHCSR_SVCALLPENDED   0x00008000
 
#define CPU_REG_NVIC_SHCSR_BUSFAULTPENDED   0x00004000
 
#define CPU_REG_NVIC_SHCSR_MEMFAULTPENDED   0x00002000
 
#define CPU_REG_NVIC_SHCSR_USGFAULTPENDED   0x00001000
 
#define CPU_REG_NVIC_SHCSR_SYSTICKACT   0x00000800
 
#define CPU_REG_NVIC_SHCSR_PENDSVACT   0x00000400
 
#define CPU_REG_NVIC_SHCSR_MONITORACT   0x00000100
 
#define CPU_REG_NVIC_SHCSR_SVCALLACT   0x00000080
 
#define CPU_REG_NVIC_SHCSR_USGFAULTACT   0x00000008
 
#define CPU_REG_NVIC_SHCSR_BUSFAULTACT   0x00000002
 
#define CPU_REG_NVIC_SHCSR_MEMFAULTACT   0x00000001
 
#define CPU_REG_NVIC_CFSR_DIVBYZERO   0x02000000
 
#define CPU_REG_NVIC_CFSR_UNALIGNED   0x01000000
 
#define CPU_REG_NVIC_CFSR_NOCP   0x00080000
 
#define CPU_REG_NVIC_CFSR_INVPC   0x00040000
 
#define CPU_REG_NVIC_CFSR_INVSTATE   0x00020000
 
#define CPU_REG_NVIC_CFSR_UNDEFINSTR   0x00010000
 
#define CPU_REG_NVIC_CFSR_BFARVALID   0x00008000
 
#define CPU_REG_NVIC_CFSR_STKERR   0x00001000
 
#define CPU_REG_NVIC_CFSR_UNSTKERR   0x00000800
 
#define CPU_REG_NVIC_CFSR_IMPRECISERR   0x00000400
 
#define CPU_REG_NVIC_CFSR_PRECISERR   0x00000200
 
#define CPU_REG_NVIC_CFSR_IBUSERR   0x00000100
 
#define CPU_REG_NVIC_CFSR_MMARVALID   0x00000080
 
#define CPU_REG_NVIC_CFSR_MSTKERR   0x00000010
 
#define CPU_REG_NVIC_CFSR_MUNSTKERR   0x00000008
 
#define CPU_REG_NVIC_CFSR_DACCVIOL   0x00000002
 
#define CPU_REG_NVIC_CFSR_IACCVIOL   0x00000001
 
#define CPU_REG_NVIC_HFSR_DEBUGEVT   0x80000000
 
#define CPU_REG_NVIC_HFSR_FORCED   0x40000000
 
#define CPU_REG_NVIC_HFSR_VECTTBL   0x00000002
 
#define CPU_REG_NVIC_DFSR_EXTERNAL   0x00000010
 
#define CPU_REG_NVIC_DFSR_VCATCH   0x00000008
 
#define CPU_REG_NVIC_DFSR_DWTTRAP   0x00000004
 
#define CPU_REG_NVIC_DFSR_BKPT   0x00000002
 
#define CPU_REG_NVIC_DFSR_HALTED   0x00000001
 

类型定义

typedef void CPU_VOID
 
typedef char CPU_CHAR
 
typedef unsigned char CPU_BOOLEAN
 
typedef unsigned char CPU_INT08U
 
typedef signed char CPU_INT08S
 
typedef unsigned short CPU_INT16U
 
typedef signed short CPU_INT16S
 
typedef unsigned int CPU_INT32U
 
typedef signed int CPU_INT32S
 
typedef unsigned long long CPU_INT64U
 
typedef signed long long CPU_INT64S
 
typedef float CPU_FP32
 
typedef double CPU_FP64
 
typedef volatile CPU_INT08U CPU_REG08
 
typedef volatile CPU_INT16U CPU_REG16
 
typedef volatile CPU_INT32U CPU_REG32
 
typedef volatile CPU_INT64U CPU_REG64
 
typedef void(* CPU_FNCT_VOID )(void)
 
typedef void(* CPU_FNCT_PTR )(void *)
 
typedef CPU_INT32U CPU_ADDR
 
typedef CPU_INT32U CPU_DATA
 
typedef CPU_DATA CPU_ALIGN
 
typedef CPU_ADDR CPU_SIZE_T
 
typedef CPU_INT32U CPU_STK
 
typedef CPU_INT32U CPU_SR
 

函数

void CPU_IntDis (void)
 
void CPU_IntEn (void)
 
void CPU_IntSrcDis (CPU_INT08U pos)
 
void CPU_IntSrcEn (CPU_INT08U pos)
 
CPU_INT16S CPU_IntSrcPrioGet (CPU_INT08U pos)
 
void CPU_IntSrcPrioSet (CPU_INT08U pos, CPU_INT08U prio)
 
void CPU_WaitForInt (void)
 
void CPU_WaitForExcept (void)
 
CPU_SR CPU_SR_Save (void)
 
void CPU_SR_Restore (CPU_SR cpu_sr)
 
CPU_DATA CPU_CntLeadZeros (CPU_DATA val)
 
CPU_DATA CPU_RevBits (CPU_DATA val)
 
void CPU_BitBandClr (CPU_ADDR addr, CPU_INT08U bit_nbr)
 
void CPU_BitBandSet (CPU_ADDR addr, CPU_INT08U bit_nbr)
 

宏定义说明

#define CPU_CFG_ADDR_SIZE   CPU_WORD_SIZE_32 /* Defines CPU address word size (in octets). */

在文件 cpu.h163 行定义.

#define CPU_CFG_DATA_SIZE   CPU_WORD_SIZE_32 /* Defines CPU data word size (in octets). */

在文件 cpu.h164 行定义.

#define CPU_CFG_ENDIAN_TYPE   CPU_ENDIAN_TYPE_LITTLE /* Defines CPU data word-memory order (see Note #2). */

在文件 cpu.h166 行定义.

#define CPU_CFG_STK_GROWTH   CPU_STK_GROWTH_HI_TO_LO /* Defines CPU stack growth order (see Note #1). */

在文件 cpu.h211 行定义.

#define CPU_CFG_CRITICAL_METHOD   CPU_CRITICAL_METHOD_STATUS_LOCAL

在文件 cpu.h278 行定义.

#define CPU_INT_DIS ( )    { cpu_sr = CPU_SR_Save(); } /* Save CPU status word & disable interrupts. */

在文件 cpu.h291 行定义.

参考自 CPU_TS_UpdateHandler().

#define CPU_INT_EN ( )    { CPU_SR_Restore(cpu_sr); } /* Restore CPU status word. */

在文件 cpu.h292 行定义.

参考自 CPU_TS_UpdateHandler().

#define CPU_CFG_LEAD_ZEROS_ASM_PRESENT   /* See Note #1. */

在文件 cpu.h349 行定义.

#define CPU_INT_STK_PTR   0u

在文件 cpu.h368 行定义.

参考自 CPU_IntSrcDis(), CPU_IntSrcEn(), CPU_IntSrcPrioGet() , 以及 CPU_IntSrcPrioSet().

#define CPU_INT_RESET   1u

在文件 cpu.h369 行定义.

参考自 CPU_IntSrcDis(), CPU_IntSrcEn(), CPU_IntSrcPrioGet() , 以及 CPU_IntSrcPrioSet().

#define CPU_INT_NMI   2u

在文件 cpu.h370 行定义.

参考自 CPU_IntSrcDis(), CPU_IntSrcEn(), CPU_IntSrcPrioGet() , 以及 CPU_IntSrcPrioSet().

#define CPU_INT_HFAULT   3u

在文件 cpu.h371 行定义.

参考自 CPU_IntSrcDis(), CPU_IntSrcEn(), CPU_IntSrcPrioGet() , 以及 CPU_IntSrcPrioSet().

#define CPU_INT_MEM   4u

在文件 cpu.h372 行定义.

参考自 CPU_IntSrcDis(), CPU_IntSrcEn(), CPU_IntSrcPrioGet() , 以及 CPU_IntSrcPrioSet().

#define CPU_INT_BUSFAULT   5u

在文件 cpu.h373 行定义.

参考自 CPU_IntSrcDis(), CPU_IntSrcEn(), CPU_IntSrcPrioGet() , 以及 CPU_IntSrcPrioSet().

#define CPU_INT_USAGEFAULT   6u

在文件 cpu.h374 行定义.

参考自 CPU_IntSrcDis(), CPU_IntSrcEn(), CPU_IntSrcPrioGet() , 以及 CPU_IntSrcPrioSet().

#define CPU_INT_RSVD_07   7u

在文件 cpu.h375 行定义.

参考自 CPU_IntSrcDis(), CPU_IntSrcEn(), CPU_IntSrcPrioGet() , 以及 CPU_IntSrcPrioSet().

#define CPU_INT_RSVD_08   8u

在文件 cpu.h376 行定义.

参考自 CPU_IntSrcDis(), CPU_IntSrcEn(), CPU_IntSrcPrioGet() , 以及 CPU_IntSrcPrioSet().

#define CPU_INT_RSVD_09   9u

在文件 cpu.h377 行定义.

参考自 CPU_IntSrcDis(), CPU_IntSrcEn(), CPU_IntSrcPrioGet() , 以及 CPU_IntSrcPrioSet().

#define CPU_INT_RSVD_10   10u

在文件 cpu.h378 行定义.

参考自 CPU_IntSrcDis(), CPU_IntSrcEn(), CPU_IntSrcPrioGet() , 以及 CPU_IntSrcPrioSet().

#define CPU_INT_SVCALL   11u

在文件 cpu.h379 行定义.

参考自 CPU_IntSrcDis(), CPU_IntSrcEn(), CPU_IntSrcPrioGet() , 以及 CPU_IntSrcPrioSet().

#define CPU_INT_DBGMON   12u

在文件 cpu.h380 行定义.

参考自 CPU_IntSrcDis(), CPU_IntSrcEn(), CPU_IntSrcPrioGet() , 以及 CPU_IntSrcPrioSet().

#define CPU_INT_RSVD_13   13u

在文件 cpu.h381 行定义.

参考自 CPU_IntSrcDis(), CPU_IntSrcEn(), CPU_IntSrcPrioGet() , 以及 CPU_IntSrcPrioSet().

#define CPU_INT_PENDSV   14u

在文件 cpu.h382 行定义.

参考自 CPU_IntSrcDis(), CPU_IntSrcEn(), CPU_IntSrcPrioGet() , 以及 CPU_IntSrcPrioSet().

#define CPU_INT_SYSTICK   15u

在文件 cpu.h383 行定义.

参考自 CPU_IntSrcDis(), CPU_IntSrcEn(), CPU_IntSrcPrioGet() , 以及 CPU_IntSrcPrioSet().

#define CPU_REG_NVIC_NVIC   (*((CPU_REG32 *)(0xE000E004))) /* Int Ctrl'er Type Reg. */

在文件 cpu.h392 行定义.

#define CPU_REG_NVIC_ST_CTRL   (*((CPU_REG32 *)(0xE000E010))) /* SysTick Ctrl & Status Reg. */

在文件 cpu.h393 行定义.

参考自 CPU_IntSrcDis() , 以及 CPU_IntSrcEn().

#define CPU_REG_NVIC_ST_RELOAD   (*((CPU_REG32 *)(0xE000E014))) /* SysTick Reload Value Reg. */

在文件 cpu.h394 行定义.

#define CPU_REG_NVIC_ST_CURRENT   (*((CPU_REG32 *)(0xE000E018))) /* SysTick Current Value Reg. */

在文件 cpu.h395 行定义.

#define CPU_REG_NVIC_ST_CAL   (*((CPU_REG32 *)(0xE000E01C))) /* SysTick Calibration Value Reg. */

在文件 cpu.h396 行定义.

#define CPU_REG_NVIC_SETEN (   n)    (*((CPU_REG32 *)(0xE000E100 + (n) * 4u))) /* IRQ Set En Reg. */

在文件 cpu.h398 行定义.

参考自 CPU_IntSrcEn().

#define CPU_REG_NVIC_CLREN (   n)    (*((CPU_REG32 *)(0xE000E180 + (n) * 4u))) /* IRQ Clr En Reg. */

在文件 cpu.h399 行定义.

参考自 CPU_IntSrcDis().

#define CPU_REG_NVIC_SETPEND (   n)    (*((CPU_REG32 *)(0xE000E200 + (n) * 4u))) /* IRQ Set Pending Reg. */

在文件 cpu.h400 行定义.

#define CPU_REG_NVIC_CLRPEND (   n)    (*((CPU_REG32 *)(0xE000E280 + (n) * 4u))) /* IRQ Clr Pending Reg. */

在文件 cpu.h401 行定义.

#define CPU_REG_NVIC_ACTIVE (   n)    (*((CPU_REG32 *)(0xE000E300 + (n) * 4u))) /* IRQ Active Reg. */

在文件 cpu.h402 行定义.

#define CPU_REG_NVIC_PRIO (   n)    (*((CPU_REG32 *)(0xE000E400 + (n) * 4u))) /* IRQ Prio Reg. */

在文件 cpu.h403 行定义.

参考自 CPU_IntSrcPrioGet() , 以及 CPU_IntSrcPrioSet().

#define CPU_REG_NVIC_CPUID   (*((CPU_REG32 *)(0xE000ED00))) /* CPUID Base Reg. */

在文件 cpu.h405 行定义.

#define CPU_REG_NVIC_ICSR   (*((CPU_REG32 *)(0xE000ED04))) /* Int Ctrl State Reg. */

在文件 cpu.h406 行定义.

#define CPU_REG_NVIC_VTOR   (*((CPU_REG32 *)(0xE000ED08))) /* Vect Tbl Offset Reg. */

在文件 cpu.h407 行定义.

#define CPU_REG_NVIC_AIRCR   (*((CPU_REG32 *)(0xE000ED0C))) /* App Int/Reset Ctrl Reg. */

在文件 cpu.h408 行定义.

#define CPU_REG_NVIC_SCR   (*((CPU_REG32 *)(0xE000ED10))) /* System Ctrl Reg. */

在文件 cpu.h409 行定义.

#define CPU_REG_NVIC_CCR   (*((CPU_REG32 *)(0xE000ED14))) /* Cfg Ctrl Reg. */

在文件 cpu.h410 行定义.

#define CPU_REG_NVIC_SHPRI1   (*((CPU_REG32 *)(0xE000ED18))) /* System Handlers 4 to 7 Prio. */

在文件 cpu.h411 行定义.

参考自 CPU_IntSrcPrioGet() , 以及 CPU_IntSrcPrioSet().

#define CPU_REG_NVIC_SHPRI2   (*((CPU_REG32 *)(0xE000ED1C))) /* System Handlers 8 to 11 Prio. */

在文件 cpu.h412 行定义.

参考自 CPU_IntSrcPrioGet() , 以及 CPU_IntSrcPrioSet().

#define CPU_REG_NVIC_SHPRI3   (*((CPU_REG32 *)(0xE000ED20))) /* System Handlers 12 to 15 Prio. */

在文件 cpu.h413 行定义.

参考自 CPU_IntSrcPrioGet() , 以及 CPU_IntSrcPrioSet().

#define CPU_REG_NVIC_SHCSR   (*((CPU_REG32 *)(0xE000ED24))) /* System Handler Ctrl & State Reg. */

在文件 cpu.h414 行定义.

参考自 CPU_IntSrcDis() , 以及 CPU_IntSrcEn().

#define CPU_REG_NVIC_CFSR   (*((CPU_REG32 *)(0xE000ED28))) /* Configurable Fault Status Reg. */

在文件 cpu.h415 行定义.

#define CPU_REG_NVIC_HFSR   (*((CPU_REG32 *)(0xE000ED2C))) /* Hard Fault Status Reg. */

在文件 cpu.h416 行定义.

#define CPU_REG_NVIC_DFSR   (*((CPU_REG32 *)(0xE000ED30))) /* Debug Fault Status Reg. */

在文件 cpu.h417 行定义.

#define CPU_REG_NVIC_MMFAR   (*((CPU_REG32 *)(0xE000ED34))) /* Mem Manage Addr Reg. */

在文件 cpu.h418 行定义.

#define CPU_REG_NVIC_BFAR   (*((CPU_REG32 *)(0xE000ED38))) /* Bus Fault Addr Reg. */

在文件 cpu.h419 行定义.

#define CPU_REG_NVIC_AFSR   (*((CPU_REG32 *)(0xE000ED3C))) /* Aux Fault Status Reg. */

在文件 cpu.h420 行定义.

#define CPU_REG_NVIC_PFR0   (*((CPU_REG32 *)(0xE000ED40))) /* Processor Feature Reg 0. */

在文件 cpu.h422 行定义.

#define CPU_REG_NVIC_PFR1   (*((CPU_REG32 *)(0xE000ED44))) /* Processor Feature Reg 1. */

在文件 cpu.h423 行定义.

#define CPU_REG_NVIC_DFR0   (*((CPU_REG32 *)(0xE000ED48))) /* Debug Feature Reg 0. */

在文件 cpu.h424 行定义.

#define CPU_REG_NVIC_AFR0   (*((CPU_REG32 *)(0xE000ED4C))) /* Aux Feature Reg 0. */

在文件 cpu.h425 行定义.

#define CPU_REG_NVIC_MMFR0   (*((CPU_REG32 *)(0xE000ED50))) /* Memory Model Feature Reg 0. */

在文件 cpu.h426 行定义.

#define CPU_REG_NVIC_MMFR1   (*((CPU_REG32 *)(0xE000ED54))) /* Memory Model Feature Reg 1. */

在文件 cpu.h427 行定义.

#define CPU_REG_NVIC_MMFR2   (*((CPU_REG32 *)(0xE000ED58))) /* Memory Model Feature Reg 2. */

在文件 cpu.h428 行定义.

#define CPU_REG_NVIC_MMFR3   (*((CPU_REG32 *)(0xE000ED5C))) /* Memory Model Feature Reg 3. */

在文件 cpu.h429 行定义.

#define CPU_REG_NVIC_ISAFR0   (*((CPU_REG32 *)(0xE000ED60))) /* ISA Feature Reg 0. */

在文件 cpu.h430 行定义.

#define CPU_REG_NVIC_ISAFR1   (*((CPU_REG32 *)(0xE000ED64))) /* ISA Feature Reg 1. */

在文件 cpu.h431 行定义.

#define CPU_REG_NVIC_ISAFR2   (*((CPU_REG32 *)(0xE000ED68))) /* ISA Feature Reg 2. */

在文件 cpu.h432 行定义.

#define CPU_REG_NVIC_ISAFR3   (*((CPU_REG32 *)(0xE000ED6C))) /* ISA Feature Reg 3. */

在文件 cpu.h433 行定义.

#define CPU_REG_NVIC_ISAFR4   (*((CPU_REG32 *)(0xE000ED70))) /* ISA Feature Reg 4. */

在文件 cpu.h434 行定义.

#define CPU_REG_NVIC_SW_TRIG   (*((CPU_REG32 *)(0xE000EF00))) /* Software Trigger Int Reg. */

在文件 cpu.h435 行定义.

#define CPU_REG_MPU_TYPE   (*((CPU_REG32 *)(0xE000ED90))) /* MPU Type Reg. */

在文件 cpu.h437 行定义.

#define CPU_REG_MPU_CTRL   (*((CPU_REG32 *)(0xE000ED94))) /* MPU Ctrl Reg. */

在文件 cpu.h438 行定义.

#define CPU_REG_MPU_REG_NBR   (*((CPU_REG32 *)(0xE000ED98))) /* MPU Region Nbr Reg. */

在文件 cpu.h439 行定义.

#define CPU_REG_MPU_REG_BASE   (*((CPU_REG32 *)(0xE000ED9C))) /* MPU Region Base Addr Reg. */

在文件 cpu.h440 行定义.

#define CPU_REG_MPU_REG_ATTR   (*((CPU_REG32 *)(0xE000EDA0))) /* MPU Region Attrib & Size Reg. */

在文件 cpu.h441 行定义.

#define CPU_REG_DBG_CTRL   (*((CPU_REG32 *)(0xE000EDF0))) /* Debug Halting Ctrl & Status Reg. */

在文件 cpu.h443 行定义.

#define CPU_REG_DBG_SELECT   (*((CPU_REG32 *)(0xE000EDF4))) /* Debug Core Reg Selector Reg. */

在文件 cpu.h444 行定义.

#define CPU_REG_DBG_DATA   (*((CPU_REG32 *)(0xE000EDF8))) /* Debug Core Reg Data Reg. */

在文件 cpu.h445 行定义.

#define CPU_REG_DBG_INT   (*((CPU_REG32 *)(0xE000EDFC))) /* Debug Except & Monitor Ctrl Reg. */

在文件 cpu.h446 行定义.

#define CPU_REG_NVIC_ST_CTRL_COUNTFLAG   0x00010000

在文件 cpu.h457 行定义.

#define CPU_REG_NVIC_ST_CTRL_CLKSOURCE   0x00000004

在文件 cpu.h458 行定义.

#define CPU_REG_NVIC_ST_CTRL_TICKINT   0x00000002

在文件 cpu.h459 行定义.

#define CPU_REG_NVIC_ST_CTRL_ENABLE   0x00000001

在文件 cpu.h460 行定义.

参考自 CPU_IntSrcDis() , 以及 CPU_IntSrcEn().

#define CPU_REG_NVIC_ST_CAL_NOREF   0x80000000

在文件 cpu.h464 行定义.

#define CPU_REG_NVIC_ST_CAL_SKEW   0x40000000

在文件 cpu.h465 行定义.

#define CPU_REG_NVIC_ICSR_NMIPENDSET   0x80000000

在文件 cpu.h468 行定义.

#define CPU_REG_NVIC_ICSR_PENDSVSET   0x10000000

在文件 cpu.h469 行定义.

#define CPU_REG_NVIC_ICSR_PENDSVCLR   0x08000000

在文件 cpu.h470 行定义.

#define CPU_REG_NVIC_ICSR_PENDSTSET   0x04000000

在文件 cpu.h471 行定义.

#define CPU_REG_NVIC_ICSR_PENDSTCLR   0x02000000

在文件 cpu.h472 行定义.

#define CPU_REG_NVIC_ICSR_ISRPREEMPT   0x00800000

在文件 cpu.h473 行定义.

#define CPU_REG_NVIC_ICSR_ISRPENDING   0x00400000

在文件 cpu.h474 行定义.

#define CPU_REG_NVIC_ICSR_RETTOBASE   0x00000800

在文件 cpu.h475 行定义.

#define CPU_REG_NVIC_VTOR_TBLBASE   0x20000000

在文件 cpu.h478 行定义.

#define CPU_REG_NVIC_AIRCR_ENDIANNESS   0x00008000

在文件 cpu.h481 行定义.

#define CPU_REG_NVIC_AIRCR_SYSRESETREQ   0x00000004

在文件 cpu.h482 行定义.

#define CPU_REG_NVIC_AIRCR_VECTCLRACTIVE   0x00000002

在文件 cpu.h483 行定义.

#define CPU_REG_NVIC_AIRCR_VECTRESET   0x00000001

在文件 cpu.h484 行定义.

#define CPU_REG_NVIC_SCR_SEVONPEND   0x00000010

在文件 cpu.h487 行定义.

#define CPU_REG_NVIC_SCR_SLEEPDEEP   0x00000004

在文件 cpu.h488 行定义.

#define CPU_REG_NVIC_SCR_SLEEPONEXIT   0x00000002

在文件 cpu.h489 行定义.

#define CPU_REG_NVIC_CCR_STKALIGN   0x00000200

在文件 cpu.h492 行定义.

#define CPU_REG_NVIC_CCR_BFHFNMIGN   0x00000100

在文件 cpu.h493 行定义.

#define CPU_REG_NVIC_CCR_DIV_0_TRP   0x00000010

在文件 cpu.h494 行定义.

#define CPU_REG_NVIC_CCR_UNALIGN_TRP   0x00000008

在文件 cpu.h495 行定义.

#define CPU_REG_NVIC_CCR_USERSETMPEND   0x00000002

在文件 cpu.h496 行定义.

#define CPU_REG_NVIC_CCR_NONBASETHRDENA   0x00000001

在文件 cpu.h497 行定义.

#define CPU_REG_NVIC_SHCSR_USGFAULTENA   0x00040000

在文件 cpu.h500 行定义.

参考自 CPU_IntSrcDis() , 以及 CPU_IntSrcEn().

#define CPU_REG_NVIC_SHCSR_BUSFAULTENA   0x00020000

在文件 cpu.h501 行定义.

参考自 CPU_IntSrcDis() , 以及 CPU_IntSrcEn().

#define CPU_REG_NVIC_SHCSR_MEMFAULTENA   0x00010000

在文件 cpu.h502 行定义.

参考自 CPU_IntSrcDis() , 以及 CPU_IntSrcEn().

#define CPU_REG_NVIC_SHCSR_SVCALLPENDED   0x00008000

在文件 cpu.h503 行定义.

#define CPU_REG_NVIC_SHCSR_BUSFAULTPENDED   0x00004000

在文件 cpu.h504 行定义.

#define CPU_REG_NVIC_SHCSR_MEMFAULTPENDED   0x00002000

在文件 cpu.h505 行定义.

#define CPU_REG_NVIC_SHCSR_USGFAULTPENDED   0x00001000

在文件 cpu.h506 行定义.

#define CPU_REG_NVIC_SHCSR_SYSTICKACT   0x00000800

在文件 cpu.h507 行定义.

#define CPU_REG_NVIC_SHCSR_PENDSVACT   0x00000400

在文件 cpu.h508 行定义.

#define CPU_REG_NVIC_SHCSR_MONITORACT   0x00000100

在文件 cpu.h509 行定义.

#define CPU_REG_NVIC_SHCSR_SVCALLACT   0x00000080

在文件 cpu.h510 行定义.

#define CPU_REG_NVIC_SHCSR_USGFAULTACT   0x00000008

在文件 cpu.h511 行定义.

#define CPU_REG_NVIC_SHCSR_BUSFAULTACT   0x00000002

在文件 cpu.h512 行定义.

#define CPU_REG_NVIC_SHCSR_MEMFAULTACT   0x00000001

在文件 cpu.h513 行定义.

#define CPU_REG_NVIC_CFSR_DIVBYZERO   0x02000000

在文件 cpu.h516 行定义.

#define CPU_REG_NVIC_CFSR_UNALIGNED   0x01000000

在文件 cpu.h517 行定义.

#define CPU_REG_NVIC_CFSR_NOCP   0x00080000

在文件 cpu.h518 行定义.

#define CPU_REG_NVIC_CFSR_INVPC   0x00040000

在文件 cpu.h519 行定义.

#define CPU_REG_NVIC_CFSR_INVSTATE   0x00020000

在文件 cpu.h520 行定义.

#define CPU_REG_NVIC_CFSR_UNDEFINSTR   0x00010000

在文件 cpu.h521 行定义.

#define CPU_REG_NVIC_CFSR_BFARVALID   0x00008000

在文件 cpu.h522 行定义.

#define CPU_REG_NVIC_CFSR_STKERR   0x00001000

在文件 cpu.h523 行定义.

#define CPU_REG_NVIC_CFSR_UNSTKERR   0x00000800

在文件 cpu.h524 行定义.

#define CPU_REG_NVIC_CFSR_IMPRECISERR   0x00000400

在文件 cpu.h525 行定义.

#define CPU_REG_NVIC_CFSR_PRECISERR   0x00000200

在文件 cpu.h526 行定义.

#define CPU_REG_NVIC_CFSR_IBUSERR   0x00000100

在文件 cpu.h527 行定义.

#define CPU_REG_NVIC_CFSR_MMARVALID   0x00000080

在文件 cpu.h528 行定义.

#define CPU_REG_NVIC_CFSR_MSTKERR   0x00000010

在文件 cpu.h529 行定义.

#define CPU_REG_NVIC_CFSR_MUNSTKERR   0x00000008

在文件 cpu.h530 行定义.

#define CPU_REG_NVIC_CFSR_DACCVIOL   0x00000002

在文件 cpu.h531 行定义.

#define CPU_REG_NVIC_CFSR_IACCVIOL   0x00000001

在文件 cpu.h532 行定义.

#define CPU_REG_NVIC_HFSR_DEBUGEVT   0x80000000

在文件 cpu.h535 行定义.

#define CPU_REG_NVIC_HFSR_FORCED   0x40000000

在文件 cpu.h536 行定义.

#define CPU_REG_NVIC_HFSR_VECTTBL   0x00000002

在文件 cpu.h537 行定义.

#define CPU_REG_NVIC_DFSR_EXTERNAL   0x00000010

在文件 cpu.h540 行定义.

#define CPU_REG_NVIC_DFSR_VCATCH   0x00000008

在文件 cpu.h541 行定义.

#define CPU_REG_NVIC_DFSR_DWTTRAP   0x00000004

在文件 cpu.h542 行定义.

#define CPU_REG_NVIC_DFSR_BKPT   0x00000002

在文件 cpu.h543 行定义.

#define CPU_REG_NVIC_DFSR_HALTED   0x00000001

在文件 cpu.h544 行定义.

类型定义说明

typedef void CPU_VOID

在文件 cpu.h113 行定义.

typedef char CPU_CHAR

在文件 cpu.h114 行定义.

typedef unsigned char CPU_BOOLEAN

在文件 cpu.h115 行定义.

typedef unsigned char CPU_INT08U

在文件 cpu.h116 行定义.

typedef signed char CPU_INT08S

在文件 cpu.h117 行定义.

typedef unsigned short CPU_INT16U

在文件 cpu.h118 行定义.

typedef signed short CPU_INT16S

在文件 cpu.h119 行定义.

typedef unsigned int CPU_INT32U

在文件 cpu.h120 行定义.

typedef signed int CPU_INT32S

在文件 cpu.h121 行定义.

typedef unsigned long long CPU_INT64U

在文件 cpu.h122 行定义.

typedef signed long long CPU_INT64S

在文件 cpu.h123 行定义.

typedef float CPU_FP32

在文件 cpu.h125 行定义.

typedef double CPU_FP64

在文件 cpu.h126 行定义.

typedef volatile CPU_INT08U CPU_REG08

在文件 cpu.h129 行定义.

typedef volatile CPU_INT16U CPU_REG16

在文件 cpu.h130 行定义.

typedef volatile CPU_INT32U CPU_REG32

在文件 cpu.h131 行定义.

typedef volatile CPU_INT64U CPU_REG64

在文件 cpu.h132 行定义.

typedef void(* CPU_FNCT_VOID)(void)

在文件 cpu.h135 行定义.

typedef void(* CPU_FNCT_PTR)(void *)

在文件 cpu.h136 行定义.

在文件 cpu.h177 行定义.

在文件 cpu.h186 行定义.

在文件 cpu.h194 行定义.

在文件 cpu.h195 行定义.

在文件 cpu.h213 行定义.

typedef CPU_INT32U CPU_SR

在文件 cpu.h280 行定义.

函数说明

void CPU_IntDis ( void  )

参考自 BSP_IntDisAll().

这是这个函数的调用关系图:

void CPU_IntEn ( void  )
void CPU_IntSrcDis ( CPU_INT08U  pos)

在文件 cpu_c_Ports.c249 行定义.

参考 CPU_CRITICAL_ENTER, CPU_CRITICAL_EXIT, CPU_INT_BUSFAULT, CPU_INT_DBGMON, CPU_INT_HFAULT, CPU_INT_MEM, CPU_INT_NMI, CPU_INT_PENDSV, CPU_INT_RESET, CPU_INT_RSVD_07, CPU_INT_RSVD_08, CPU_INT_RSVD_09, CPU_INT_RSVD_10, CPU_INT_RSVD_13, CPU_INT_SRC_POS_MAX, CPU_INT_STK_PTR, CPU_INT_SVCALL, CPU_INT_SYSTICK, CPU_INT_USAGEFAULT, CPU_REG_NVIC_CLREN, CPU_REG_NVIC_SHCSR, CPU_REG_NVIC_SHCSR_BUSFAULTENA, CPU_REG_NVIC_SHCSR_MEMFAULTENA, CPU_REG_NVIC_SHCSR_USGFAULTENA, CPU_REG_NVIC_ST_CTRL, CPU_REG_NVIC_ST_CTRL_ENABLE, CPU_SR_ALLOC , 以及 DEF_BIT.

参考自 BSP_IntDis().

250 {
251  CPU_INT08U group;
252  CPU_INT08U pos_max;
253  CPU_INT08U nbr;
254  CPU_SR_ALLOC();
255 
256 
257  switch (pos) {
258  case CPU_INT_STK_PTR: /* ---------------- INVALID OR RESERVED --------------- */
259  case CPU_INT_RSVD_07:
260  case CPU_INT_RSVD_08:
261  case CPU_INT_RSVD_09:
262  case CPU_INT_RSVD_10:
263  case CPU_INT_RSVD_13:
264  break;
265 
266 
267  /* ----------------- SYSTEM EXCEPTIONS ---------------- */
268  case CPU_INT_RESET: /* Reset (see Note #2). */
269  case CPU_INT_NMI: /* Non-maskable interrupt (see Note #2). */
270  case CPU_INT_HFAULT: /* Hard fault (see Note #2). */
271  case CPU_INT_SVCALL: /* SVCall (see Note #2). */
272  case CPU_INT_DBGMON: /* Debug monitor (see Note #2). */
273  case CPU_INT_PENDSV: /* PendSV (see Note #2). */
274  break;
275 
276  case CPU_INT_MEM: /* Memory management. */
280  break;
281 
282  case CPU_INT_BUSFAULT: /* Bus fault. */
286  break;
287 
288  case CPU_INT_USAGEFAULT: /* Usage fault. */
292  break;
293 
294  case CPU_INT_SYSTICK: /* SysTick. */
298  break;
299 
300 
301  /* ---------------- EXTERNAL INTERRUPT ---------------- */
302  default:
303  pos_max = CPU_INT_SRC_POS_MAX;
304  if (pos < pos_max) { /* See Note #3. */
305  group = (pos - 16) / 32;
306  nbr = (pos - 16) % 32;
307 
309  CPU_REG_NVIC_CLREN(group) = DEF_BIT(nbr);
311  }
312  break;
313  }
314 }

这是这个函数的调用关系图:

void CPU_IntSrcEn ( CPU_INT08U  pos)

在文件 cpu_c_Ports.c338 行定义.

参考 CPU_CRITICAL_ENTER, CPU_CRITICAL_EXIT, CPU_INT_BUSFAULT, CPU_INT_DBGMON, CPU_INT_HFAULT, CPU_INT_MEM, CPU_INT_NMI, CPU_INT_PENDSV, CPU_INT_RESET, CPU_INT_RSVD_07, CPU_INT_RSVD_08, CPU_INT_RSVD_09, CPU_INT_RSVD_10, CPU_INT_RSVD_13, CPU_INT_SRC_POS_MAX, CPU_INT_STK_PTR, CPU_INT_SVCALL, CPU_INT_SYSTICK, CPU_INT_USAGEFAULT, CPU_REG_NVIC_SETEN, CPU_REG_NVIC_SHCSR, CPU_REG_NVIC_SHCSR_BUSFAULTENA, CPU_REG_NVIC_SHCSR_MEMFAULTENA, CPU_REG_NVIC_SHCSR_USGFAULTENA, CPU_REG_NVIC_ST_CTRL, CPU_REG_NVIC_ST_CTRL_ENABLE, CPU_SR_ALLOC , 以及 DEF_BIT.

参考自 BSP_IntEn().

339 {
340  CPU_INT08U group;
341  CPU_INT08U nbr;
342  CPU_INT08U pos_max;
343  CPU_SR_ALLOC();
344 
345 
346  switch (pos) {
347  case CPU_INT_STK_PTR: /* ---------------- INVALID OR RESERVED --------------- */
348  case CPU_INT_RSVD_07:
349  case CPU_INT_RSVD_08:
350  case CPU_INT_RSVD_09:
351  case CPU_INT_RSVD_10:
352  case CPU_INT_RSVD_13:
353  break;
354 
355 
356  /* ----------------- SYSTEM EXCEPTIONS ---------------- */
357  case CPU_INT_RESET: /* Reset (see Note #2). */
358  case CPU_INT_NMI: /* Non-maskable interrupt (see Note #2). */
359  case CPU_INT_HFAULT: /* Hard fault (see Note #2). */
360  case CPU_INT_SVCALL: /* SVCall (see Note #2). */
361  case CPU_INT_DBGMON: /* Debug monitor (see Note #2). */
362  case CPU_INT_PENDSV: /* PendSV (see Note #2). */
363  break;
364 
365  case CPU_INT_MEM: /* Memory management. */
369  break;
370 
371  case CPU_INT_BUSFAULT: /* Bus fault. */
375  break;
376 
377  case CPU_INT_USAGEFAULT: /* Usage fault. */
381  break;
382 
383  case CPU_INT_SYSTICK: /* SysTick. */
387  break;
388 
389 
390  /* ---------------- EXTERNAL INTERRUPT ---------------- */
391  default:
392  pos_max = CPU_INT_SRC_POS_MAX;
393  if (pos < pos_max) { /* See Note #3. */
394  group = (pos - 16) / 32;
395  nbr = (pos - 16) % 32;
396 
398  CPU_REG_NVIC_SETEN(group) = DEF_BIT(nbr);
400  }
401  break;
402  }
403 }

这是这个函数的调用关系图:

CPU_INT16S CPU_IntSrcPrioGet ( CPU_INT08U  pos)

在文件 cpu_c_Ports.c568 行定义.

参考 CPU_CRITICAL_ENTER, CPU_CRITICAL_EXIT, CPU_INT_BUSFAULT, CPU_INT_DBGMON, CPU_INT_HFAULT, CPU_INT_MEM, CPU_INT_NMI, CPU_INT_PENDSV, CPU_INT_RESET, CPU_INT_RSVD_07, CPU_INT_RSVD_08, CPU_INT_RSVD_09, CPU_INT_RSVD_10, CPU_INT_RSVD_13, CPU_INT_SRC_POS_MAX, CPU_INT_STK_PTR, CPU_INT_SVCALL, CPU_INT_SYSTICK, CPU_INT_USAGEFAULT, CPU_REG_NVIC_PRIO, CPU_REG_NVIC_SHPRI1, CPU_REG_NVIC_SHPRI2, CPU_REG_NVIC_SHPRI3, CPU_RevBits(), CPU_SR_ALLOC, DEF_INT_16S_MIN_VAL, DEF_OCTET_MASK , 以及 DEF_OCTET_NBR_BITS.

569 {
570  CPU_INT08U group;
571  CPU_INT08U nbr;
572  CPU_INT08U pos_max;
573  CPU_INT16S prio;
574  CPU_INT32U prio_32;
575  CPU_INT32U temp;
576  CPU_SR_ALLOC();
577 
578 
579  switch (pos) {
580  case CPU_INT_STK_PTR: /* ---------------- INVALID OR RESERVED --------------- */
581  case CPU_INT_RSVD_07:
582  case CPU_INT_RSVD_08:
583  case CPU_INT_RSVD_09:
584  case CPU_INT_RSVD_10:
585  case CPU_INT_RSVD_13:
586  prio = DEF_INT_16S_MIN_VAL;
587  break;
588 
589 
590  /* ----------------- SYSTEM EXCEPTIONS ---------------- */
591  case CPU_INT_RESET: /* Reset (see Note #2). */
592  prio = -3;
593  break;
594 
595  case CPU_INT_NMI: /* Non-maskable interrupt (see Note #2). */
596  prio = -2;
597  break;
598 
599  case CPU_INT_HFAULT: /* Hard fault (see Note #2). */
600  prio = -1;
601  break;
602 
603 
604  case CPU_INT_MEM: /* Memory management. */
606  temp = CPU_REG_NVIC_SHPRI1;
607  prio = (temp >> (0 * DEF_OCTET_NBR_BITS)) & DEF_OCTET_MASK;
609  break;
610 
611 
612  case CPU_INT_BUSFAULT: /* Bus fault. */
614  temp = CPU_REG_NVIC_SHPRI1;
615  prio = (temp >> (1 * DEF_OCTET_NBR_BITS)) & DEF_OCTET_MASK;
617  break;
618 
619 
620  case CPU_INT_USAGEFAULT: /* Usage fault. */
622  temp = CPU_REG_NVIC_SHPRI1;
623  prio = (temp >> (2 * DEF_OCTET_NBR_BITS)) & DEF_OCTET_MASK;
624  break;
625 
626  case CPU_INT_SVCALL: /* SVCall. */
628  temp = CPU_REG_NVIC_SHPRI2;
629  prio = (temp >> (3 * DEF_OCTET_NBR_BITS)) & DEF_OCTET_MASK;
631  break;
632 
633  case CPU_INT_DBGMON: /* Debug monitor. */
635  temp = CPU_REG_NVIC_SHPRI3;
636  prio = (temp >> (0 * DEF_OCTET_NBR_BITS)) & DEF_OCTET_MASK;
638  break;
639 
640  case CPU_INT_PENDSV: /* PendSV. */
642  temp = CPU_REG_NVIC_SHPRI3;
643  prio = (temp >> (2 * DEF_OCTET_NBR_BITS)) & DEF_OCTET_MASK;
645  break;
646 
647  case CPU_INT_SYSTICK: /* SysTick. */
649  temp = CPU_REG_NVIC_SHPRI3;
650  prio = (temp >> (3 * DEF_OCTET_NBR_BITS)) & DEF_OCTET_MASK;
652  break;
653 
654 
655  /* ---------------- EXTERNAL INTERRUPT ---------------- */
656  default:
657  pos_max = CPU_INT_SRC_POS_MAX;
658  if (pos < pos_max) { /* See Note #3. */
659  group = (pos - 16) / 4;
660  nbr = (pos - 16) % 4;
661 
663  temp = CPU_REG_NVIC_PRIO(group);
665 
666  prio = (temp >> (nbr * DEF_OCTET_NBR_BITS)) & DEF_OCTET_MASK;
667  } else {
668  prio = DEF_INT_16S_MIN_VAL;
669  }
670  break;
671  }
672 
673  if (prio >= 0) {
674  prio_32 = CPU_RevBits((CPU_INT32U)prio);
675  prio = (CPU_INT16S)(prio_32 >> (3 * DEF_OCTET_NBR_BITS));
676  }
677 
678  return (prio);
679 }

函数调用图:

void CPU_IntSrcPrioSet ( CPU_INT08U  pos,
CPU_INT08U  prio 
)

在文件 cpu_c_Ports.c433 行定义.

参考 CPU_CRITICAL_ENTER, CPU_CRITICAL_EXIT, CPU_INT_BUSFAULT, CPU_INT_DBGMON, CPU_INT_HFAULT, CPU_INT_MEM, CPU_INT_NMI, CPU_INT_PENDSV, CPU_INT_RESET, CPU_INT_RSVD_07, CPU_INT_RSVD_08, CPU_INT_RSVD_09, CPU_INT_RSVD_10, CPU_INT_RSVD_13, CPU_INT_SRC_POS_MAX, CPU_INT_STK_PTR, CPU_INT_SVCALL, CPU_INT_SYSTICK, CPU_INT_USAGEFAULT, CPU_REG_NVIC_PRIO, CPU_REG_NVIC_SHPRI1, CPU_REG_NVIC_SHPRI2, CPU_REG_NVIC_SHPRI3, CPU_RevBits(), CPU_SR_ALLOC, DEF_OCTET_MASK , 以及 DEF_OCTET_NBR_BITS.

参考自 BSP_IntPrioSet().

435 {
436  CPU_INT08U group;
437  CPU_INT08U nbr;
438  CPU_INT08U pos_max;
439  CPU_INT32U prio_32;
440  CPU_INT32U temp;
441  CPU_SR_ALLOC();
442 
443 
444  prio_32 = CPU_RevBits((CPU_INT08U)prio);
445  prio = (CPU_INT08U)(prio_32 >> (3 * DEF_OCTET_NBR_BITS));
446 
447  switch (pos) {
448  case CPU_INT_STK_PTR: /* ---------------- INVALID OR RESERVED --------------- */
449  case CPU_INT_RSVD_07:
450  case CPU_INT_RSVD_08:
451  case CPU_INT_RSVD_09:
452  case CPU_INT_RSVD_10:
453  case CPU_INT_RSVD_13:
454  break;
455 
456 
457  /* ----------------- SYSTEM EXCEPTIONS ---------------- */
458  case CPU_INT_RESET: /* Reset (see Note #2). */
459  case CPU_INT_NMI: /* Non-maskable interrupt (see Note #2). */
460  case CPU_INT_HFAULT: /* Hard fault (see Note #2). */
461  break;
462 
463  case CPU_INT_MEM: /* Memory management. */
465  temp = CPU_REG_NVIC_SHPRI1;
466  temp &= ~(DEF_OCTET_MASK << (0 * DEF_OCTET_NBR_BITS));
467  temp |= (prio << (0 * DEF_OCTET_NBR_BITS));
468  CPU_REG_NVIC_SHPRI1 = temp;
470  break;
471 
472  case CPU_INT_BUSFAULT: /* Bus fault. */
474  temp = CPU_REG_NVIC_SHPRI1;
475  temp &= ~(DEF_OCTET_MASK << (1 * DEF_OCTET_NBR_BITS));
476  temp |= (prio << (1 * DEF_OCTET_NBR_BITS));
477  CPU_REG_NVIC_SHPRI1 = temp;
479  break;
480 
481  case CPU_INT_USAGEFAULT: /* Usage fault. */
483  temp = CPU_REG_NVIC_SHPRI1;
484  temp &= ~(DEF_OCTET_MASK << (2 * DEF_OCTET_NBR_BITS));
485  temp |= (prio << (2 * DEF_OCTET_NBR_BITS));
486  CPU_REG_NVIC_SHPRI1 = temp;
488  break;
489 
490  case CPU_INT_SVCALL: /* SVCall. */
492  temp = CPU_REG_NVIC_SHPRI2;
493  temp &= ~((CPU_INT32U)DEF_OCTET_MASK << (3 * DEF_OCTET_NBR_BITS));
494  temp |= (prio << (3 * DEF_OCTET_NBR_BITS));
495  CPU_REG_NVIC_SHPRI2 = temp;
497  break;
498 
499  case CPU_INT_DBGMON: /* Debug monitor. */
501  temp = CPU_REG_NVIC_SHPRI3;
502  temp &= ~(DEF_OCTET_MASK << (0 * DEF_OCTET_NBR_BITS));
503  temp |= (prio << (0 * DEF_OCTET_NBR_BITS));
504  CPU_REG_NVIC_SHPRI3 = temp;
506  break;
507 
508  case CPU_INT_PENDSV: /* PendSV. */
510  temp = CPU_REG_NVIC_SHPRI3;
511  temp &= ~(DEF_OCTET_MASK << (2 * DEF_OCTET_NBR_BITS));
512  temp |= (prio << (2 * DEF_OCTET_NBR_BITS));
513  CPU_REG_NVIC_SHPRI3 = temp;
515  break;
516 
517  case CPU_INT_SYSTICK: /* SysTick. */
519  temp = CPU_REG_NVIC_SHPRI3;
520  temp &= ~((CPU_INT32U)DEF_OCTET_MASK << (3 * DEF_OCTET_NBR_BITS));
521  temp |= (prio << (3 * DEF_OCTET_NBR_BITS));
522  CPU_REG_NVIC_SHPRI3 = temp;
524  break;
525 
526 
527  /* ---------------- EXTERNAL INTERRUPT ---------------- */
528  default:
529  pos_max = CPU_INT_SRC_POS_MAX;
530  if (pos < pos_max) { /* See Note #3. */
531  group = (pos - 16) / 4;
532  nbr = (pos - 16) % 4;
533 
535  temp = CPU_REG_NVIC_PRIO(group);
536  temp &= ~(DEF_OCTET_MASK << (nbr * DEF_OCTET_NBR_BITS));
537  temp |= (prio << (nbr * DEF_OCTET_NBR_BITS));
538  CPU_REG_NVIC_PRIO(group) = temp;
540  }
541  break;
542  }
543 }

函数调用图:

这是这个函数的调用关系图:

void CPU_WaitForInt ( void  )
void CPU_WaitForExcept ( void  )
CPU_SR CPU_SR_Save ( void  )
void CPU_SR_Restore ( CPU_SR  cpu_sr)
CPU_DATA CPU_CntLeadZeros ( CPU_DATA  val)
CPU_DATA CPU_RevBits ( CPU_DATA  val)

参考自 CPU_IntSrcPrioGet() , 以及 CPU_IntSrcPrioSet().

这是这个函数的调用关系图:

void CPU_BitBandClr ( CPU_ADDR  addr,
CPU_INT08U  bit_nbr 
)

在文件 cpu_c_Ports.c132 行定义.

参考 CPU_BIT_BAND_PERIPH_BASE, CPU_BIT_BAND_PERIPH_REG_HI, CPU_BIT_BAND_PERIPH_REG_LO, CPU_BIT_BAND_SRAM_BASE, CPU_BIT_BAND_SRAM_REG_HI , 以及 CPU_BIT_BAND_SRAM_REG_LO.

134 {
135  CPU_ADDR bit_word_off;
136  CPU_ADDR bit_word_addr;
137 
138 
139  if ((addr >= CPU_BIT_BAND_SRAM_REG_LO) &&
140  (addr <= CPU_BIT_BAND_SRAM_REG_HI)) {
141  bit_word_off = ((addr - CPU_BIT_BAND_SRAM_REG_LO ) * 32) + (bit_nbr * 4);
142  bit_word_addr = CPU_BIT_BAND_SRAM_BASE + bit_word_off;
143 
144  *(volatile CPU_INT32U *)(bit_word_addr) = 0;
145 
146  } else if ((addr >= CPU_BIT_BAND_PERIPH_REG_LO) &&
147  (addr <= CPU_BIT_BAND_PERIPH_REG_HI)) {
148  bit_word_off = ((addr - CPU_BIT_BAND_PERIPH_REG_LO) * 32) + (bit_nbr * 4);
149  bit_word_addr = CPU_BIT_BAND_PERIPH_BASE + bit_word_off;
150 
151  *(volatile CPU_INT32U *)(bit_word_addr) = 0;
152  }
153 }
void CPU_BitBandSet ( CPU_ADDR  addr,
CPU_INT08U  bit_nbr 
)

在文件 cpu_c_Ports.c175 行定义.

参考 CPU_BIT_BAND_PERIPH_BASE, CPU_BIT_BAND_PERIPH_REG_HI, CPU_BIT_BAND_PERIPH_REG_LO, CPU_BIT_BAND_SRAM_BASE, CPU_BIT_BAND_SRAM_REG_HI , 以及 CPU_BIT_BAND_SRAM_REG_LO.

177 {
178  CPU_ADDR bit_word_off;
179  CPU_ADDR bit_word_addr;
180 
181 
182  if ((addr >= CPU_BIT_BAND_SRAM_REG_LO) &&
183  (addr <= CPU_BIT_BAND_SRAM_REG_HI)) {
184  bit_word_off = ((addr - CPU_BIT_BAND_SRAM_REG_LO ) * 32) + (bit_nbr * 4);
185  bit_word_addr = CPU_BIT_BAND_SRAM_BASE + bit_word_off;
186 
187  *(volatile CPU_INT32U *)(bit_word_addr) = 1;
188 
189  } else if ((addr >= CPU_BIT_BAND_PERIPH_REG_LO) &&
190  (addr <= CPU_BIT_BAND_PERIPH_REG_HI)) {
191  bit_word_off = ((addr - CPU_BIT_BAND_PERIPH_REG_LO) * 32) + (bit_nbr * 4);
192  bit_word_addr = CPU_BIT_BAND_PERIPH_BASE + bit_word_off;
193 
194  *(volatile CPU_INT32U *)(bit_word_addr) = 1;
195  }
196 }