完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我有一个函数叫做edwifi_TCPPut((const uint8_t*)“HALLO”,5)-->参见1.jpg如果我使用ICD3调试器停止在这个函数内部,我可以看到它有正确的地址.src指向0x8B6F。jpgFrom 489我调用另一个函数start_dma_to_wifi(src,字节);在dma_to_wifi函数内部,我可以看到地址0x8B6F被写入DMASRC0寄存器。这是正确的吗?或者应该是0xb6f?这个P(PSV?)在我的变量前面意味着什么?谢谢您!
|
|
相关推荐
12个回答
|
|
“P”应该表示程序记忆,即“const”。不确定PSV是否适用于此,我一眼就说不。
|
|
|
|
谢谢。BDW传输不起作用,我想是因为地址不对。有什么想法,代码有什么问题吗?
|
|
|
|
我想问“什么不起作用”,事实上我不是DMA方面的专家:你能试着将“const”字符串复制到RAM中,然后对这个执行DMA吗?
|
|
|
|
DMA工具工作得很好,它也是从其他函数调用的。我确信问题出在RAM/ROM/const工具的某个地方。我有另一个工具可以工作:.(*s!='0') {如果(tx_._pos>= WIFI_BUFFER_SIZE)返回;tx_.[tx_._pos+]=*s+;}那么如果我将数据拷贝到相应的char*上:uint8_t tx_.[WIFI_BUFFER_SIZE],然后调用dma函数,一切都很好。还是RAM和ROM.有什么区别?
|
|
|
|
我还没有用过,但是DMA在物理地址中不工作吗?如果是,PSV地址必须调整到物理版本吗?如果您只使用一个PSV页面,那么在DMA函数中更改这可能是一个简单的测试和添加。
|
|
|
|
谢谢你的回答,我该怎么办?有没有关掉PSV之类的设置?我需要不同的DMAX传输函数吗?或者我的函数可以接受RAM和ROM中的数据吗?
|
|
|
|
哪一张照片?DMA只能在双端口RAM中工作。您需要确保任何DMA操作从该区域起作用。除非你的PIC24不同。
|
|
|
|
哦,对不起,我忘了提到PIC24FJ256GB406,据我所知,现在唯一的选择是将它复制到RAM中,然后使用DMA。
|
|
|
|
是的,在您发布之前我刚刚检查过的PIC24数据表,其中PIC24不允许来自Flash的DMA。还要注意,如果您在任何情况下阻塞,那么用于小长度的DMA不太可能更快!
|
|
|
|
“小长度”有多小?在考虑DMA之前,你会立即用多少个字节来传输块函数?
|
|
|
|
取决于一个DMA将不会比阻塞函数快,因为最慢的分母是底层传输(UART,SPI,……),但是在设置DMA和增加开销处理DMA中断时有开销。设置DMA,然后轮流等待DM是没有意义的。A完成。这将是比较慢的。可以建立一个良好的状态机来启动DMA,然后CPU可以做其他事情,并且当DMA完成时,ISR发出状态改变,CPU可以进行下一个状态操作。
|
|
|
|
谢谢您!
|
|
|
|
只有小组成员才能发言,加入小组>>
5183 浏览 9 评论
2005 浏览 8 评论
1932 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3178 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2229 浏览 5 评论
739浏览 1评论
624浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
510浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
637浏览 0评论
535浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 18:39 , Processed in 1.709534 second(s), Total 98, Slave 82 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号