DSP C6000 keywords 关键字总结
来源:互联网 发布:iphone下载不了淘宝 编辑:程序博客网 时间:2024/05/17 03:15
extern:
extern可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。另外,extern也可用来进行链接指定。
const: 可以用const定义一些变量或数组,以确保它的值不被改变。
例:int *const p = &x; 定义一个常量指针p给变量int。
const int *q = &x; 定义一个变量指针q给常量int。
cregister:定义用来直接访问CPU控制寄存器的变量。
你可以先定义一个头文件,专门定义这个变量(实际就是相应的寄存器),
然后在相应的c源代码中直接引用这些变量了。
定义这些变量的方式是:
extern cregister volatile unsigned int register;
其中register就是AMR,CSR,IFR等寄存器。
例如:
extern cregister volatile unsigned int AMR;
extern cregister volatile unsigned int CSR;
extern cregister volatile unsigned int IFR;
extern cregister volatile unsigned int ISR;
extern cregister volatile unsigned int ICR;
extern cregister volatile unsigned int IER;
extern cregister volatile unsigned int FADCR;
extern cregister volatile unsigned int FAUCR;
extern cregister volatile unsigned int FMCR;
main()
{
printf(”AMR = %x/n”, AMR);
}
interrupt:文档原文如下
When you use the interrupt keywordwith the definition of the function,
the compiler generates register saves basedon the rules for interrupt
functions and the special return sequence for interrupts.
翻译:当你使用interrupt关键字定义函数时,编译器基于中断函数的规则生成寄存器存档,
而且特殊的会返回中断序列(不一定准确)
interrupt void int_handler()
{
unsigned int flags;
...
}
Near and Far :
全局和静态变量可以声明为near或far,near和far为类型修饰符。
声明为near的变量采用了寄存器相对寻址,基址寄存器为数据指针DP(32Bits),偏移
地址为15位常量,所以,near型全局和静态变量不能超过32Bytes;
声明为far的变量采用寄存器间接寻址,可以对任何空间进行寻址,无大小限制;
Near型变量在访问时比far型变量少执行两条语句。
restrict:
restrict关键字用来修饰指针、引用和数组变量,表示在变量的有效范围内,指针所指的对象
只通过此指针来引用。
volatile:
易变(C:与const一样,volatile是一个类型修饰符(type specifier)。它是被设计用来修饰被不同线程访问和修改的变量。)
推荐一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用 保存在寄存器里的备份。
- DSP C6000 keywords 关键字总结
- DSP C6000 keywords 关键字总结
- DSP C6000 keywords 关键字总结
- C6000 DSP 工作总结
- TI DSP C6000 中断
- 面试题总结 - C 语言 - 关键字(keywords)
- 解析dsp c6000 MVK 指令
- TI DSP C6000 控制寄存器
- DSP优化——C6000
- Keywords (关键字)
- 在C6000系列DSP中使用EMCV
- C6000 DSP系统中断过程解析
- C6000系列DSP的GPIO模块
- C6000系列DSP的中断系统
- C6000系列DSP的EMIFA接口
- 在C6000系列DSP中使用EMCV
- C6000系列DSP的EMIFA接口
- TI C6000 系列 DSP 之COFF文件格式
- andriod 源码树
- Android Makefile中如何识别TARGET_PRODUCT
- 声明和定义的区别
- Android project 的常用编译方法
- 温故而知新,学习MFC框架如何创建的过程
- DSP C6000 keywords 关键字总结
- C# WORD 生成目录
- 互联网产品设计进阶(17)设计良好的UGC激励机制
- IIS的access数据库ASP“不能更新。数据库或对象为只读”解决办法!
- ubuntu 10.10 server 64bit 在vmware workstation 6上安装
- qq安全使用指南.txt
- CAN总线在公交车上的相关应用
- 类的几种关系(UML)
- 车载油量监测的现状