完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我想做一个简单的写和读到NVM上的MX设备在我的以太网初学者工具包II。我使用MHC以中断模式配置NVM驱动程序,然后使用NVM驱动程序帮助文件创建执行擦除/写/读功能的代码。在测试过程中,我发现数据没有被正确地写入和读取。我找不到任何错误,所以我创建了一个简单的测试(见下文),重现了这个问题。这个简单的测试不包括对句柄的任何错误检查,等等,因为在我的测试中从未使用过该路径。并重复写/读循环254次。这似乎是第一次通过循环,写/读是成功的,之后其他254个循环都不成功。我是在做傻事还是这个司机不工作?我正在使用最新的MPLLABx(3.30)和MHC v1.0.7.16.BTW——我尝试了用于驱动程序的MHC中的其他组合,即动态/静态、中断/非中断、向FS注册。没什么用。下面是插入到App.c中的代码片段:
|
|
相关推荐
3个回答
|
|
在Harmony中编码任何应用程序时,最好让和谐模块的Tasks例程(在本例中是NVM驱动程序)定期执行。任务例程在SysStask函数中执行。通过使用IntNVM、ReNNVMDATA和RealEnvMDATA函数中的while循环,您可能不允许执行该任务例程。您的代码正在阻塞。而是检查状态机中操作的状态。您需要检查的另一点是,块开始地址是否与页边界对齐。您可以在项目的SysInI.c文件中在DrvnnvMyInIT数据结构中看到这一点。如果这不起作用,请在您的响应中附上您的项目。
|
|
|
|
使用DRV_NVM_Write()函数的前提条件是要写入数据的行应该处于擦除状态。第一次调用这个函数时,行处于擦除状态(因为它作为initNVM()的一部分被擦除),这就是为什么它第一次通过循环传递给您。第二次在病房中,调用该函数,行不处于擦除状态。由于写入不实际写入预期数据。请记住,NVM写只能从“1”到“0”转换一点。确保要进行写操作的行处于擦除状态可以解决这个问题。或者,您可以使用DRV_NVM_EraseWrite()函数进行探索,该函数结合了使用新数据编程之前擦除所需行的步骤。还可以参考位于apps.nvmnvm_read_write的示例应用程序。
|
|
|
|
虫子:谢谢,谢谢,谢谢!我知道这很简单。在广泛的文档或示例中,没有看到行在写入预期数据之前必须处于擦除状态的警告。这应该位于使用write函数(IMHO)的每个文档页面的顶部。无论如何,这个简单的测试将节省我稍后在NVM中存储东西时无休止的调试时间。现在,不是把我保存的数据组织成“行”,而是用“页面”来组织。再次感谢。
|
|
|
|
只有小组成员才能发言,加入小组>>
5129 浏览 9 评论
1984 浏览 8 评论
1914 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3149 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2212 浏览 5 评论
698浏览 1评论
586浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
467浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
603浏览 0评论
495浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-3 01:40 , Processed in 1.205302 second(s), Total 83, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号