本帖最后由 跟着硬汉学 于 2025-8-29 17:54 编辑
在使用STM32H723时,上了RTOS和网络协议栈,用到的外设较少,所以打算将整个共享区都分配给RTOS的堆!默认是全部分配给AXI SRAM的!
看了一下手册,需要配置Flash相关的寄存器!
经过查看HAL库的API及注释,成功实现了共享区分配![C] 纯文本查看 复制代码 void RAM_SharedConfig(void)
{
FLASH_OBProgramInitTypeDef Flash_OBProgram;
Flash_OBProgram.OptionType = OPTIONBYTE_SHARED_RAM;
Flash_OBProgram.SharedRamConfig = OB_TCM_AXI_SHARED_ITCM128KB;
HAL_FLASH_OB_Unlock();
HAL_FLASHEx_OBProgram(&Flash_OBProgram);
HAL_FLASH_OB_Launch();
HAL_FLASH_OB_Lock();
}
最后将这段代码放在MPU初始化之前!
下面是成功分配后的状态截图:
|