1. const
C55x C编译器支持标准C语言的const关键字。将这个关键字使用到对任意变量或数组的定义上可以确保它们的值不改变。如果定义一个对象为const,那么const段就会为该对象分配存储空间。使用const关键字可以定义大常数表并将它们分配到系统ROM中。
2. ioport
C55x C编译器对标准C语言进行了扩展,增加了ioport关键字来支持I/O寻址模式。
ioport类型限定词可以和标准类型(数组、结构体、共用体和枚举)一起使用。它也可以和const及volatile一起使用。当和数组一起使用时,ioport限制的是数组单元而非数组类型本身。ioport可以单独使用,这种情况下int限定词就是默认的。
ioport类型限定词只能用于全局或静态变量。局部变量不能用ioport限制,除非变量是个指针。
例:ioport关键字的使用。
ioport int k ; /*正确* /
void foo(void)
{
ioport int i ; /*错误* /
ioport int *j ; /*正确* /
}
3. interrupt
C55x C编译器对标准C语言进行了扩展,增加了interrupt关键字,来指定某个函数为中断函数。
4. onchip
Onchip关键字声明一个特殊指针,该指针所指向的数据可用作双MAC指令的操作数。在链接时这些数据必须被链接到DSP片上存储器,否则会导致总线错误。Onchip关键字的使用例子如下:
onchip int x[100]; /* 数组声明 */
onchip int *p; /* 指针声明 */
5. volatile
在任何情况下,优化器会通过分析数据流来避免存储器访问。如果程序依靠存储器访问,则必须使用volatile关键字来指明这些访问。编译器将不会优化任何对volatile变量的引用。