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.

CCS V5.4 simulator 关于 Chip register 的 问题

文档 《spru871k-C64x+ Megamodule Reference Guide.pdf》 中 描述:

The CFG bus is always 32 bits wide,

而 CFG bus 链接 Chip registers

1、所以,我的理解是 这些寄存器 应该 是不能够用 双字指令操作的吧,比如 STDW ?

2、现象: 但是在 simulator 的时候,指令序列:

 MVK.S2             0x18,B6

MVKH.S2 0x2940000,B6

STDW.D2T2 B5:B4,*B6[0]

却是可以在 memory区看到双字都写进去了。(Timer 0 Period Register ,试图 把 64位计数器的周期寄存器,作为一个双字操作)

疑问:

A)   上述 1,2 之间有矛盾,是1 理解错误,还是 2 ,软件 simulator 不对这个限制?

      或者是1理解也对,2 也对,而是 Timer 0 Registers 不属于 Chip registers?

B)   另外一个关于 simulator 的 问题,如何设置 系统晶振频率?

  • 1. 你操作的B寄存器不是chip registers。为什么要用汇编来读写外设寄存器,有什么特殊要求么?

    2. simulator有pin connect功能。
    http://processors.wiki.ti.com/index.php/Pin_Connect 

  • Shine Zhang 说:

    1. 你操作的B寄存器不是chip registers。为什么要用汇编来读写外设�存器,有什么特殊要求么?

    2. simulator有pin connect功能。
    http://processors.wiki.ti.com/index.php/Pin_Connect 

    谢谢!

    解释一下:

    指令序列:

     MVK.S2             0x18,B6

    MVKH.S2 0x2940000,B6

    STDW.D2T2 B5:B4,*B6[0]

    B0是指针,指向 0x02940018,然后用双字指令 把B5:B4的内容,写入 0x02940018(Timer 0 Period Register )

     就是想试图 把 64位计数器的计数结果,当做一个双字操作,这样就可以一次性读出了,免得不同步。

    (仅仅是 拿 0x02940018周期寄存器 作为代码示例,0x02940010处的 Timer 0 Counter Register 也应该是一样的道理吧)