使用keil mdk5 文件系统中间件读写NAND flash DeviceTimeoutError问题
本帖最后由 Ken_UBvu0 于 2019-5-29 17:23 编辑利用NAND_MemBus.c的读写函数可以擦除,读写flash都是正确的
但利用了文件操作函数
先检测是否挂载成功,不成功就进行格式化,EventRecorder 捕捉错误,第一个应该是fmount的返回的错误,第二个应该fformat返回的错误,fformat一直提示DeviceTimeoutError是什么原因
Driver_NAND0_GetDeviceBusy这个函数也已经定义了
RY为busy信号
用逻辑分析仪也看出,利用文件操作函数过程中,当busy为忙过程中,
有相当多的读写操作,正常的不是要等busy为不忙时才可以进行命令数据的读写?
keil mdk的文件中间件是怎样的工作原理,估计不成功的原因NAND芯片还在忙的时候,
例如擦除芯片时候,就马上进行着其它的读写操作,但又不知道如何下手去修改
利用NAND_MemBus.c的读写函数操作是先擦除指定的区块,写入A5数据,然后再读出 过段时间有精力了,发布基于H7的新版RL-FlashFS和RL-USB的完整解决方案
已经解决了,不能直接用中间件驱动,要稍作修改 Ken_xmg7q 发表于 2019-5-31 11:57
已经解决了,不能直接用中间件驱动,要稍作修改
谢谢告知问题原因。 Ken_xmg7q 发表于 2019-5-31 11:57
已经解决了,不能直接用中间件驱动,要稍作修改
你好,能不能详细说明一下需要怎么改呢 炳程 发表于 2019-8-12 16:31
你好,能不能详细说明一下需要怎么改呢
使用我这个
基于V7的新版RL-USB和RL-FlashFS的NAND完整解决方案,实现更简单,用户仅需初始化FMC
http://www.armbbs.cn/forum.php?mod=viewthread&tid=94277&fromuid=58
(出处: 硬汉嵌入式论坛)
Ken_xmg7q 发表于 2019-5-31 11:57
已经解决了,不能直接用中间件驱动,要稍作修改
怎么解决的?不能用CMSIS的驱动? msdelphi 发表于 2020-7-14 17:20
怎么解决的?不能用CMSIS的驱动?
使用我这个
基于V7的新版RL-USB和RL-FlashFS的NAND完整解决方案,实现更简单,用户仅需初始化FMC
http://www.armbbs.cn/forum.php?mod=viewthread&tid=94277&fromuid=58
(出处: 硬汉嵌入式论坛) eric2013 发表于 2020-7-14 17:56
使用我这个
基于V7的新版RL-USB和RL-FlashFS的NAND完整解决方案,实现更简单,用户仅需初始化FMC
试过,为何驱动不会调用Driver_NAND0_GetDeviceBusy呢?不需要等待? msdelphi 发表于 2020-7-14 19:28
试过,为何驱动不会调用Driver_NAND0_GetDeviceBusy呢?不需要等待?
自己底层做处理就行,我们的读写函数里面已经自带。 读写函数不是MemBus吗?bsp_fmc_nand_flash 里只是用了初始化和format,waitbusy 不就是等待,为何不调用呢? msdelphi 发表于 2020-7-14 20:26
读写函数不是MemBus吗?bsp_fmc_nand_flash 里只是用了初始化和format,waitbusy 不就是等待,为何不调用呢 ...
老版的是底层带的,是我们自己提供的。
新版的是CMSIS-Driver不用管,是FlashFS自己处理的。
该加的都加上了即可。如果你手头有我们V7板子的话,可以批量测试下。 用你的例子是可以的,放到我工程里就不行了,似乎跟SDRAM冲突? 关掉SDRAM,可以进行format,但是超级慢 并且你的例子,每次重启就需要再次初始化 msdelphi 发表于 2020-7-14 21:20
用你的例子是可以的,放到我工程里就不行了,似乎跟SDRAM冲突? 关掉SDRAM,可以进行format,但是超级慢
那就是你板子有问题啊,好好查查。 msdelphi 发表于 2020-7-14 21:21
并且你的例子,每次重启就需要再次初始化
不是每次都要初始化,这个是我们案例的一种调用方式,每个操作都是一个完整的: 初始化->读写操作->卸载等流程,方便大家了解这些函数,要不卸载函数都不知道放到哪里了。
就帮你这么多吧,剩下你自己再研究研究什么鬼。
:) 多谢版主
页:
[1]