[STM32F7] STM32F7移植后速度反而不如F4,求助下。

[复制链接]
2915|6
 楼主| lusson 发表于 2016-5-17 17:38 | 显示全部楼层 |阅读模式
一个工程,从F4上移植至F7上,能正常跑通,但测试下来F7速度反而更慢,求解?
测试环境:
  F4:180M
  F7:200M,开I-cache,关D-cache,开ART

  测试:解码TF卡上APE文件,解某一帧数据
  测试结果:
  F4:60ms左右
  F7:80ms以上

想知道F7上有没有特别需要配置的地方?配置是参考的demo,如下:
static void MPU_Config(void)
{
  MPU_Region_InitTypeDef MPU_InitStruct;

  /* Disable the MPU */
  HAL_MPU_Disable();

  /* Configure the MPU attributes as WT for SRAM */
  MPU_InitStruct.Enable = MPU_REGION_ENABLE;
  MPU_InitStruct.BaseAddress = 0x20000000;
  MPU_InitStruct.Size = MPU_REGION_SIZE_512KB;
  MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
  MPU_InitStruct.IsBufferable = MPU_ACCESS_NOT_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_ENABLE;

  HAL_MPU_ConfigRegion(&MPU_InitStruct);
  /* Enable the MPU */
  HAL_MPU_Enable(MPU_PRIVILEGED_DEFAULT);
}

void CPU_CACHE_Enable(void)
{       
  /* Enable branch prediction */
  SCB->CCR |= (1 <<18);
  __DSB();
  /* Enable I-Cache */
  SCB_EnableICache();       
       
  /* Enable D-Cache */
  //SCB_EnableDCache();
}
z00 发表于 2016-5-17 18:43 | 显示全部楼层
等下季度推出新的F767再测试一下
nstel 发表于 2016-5-17 19:06 | 显示全部楼层
先测一下时钟对不对?
 楼主| lusson 发表于 2016-5-17 22:00 | 显示全部楼层
z00 发表于 2016-5-17 18:43
等下季度推出新的F767再测试一下

等不起啊,现在有2个产品要上市啊
 楼主| lusson 发表于 2016-5-17 22:02 | 显示全部楼层
nstel 发表于 2016-5-17 19:06
先测一下时钟对不对?

时钟应该是没问题的,systick,spi等都是基于主时钟的,这些都没问题。2个产品,一个使用hsi为pll源,一个使用hse作为pll源,都一样的问题
 楼主| lusson 发表于 2016-5-19 17:27 | 显示全部楼层
问题终于解决了,要把D-cache也打开。
shdjdq 发表于 2016-5-20 10:46 | 显示全部楼层
lusson 发表于 2016-5-19 17:27
问题终于解决了,要把D-cache也打开。

M7比M4快多少?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

6

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部