TI论坛
直播中

张国厚

8年用户 1472经验值
私信 关注
[问答]

请问在C/C++环境中能直接使用DSP寄存器吗

请教:
在  C/C++ 环境中,通过
extern __cregister volatile unsigned int AMR;
说明后,
就可以在 C 代码中,引用,比如:
int i;
i=AMR;
问题:
1、__cregister 关键字 ,我是从 C6X.H v7.4.2  抄来的,不知道 在哪个文档中 有正式说明?没有找到。
2、同样的方法,对于 A组B组寄存器 不适用,那么,我通过某种方法,是否能够在 C中 直接用 比如 B6 = 0;的类似代码?
(通过 __asm 是可以插入汇编语言实现的)
                                                                         pony

回帖(3)

张国厚

2019-1-24 11:12:48
抱歉,第一个疑问 答案 找到了,
spru187u-C6000 Optimizing Compiler v7.4 User's Guide.pdf —— 6.5.2 The cregister Keyword
The compiler extends the C/C++ language by adding the cregister keyword to allow high level language
access to control registers.
extern cregister volatile unsigned int AMR;

extern __cregister volatile unsigned int AMR;
都有效果。


第二个问题: 通过什么方法,才能够在 C中 直接用 比如 B6 = 0;的类似代码?


                                                                        pony
举报

余少虹

2019-1-24 11:18:30
引用: wo4456 发表于 2019-1-24 15:15
抱歉,第一个疑问 答案 找到了,
spru187u-C6000 Optimizing Compiler v7.4 User's Guide.pdf —— 6.5.2 The cregister Keyword
The compiler extends the C/C++ language by adding the cregister keyword to allow high level language

cregsiter不支持A,B的,只能用asm插入汇编了。

Table 7-4. Control Registers for C64x+, C6740, and C6600
http://www.ti.com/lit/ug/sprui04b/sprui04b.pdf
举报

张国厚

2019-1-24 11:35:17
引用: vuywsdfwf 发表于 2019-1-24 15:21
cregsiter不支持A,B的,只能用asm插入汇编了。

Table 7-4. Control Registers for C64x+, C6740, and C6600

谢谢答复!
allow high level language access to control registers!
确实是说,控制寄存器。
                                                                        pony
举报

更多回帖

发帖
×
20
完善资料,
赚取积分