完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我应用的是dsp f28035.我现在定义了变量CputoClaAAA、CputoClaBBB和VoltFilt
#pragma DATA_SECtiON(CputoClaAAA,"CpuToCla1MsgRAM"); #pragma DATA_SECTION(CputoClaBBB,"CpuToCla1MsgRAM"); Uint16 CputoClaAAA,CputoClaBBB; #pragma DATA_SECTION(VoltFilt, "Cla1ToCpuMsgRAM"); Uint16 VoltFilt; 在main中初始化 CputoClaBBB=1258; CputoClaAAA=2536; MMOVZ16 MR0,@_CputoClaAAA MMOV16 @_CputoClaBBB,MR0 MNOP ;3 Wait till I8 to read result MNOP ;4 Wait till I8 to read result MNOP ;5 Wait till I8 to read result MNOP ;6 Wait till I8 to read result MNOP 问题:运行后CputoClaBBB=1258为何还是不能更新为CputoClaAAA的值2536呢,如何让_CputoClaBBB跟随_CputoClaAAA变化呢? 补充:类似的情况 问题:_VoltFilt的值能够跟随A4改变,而CputoClaBBB不能,就是因为_A4 和CputoClaBBB是同一区间,_A4 和_VoltFilt不在同一区间的缘故吗 在这定义 #pragma DATA_SECTION(A, "CpuToCla1MsgRAM"); #pragma DATA_SECTION(CputoClaBBB,"CpuToCla1MsgRAM"); 而#pragma DATA_SECTION(VoltFilt, "Cla1ToCpuMsgRAM"); #if LOWPASS float32 A [FILTER_LEN] = [625, 100, 200, 300, 2000]; #elif HIGHPASS float32 A [FILTER_LEN] = [625, 100, 200, 300, 2000];//T[0.0625L, 0.25L, 0.375L, 0.25L, 0.0625L] #endif MMOV32 MR0,@_A4 MF32TOUI16 MR1,MR0 ; MMOVZ16 MR0,@_CputoClaAAA MMOV16 @_CputoClaBBB,MR1 MMOV16 @_VoltFilt, MR1 请求帮助! |
|
相关推荐
11 个讨论
|
|
szoldman 发表于 2018-10-15 18:19 我无法看到MR0的值,也不知道怎么看,你能否给指导下。但肯定是执行了这一步:MMOVZ16 MR0,@_CputoClaAAA,因为我可以将MR0中的值再接着能够赋值给_VoltFilt,但是不能赋值给MMOV16 @_CputoClaBBB,MR0。 表面的现象是因为_CputoClaBBB和_CputoClaAAA是都在CpuToCla1MsgRAM空间内: #pragma DATA_SECTION(CputoClaAAA,"CpuToCla1MsgRAM"); #pragma DATA_SECTION(CputoClaBBB,"CpuToCla1MsgRAM"); Uint16 CputoClaAAA,CputoClaBBB; 而_VoltFilt在Cla1ToCpuMsgRAM空间内: #pragma DATA_SECTION(VoltFilt, "Cla1ToCpuMsgRAM"); Uint16 VoltFilt; |
|
|
|
|
|
|
|
szoldman 发表于 2018-10-15 18:31 首先谢谢您来给我解答这个问题,困扰我很久了,一直找不到答案。 那是不是意味着我以上的程序运行结果确实是正常的。 A4 和CputoClaBBB在CLA中只能作为源操作数,而_A4 和CputoClaBBB作为源操作数不能够在CLA内相互更新,cla之外的cpu空间可以,我这样理解可以吧,我仿真结果看,实际情况也是这样的。就是找不到支持的理论,所以在这想得到权威的确定。 |
|
|
|
|
|
|
|
aixi162852 发表于 2018-10-15 18:43 可以将MR0 add watch expression来观察MR0的值。 |
|
|
|
|
|
|
|
aixi162852 发表于 2018-10-15 18:54 有问题共同探讨吧,我的理解是:A4 和CputoClaBBB是存放在cpu-to-cla ram空间的,是由CPU赋值,然后传递给CLA。而_VoltFilt是存放在cla-to-cpu ram空间的,是由cla赋值传递给CPU的。也就是说cpu-to-cla ram空间的变量只能被CPU修改,不能被CLA修改,反之,cla-to-cpu ram空间的变量只能被CLA修改,不能被CPU修改。 |
|
|
|
|
|
|
|
szoldman 发表于 2018-10-15 19:32 那就听你的了。毕竟您是ti工程师,非常感激,这个问题我在线询问好长时间了,谢谢您的帮助。 A4 和CputoClaBBB存放在cpu-to-cla ram空间,在cpu直接赋值就行了,而转到CLA中再相互赋值显得有点多此一举,我为何在cla在调试中相互赋值,也是偶尔调试才发现的这个问题。所以一直比较困惑,找不到答案。和您之间的交流,让我确信,以后不这么干了,直接在cpu内赋值就行了。谢谢 |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
586 浏览 0 评论
1644 浏览 0 评论
2082 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1534 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1375 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1787浏览 29评论
2816浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1746浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1657浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1676浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-11 08:47 , Processed in 2.284648 second(s), Total 71, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1968