zoukankan      html  css  js  c++  java
  • 学习DSP(三)安装C2833x/C2823x C/C++ 头文件和外设示例-压缩包

    进入http://www.ti.com.cn/product/cn/tms320f28335 下载C2833x/C2823x C/C++ 头文件和外设示例

    即SPRC530,目前最新版本是V131。安装好后进入C: idcsc28DSP2833xv131。

    或者安装controlSUITE,进F: icontrolSUITEdevice_supportf2833x  进去里面还有v132 v133,进去看了,是DSP2833x_examples_ccsv4的,没有CCS5的。

    先到目录下的doc文件夹下 controlSUITE_DSP2833x_HeaderFiles_Quickstart_Readme.pdf 看看,2833x系列头文件入门。


    v133DSP2833x_headers    也就是28335的头文件 ,里面有cmd文件,gel文件,外设的.h头文件,还有全局变量定义源文件。

                  cmd文件,gel文件具体文件干什么的,现在不知道,先放着,以后在慢慢研究,不急,还是准菜鸟一枚。

                  打开其中一个.h头文件,多是位域,结构体,联合体等定义。


    v133DSP2833x_headerssource  存放着DSP2833x_GlobalVariableDefs.c文件,按意思应该是全局变量定义,先打开看看。

    *********************************************

    #ifdef __cplusplus
    #pragma DATA_SECTION("XintfRegsFile")
    #else
    #pragma DATA_SECTION(XintfRegs,"XintfRegsFile");
    #endif
    volatile struct XINTF_REGS XintfRegs;

    *********************************************

    哦哦,看不懂,先上百度,google查查。

    #ifdef __cplusplus 用于C++代码,当然那个else就是用于C代码了。采用#pragma编译器声明,将XintfRegs变量分配到XintfRegsFile数据区,C或C++采用不同的#pragama声明方式,当对一个C++程序进行编译时,编译器自动定义__cplusplus

    以下转自http://www.61ic.com/Article/CCS/Experience/201307/49745.html >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    volatile的作用: 作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值.


      简单地说就是防止编译器对代码进行优化.比如如下程序:

      XBYTE[2]=0x55;

      XBYTE[2]=0x56;

      XBYTE[2]=0x57;

      XBYTE[2]=0x58;

      如果对外部硬件上述四条语句分别表示不同的操作,会产生四种不同的动作,那么编译器就不能像对待纯粹的程序那样对上述四条语句进行优化只认为 XBYTE[2]=0x58;而忽略前三条语句(即只产生一条机器代码),此时编译器会逐一的进行编译并产生相应的机器代码(四条).

     一般说来,volatile用在如下的几个地方:


      1、中断服务程序中修改的供其它程序检测的变量需要加volatile;

      2、多任务环境下各任务间共享的标志应该加volatile;

      3、存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写都可能由不同意义;

      另外,以上这几种情况经常还要同时考虑数据的完整性(相互关联的几个标志读了一半被打断了重写),在1中可以通过关中断来实

      现,2中可以禁止任务调度,3中则只能依靠硬件的良好设计了。

    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<以上转自http://www.61ic.com/Article/CCS/Experience/201307/49745.html


     f2833xv133DSP2833x_common           按意思应该是个公用文件,先打开看看,

                    include 下的  DSP28x_Project.h

                        #ifndef DSP28x_PROJECT_H
                        #define DSP28x_PROJECT_H
                        #include "DSP2833x_Device.h"     // DSP2833x Headerfile Include File
                        #include "DSP2833x_Examples.h"   // DSP2833x Examples Include File
                        #endif  // end of DSP28x_PROJECT_H definition

                    意思很明显DSP28x_Project.h ,包含DSP2833x_Device.h和DSP2833x_Examples.h文件。

                    DSP2833x_Examples.h在v133DSP2833x_commoninclude下,里面是PLL倍频分频,CPU速度,一些包含和定义。

                   DSP2833x_Device.h在     v133DSP2833x_headersinclude下,里面是是汇编指令定义,助记符定义,文件包含等。

     v133DSP2833x_commonsource   下是一些.C源程序和一些.asm汇编代码。  如DSP2833x_Adc.c是ADC的初始化函数。

  • 相关阅读:
    C#如何通过NCO3.0来连接SAP并调用SAP中的RFC
    .Net连接到SAP【转载】
    将博客搬至CSDN
    Apache Flume 简介
    日志收集以及分析:Splunk
    《淘宝技术这十年》读后感
    python参考手册--第9章
    Hadoop将过时了?
    pythn BeautifulSoup
    Python性能鸡汤
  • 原文地址:https://www.cnblogs.com/linkfeel/p/3470353.html
Copyright © 2011-2022 走看看