ZHCUAU3J January 2018 – March 2024
编译器通过添加 __cregister 关键字来扩展 C/C++ 语言,从而使用高级别语言访问控制寄存器。
在对象上使用 __cregister 关键字时,编译器会将对象的名称与标准控制寄存器列表进行比较(请参阅表 5-5)。如果名称匹配,编译器将生成引用控制寄存器的代码。如果名称不匹配,编译器将发出错误。
以下控制寄存器在 c7x.h
头文件中声明。此外,大量扩展控制寄存器 (ECR) 在 c7x_ecr.h
中声明。
类别 | 寄存器 | 说明 |
---|---|---|
常规控制寄存器 | CPUID | CPU ID 寄存器 |
PMR | 电源管理寄存器 | |
DNUM | DSP 内核数寄存器 | |
TSC | 时间戳计数器寄存器 | |
TSR | 任务状态寄存器 | |
RP | 返回指针寄存器 | |
BPCR | 分支预测器控制寄存器 | |
STSC | 影子时间戳计数器寄存器 | |
计算控制寄存器 | FPCR | 浮点控制寄存器 |
FSR | 标志状态寄存器 | |
GPLY | 伽罗瓦多项式寄存器 | |
GFPGFR | 伽罗瓦域多项式发生器函数寄存器 | |
事件控制寄存器 | DEPR | 调试事件优先级寄存器 |
IESET | 内部异常事件集寄存器 | |
ESTP_SS | 事件服务表指针寄存器,安全监控器 | |
ESTP_S | 事件服务表指针寄存器,监控器 | |
ESTP_GS | 事件服务表指针寄存器,来宾监控器 | |
ECSP_SS | 事件上下文保存指针寄存器,安全监控器 | |
ECSP_S | 事件上下文保存指针寄存器,监控器 | |
ECSP_GS | 事件上下文保存指针寄存器,来宾监控器 | |
TCSP | 任务上下文保存指针 | |
RXMR_SS | 返回执行模式寄存器,安全监控器 | |
RXMR_S | 返回执行模式寄存器,监控器 | |
AHPEE | 启用最高优先级的事件寄存器,当前正在使用 | |
PHPEE | 启用最高优先级的事件寄存器,挂起 | |
IEBER | 内部事件广播启用寄存器 | |
IERR | 内部异常报告寄存器 | |
IEAR | 内部异常地址寄存器 | |
IESR | 内部异常状态寄存器 | |
IEDR | 内部异常数据寄存器 | |
TCR | 测试计数寄存器 | |
TCCR | 测试计数配置寄存器 | |
GMER | 来宾模式启用寄存器 | |
UMER | 用户掩码启用寄存器 | |
SPBR | 栈指针边界寄存器 | |
UFCMR | 用户标志清除掩码寄存器 | |
IPE | 处理器间事件寄存器 | |
查找表和直方图控制寄存器 | LTBR0 至 LTBR3 | 查找表基址寄存器 |
LTCR0 至 LTCR3 | 查找表配置寄存器 | |
LTER | 查找表启用寄存器 | |
调试控制寄存器 | DBGCTXT | 调试上下文(覆盖)寄存器 |
ILCNT | 内环计数器寄存器 | |
OLCNT | 外环计数器初始值寄存器 | |
LCNTFLG | 16 位谓词标志寄存器 | |
SCRB | 记分板位寄存器 |
__cregister 关键字只能在文件作用域内使用。函数边界内的任何声明都不允许使用 __cregister 关键字。其只能用于整数或指针类型的对象。任何浮点类型的对象或任何结构体或联合体对象都不得使用 cregister 关键字。
__cregister 关键字并不