打印
[STM32F7]

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

[复制链接]
2670|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个产品要上市啊

使用特权

评论回复
5
lusson|  楼主 | 2016-5-17 22:02 | 只看该作者
nstel 发表于 2016-5-17 19:06
先测一下时钟对不对?

时钟应该是没问题的,systick,spi等都是基于主时钟的,这些都没问题。2个产品,一个使用hsi为pll源,一个使用hse作为pll源,都一样的问题

使用特权

评论回复
6
lusson|  楼主 | 2016-5-19 17:27 | 只看该作者
问题终于解决了,要把D-cache也打开。

使用特权

评论回复
7
shdjdq| | 2016-5-20 10:46 | 只看该作者
lusson 发表于 2016-5-19 17:27
问题终于解决了,要把D-cache也打开。

M7比M4快多少?

使用特权

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

本版积分规则

2

主题

6

帖子

0

粉丝