硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2526|回复: 12
收起左侧

[STM32H7] 请教下,吧 H7的HAL库升级到 HAL V1.5.0.0 这个版本后,貌似读写NANDflah 速度下降了不少?

[复制链接]

615

主题

3070

回帖

4935

积分

至尊会员

积分
4935
发表于 2019-5-9 16:15:50 | 显示全部楼层 |阅读模式
请教下,吧 H7的HAL库升级到 HAL  V1.5.0.0 这个版本后,貌似读写NANDflah 速度下降了不少?

具体如下:
之前 HAL v1.3.0.0
nand flsh 参数配置
  //资料介绍 10ns
        // CLE低和RE低之间的延迟,HCLK周期数
        NAND_Handler.Init.TCLRSetupTime=2;      //设置TCLR(tCLR=CLE到RE的延时)=(TCLR+TSET+2)*THCLK,THCLK=1/200M=5ns  10
       
        // ALE低和RE低之间的延迟,HCLK周期数
        NAND_Handler.Init.TARSetupTime=2;       //设置TAR(tAR=ALE到RE的延时)=(TAR+TSET+1)*THCLK,THCLK=1/200M=5n。   10  
       
        ComSpaceTiming.SetupTime     = 2;   
        ComSpaceTiming.WaitSetupTime = 4;                    //等待时间 对于 H743系列单片机(主频400MHz),最低要求等待参数为4
        ComSpaceTiming.HoldSetupTime = 2;           
        ComSpaceTiming.HiZSetupTime  = 2;     

        AttSpaceTiming.SetupTime     = 2;  
        AttSpaceTiming.WaitSetupTime = 4;                    //等待时间   H743系列单片机(主频400MHz),最低要求等待参数为4
        AttSpaceTiming.HoldSetupTime = 2;  
        AttSpaceTiming.HiZSetupTime  = 2;
       
Data Len: 16777216Byte, Write Time: 2135ms, Write Speed: 7858KB/s
Data Len: 16777216Byte, Write Time: 3342ms, Read Speed: 5020KB/s
NAND Data Read Write Size Data = 16384 KByte Test  ... ...OK





HAL v1.5.0.0
  //资料介绍 10ns
        // CLE低和RE低之间的延迟,HCLK周期数
        NAND_Handler.Init.TCLRSetupTime=8;      //设置TCLR(tCLR=CLE到RE的延时)=(TCLR+TSET+2)*THCLK,THCLK=1/200M=5ns  10
       
        // ALE低和RE低之间的延迟,HCLK周期数
        NAND_Handler.Init.TARSetupTime=8;       //设置TAR(tAR=ALE到RE的延时)=(TAR+TSET+1)*THCLK,THCLK=1/200M=5n。   10  
       
        ComSpaceTiming.SetupTime     = 5;   
        ComSpaceTiming.WaitSetupTime = 5;  
        ComSpaceTiming.HoldSetupTime = 5;   
        ComSpaceTiming.HiZSetupTime  = 5;  

        AttSpaceTiming.SetupTime     = 5;  
        AttSpaceTiming.WaitSetupTime = 5;   
        AttSpaceTiming.HoldSetupTime = 5;  
        AttSpaceTiming.HiZSetupTime  = 5;  


这个配置读写速度貌似 差不多是 2-3MB/S


如果 这个 HAL V1.5.0.0 的参数还是按照 V1.3.0.0 的话,读 貌似会有问题 ??

写基本正常

有谁遇到过没有啊 ??

就只是更改以上配置,其他的 读写 程序都没有任何的 修改






回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107567
QQ
发表于 2019-5-9 17:27:41 | 显示全部楼层
1.5.0??

你不是看错了。
回复

使用道具 举报

2

主题

28

回帖

34

积分

新手上路

积分
34
发表于 2019-5-9 18:44:07 | 显示全部楼层
eric2013 发表于 2019-5-9 17:27
1.5.0??

你不是看错了。

#include "stm32h7xx_hal.h"

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @defgroup HAL  HAL
  * @brief HAL module driver.
  * @{
  */

/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/**
* @brief STM32H7xx HAL Driver version number V1.5.0
   */
#define __STM32H7xx_HAL_VERSION_MAIN   (0x01UL) /*!< [31:24] main version */
#define __STM32H7xx_HAL_VERSION_SUB1   (0x05UL) /*!< [23:16] sub1 version */
#define __STM32H7xx_HAL_VERSION_SUB2   (0x00UL) /*!< [15:8]  sub2 version */
#define __STM32H7xx_HAL_VERSION_RC     (0x00UL) /*!< [7:0]  release candidate */
#define __STM32H7xx_HAL_VERSION         ((__STM32H7xx_HAL_VERSION_MAIN << 24)\
                                        |(__STM32H7xx_HAL_VERSION_SUB1 << 16)\
                                        |(__STM32H7xx_HAL_VERSION_SUB2 << 8 )\
                                        |(__STM32H7xx_HAL_VERSION_RC))



V1.4.0库里的代码里显示的, 但下载的包上面是1。4。0
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107567
QQ
发表于 2019-5-9 18:46:16 | 显示全部楼层
兵哥哥 发表于 2019-5-9 18:44
#include "stm32h7xx_hal.h"

/** @addtogroup STM32H7xx_HAL_Driver

ST太不认真了。。
这错误有点颓

非常感谢告知
回复

使用道具 举报

18

主题

321

回帖

375

积分

高级会员

积分
375
发表于 2019-5-9 18:56:12 | 显示全部楼层
1.4.0才更新了几天就1.5了吗?吓我一跳
回复

使用道具 举报

615

主题

3070

回帖

4935

积分

至尊会员

积分
4935
 楼主| 发表于 2019-5-9 20:41:14 | 显示全部楼层
eric2013 发表于 2019-5-9 18:46
ST太不认真了。。
这错误有点颓

这个必须得反馈给他们,

回复

使用道具 举报

6

主题

33

回帖

51

积分

初级会员

积分
51
发表于 2019-5-13 15:12:33 | 显示全部楼层
楼主你用V1.3.0.0实际测试了读NAND速度能到多少啊?
回复

使用道具 举报

615

主题

3070

回帖

4935

积分

至尊会员

积分
4935
 楼主| 发表于 2019-5-13 15:47:27 | 显示全部楼层
大鹏 发表于 2019-5-13 15:12
楼主你用V1.3.0.0实际测试了读NAND速度能到多少啊?

我上面有说明的啊,

使用 v1.3.0 版本的,貌似写接近 8MB/S
                                    度接近 5MB/S
Data Len: 16777216Byte, Write Time: 2135ms, Write Speed: 7858KB/s
Data Len: 16777216Byte, Write Time: 3342ms, Read Speed: 5020KB/s
NAND Data Read Write Size Data = 16384 KByte Test  ... ...OK

你有没有更快的方法 ??
回复

使用道具 举报

6

主题

33

回帖

51

积分

初级会员

积分
51
发表于 2019-5-13 20:08:29 | 显示全部楼层
我也正在找寻快速的方法,我的才不到3MB
回复

使用道具 举报

6

主题

33

回帖

51

积分

初级会员

积分
51
发表于 2019-5-13 20:09:12 | 显示全部楼层
hpdell 发表于 2019-5-13 15:47
我上面有说明的啊,

使用 v1.3.0 版本的,貌似写接近 8MB/S

楼主方便看一下你的代码吗?你是否也是需要开启MPU配置,NAND才能正常工作啊?
回复

使用道具 举报

615

主题

3070

回帖

4935

积分

至尊会员

积分
4935
 楼主| 发表于 2019-5-14 09:18:22 | 显示全部楼层
大鹏 发表于 2019-5-13 20:09
楼主方便看一下你的代码吗?你是否也是需要开启MPU配置,NAND才能正常工作啊?

需要配置 mpu ,

貌似主要就是 mpu 的配置,其他的参考代码可以参考原子的就行

        /* 配置 NAND Flash 的属性为Write through, read allocate,no write allocate */
        MPU_InitStruct.Enable           = MPU_REGION_ENABLE;         //使能该保护区域
        MPU_InitStruct.BaseAddress      = 0x80000000;                //设置基址
        MPU_InitStruct.Size             = ARM_MPU_REGION_SIZE_2GB;   //设置保护区域大小
        MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;    //设置访问权限
        MPU_InitStruct.IsBufferable     = MPU_ACCESS_NOT_BUFFERABLE; //允许缓冲
        MPU_InitStruct.IsCacheable      = MPU_ACCESS_NOT_CACHEABLE;  //禁止cache, 不能用MPU_ACCESS_CACHEABLE;会出现2次CS、WE信号
        MPU_InitStruct.IsShareable      = MPU_ACCESS_NOT_SHAREABLE;  //禁止共用
        MPU_InitStruct.Number           = MPU_REGION_NUMBER0;        //设置保护区域
        MPU_InitStruct.TypeExtField     = MPU_TEX_LEVEL0;            //设置类型扩展域为level1
        MPU_InitStruct.SubRegionDisable = 0x00;                      //禁止子区域
        MPU_InitStruct.DisableExec      = MPU_INSTRUCTION_ACCESS_ENABLE;  //允许指令访问(允许读取指令)
        HAL_MPU_ConfigRegion(&MPU_InitStruct);

回复

使用道具 举报

6

主题

33

回帖

51

积分

初级会员

积分
51
发表于 2019-5-18 20:59:44 | 显示全部楼层
hpdell 发表于 2019-5-14 09:18
需要配置 mpu ,

貌似主要就是 mpu 的配置,其他的参考代码可以参考原子的就行

嗯嗯,是的,为什么必须加这个啊,之前F4就不需要加啊
回复

使用道具 举报

615

主题

3070

回帖

4935

积分

至尊会员

积分
4935
 楼主| 发表于 2019-5-18 21:31:44 | 显示全部楼层
大鹏 发表于 2019-5-18 20:59
嗯嗯,是的,为什么必须加这个啊,之前F4就不需要加啊

F7/H7 都带有 cache 功能, f4 是没有这个功能的,所以必须得加
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-6-6 06:01 , Processed in 0.188438 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表