硬件平台:自己设计的TMS320C6722最小系统
软件平台:CCS5.5
仿真器:SEED XDS-510PLUS
项目使用汇编语言编程,想使用dMAX的DETR产生CPU中断,但初始化时发现无法通过 STW指令配置相关控制寄存器(包括DEPR、DEER等),
部分配置程序如下:
.asg "60000008H" , DEPR ;
MVKL .S1 DEPR , A5
MVKH .S1 DEPR , A5
MVKL .S1 0000000FH , A6
MVKH .S1 0000000FH , A6
STW .D1 A6 , *A5
在执行完以上指令后,通过仿真器,看到DEPR(映射地址0x60000008)的值仍为0x00000000,dMAX的其他内存映射控制寄存器也无法写入。
但是,我同样是使用STW指令是可以配置其他模块的memery-mapped 寄存器的,例如PLL的配置。
硬件上试过几块同型号DSP,也是同样的现象,不知道我对dMAX的配置是不是遗漏了什么细节,但手册也反复看过,没看出什么问题,没有办法了,求助。
Tony Tang:
代码可以写的简单点:
MVKL DEPR , A5
MVKH DEPR , A5
STW 0x0000000FH , *A5
在CCS里memory view里这个地址可以改写吗?
Shike Xu:
回复 Tony Tang:
感谢你的回答。
CCS memory view 里往这些地址写无效,写1还是0。
我用了官方的例程,在C环境下可以使用dMAX做3D数据传输,证明硬件没有问题。
通过比较官方例程和我的汇编工程的不同,最终把问题定位到c672xRomPatchV1_00_00.lib这个补丁库上,有一段初始化代码 initPdsp 会在_c_int00中执行。
这段代码对0x61000000~0x61000FFC和其他一些地址进行了配置,手册上没有说,但应该就是配置dMAX的。
我在汇编环境下使用了这个库文件的initPdsp,实现了用dMAX产生CPU中断功能。
但是有些不放心,因为这些都是通过查看例程生成的汇编程序来推测的(没有c672xRomPatchV1_00_00.lib这个库的源代码或说明文件),
担心可能会有其他的配置没有考虑到,
所以想请TI公司能否提供这个库的说明文档或源码之类的,最好能提供给汇编环境使用的库,谢谢。