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.

.usect 中指针问题

在类似如下程序中:

ptr .usect "var2",100

.text

.def codestart

codestart:

MOVW DP,#ptr  //ptr 是指针变量其内容是var2首地址,这调程序的作用是将ptr这个指针变量所在的page送给DP

MOVL XAR0,#ptr  //这句的用意是将指针变量的地址送给XAR0

不知道这样解释对不对?

 

  • 麻烦forrest 发个汇编例子,供参考调试此类程序,谢谢!

  • 这样理解没错,最好做个试验试一下。没有板子的话也可以用CCS中的simulator试一下。

    如果要汇编例子的话可以在库文件中找。库文件的源代码在:

    \C2000\cgtools\lib\rtssrc.zip

    MOVW DP,#ptr  //ptr 是指针变量其内容是var2首地址,这调程序的作用是将ptr这个指针变量所在的page送给DP

    MOV @_res_5,#001h

    MOVL XAR0,#ptr  //这句的用意是将指针变量的地址送给XAR0

    MOV *XAR0,#002h

  • Forrest 你好,我在CCS4.2.3里面编了一个汇编的程序,但是怎么也编译不通过。我的这个汇编的例子包含三个文件,一个是主文件.asm文件还有两个CMD配置文件。

    主文件:

    Zeronet  .usect "Zeronetsection",2,1,1

    .def codestart

    codestart: MOVW DP,#Zeronet

    MOVL XAR0,#Zeronet

    header.CMD

    文件就是一个头文件CMD和一个flash.cmd

    个人觉得,其实,也不需要header.CMD,这需要一个flash.cmd就可以了吧?

    我在用CCS4.2.3的时候,在连接目标板成功后,load program,我想知道我如果程序只在RAM中调试,不烧写到flash中。这个load program 能区分这两个不同的下载方式吗?还是像在CCS3.3中那样,烧写程序到flash中和下载到RAM中运行,需要用两个不同的操作方式,而不是用一个操作方式load program 去做呢?谢谢!

    如果您觉得方便的话,也便于我对汇编程序的理解,请将您成熟的汇编的例子发给我,谢谢。您说的那个压缩包可能因为版本的不同,我没有找到。谢谢!

    我的邮箱是773566433@qq.com

  • 是的,一个flash.cmd就可以了。

    CCSV4和CCSV5的load program会自动区分RAM还是FLASH的。建议用CCSV5,V4是过渡版本。

    CCSV4的库文件包可以在\Texas Instruments\ccsv4\tools\compiler\c2000\lib中rtssrc.zip

    没有专门谈汇编的例子,不过你可以看到例程中多少都有汇编,比如上次说的codestart。

    可以看下面这份文档:

    www.ti.com/.../spra806

  • Forrest 很强悍, 哪里能下到可以破解版的CCS5?太贵没钱买

  • 哈,居然在TI的论坛上讨论破解TI的CCS.......

    CCSV5防破解做的非常好,CCS的license的主要意义在于可以随时更新CCS到最新版本弥补一些编译器上的BUG,支持一些新的功能,而且理论上TI不对没有购买服务(license)的客户进行支持。

    你买的是TI的DEMO板吗?选择第三种Free license吧,免费的。

  • 我连DEmo版都没有钱买,不知道弄个freelicense 的使用的功能受不受影响限制?

    我主要做DSP2000系列的,不知道CCS5能否支持?

  • CCSV5支持C2000

    free license有使用限制,如上面的图所示.