DSP C6000 keywords 关键字总结

原创 2012年03月28日 20:51:05

externextern可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。另外,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:interrupt关键字用来定义一个中断服务函数,中断服务函数必须保存中断控制寄存器和返回序列。当C/C++语言程序被中断时,中断服务程序将保存所有用到的寄存器。

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的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用 保存在寄存器里的备份。

原文来自:http://blog.csdn.net/x111y1j1/article/details/6283811

DSP C6000 keywords 关键字总结

extern:extern可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。另外,extern也可用来进行链接指定。 const: 可以...
  • x111y1j1
  • x111y1j1
  • 2011年03月28日 15:56
  • 1447

DSP TMS320C6000基础学习(1)——介绍

主要内容 1. Why process signals digitally? (1)模拟电路由模拟组件构成:电阻、电容及电感等,这些组件随着电压、温度或机械结构的改变会动态影响到模拟电路的效果;...
  • xiahouzuoxin
  • xiahouzuoxin
  • 2013年07月25日 12:58
  • 7427

DSP优化——C6000

第一章 C6000系列DSP的体系结构简介 TI的C6000系列DSP内部采用的哈佛结构的体系结构,其数据段和代码段是分开存放的并且独立编址,减轻了程序在运行时的访问存储数据的瓶颈。其中C62和C6...
  • xinanzhung
  • xinanzhung
  • 2014年03月27日 15:42
  • 1860

C6000 DSP技术深度探索(3)-中断向量表

DSP 作为一款处理器,它也支持中断处理,对于中断机制的引入,这里就不多说了,下面仍然以C6000系列DSP为例,探讨一下中断向量表,在前一篇文章中, 提到了汇编文件中存在一种特殊的文件,该文件通常命...
  • hanfei410
  • hanfei410
  • 2015年12月02日 21:11
  • 1190

DSP C6000导入指定图像数据(一)

本文章分为两小篇,该篇主要分享如何利用Matlab生成我们所需要的YUV422格式数据 下一篇为利用数据导入DSP并进行查看。 下面为Matlab程序: /*---------------------...
  • liu1guo2qiang3
  • liu1guo2qiang3
  • 2015年01月30日 20:17
  • 1430

C6000 DSP技术深度探索(1)---关于启动方式

C6000 DSP技术深度探索(1)---关于启动方式 所谓的启动,英文名叫“Boot”,任何一个系统都离不开它,无论是CPU、DSP、ARM还是FPGA,都不可跳过这个流程,其本质就是向存储器加载程...
  • hanfei410
  • hanfei410
  • 2015年11月28日 23:31
  • 680

TI C6000 数据存储处理与性能优化

存储器之于CPU好比仓库之于车间。车间加工过程中的原材料、半成品、成品等均需入出仓库,生产效率再快,如果仓库周转不善,也必然造成生产阻塞。如同仓库需要合理地规划管理一般,数据存储也需要恰当的处理技巧来...
  • longxuekun1992
  • longxuekun1992
  • 2017年01月01日 11:38
  • 640

写给TI 6000系列DSP初学者(原创)

前言         最近在hellodsp(http://www.hellodsp.com)申请了个版主,本来是要申请TMS320C6000版块的,不过这个版块已经有两位优秀的版主,我是做图像处理...
  • b5w2p0
  • b5w2p0
  • 2013年09月04日 20:01
  • 3306

解析dsp c6000 MVK 指令

MVK/MVKL - Move a Signed Constant into a Register and Sign-Extend  (C64x)SyntaxMVK (.unit) cst, dst....
  • guanchanghui
  • guanchanghui
  • 2006年09月05日 09:43
  • 3672

DSP C6000汇编,数据字节非对齐问题的处理

读取1个Byte用LDB,读取2个Byte用LDH,
  • jayfengchaojay
  • jayfengchaojay
  • 2014年05月06日 10:18
  • 1148
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:DSP C6000 keywords 关键字总结
举报原因:
原因补充:

(最多只允许输入30个字)