打印
[STM32F7]

MPU(Memory Protection Unit)配置

[复制链接]
680|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
MPU可能影响访问外部存储器的效率。配置MPU区域时,确保启用内存的缓存和缓冲功能。

c

MPU_Region_InitTypeDef MPU_InitStruct;

MPU_InitStruct.Enable = MPU_REGION_ENABLE;
MPU_InitStruct.BaseAddress = 0x60000000;  // Base address of the SRAM
MPU_InitStruct.Size = MPU_REGION_SIZE_512KB;  // Adjust size as needed
MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
MPU_InitStruct.IsBufferable = MPU_ACCESS_BUFFERABLE;
MPU_InitStruct.IsCacheable = MPU_ACCESS_CACHEABLE;
MPU_InitStruct.IsShareable = MPU_ACCESS_NOT_SHAREABLE;
MPU_InitStruct.Number = MPU_REGION_NUMBER0;
MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL0;
MPU_InitStruct.SubRegionDisable = 0x00;
MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_DISABLE;

HAL_MPU_ConfigRegion(&MPU_InitStruct);
HAL_MPU_Enable(MPU_PRIVILEGED_DEFAULT);


使用特权

评论回复
沙发
感觉很反感mva|  楼主 | 2024-7-30 18:06 | 只看该作者
Cache(缓存)设置
确保缓存已正确启用,并且配置为对外部SRAM进行缓存操作。

c
SCB_EnableICache();  // Enable I-Cache
SCB_EnableDCache();  // Enable D-Cache

使用特权

评论回复
板凳
感觉很反感mva|  楼主 | 2024-7-30 18:06 | 只看该作者
使用DMA(Direct Memory Access)
使用DMA可以减少CPU对SRAM的直接访问,提高数据传输效率。配置DMA传输外部SRAM的数据,避免CPU直接连续读操作导致的时序问题。

c
DMA_HandleTypeDef hdma;

__HAL_RCC_DMA2_CLK_ENABLE();

hdma.Instance = DMA2_Stream0;
hdma.Init.Channel = DMA_CHANNEL_0;
hdma.Init.Direction = DMA_MEMORY_TO_MEMORY;
hdma.Init.PeriphInc = DMA_PINC_ENABLE;
hdma.Init.MemInc = DMA_MINC_ENABLE;
hdma.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
hdma.Init.MemDataAlignment = DMA_MDATAALIGN_WORD;
hdma.Init.Mode = DMA_NORMAL;
hdma.Init.Priority = DMA_PRIORITY_HIGH;
hdma.Init.FIFOMode = DMA_FIFOMODE_DISABLE;

HAL_DMA_Init(&hdma);

HAL_DMA_Start(&hdma, (uint32_t)source_address, (uint32_t)destination_address, length);
HAL_DMA_PollForTransfer(&hdma, HAL_DMA_FULL_TRANSFER, HAL_MAX_DELAY);

使用特权

评论回复
地板
感觉很反感mva|  楼主 | 2024-7-30 18:07 | 只看该作者
逐步优化FMC配置、MPU设置、缓存使用以及硬件设计,有望减少两次连续读操作的时间,提升系统性能

使用特权

评论回复
5
抹茶妹妹| | 2024-7-30 18:52 | 只看该作者
在配置MPU(Memory Protection Unit)以优化外部存储器的访问效率时,确保配置正确的缓存和缓冲选项是关键。

使用特权

评论回复
6
我爱台妹mmd| | 2024-7-31 23:16 | 只看该作者
通过正确配置MPU区域并启用缓存和缓冲功能,可以优化外部存储器的访问效率,从而提高整体系统性能。

使用特权

评论回复
7
范德萨发额| | 2024-8-16 14:58 | 只看该作者
MPU_InitStruct.Enable = MPU_REGION_ENABLE;
启用该MPU区域。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

50

帖子

0

粉丝