7系列 Bank划分


前言

7系列 Bank划分,参考链接https://www.bilibili.com/read/readlist/rl205277?spm_id_from=333.1369.opus.module_collection.click


一、Xilinx 7系列 Bank划分

划分bank的原因:1、为了可以扩展多种IO口电平 2、IO口逻辑资源绑定

HP:High Performance,应用于高速场景,比如DDR或其他高速差分线

HR:High Range,应用于宽范围I/0,最高能够支持到3.3V的电压。

HD:High Density,应用于低速I/O的场景,最高速率限制在250M以内,最高电压也是支持到3.3V.
在这里插入图片描述
在这里插入图片描述

二、配置BANK0

在这里插入图片描述

三、用户BANK(HR_HP)

FPGA的器件管脚按照Bank进行划分,每个Bank独立供电,以使FPGA I/O适应不同电压标准,增强I/O设计的灵活性。
每个用户Bank包括50个I/O管脚或者24对差分对管脚(48个差分信号),顶端和底端各一个单端管脚。

红色圈住的为两个单端信号绿色圈住的管脚不用作时钟输入时,可以作为用户I/O来使用。
蓝色标记的VREF管脚,当该BANK I/O用作DDR内存接口时,需要提供伪差分所需的阈值电压,此时_VREF_管脚需要接DDR外设要求的参考电压。

RCC引脚为时钟专用引脚,分为MRCC(全局时钟)与SRCC(单端)
在这里插入图片描述

三、K7系列 IO速率与bank有关,通常高速在HP bank

3.1单边沿

在这里插入图片描述

3.2双边沿

在这里插入图片描述


总结

仅供个人学习

<think>嗯,用户现在想了解STM32H7Bank的配置和使用方法。我需要先回忆一下STM32H7系列的特点,特别是关于双Bank Flash的部分。首先,STM32H743是H7系列中的一个型号,它的Flash存储器分为两个Bank,也就是Bank1和Bank2。这种双Bank设计有什么好处呢?可能是在进行固件升级时,可以一边运行程序,一边擦写另一个Bank,这样可以避免系统停机,提高可靠性。 接下来,我需要考虑双Bank的配置方式。根据之前的知识,双Bank模式需要配置选项字节中的DBANK位。用户需要确认具体的型号是否支持双Bank,比如STM32H743xI或STM32H750xB这些型号。然后,在代码中可能需要通过设置选项字节来启用双Bank模式,这通常涉及到使用HAL库或者LL库中的函数来修改FLASH_OPTR寄存器中的DBANK位。 另外,内存布局的调整也很重要。每个Bank的大小可能不同,比如Bank1可能128KB,Bank2可能128KB,具体取决于型号。链接脚本(Linker Script)需要正确分配代码到不同的Bank中,确保在运行时能正确访问。例如,将中断向量表放在Bank1,而将用户代码或Bootloader放在Bank2。 使用场景方面,双Bank主要用于OTA升级,或者在运行过程中进行部分固件更新。例如,可以在Bank1运行程序的同时,将新固件写入Bank2,然后切换启动地址到Bank2,实现无缝升级。同时,双Bank还可以用于存储冗余代码,提高系统的容错能力。 可能用户还会关心如何实际编写代码来操作双Bank,比如擦除、写入的步骤,以及如何安全地进行Bank切换。这里需要注意Flash的操作流程:解锁Flash,擦除目标扇区,写入数据,然后锁定Flash。同时,切换Bank时可能需要调整向量表地址,使用HAL库的SCB->VTOR寄存器设置。 另外,需要注意的问题包括时钟配置是否正确,操作Flash时的中断处理,以及确保在切换Bank时不打断关键任务。可能还需要考虑双Bank模式下的读写保护机制,防止意外修改。 用户提供的参考内容提到了startup_stm32h743xx.s中的栈配置,虽然和双Bank直接关联不大,但启动文件中的初始化堆栈和内存分配可能会受到Flash布局的影响,特别是在链接脚本中定义的不同内存区域。因此,在配置双Bank时,链接脚本的修改是关键步骤之一。 总结一下,回答应该包括双Bank的作用、配置步骤(选项字节设置、链接脚本调整)、应用场景以及示例代码。同时,要提醒用户注意型号支持、操作Flash的安全步骤和可能的陷阱。相关的问题可以涉及具体配置细节、优化方法、常见问题等,帮助用户深入理解。</think>关于STM32H7Bank的配置与使用,以下是分步说明: ### 1. 双Bank的核心作用 STM32H7系列通过将Flash划分为$Bank1$和$Bank2$实现: - 并行操作:在一个Bank执行代码时,可对另一Bank进行擦写[^1] - 存储隔离:支持双Bootloader或A/B系统固件升级 - 性能优化:支持交错访问提升读取效率 ### 2. 硬件配置要点 #### (1) 确认器件型号 仅以下型号支持双Bank模式: - STM32H743/753xI - STM32H750xB - STM32H742xI #### (2) 选项字节配置 通过修改FLASH_OPTR寄存器设置DBANK位: ```c HAL_FLASHEx_OBProgram(&OBInit); ``` 配置参数示例: ```c OBInit.OptionType = OPTIONBYTE_USER; OBInit.USERConfig = OB_USER_DBANK; // 启用双Bank模式 ``` ### 3. 内存布局配置 典型链接脚本调整(以IAR为例): ``` define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; define symbol __ICFEDIT_region_ROM_end__ = 0x081FFFFF; define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; ``` ### 4. 关键操作代码 Bank切换示例: ```c // 擦除Bank2第7扇区 FLASH_EraseInitTypeDef erase; erase.TypeErase = FLASH_TYPEERASE_SECTORS; erase.Banks = FLASH_BANK_2; erase.Sector = FLASH_SECTOR_7; HAL_FLASHEx_Erase(&erase, &SectorError); // 写入Bank2 HAL_FLASH_Program(FLASH_TYPEPROGRAM_FLASHWORD, 0x08100000, (uint32_t)data_buffer); ``` ### 5. 典型应用场景 - OTA升级:Bank1运行旧固件时更新Bank2 - 安全启动:Bank1存放Bootloader,Bank2存放应用 - 数据记录:一个Bank存储代码,另一个存储日志
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徕卡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值