硬汉嵌入式论坛

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

[RT1050] NOR XIP 真心不行啊……

[复制链接]

7

主题

102

回帖

123

积分

初级会员

积分
123
发表于 2018-5-17 17:51:16 | 显示全部楼层 |阅读模式
本帖最后由 eddy0317 于 2018-5-17 18:11 编辑

一直致力于玩普通的NOR FLASH,不玩hyperflash,今天终于弄了个iperf程序测试,速度如下:
XIP:
[  4] 429.0-432.0 sec  22.8 KBytes  62.3 Kbits/sec
[  4] 432.0-435.0 sec  21.2 KBytes  57.8 Kbits/sec
[  4] 435.0-438.0 sec  20.0 KBytes  54.5 Kbits/sec
[  4] 438.0-441.0 sec  20.2 KBytes  55.0 Kbits/sec

non-XIP:
[  4] 303.0-306.0 sec  12.3 MBytes  34.5 Mbits/sec
[  4] 306.0-309.0 sec  12.1 MBytes  33.9 Mbits/sec
[  4] 309.0-312.0 sec  12.4 MBytes  34.7 Mbits/sec
[  4] 312.0-315.0 sec  12.4 MBytes  34.7 Mbits/sec


程序完全一样,只是link文件不一样,一个连接成XIP,一个为non-XIP(加载到ITCM上运行),速度也差太远了吧,之前还有人跟我说NOR XIP的速度不会太差。

最新情况:看了一下总感觉很奇怪,因为iperf也就反复调用那么几个地方的代码,不应该有那么大差别,看了一下,也是因为自己大意,因为用了官方的MPU配置文件,如下:
  1.     /* Region 2 setting */
  2. #if defined(XIP_EXTERNAL_FLASH)   
  3.     MPU->RBAR = ARM_MPU_RBAR(2, 0x60000000U);
  4.     MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_512MB);
  5. #else
  6.     MPU->RBAR = ARM_MPU_RBAR(2, 0x60000000U);
  7.     MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 2, 0, 0, 0, 0, ARM_MPU_REGION_SIZE_512MB);
  8. #endif
复制代码


XIP不记得添加XIP_EXTERNAL_FLASH宏定义了,导致NOR 没有使能cache。重新编译,再试了一下:

[  4] 4278.0-4281.0 sec  11.1 MBytes  31.0 Mbits/sec
[  4] 4281.0-4284.0 sec  11.0 MBytes  30.8 Mbits/sec
[  4] 4284.0-4287.0 sec  11.0 MBytes  30.7 Mbits/sec
[  4] 4287.0-4290.0 sec  11.1 MBytes  31.0 Mbits/sec
[  4] 4290.0-4293.0 sec  10.8 MBytes  30.3 Mbits/sec

虽然性能有降低,但是不算太夸张。

回复

使用道具 举报

5

主题

196

回帖

211

积分

高级会员

积分
211
发表于 2018-5-17 17:53:43 | 显示全部楼层
也看程序设计的,程序越紧凑Cache作用越大,否则接口速度的问题就会暴露出来
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-17 02:17 , Processed in 0.144637 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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