硬汉嵌入式论坛

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

[HAL] 记得以往F1,F4系列的系统初始化代码里面还有个Flash的ART加速配置,H7里面竟然没有任何配置代码了

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
发表于 2018-7-20 17:14:30 | 显示全部楼层 |阅读模式
还以为是我的程序问题,之前做了好些例子都没有注意到这个问题,今天才发。
下面是F429的:
  1. #if defined(STM32F427_437xx) || defined(STM32F429_439xx) || defined(STM32F446xx)
  2.     /* Enable the Over-drive to extend the clock frequency to 180 Mhz */
  3.     PWR->CR |= PWR_CR_ODEN;
  4.     while((PWR->CSR & PWR_CSR_ODRDY) == 0)
  5.     {
  6.     }
  7.     PWR->CR |= PWR_CR_ODSWEN;
  8.     while((PWR->CSR & PWR_CSR_ODSWRDY) == 0)
  9.     {
  10.     }      
  11.     /* Configure Flash prefetch, Instruction cache, Data cache and wait state */
  12.     FLASH->ACR = FLASH_ACR_PRFTEN | FLASH_ACR_ICEN |FLASH_ACR_DCEN |FLASH_ACR_LATENCY_5WS;
  13. #endif /* STM32F427_437x || STM32F429_439xx || STM32F446xx */
复制代码


而H7仅剩下了一个配置RCC时的等待周期配置:
  1. HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_4);
复制代码


造成这个的根本原因是内部的架构不同,F4和F1系列有个Flash的ART加速,可以实现指令预取,指令缓冲,数据缓冲的功能,从而实现0等待周期。

H7系列的Flash加速全靠ICache了。

回复

使用道具 举报

16

主题

148

回帖

196

积分

初级会员

积分
196
发表于 2020-8-2 21:10:31 | 显示全部楼层
老哥 f4的hal库 我看了下 也没有设置 只有设置这个等待周期数的
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
 楼主| 发表于 2020-8-3 00:23:13 | 显示全部楼层
dyhfaily 发表于 2020-8-2 21:10
老哥 f4的hal库 我看了下 也没有设置 只有设置这个等待周期数的

QQ截图20200803002247.png
回复

使用道具 举报

19

主题

150

回帖

207

积分

高级会员

积分
207
发表于 2020-8-3 12:12:41 | 显示全部楼层
仔细,耐心。赞。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-2 12:03 , Processed in 0.279082 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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