硬汉嵌入式论坛

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

[BOOT/IAP] stm32h743 双bank切换不能使用AXI SRAM内存(想做双bank升级)

[复制链接]

6

主题

68

回帖

86

积分

初级会员

积分
86
发表于 2024-9-7 19:45:37 | 显示全部楼层 |阅读模式





参考官方的历程,可以切换,但是不能勾选 0x2400000 内存,勾选上就切换失败!
回复

使用道具 举报

6

主题

68

回帖

86

积分

初级会员

积分
86
 楼主| 发表于 2024-9-7 19:52:20 | 显示全部楼层
[C] 纯文本查看 复制代码
	FLASH_OBProgramInitTypeDef OBInit;

	/* Unlock the User Flash area */
	HAL_FLASH_Unlock();

	HAL_FLASH_OB_Unlock();

	/* Get the Dual boot configuration status */
	HAL_FLASHEx_OBGetConfig(&OBInit);

	/* Get FLASH_WRP_SECTORS write protection status */
	OBInit.Banks 	= FLASH_BANK_1;
	HAL_FLASHEx_OBGetConfig(&OBInit);

	if(strchr(pra1,'2'))
	{
		 /*Swap to bank2 */
		 /*Set OB SWAP_BANK_OPT to swap Bank2*/
		 OBInit.OptionType = OPTIONBYTE_USER;
		 OBInit.USERType   = OB_USER_SWAP_BANK;
		 OBInit.USERConfig = OB_SWAP_BANK_ENABLE;
		 HAL_FLASHEx_OBProgram(&OBInit);	 	
	}

	if(strchr(pra1,'1'))
	{
		/* Swap to bank1 */
		/*Set OB SWAP_BANK_OPT to swap Bank1*/
		OBInit.OptionType = OPTIONBYTE_USER;
		OBInit.USERType = OB_USER_SWAP_BANK;
		OBInit.USERConfig = OB_SWAP_BANK_DISABLE;
		HAL_FLASHEx_OBProgram(&OBInit);
	}
	
	/* Launch Option bytes loading */
	HAL_FLASH_OB_Launch();

	/*
		as the CPU is executing from the Flash Bank1, and the I-Cache is enabled :
		Instruction cache must be invalidated after bank switching to ensure that
		CPU will fetch correct instructions from the flash.
	*/
	SCB_InvalidateICache();
	
回复

使用道具 举报

6

主题

68

回帖

86

积分

初级会员

积分
86
 楼主| 发表于 2024-9-7 19:53:12 | 显示全部楼层
代码来自官方历程,官方历程没有勾选这片内存,但是也没说原因
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117571
QQ
发表于 2024-9-8 15:29:53 | 显示全部楼层
帮顶,没测试过这个,后面有机会了试试。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-15 20:48 , Processed in 0.045037 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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