|
本帖最后由 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配置文件,如下:
- /* Region 2 setting */
- #if defined(XIP_EXTERNAL_FLASH)
- MPU->RBAR = ARM_MPU_RBAR(2, 0x60000000U);
- MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_512MB);
- #else
- MPU->RBAR = ARM_MPU_RBAR(2, 0x60000000U);
- MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 2, 0, 0, 0, 0, ARM_MPU_REGION_SIZE_512MB);
- #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
虽然性能有降低,但是不算太夸张。
|
|