Ken_UBvu0 发表于 2019-5-29 17:22:16

使用keil mdk5 文件系统中间件读写NAND flash DeviceTimeoutError问题

本帖最后由 Ken_UBvu0 于 2019-5-29 17:23 编辑

利用NAND_MemBus.c的读写函数可以擦除,读写flash都是正确的
但利用了文件操作函数

先检测是否挂载成功,不成功就进行格式化,EventRecorder 捕捉错误,第一个应该是fmount的返回的错误,第二个应该fformat返回的错误,fformat一直提示DeviceTimeoutError是什么原因

Driver_NAND0_GetDeviceBusy这个函数也已经定义了



Ken_UBvu0 发表于 2019-5-29 17:33:07

RY为busy信号
用逻辑分析仪也看出,利用文件操作函数过程中,当busy为忙过程中,
有相当多的读写操作,正常的不是要等busy为不忙时才可以进行命令数据的读写?
keil mdk的文件中间件是怎样的工作原理,估计不成功的原因NAND芯片还在忙的时候,
例如擦除芯片时候,就马上进行着其它的读写操作,但又不知道如何下手去修改

Ken_xmg7q 发表于 2019-5-29 17:47:27

利用NAND_MemBus.c的读写函数操作是先擦除指定的区块,写入A5数据,然后再读出

eric2013 发表于 2019-5-30 09:28:19

过段时间有精力了,发布基于H7的新版RL-FlashFS和RL-USB的完整解决方案

Ken_xmg7q 发表于 2019-5-31 11:57:08

已经解决了,不能直接用中间件驱动,要稍作修改

eric2013 发表于 2019-5-31 14:29:21

Ken_xmg7q 发表于 2019-5-31 11:57
已经解决了,不能直接用中间件驱动,要稍作修改

谢谢告知问题原因。

炳程 发表于 2019-8-12 16:31:46

Ken_xmg7q 发表于 2019-5-31 11:57
已经解决了,不能直接用中间件驱动,要稍作修改

你好,能不能详细说明一下需要怎么改呢

eric2013 发表于 2019-8-12 17:20:25

炳程 发表于 2019-8-12 16:31
你好,能不能详细说明一下需要怎么改呢

使用我这个

基于V7的新版RL-USB和RL-FlashFS的NAND完整解决方案,实现更简单,用户仅需初始化FMC
http://www.armbbs.cn/forum.php?mod=viewthread&tid=94277&fromuid=58
(出处: 硬汉嵌入式论坛)

msdelphi 发表于 2020-7-14 17:20:41

Ken_xmg7q 发表于 2019-5-31 11:57
已经解决了,不能直接用中间件驱动,要稍作修改

怎么解决的?不能用CMSIS的驱动?

eric2013 发表于 2020-7-14 17:56:35

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
(出处: 硬汉嵌入式论坛)

msdelphi 发表于 2020-7-14 19:28:42

eric2013 发表于 2020-7-14 17:56
使用我这个

基于V7的新版RL-USB和RL-FlashFS的NAND完整解决方案,实现更简单,用户仅需初始化FMC


试过,为何驱动不会调用Driver_NAND0_GetDeviceBusy呢?不需要等待?

eric2013 发表于 2020-7-14 19:29:47

msdelphi 发表于 2020-7-14 19:28
试过,为何驱动不会调用Driver_NAND0_GetDeviceBusy呢?不需要等待?

自己底层做处理就行,我们的读写函数里面已经自带。

msdelphi 发表于 2020-7-14 20:26:04

读写函数不是MemBus吗?bsp_fmc_nand_flash 里只是用了初始化和format,waitbusy 不就是等待,为何不调用呢?

eric2013 发表于 2020-7-14 21:03:58

msdelphi 发表于 2020-7-14 20:26
读写函数不是MemBus吗?bsp_fmc_nand_flash 里只是用了初始化和format,waitbusy 不就是等待,为何不调用呢 ...

老版的是底层带的,是我们自己提供的。

新版的是CMSIS-Driver不用管,是FlashFS自己处理的。

该加的都加上了即可。如果你手头有我们V7板子的话,可以批量测试下。

msdelphi 发表于 2020-7-14 21:20:20

用你的例子是可以的,放到我工程里就不行了,似乎跟SDRAM冲突? 关掉SDRAM,可以进行format,但是超级慢

msdelphi 发表于 2020-7-14 21:21:35

并且你的例子,每次重启就需要再次初始化

eric2013 发表于 2020-7-14 21:24:09

msdelphi 发表于 2020-7-14 21:20
用你的例子是可以的,放到我工程里就不行了,似乎跟SDRAM冲突? 关掉SDRAM,可以进行format,但是超级慢

那就是你板子有问题啊,好好查查。

eric2013 发表于 2020-7-14 21:25:56

msdelphi 发表于 2020-7-14 21:21
并且你的例子,每次重启就需要再次初始化
不是每次都要初始化,这个是我们案例的一种调用方式,每个操作都是一个完整的: 初始化->读写操作->卸载等流程,方便大家了解这些函数,要不卸载函数都不知道放到哪里了。
就帮你这么多吧,剩下你自己再研究研究什么鬼。

msdelphi 发表于 2020-7-14 22:19:34

:)  多谢版主
页: [1]
查看完整版本: 使用keil mdk5 文件系统中间件读写NAND flash DeviceTimeoutError问题