This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 编译器/TMS320C5517:如何使用针对 IER0的 cregister 定义?

Guru**** 2966090 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/944805/compiler-tms320c5517-how-to-use-the-cregister-definition-for-ier0

器件型号:TMS320C5517

工具/软件:TI C/C++编译器

您好!

我正在尝试编写一些针对 C5517的测试代码、并希望使用针对 IER0寄存器的 cregister 定义。

设置我的 CCS 工程后、它会显示-v5515的处理器设置。 我尝试将其设置为5517、但它不被接受。 然后我尝试了一段时间来确定哪些-v 选项是可以接受的、但在任何文档中都找不到它(我查看了所有内容)。 然后、我在"CCS 编译器设置"对话框中意外地看到一条注释、即如果您键入列表而不是值、则标题栏中会显示一个列表、这一点很不直观。 我发现我可以使用-vCPU:3.3。 IMO 这个整个 CPU/芯片修订输入编译器令人困惑、就像检查一样。

无论如何、我尝试设置正确的-VCORE 版本的真正原因是我正在使用 c55x.h 并尝试使用针对 IER0寄存器的 cregister 定义。

在 c55x.h 中、您有...

#ifdef __TMS320C55x_plus__

extern __cregister volatile unsigned long IER;
extern __cregister volatile unsigned int IER0;
extern __cregister volatile unsigned int IER1;
extern __cregister volatile unsigned long DBIER;
extern __cregister volatile unsigned int DBIER0;
extern __cregister volatile unsigned int DBIER1;
extern __cregister volatile unsigned int IVPD;

extern __cregister volatile unsigned int st0;
extern __cregister volatile unsigned int ST1;
extern __cregister volatile unsigned int ST2;
extern __cregister volatile unsigned int ST3;
extern __cregister volatile unsigned long XSP;
extern __cregister volatile unsigned long XSSP;
extern __cregister volatile unsigned long RETA;

extern __cregister volatile unsigned long IFR;
extern __cregister volatile unsigned int IFR0;
extern __cregister volatile unsigned int IFR1;
extern __cregister volatile unsigned int BER;
extern __cregister volatile unsigned int BIOS;

extern __cregister const volatile unsigned int IIR;
extern __cregister const unsigned int CPUCFG;
extern __cregister const unsigned int CPUREV;

#endif

因此、为了定义这些 cregister 定义、必须定义符号__TMS320C55x_plus__。 我尝试在代码中自行定义它、但编译器对此抱怨

这是我的 C 代码。 我复制/粘贴了 cregister 定义、因此我不必定义__TMS320C55x_plus__。 与我定义它并包含 C55x.h 相同的最终结果

//#include
extern __cregister volatile unsigned int IER0;

int main (空)
{
   IER0 = 0x00000001;
   返回0;
}

****为项目 c5517evm 构建配置调试****

"C:\\ti\\ccs910\\ccs\\utils\\bin\\gmake"-k -j 12 all -O
 
编译文件:"../main.c"
调用:C5500编译器
"c:/ti/ccs910/ccs/tools/compiler/c5500_4.4.1/bin/cl55 "-vCPU:3.3 --memory_model=large -g --include_path="C:/UserData/Projects/ADC36xx/CCSv9_Workspace/c5517evm --include_path="C:/ti/ccs910/ccs/tools/compiler/c5500_4.4.1/include --define=c5517 --display_error_number --diag_warning=225 --ptrdiff_size=16 -k --preproc_with_raus-"-preproc_compilit_main.c"。  
 
>>编译失败
subdir_rules.mk:9:目标'main.obj'的配方失败
"./main.c"、第5行:错误#838:无法识别 cregister 名称'IER0'
"./main.c"、第5行:错误#658-D:此声明不允许使用修饰符"cregister"
2在编译"./main.c"时检测到错误。
gmake:***[main.obj]错误1.
gmake:目标"全部"不会由于错误而重新生成。

****构建完成****



那么、我的问题是、如何使用 cregister 定义? 我厌倦了使用-vcore:3.3、但这不起作用

谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Brad Caldwell "]如何使用 cregister 定义?

    遗憾的是、C55x 器件不支持它们。  仅 C55x+器件支持它们。  如 本论坛主题中所述、从未向一般市场发布过任何 C55x+器件。   

    Brad Caldwell 说:
    我尝试了一段时间来确定哪些-v 选项是可接受的,但在任何文档中都找不到它(我仔细查看了所有内容)。

    此类详细信息的最佳位置是编译器安装位置根目录中的自述文件。

    谢谢、此致、

    乔治