完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我的项目使用HARMony 2.04和PIC32MZ2064DAH176I发现32MB的memset需要很多周期。使用Count寄存器,它计算出92893940个周期。还有,我有点不清楚,这些单个周期计数是除以2个计数?这是最好的吗?我尝试了一个使用无符号长环的for循环,它给出了类似的性能。
|
|
相关推荐
10个回答
|
|
每个字节的3个时钟脉冲对我来说是有意义的。不确定代码是写一个比特还是一个8比特或者…
|
|
|
|
但是每字节3个循环是每长12个循环。我试图理解它,因为引导需要几秒钟,所以我不确定它是否是现实中的两倍。memcpy也不太好。一段时间后,我尝试创建一个DMA MimcPy,但缓存刷新占用了大部分的周期节省。
|
|
|
|
拆卸代码怎么样?你能张贴吗?
|
|
|
|
|
|
DDR3在MZ上为400 MHz,16位宽。因此,理论上,如果单向的,没有其他东西可以访问内存,那么应该能够以200MHz(每个周期一个字)写单词。然而,为了实现任何接近它,内存控制器应该努力工作。此外,如果其他东西使用内存(更糟糕的是,它的读数),其性能将接近峰值的10-20%(这就是为什么英特尔处理器有巨大的缓存)。如果它是蹩脚或差调谐,你将不会到达高峰附近任何地方。memset()在内存控制器上比memcpy()容易得多。如果只读取COUNT寄存器,则需要乘以2来获得循环数。这大约是每个写入的25个周期-容量的4%。我得说,要么是使用DDR3(比如DMA),要么内存控制器完全失控了。
|
|
|
|
你确定它是400兆赫吗?每当我试着在400点打DDR时,都没用。(MFMPLL)
|
|
|
|
DOCS说它是400兆赫。它是DDR,所以它在两个时钟边沿上进行转换。因此,时钟应该是200兆赫。根据微芯片在论坛上的说法,你可以稍微超时一点,但重要的是调整控制器并根据你的使用模式优化它(如果可能的话)。
|
|
|
|
我想你是在讨论设置DDRIZIT值吧?我知道这个芯片上的东西是根据图形定制的。不过,我不确定这是DDR对这项协议的限制。
|
|
|
|
对。还有十几个寄存器。它们中的一些可能会被调整。我不知道这是否有帮助。参见Microchip DOC DS600 01321B。这是“第55节”。FRM的DDR SDRAM控制器。尝试使用非DDR内存的MeMSET(),看看它有多快。如果它仍然是DDR(或者只稍微快一点),那么问题可能是Flash获取或缓存设置。如果非DDR快,则这是DDR问题。还可以从DDR到非DDR和从非DDR到DDR测试MEMCYPY()。这将给你的想法,如果DDR是在故障或其他东西。
|
|
|
|
这是例程的主循环,展开为每次迭代写入16字节:
|
|
|
|
只有小组成员才能发言,加入小组>>
5212 浏览 9 评论
2020 浏览 8 评论
1944 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3193 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2246 浏览 5 评论
764浏览 1评论
650浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
572浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
662浏览 0评论
560浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-13 11:04 , Processed in 1.763717 second(s), Total 94, Slave 77 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号