打印
[PIC®/AVR®/dsPIC®产品]

C30 读取EDS数据出错怎么回事?

[复制链接]
700|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
king5259|  楼主 | 2016-1-11 21:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ov, CD, AN, IDE, AD
说来也真是,MICROCHIP 官方论坛不知道咋的,都没人回复了,来这里问问各位大神
C30 V3.31版本,芯片是DSPIC33EP512MU810 芯片,发现,DMA的定义的变量在调试窗口看到的对的,但是取出来放到别的地方就不对,DMA数据是用__EDS__定义的,我查看反汇编,发现没有对DSRPAG进行操作,请问该怎么解决啊?这C30以前也是买的啊,XC16可以,试了一下是正常的,但是XC16没买啊,怎么办啊?//---------------------------------------------------------下面是C30
460:               
ide=ecan2msgBuf[message->buffer][0] & 0x0001;

00CDB0  78001E     MOV [W14], W0
00CDB2  904030     MOV.B [W0+3], W0
00CDB4  FB8000     ZE W0, W0
00CDB6  DD00C4     SL W0, #4, W1
00CDB8  2DA800     MOV #0xDA80, W0
00CDBA  408000     ADD W1, W0, W0
00CDBC  780010     MOV [W0], W0
00CDBE  600061     AND W0, #0x1, W0
00CDC0  88D470     MOV W0, ide  

//---------------------------------------------------------------------------------------------------------下面是XC16
460:               
ide=ecan2msgBuf[message->buffer][0] & 0x0001;

00D3AE  78001E     MOV [W14], W0
00D3B0  904030     MOV.B [W0+3], W0
00D3B2  FB8000     ZE W0, W0
00D3B4  DD0044     SL W0, #4, W0
00D3B6  B90061     MUL.SU W0, #1, W0
00D3B8  2DA802     MOV #0xDA80, W2
00D3BA  200013     MOV #0x1, W3
00D3BC  D00200     SL W0, W4
00D3BE  D00282     SL W2, W5
00D3C0  420005     ADD W4, W5, W0
00D3C2  A82042     BSET SR, #1
00D3C4  488083     ADDC W1, W3, W1
00D3C6  A90042     BCLR SR, #0
00D3C8  AE2042     BTSS SR, #1
00D3CA  A80042     BSET SR, #0
00D3CC  D38000     RRC W0, W0
00D3CE  800193     MOV DSRPAG, W3
00D3D0  780101     MOV W1, W2
00D3D2  880192     MOV W2, DSRPAG
00D3D4  000000     NOP
00D3D6  780000     MOV W0, W0
00D3D8  780010     MOV [W0], W0
00D3DA  880193     MOV W3, DSRPAG
00D3DC  000000     NOP
00D3DE  600061     AND W0, #0x1, W0
00D3E0  88F460     MOV W0, ide



C30 明显不对,因为DSRPAG 那段是对大于32k ram范围的操作,dma为大于32k那部分范围,不知道是不是C30编译那里设置的不对导致的?我想一个编译器,居然有这个芯片,不应该连最基本的存取数据都出错,肯定是哪里没设置好,谁能告诉我怎么解决?
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

9

帖子

0

粉丝