硬汉嵌入式论坛

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

[HAL学习笔记] HAL库的Flash编程源文件stm32h7xx_hal_flash.c学习笔记(2020-02-24 V1.0)

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
发表于 2020-2-24 10:18:59 | 显示全部楼层 |阅读模式
==============================================================================
                                                                  ##### FLASH特性  #####
==============================================================================  
(+) Flash读写和擦除操作
(+) 读写保护
(+) 选项字节编程
(+)ECC校验:266bit为单位,其中10bit用于ECC。

==============================================================================
                                                                  ##### 使用方法  #####
==============================================================================  
1、编程函数
(1)HAL_FLASH_Unlock() 和 HAL_FLASH_Lock() 。
(2)仅支持256bit数据编程。
(3)查询方式HAL_FLASH_Program。
(4)中断方式HAL_FLASH_Program_IT()。

2、中断和标志管理函数。
HAL_FLASH_IRQHandler()
HAL_FLASH_EndOfOperationCallback()
HAL_FLASH_OperationErrorCallback()
HAL_FLASH_GetError()

3、选项字节编程
HAL_FLASH_OB_Unlock()
HAL_FLASH_OB_Lock()
加载选项字节函数HAL_FLASH_OB_Launch()

4、Flash的编写和擦除操作,必须保证主频HCLK有1MHz

5、如果Flash擦写期间发生了复位,擦写的数据会异常。

6、用户可以通过AXI总线同时请求读写操作。

H743的两个Flash BANK是独立的,一个在进行读写擦除操作时,另一个可以同步进行,互不影响。

==============================================================================
                                                                  ##### 扩展特性  #####
==============================================================================  
1、read-while-write(RWW)
2,读保护,写保护
3、安全访问保护
4、BANK互换
5、CRC检测

==============================================================================
                                                                  ##### 扩展特性使用方法  #####
==============================================================================  
1、Flash擦除函数
(1)HAL_FLASH_Unlock() 和 HAL_FLASH_Lock()
(2)扇区擦除,bank擦除和双bank擦除
(3)查询方式擦除HAL_FLASHEx_Erase(), 中断方式HAL_FLASHEx_Erase_IT()

2、可选选项字节编程使用函数HAL_FLASHEx_OBProgram() 设置
(1)写bank置位和复位
(2)设置读保护等级
(3)设置BOR等级
(4)编程用户可选字节
(5)PCROP保护配置
(6)安全区域配置
(7)内核启动地址配置

3、Flash锁。
     HAL_FLASHEx_Lock_Bank1(), HAL_FLASHEx_Unlock_Bank1(),
     HAL_FLASHEx_Lock_Bank2()  HAL_FLASHEx_Unlock_Bank2()

4、FLASH CRC计算HAL_FLASHEx_ComputeCRC()
(1)使能CRC特性
(2)编程需要的突发大小
(3)定义用户Flash区域,并且计算CRC
(4)CRC使能和禁止

QQ截图20200224101750.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
 楼主| 发表于 2020-2-24 14:36:04 | 显示全部楼层
更新完毕。
回复

使用道具 举报

3

主题

1223

回帖

1232

积分

至尊会员

积分
1232
发表于 2020-2-24 17:03:23 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-5 19:51 , Processed in 0.250186 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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