嵌入式实操----基于RT1170 移植mbw做SDRAM带宽测试(三十一)

本文主要是通过迁移的思维,记录本人初次使用NXP MCUXpresso SDK API进行BSP开发

1. 移植来源

reference:https://github.com/raas/mbw
https://github.com/JayHeng/cortex-m-apps
由于RT1170上面没有SDRAM的带宽测试工具,所以通过移植mbw工程至SoC,用于SDRAM的测量。

2. 应用

###2.1 Linux平台移植应用

root@iZuf6anc2b2vgfvms9d7elZ:~# git clone https://github.com/raas/mbw.git
Cloning into 'mbw'...
remote: Enumerating objects: 113, done.
remote: Counting objects: 100% (28/28), done.
remote: Compressing objects: 100% (22/22), done.
remote: Total 113 (delta 12), reused 13 (delta 6), pack-reused 85
Receiving objects: 100% (113/113), 27.80 KiB | 9.27 MiB/s, done.
Resolving deltas: 100% (55/55), done.
root@iZuf6anc2b2vgfvms9d7elZ:~# cd mbw/
root@iZuf6anc2b2vgfvms9d7elZ:~/mbw# ls
CMakeLists.txt  Makefile  mbw.1  mbw.c  mbw.spec  README
root@iZuf6anc2b2vgfvms9d7elZ:~/mbw# make
cc     mbw.c   -o mbw
root@iZuf6anc2b2vgfvms9d7elZ:~/mbw# ls
CMakeLists.txt  Makefile  mbw  mbw.1  mbw.c  mbw.spec  README
root@iZuf6anc2b2vgfvms9d7elZ:~/mbw# ./mbw --help
./mbw: invalid option -- '-'
mbw memory benchmark v1.5, https://github.com/raas/mbw
Usage: mbw [options] array_size_in_MiB
Options:
        -n: number of runs per test (0 to run forever)
        -a: Don't display average
        -t0: memcpy test
        -t1: dumb (b[i]=a[i] style) test
        -t2: memcpy test with fixed block size
        -b <size>: block size in bytes for -t2 (default: 262144)
        -q: quiet (print statistics only)
(will then use two arrays, watch out for swapping)
'Bandwidth' is amount of data copied over the time this operation took.

The default is to run all tests available.
root@iZuf6anc2b2vgfvms9d7elZ:~/mbw# ./mbw -q -n 1 256
0       Method: MEMCPY  Elapsed: 0.29554        MiB: 256.00000  Copy: 866.220 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.29554        MiB: 256.00000  Copy: 866.220 MiB/s
0       Method: DUMB    Elapsed: 0.54065        MiB: 256.00000  Copy: 473.501 MiB/s
AVG     Method: DUMB    Elapsed: 0.54065        MiB: 256.00000  Copy: 473.501 MiB/s
0       Method: MCBLOCK Elapsed: 0.34296        MiB: 256.00000  Copy: 746.438 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.34296        MiB: 256.00000  Copy: 746.438 MiB/s

-n 10表示运行1次,256表示测试所用的内存大小,单位为MB。

mbw测试了MEMCPY、DUMB、MCBLOCK等方式的内存带宽。

复制mbw目前至工程

将相关文件添加入工程当中

将添加相关的头文件路径:

增加相关的测试代码如下:

主要的移植工作还是参考他人的修改,理解其中的原理,换到别的平台上面一样可以实现的。
测试日记:

CPU 800M SDRAM 163M  512K
0       Method: MEMCPY  Elapsed: 0.00806        MiB: 0.50000    Copy: 62.012 MiB/s
1       Method: MEMCPY  Elapsed: 0.00789        MiB: 0.50000    Copy: 63.379 MiB/s
2       Method: MEMCPY  Elapsed: 0.00789        MiB: 0.50000    Copy: 63.379 MiB/s
3       Method: MEMCPY  Elapsed: 0.00763        MiB: 0.50000    Copy: 65.514 MiB/s
4       Method: MEMCPY  Elapsed: 0.00768        MiB: 0.50000    Copy: 65.138 MiB/s
5       Method: MEMCPY  Elapsed: 0.00767        MiB: 0.50000    Copy: 65.215 MiB/s
6       Method: MEMCPY  Elapsed: 0.00765        MiB: 0.50000    Copy: 65.342 MiB/s
7       Method: MEMCPY  Elapsed: 0.00763        MiB: 0.50000    Copy: 65.496 MiB/s
8       Method: MEMCPY  Elapsed: 0.00760        MiB: 0.50000    Copy: 65.781 MiB/s
9       Method: MEMCPY  Elapsed: 0.00773        MiB: 0.50000    Copy: 64.650 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.00774        MiB: 0.50000    Copy: 64.569 MiB/s
0       Method: DUMB    Elapsed: 0.00764        MiB: 0.50000    Copy: 65.454 MiB/s
1       Method: DUMB    Elapsed: 0.00759        MiB: 0.50000    Copy: 65.841 MiB/s
2       Method: DUMB    Elapsed: 0.00769        MiB: 0.50000    Copy: 65.028 MiB/s
3       Method: DUMB    Elapsed: 0.00763        MiB: 0.50000    Copy: 65.557 MiB/s
4       Method: DUMB    Elapsed: 0.00758        MiB: 0.50000    Copy: 65.946 MiB/s
5       Method: DUMB    Elapsed: 0.00766        MiB: 0.50000    Copy: 65.283 MiB/s
6       Method: DUMB    Elapsed: 0.00767        MiB: 0.50000    Copy: 65.189 MiB/s
7       Method: DUMB    Elapsed: 0.00764        MiB: 0.50000    Copy: 65.479 MiB/s
8       Method: DUMB    Elapsed: 0.00767        MiB: 0.50000    Copy: 65.189 MiB/s
9       Method: DUMB    Elapsed: 0.00765        MiB: 0.50000    Copy: 65.377 MiB/s
AVG     Method: DUMB    Elapsed: 0.00764        MiB: 0.50000    Copy: 65.433 MiB/s
0       Method: MCBLOCK Elapsed: 0.00766        MiB: 0.50000    Copy: 65.266 MiB/s
1       Method: MCBLOCK Elapsed: 0.00769        MiB: 0.50000    Copy: 65.028 MiB/s
2       Method: MCBLOCK Elapsed: 0.00767        MiB: 0.50000    Copy: 65.198 MiB/s
3       Method: MCBLOCK Elapsed: 0.00765        MiB: 0.50000    Copy: 65.325 MiB/s
4       Method: MCBLOCK Elapsed: 0.00761        MiB: 0.50000    Copy: 65.746 MiB/s
5       Method: MCBLOCK Elapsed: 0.00772        MiB: 0.50000    Copy: 64.784 MiB/s
6       Method: MCBLOCK Elapsed: 0.00760        MiB: 0.50000    Copy: 65.764 MiB/s
7       Method: MCBLOCK Elapsed: 0.00766        MiB: 0.50000    Copy: 65.240 MiB/s
8       Method: MCBLOCK Elapsed: 0.00764        MiB: 0.50000    Copy: 65.428 MiB/s
9       Method: MCBLOCK Elapsed: 0.00759        MiB: 0.50000    Copy: 65.894 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.00765        MiB: 0.50000    Copy: 65.365 MiB/s

CPU 800M SDRAM 163M 32M
0       Method: MEMCPY  Elapsed: 0.25758        MiB: 16.00000   Copy: 62.117 MiB/s
1       Method: MEMCPY  Elapsed: 0.25740        MiB: 16.00000   Copy: 62.159 MiB/s
2       Method: MEMCPY  Elapsed: 0.25724        MiB: 16.00000   Copy: 62.199 MiB/s
3       Method: MEMCPY  Elapsed: 0.25724        MiB: 16.00000   Copy: 62.198 MiB/s
4       Method: MEMCPY  Elapsed: 0.25732        MiB: 16.00000   Copy: 62.181 MiB/s
5       Method: MEMCPY  Elapsed: 0.25723        MiB: 16.00000   Copy: 62.202 MiB/s
6       Method: MEMCPY  Elapsed: 0.25717        MiB: 16.00000   Copy: 62.215 MiB/s
7       Method: MEMCPY  Elapsed: 0.25723        MiB: 16.00000   Copy: 62.201 MiB/s
8       Method: MEMCPY  Elapsed: 0.25718        MiB: 16.00000   Copy: 62.212 MiB/s
9       Method: MEMCPY  Elapsed: 0.25718        MiB: 16.00000   Copy: 62.213 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.25728        MiB: 16.00000   Copy: 62.190 MiB/s
0       Method: DUMB    Elapsed: 0.25719        MiB: 16.00000   Copy: 62.212 MiB/s
1       Method: DUMB    Elapsed: 0.25713        MiB: 16.00000   Copy: 62.225 MiB/s
2       Method: DUMB    Elapsed: 0.25717        MiB: 16.00000   Copy: 62.215 MiB/s
3       Method: DUMB    Elapsed: 0.25717        MiB: 16.00000   Copy: 62.215 MiB/s
4       Method: DUMB    Elapsed: 0.25726        MiB: 16.00000   Copy: 62.193 MiB/s
5       Method: DUMB    Elapsed: 0.25708        MiB: 16.00000   Copy: 62.237 MiB/s
6       Method: DUMB    Elapsed: 0.25718        MiB: 16.00000   Copy: 62.213 MiB/s
7       Method: DUMB    Elapsed: 0.25718        MiB: 16.00000   Copy: 62.213 MiB/s
8       Method: DUMB    Elapsed: 0.25725        MiB: 16.00000   Copy: 62.197 MiB/s
9       Method: DUMB    Elapsed: 0.25711        MiB: 16.00000   Copy: 62.230 MiB/s
AVG     Method: DUMB    Elapsed: 0.25717        MiB: 16.00000   Copy: 62.215 MiB/s
0       Method: MCBLOCK Elapsed: 0.25722        MiB: 16.00000   Copy: 62.204 MiB/s
1       Method: MCBLOCK Elapsed: 0.25727        MiB: 16.00000   Copy: 62.191 MiB/s
2       Method: MCBLOCK Elapsed: 0.25711        MiB: 16.00000   Copy: 62.230 MiB/s
3       Method: MCBLOCK Elapsed: 0.25728        MiB: 16.00000   Copy: 62.190 MiB/s
4       Method: MCBLOCK Elapsed: 0.25721        MiB: 16.00000   Copy: 62.205 MiB/s
5       Method: MCBLOCK Elapsed: 0.25714        MiB: 16.00000   Copy: 62.222 MiB/s
6       Method: MCBLOCK Elapsed: 0.25722        MiB: 16.00000   Copy: 62.205 MiB/s
7       Method: MCBLOCK Elapsed: 0.25716        MiB: 16.00000   Copy: 62.219 MiB/s
8       Method: MCBLOCK Elapsed: 0.25717        MiB: 16.00000   Copy: 62.214 MiB/s
9       Method: MCBLOCK Elapsed: 0.25724        MiB: 16.00000   Copy: 62.198 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.25720        MiB: 16.00000   Copy: 62.208 MiB/s
kCLOCK_CpuClk clock 798000000  
kCLOCK_ArmPll clock 798000000  
kCLOCK_SysPll1 clock 1000000000  
kCLOCK_SysPll2 clock 528000000  
kCLOCK_SysPll3 clock 480000000  
kCLOCK_SysPll2Out clock 528000000  
kCLOCK_SysPll2Pfd1 clock 327724128  
kCLOCK_SysPll3Pfd0 clock 664615368  
kCLOCK_Root_Semc clock 163862064  
kCLOCK_Root_Flexspi1 clock 132000000  

CPU 1000M SDRAM 163M 512K
0       Method: MEMCPY  Elapsed: 0.00806        MiB: 0.50000    Copy: 62.019 MiB/s
1       Method: MEMCPY  Elapsed: 0.00787        MiB: 0.50000    Copy: 63.500 MiB/s
2       Method: MEMCPY  Elapsed: 0.00788        MiB: 0.50000    Copy: 63.492 MiB/s
3       Method: MEMCPY  Elapsed: 0.00770        MiB: 0.50000    Copy: 64.935 MiB/s
4       Method: MEMCPY  Elapsed: 0.00771        MiB: 0.50000    Copy: 64.859 MiB/s
5       Method: MEMCPY  Elapsed: 0.00770        MiB: 0.50000    Copy: 64.901 MiB/s
6       Method: MEMCPY  Elapsed: 0.00771        MiB: 0.50000    Copy: 64.868 MiB/s
7       Method: MEMCPY  Elapsed: 0.00773        MiB: 0.50000    Copy: 64.658 MiB/s
8       Method: MEMCPY  Elapsed: 0.00757        MiB: 0.50000    Copy: 66.033 MiB/s
9       Method: MEMCPY  Elapsed: 0.00760        MiB: 0.50000    Copy: 65.764 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.00775        MiB: 0.50000    Copy: 64.483 MiB/s
0       Method: DUMB    Elapsed: 0.00768        MiB: 0.50000    Copy: 65.121 MiB/s
1       Method: DUMB    Elapsed: 0.00765        MiB: 0.50000    Copy: 65.359 MiB/s
2       Method: DUMB    Elapsed: 0.00763        MiB: 0.50000    Copy: 65.574 MiB/s
3       Method: DUMB    Elapsed: 0.00763        MiB: 0.50000    Copy: 65.531 MiB/s
4       Method: DUMB    Elapsed: 0.00760        MiB: 0.50000    Copy: 65.781 MiB/s
5       Method: DUMB    Elapsed: 0.00758        MiB: 0.50000    Copy: 65.972 MiB/s
6       Method: DUMB    Elapsed: 0.00763        MiB: 0.50000    Copy: 65.496 MiB/s
7       Method: DUMB    Elapsed: 0.00758        MiB: 0.50000    Copy: 65.937 MiB/s
8       Method: DUMB    Elapsed: 0.00772        MiB: 0.50000    Copy: 64.784 MiB/s
9       Method: DUMB    Elapsed: 0.00766        MiB: 0.50000    Copy: 65.308 MiB/s
AVG     Method: DUMB    Elapsed: 0.00764        MiB: 0.50000    Copy: 65.484 MiB/s
0       Method: MCBLOCK Elapsed: 0.00763        MiB: 0.50000    Copy: 65.505 MiB/s
1       Method: MCBLOCK Elapsed: 0.00769        MiB: 0.50000    Copy: 64.977 MiB/s
2       Method: MCBLOCK Elapsed: 0.00774        MiB: 0.50000    Copy: 64.599 MiB/s
3       Method: MCBLOCK Elapsed: 0.00759        MiB: 0.50000    Copy: 65.894 MiB/s
4       Method: MCBLOCK Elapsed: 0.00769        MiB: 0.50000    Copy: 64.986 MiB/s
5       Method: MCBLOCK Elapsed: 0.00767        MiB: 0.50000    Copy: 65.189 MiB/s
6       Method: MCBLOCK Elapsed: 0.00763        MiB: 0.50000    Copy: 65.505 MiB/s
7       Method: MCBLOCK Elapsed: 0.00771        MiB: 0.50000    Copy: 64.885 MiB/s
8       Method: MCBLOCK Elapsed: 0.00766        MiB: 0.50000    Copy: 65.317 MiB/s
9       Method: MCBLOCK Elapsed: 0.00763        MiB: 0.50000    Copy: 65.539 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.00766        MiB: 0.50000    Copy: 65.238 MiB/s


CPU 1000M SDRAM 163M 32M
0       Method: MEMCPY  Elapsed: 0.25758        MiB: 16.00000   Copy: 62.117 MiB/s
1       Method: MEMCPY  Elapsed: 0.25740        MiB: 16.00000   Copy: 62.161 MiB/s
2       Method: MEMCPY  Elapsed: 0.25739        MiB: 16.00000   Copy: 62.162 MiB/s
3       Method: MEMCPY  Elapsed: 0.25722        MiB: 16.00000   Copy: 62.204 MiB/s
4       Method: MEMCPY  Elapsed: 0.25723        MiB: 16.00000   Copy: 62.201 MiB/s
5       Method: MEMCPY  Elapsed: 0.25717        MiB: 16.00000   Copy: 62.217 MiB/s
6       Method: MEMCPY  Elapsed: 0.25716        MiB: 16.00000   Copy: 62.219 MiB/s
7       Method: MEMCPY  Elapsed: 0.25711        MiB: 16.00000   Copy: 62.229 MiB/s
8       Method: MEMCPY  Elapsed: 0.25720        MiB: 16.00000   Copy: 62.208 MiB/s
9       Method: MEMCPY  Elapsed: 0.25724        MiB: 16.00000   Copy: 62.200 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.25727        MiB: 16.00000   Copy: 62.192 MiB/s
0       Method: DUMB    Elapsed: 0.25716        MiB: 16.00000   Copy: 62.219 MiB/s
1       Method: DUMB    Elapsed: 0.25717        MiB: 16.00000   Copy: 62.217 MiB/s
2       Method: DUMB    Elapsed: 0.25711        MiB: 16.00000   Copy: 62.229 MiB/s
3       Method: DUMB    Elapsed: 0.25733        MiB: 16.00000   Copy: 62.176 MiB/s
4       Method: DUMB    Elapsed: 0.25706        MiB: 16.00000   Copy: 62.242 MiB/s
5       Method: DUMB    Elapsed: 0.25721        MiB: 16.00000   Copy: 62.205 MiB/s
6       Method: DUMB    Elapsed: 0.25710        MiB: 16.00000   Copy: 62.234 MiB/s
7       Method: DUMB    Elapsed: 0.25723        MiB: 16.00000   Copy: 62.201 MiB/s
8       Method: DUMB    Elapsed: 0.25716        MiB: 16.00000   Copy: 62.218 MiB/s
9       Method: DUMB    Elapsed: 0.25719        MiB: 16.00000   Copy: 62.211 MiB/s
AVG     Method: DUMB    Elapsed: 0.25717        MiB: 16.00000   Copy: 62.215 MiB/s
0       Method: MCBLOCK Elapsed: 0.25722        MiB: 16.00000   Copy: 62.205 MiB/s
1       Method: MCBLOCK Elapsed: 0.25719        MiB: 16.00000   Copy: 62.211 MiB/s
2       Method: MCBLOCK Elapsed: 0.25715        MiB: 16.00000   Copy: 62.220 MiB/s
3       Method: MCBLOCK Elapsed: 0.25716        MiB: 16.00000   Copy: 62.217 MiB/s
4       Method: MCBLOCK Elapsed: 0.25707        MiB: 16.00000   Copy: 62.239 MiB/s
5       Method: MCBLOCK Elapsed: 0.25728        MiB: 16.00000   Copy: 62.189 MiB/s
6       Method: MCBLOCK Elapsed: 0.25714        MiB: 16.00000   Copy: 62.223 MiB/s
7       Method: MCBLOCK Elapsed: 0.25725        MiB: 16.00000   Copy: 62.197 MiB/s
8       Method: MCBLOCK Elapsed: 0.25709        MiB: 16.00000   Copy: 62.234 MiB/s
9       Method: MCBLOCK Elapsed: 0.25722        MiB: 16.00000   Copy: 62.204 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.25718        MiB: 16.00000   Copy: 62.214 MiB/s

CPU 800M SDRAM 198M 512K

0       Method: MEMCPY  Elapsed: 0.00730        MiB: 0.50000    Copy: 68.503 MiB/s
1       Method: MEMCPY  Elapsed: 0.00714        MiB: 0.50000    Copy: 70.057 MiB/s
2       Method: MEMCPY  Elapsed: 0.00713        MiB: 0.50000    Copy: 70.136 MiB/s
3       Method: MEMCPY  Elapsed: 0.00706        MiB: 0.50000    Copy: 70.781 MiB/s
4       Method: MEMCPY  Elapsed: 0.00698        MiB: 0.50000    Copy: 71.674 MiB/s
5       Method: MEMCPY  Elapsed: 0.00687        MiB: 0.50000    Copy: 72.812 MiB/s
6       Method: MEMCPY  Elapsed: 0.00689        MiB: 0.50000    Copy: 72.548 MiB/s
7       Method: MEMCPY  Elapsed: 0.00690        MiB: 0.50000    Copy: 72.464 MiB/s
8       Method: MEMCPY  Elapsed: 0.00683        MiB: 0.50000    Copy: 73.217 MiB/s
9       Method: MEMCPY  Elapsed: 0.00689        MiB: 0.50000    Copy: 72.622 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.00700        MiB: 0.50000    Copy: 71.451 MiB/s
0       Method: DUMB    Elapsed: 0.00680        MiB: 0.50000    Copy: 73.508 MiB/s
1       Method: DUMB    Elapsed: 0.00687        MiB: 0.50000    Copy: 72.738 MiB/s
2       Method: DUMB    Elapsed: 0.00681        MiB: 0.50000    Copy: 73.368 MiB/s
3       Method: DUMB    Elapsed: 0.00685        MiB: 0.50000    Copy: 72.950 MiB/s
4       Method: DUMB    Elapsed: 0.00686        MiB: 0.50000    Copy: 72.876 MiB/s
5       Method: DUMB    Elapsed: 0.00692        MiB: 0.50000    Copy: 72.275 MiB/s
6       Method: DUMB    Elapsed: 0.00687        MiB: 0.50000    Copy: 72.791 MiB/s
7       Method: DUMB    Elapsed: 0.00688        MiB: 0.50000    Copy: 72.653 MiB/s
8       Method: DUMB    Elapsed: 0.00680        MiB: 0.50000    Copy: 73.584 MiB/s
9       Method: DUMB    Elapsed: 0.00685        MiB: 0.50000    Copy: 72.993 MiB/s
AVG     Method: DUMB    Elapsed: 0.00685        MiB: 0.50000    Copy: 72.971 MiB/s
0       Method: MCBLOCK Elapsed: 0.00693        MiB: 0.50000    Copy: 72.119 MiB/s
1       Method: MCBLOCK Elapsed: 0.00695        MiB: 0.50000    Copy: 71.901 MiB/s
2       Method: MCBLOCK Elapsed: 0.00695        MiB: 0.50000    Copy: 71.922 MiB/s
3       Method: MCBLOCK Elapsed: 0.00695        MiB: 0.50000    Copy: 71.942 MiB/s
4       Method: MCBLOCK Elapsed: 0.00692        MiB: 0.50000    Copy: 72.233 MiB/s
5       Method: MCBLOCK Elapsed: 0.00692        MiB: 0.50000    Copy: 72.233 MiB/s
6       Method: MCBLOCK Elapsed: 0.00698        MiB: 0.50000    Copy: 71.592 MiB/s
7       Method: MCBLOCK Elapsed: 0.00709        MiB: 0.50000    Copy: 70.532 MiB/s
8       Method: MCBLOCK Elapsed: 0.00693        MiB: 0.50000    Copy: 72.181 MiB/s
9       Method: MCBLOCK Elapsed: 0.00696        MiB: 0.50000    Copy: 71.870 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.00696        MiB: 0.50000    Copy: 71.849 MiB/s

CPU 800M SDRAM 198M 32M
0       Method: MEMCPY  Elapsed: 0.23245        MiB: 16.00000   Copy: 68.831 MiB/s
1       Method: MEMCPY  Elapsed: 0.23230        MiB: 16.00000   Copy: 68.878 MiB/s
2       Method: MEMCPY  Elapsed: 0.23214        MiB: 16.00000   Copy: 68.923 MiB/s
3       Method: MEMCPY  Elapsed: 0.23214        MiB: 16.00000   Copy: 68.925 MiB/s
4       Method: MEMCPY  Elapsed: 0.23203        MiB: 16.00000   Copy: 68.957 MiB/s
5       Method: MEMCPY  Elapsed: 0.23199        MiB: 16.00000   Copy: 68.968 MiB/s
6       Method: MEMCPY  Elapsed: 0.23211        MiB: 16.00000   Copy: 68.934 MiB/s
7       Method: MEMCPY  Elapsed: 0.23197        MiB: 16.00000   Copy: 68.974 MiB/s
8       Method: MEMCPY  Elapsed: 0.23199        MiB: 16.00000   Copy: 68.967 MiB/s
9       Method: MEMCPY  Elapsed: 0.23210        MiB: 16.00000   Copy: 68.937 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.23212        MiB: 16.00000   Copy: 68.929 MiB/s
0       Method: DUMB    Elapsed: 0.23133        MiB: 16.00000   Copy: 69.166 MiB/s
1       Method: DUMB    Elapsed: 0.23156        MiB: 16.00000   Copy: 69.097 MiB/s
2       Method: DUMB    Elapsed: 0.23126        MiB: 16.00000   Copy: 69.186 MiB/s
3       Method: DUMB    Elapsed: 0.23128        MiB: 16.00000   Copy: 69.179 MiB/s
4       Method: DUMB    Elapsed: 0.23134        MiB: 16.00000   Copy: 69.163 MiB/s
5       Method: DUMB    Elapsed: 0.23120        MiB: 16.00000   Copy: 69.205 MiB/s
6       Method: DUMB    Elapsed: 0.23129        MiB: 16.00000   Copy: 69.177 MiB/s
7       Method: DUMB    Elapsed: 0.23118        MiB: 16.00000   Copy: 69.211 MiB/s
8       Method: DUMB    Elapsed: 0.23117        MiB: 16.00000   Copy: 69.212 MiB/s
9       Method: DUMB    Elapsed: 0.23131        MiB: 16.00000   Copy: 69.172 MiB/s
AVG     Method: DUMB    Elapsed: 0.23129        MiB: 16.00000   Copy: 69.177 MiB/s
0       Method: MCBLOCK Elapsed: 0.23211        MiB: 16.00000   Copy: 68.931 MiB/s
1       Method: MCBLOCK Elapsed: 0.23215        MiB: 16.00000   Copy: 68.920 MiB/s
2       Method: MCBLOCK Elapsed: 0.23210        MiB: 16.00000   Copy: 68.936 MiB/s
3       Method: MCBLOCK Elapsed: 0.23212        MiB: 16.00000   Copy: 68.930 MiB/s
4       Method: MCBLOCK Elapsed: 0.23205        MiB: 16.00000   Copy: 68.950 MiB/s
5       Method: MCBLOCK Elapsed: 0.23210        MiB: 16.00000   Copy: 68.936 MiB/s
6       Method: MCBLOCK Elapsed: 0.23217        MiB: 16.00000   Copy: 68.914 MiB/s
7       Method: MCBLOCK Elapsed: 0.23205        MiB: 16.00000   Copy: 68.950 MiB/s
8       Method: MCBLOCK Elapsed: 0.23208        MiB: 16.00000   Copy: 68.941 MiB/s
9       Method: MCBLOCK Elapsed: 0.23216        MiB: 16.00000   Copy: 68.917 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.23211        MiB: 16.00000   Copy: 68.933 MiB/s
kCLOCK_CpuClk clock 798000000  
kCLOCK_ArmPll clock 798000000  
kCLOCK_SysPll1 clock 1000000000  
kCLOCK_SysPll2 clock 528000000  
kCLOCK_SysPll3 clock 480000000  
kCLOCK_SysPll2Out clock 528000000  
kCLOCK_SysPll2Pfd1 clock 594000000  
kCLOCK_SysPll3Pfd0 clock 664615368  
kCLOCK_Root_Semc clock 198000000  
kCLOCK_Root_Flexspi1 clock 132000000  

CPU 1000M SDRAM 198M 32M
0       Method: MEMCPY  Elapsed: 0.23045        MiB: 16.00000   Copy: 69.431 MiB/s
1       Method: MEMCPY  Elapsed: 0.23029        MiB: 16.00000   Copy: 69.479 MiB/s
2       Method: MEMCPY  Elapsed: 0.23026        MiB: 16.00000   Copy: 69.486 MiB/s
3       Method: MEMCPY  Elapsed: 0.23006        MiB: 16.00000   Copy: 69.546 MiB/s
4       Method: MEMCPY  Elapsed: 0.23015        MiB: 16.00000   Copy: 69.520 MiB/s
5       Method: MEMCPY  Elapsed: 0.23009        MiB: 16.00000   Copy: 69.538 MiB/s
6       Method: MEMCPY  Elapsed: 0.23009        MiB: 16.00000   Copy: 69.539 MiB/s
7       Method: MEMCPY  Elapsed: 0.22996        MiB: 16.00000   Copy: 69.576 MiB/s
8       Method: MEMCPY  Elapsed: 0.23010        MiB: 16.00000   Copy: 69.534 MiB/s
9       Method: MEMCPY  Elapsed: 0.23007        MiB: 16.00000   Copy: 69.546 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.23015        MiB: 16.00000   Copy: 69.520 MiB/s
0       Method: DUMB    Elapsed: 0.22888        MiB: 16.00000   Copy: 69.906 MiB/s
1       Method: DUMB    Elapsed: 0.22887        MiB: 16.00000   Copy: 69.909 MiB/s
2       Method: DUMB    Elapsed: 0.22882        MiB: 16.00000   Copy: 69.924 MiB/s
3       Method: DUMB    Elapsed: 0.22901        MiB: 16.00000   Copy: 69.866 MiB/s
4       Method: DUMB    Elapsed: 0.22879        MiB: 16.00000   Copy: 69.933 MiB/s
5       Method: DUMB    Elapsed: 0.22892        MiB: 16.00000   Copy: 69.894 MiB/s
6       Method: DUMB    Elapsed: 0.22883        MiB: 16.00000   Copy: 69.922 MiB/s
7       Method: DUMB    Elapsed: 0.22893        MiB: 16.00000   Copy: 69.889 MiB/s
8       Method: DUMB    Elapsed: 0.22887        MiB: 16.00000   Copy: 69.908 MiB/s
9       Method: DUMB    Elapsed: 0.22891        MiB: 16.00000   Copy: 69.895 MiB/s
AVG     Method: DUMB    Elapsed: 0.22888        MiB: 16.00000   Copy: 69.905 MiB/s
0       Method: MCBLOCK Elapsed: 0.23009        MiB: 16.00000   Copy: 69.537 MiB/s
1       Method: MCBLOCK Elapsed: 0.23010        MiB: 16.00000   Copy: 69.536 MiB/s
2       Method: MCBLOCK Elapsed: 0.23008        MiB: 16.00000   Copy: 69.541 MiB/s
3       Method: MCBLOCK Elapsed: 0.23005        MiB: 16.00000   Copy: 69.551 MiB/s
4       Method: MCBLOCK Elapsed: 0.22999        MiB: 16.00000   Copy: 69.568 MiB/s
5       Method: MCBLOCK Elapsed: 0.23010        MiB: 16.00000   Copy: 69.534 MiB/s
6       Method: MCBLOCK Elapsed: 0.22998        MiB: 16.00000   Copy: 69.572 MiB/s
7       Method: MCBLOCK Elapsed: 0.23016        MiB: 16.00000   Copy: 69.518 MiB/s
8       Method: MCBLOCK Elapsed: 0.23002        MiB: 16.00000   Copy: 69.560 MiB/s
9       Method: MCBLOCK Elapsed: 0.23013        MiB: 16.00000   Copy: 69.525 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.23007        MiB: 16.00000   Copy: 69.544 MiB/s

CPU 1000M SDRAM 198M 512K
0       Method: MEMCPY  Elapsed: 0.00722        MiB: 0.50000    Copy: 69.262 MiB/s
1       Method: MEMCPY  Elapsed: 0.00721        MiB: 0.50000    Copy: 69.367 MiB/s
2       Method: MEMCPY  Elapsed: 0.00706        MiB: 0.50000    Copy: 70.862 MiB/s
3       Method: MEMCPY  Elapsed: 0.00691        MiB: 0.50000    Copy: 72.401 MiB/s
4       Method: MEMCPY  Elapsed: 0.00690        MiB: 0.50000    Copy: 72.422 MiB/s
5       Method: MEMCPY  Elapsed: 0.00690        MiB: 0.50000    Copy: 72.474 MiB/s
6       Method: MEMCPY  Elapsed: 0.00690        MiB: 0.50000    Copy: 72.495 MiB/s
7       Method: MEMCPY  Elapsed: 0.00691        MiB: 0.50000    Copy: 72.317 MiB/s
8       Method: MEMCPY  Elapsed: 0.00677        MiB: 0.50000    Copy: 73.866 MiB/s
9       Method: MEMCPY  Elapsed: 0.00678        MiB: 0.50000    Copy: 73.735 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.00696        MiB: 0.50000    Copy: 71.888 MiB/s
0       Method: DUMB    Elapsed: 0.00677        MiB: 0.50000    Copy: 73.877 MiB/s
1       Method: DUMB    Elapsed: 0.00686        MiB: 0.50000    Copy: 72.876 MiB/s
2       Method: DUMB    Elapsed: 0.00675        MiB: 0.50000    Copy: 74.085 MiB/s
3       Method: DUMB    Elapsed: 0.00676        MiB: 0.50000    Copy: 73.921 MiB/s
4       Method: DUMB    Elapsed: 0.00687        MiB: 0.50000    Copy: 72.823 MiB/s
5       Method: DUMB    Elapsed: 0.00685        MiB: 0.50000    Copy: 72.950 MiB/s
6       Method: DUMB    Elapsed: 0.00678        MiB: 0.50000    Copy: 73.703 MiB/s
7       Method: DUMB    Elapsed: 0.00681        MiB: 0.50000    Copy: 73.400 MiB/s
8       Method: DUMB    Elapsed: 0.00686        MiB: 0.50000    Copy: 72.939 MiB/s
9       Method: DUMB    Elapsed: 0.00678        MiB: 0.50000    Copy: 73.790 MiB/s
AVG     Method: DUMB    Elapsed: 0.00681        MiB: 0.50000    Copy: 73.433 MiB/s
0       Method: MCBLOCK Elapsed: 0.00684        MiB: 0.50000    Copy: 73.057 MiB/s
1       Method: MCBLOCK Elapsed: 0.00687        MiB: 0.50000    Copy: 72.748 MiB/s
2       Method: MCBLOCK Elapsed: 0.00685        MiB: 0.50000    Copy: 73.003 MiB/s
3       Method: MCBLOCK Elapsed: 0.00692        MiB: 0.50000    Copy: 72.275 MiB/s
4       Method: MCBLOCK Elapsed: 0.00692        MiB: 0.50000    Copy: 72.296 MiB/s
5       Method: MCBLOCK Elapsed: 0.00694        MiB: 0.50000    Copy: 72.046 MiB/s
6       Method: MCBLOCK Elapsed: 0.00685        MiB: 0.50000    Copy: 73.014 MiB/s
7       Method: MCBLOCK Elapsed: 0.00687        MiB: 0.50000    Copy: 72.780 MiB/s
8       Method: MCBLOCK Elapsed: 0.00686        MiB: 0.50000    Copy: 72.918 MiB/s
9       Method: MCBLOCK Elapsed: 0.00688        MiB: 0.50000    Copy: 72.696 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.00688        MiB: 0.50000    Copy: 72.682 MiB/s



版内的内存:
CPU 800M 512K
0       Method: MEMCPY  Elapsed: 0.00186        MiB: 0.50000    Copy: 268.384 MiB/s
1       Method: MEMCPY  Elapsed: 0.00182        MiB: 0.50000    Copy: 274.424 MiB/s
2       Method: MEMCPY  Elapsed: 0.00179        MiB: 0.50000    Copy: 278.862 MiB/s
3       Method: MEMCPY  Elapsed: 0.00179        MiB: 0.50000    Copy: 279.330 MiB/s
4       Method: MEMCPY  Elapsed: 0.00179        MiB: 0.50000    Copy: 279.174 MiB/s
5       Method: MEMCPY  Elapsed: 0.00179        MiB: 0.50000    Copy: 279.174 MiB/s
6       Method: MEMCPY  Elapsed: 0.00179        MiB: 0.50000    Copy: 278.707 MiB/s
7       Method: MEMCPY  Elapsed: 0.00176        MiB: 0.50000    Copy: 283.607 MiB/s
8       Method: MEMCPY  Elapsed: 0.00176        MiB: 0.50000    Copy: 283.447 MiB/s
9       Method: MEMCPY  Elapsed: 0.00176        MiB: 0.50000    Copy: 284.414 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.00179        MiB: 0.50000    Copy: 278.878 MiB/s
0       Method: DUMB    Elapsed: 0.00173        MiB: 0.50000    Copy: 289.017 MiB/s
1       Method: DUMB    Elapsed: 0.00173        MiB: 0.50000    Copy: 289.017 MiB/s
2       Method: DUMB    Elapsed: 0.00173        MiB: 0.50000    Copy: 288.684 MiB/s
3       Method: DUMB    Elapsed: 0.00173        MiB: 0.50000    Copy: 289.017 MiB/s
4       Method: DUMB    Elapsed: 0.00173        MiB: 0.50000    Copy: 289.184 MiB/s
5       Method: DUMB    Elapsed: 0.00173        MiB: 0.50000    Copy: 289.017 MiB/s
6       Method: DUMB    Elapsed: 0.00173        MiB: 0.50000    Copy: 288.850 MiB/s
7       Method: DUMB    Elapsed: 0.00173        MiB: 0.50000    Copy: 288.850 MiB/s
8       Method: DUMB    Elapsed: 0.00173        MiB: 0.50000    Copy: 288.850 MiB/s
9       Method: DUMB    Elapsed: 0.00173        MiB: 0.50000    Copy: 289.184 MiB/s
AVG     Method: DUMB    Elapsed: 0.00173        MiB: 0.50000    Copy: 288.967 MiB/s
0       Method: MCBLOCK Elapsed: 0.00179        MiB: 0.50000    Copy: 278.862 MiB/s
1       Method: MCBLOCK Elapsed: 0.00180        MiB: 0.50000    Copy: 278.242 MiB/s
2       Method: MCBLOCK Elapsed: 0.00177        MiB: 0.50000    Copy: 281.849 MiB/s
3       Method: MCBLOCK Elapsed: 0.00178        MiB: 0.50000    Copy: 280.269 MiB/s
4       Method: MCBLOCK Elapsed: 0.00177        MiB: 0.50000    Copy: 281.849 MiB/s
5       Method: MCBLOCK Elapsed: 0.00177        MiB: 0.50000    Copy: 282.486 MiB/s
6       Method: MCBLOCK Elapsed: 0.00177        MiB: 0.50000    Copy: 282.167 MiB/s
7       Method: MCBLOCK Elapsed: 0.00180        MiB: 0.50000    Copy: 278.396 MiB/s
8       Method: MCBLOCK Elapsed: 0.00177        MiB: 0.50000    Copy: 282.965 MiB/s
9       Method: MCBLOCK Elapsed: 0.00180        MiB: 0.50000    Copy: 277.778 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.00178        MiB: 0.50000    Copy: 280.473 MiB/s

CPU 1000M 512K
0       Method: MEMCPY  Elapsed: 0.00176        MiB: 0.50000    Copy: 283.768 MiB/s
1       Method: MEMCPY  Elapsed: 0.00175        MiB: 0.50000    Copy: 285.388 MiB/s
2       Method: MEMCPY  Elapsed: 0.00175        MiB: 0.50000    Copy: 285.714 MiB/s
3       Method: MEMCPY  Elapsed: 0.00174        MiB: 0.50000    Copy: 287.853 MiB/s
4       Method: MEMCPY  Elapsed: 0.00175        MiB: 0.50000    Copy: 286.041 MiB/s
5       Method: MEMCPY  Elapsed: 0.00175        MiB: 0.50000    Copy: 286.533 MiB/s
6       Method: MEMCPY  Elapsed: 0.00175        MiB: 0.50000    Copy: 286.369 MiB/s
7       Method: MEMCPY  Elapsed: 0.00175        MiB: 0.50000    Copy: 285.878 MiB/s
8       Method: MEMCPY  Elapsed: 0.00175        MiB: 0.50000    Copy: 285.878 MiB/s
9       Method: MEMCPY  Elapsed: 0.00175        MiB: 0.50000    Copy: 286.205 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.00175        MiB: 0.50000    Copy: 285.959 MiB/s
0       Method: DUMB    Elapsed: 0.00170        MiB: 0.50000    Copy: 294.985 MiB/s
1       Method: DUMB    Elapsed: 0.00170        MiB: 0.50000    Copy: 294.985 MiB/s
2       Method: DUMB    Elapsed: 0.00170        MiB: 0.50000    Copy: 294.811 MiB/s
3       Method: DUMB    Elapsed: 0.00170        MiB: 0.50000    Copy: 294.638 MiB/s
4       Method: DUMB    Elapsed: 0.00170        MiB: 0.50000    Copy: 294.638 MiB/s
5       Method: DUMB    Elapsed: 0.00170        MiB: 0.50000    Copy: 294.985 MiB/s
6       Method: DUMB    Elapsed: 0.00170        MiB: 0.50000    Copy: 294.638 MiB/s
7       Method: DUMB    Elapsed: 0.00170        MiB: 0.50000    Copy: 294.985 MiB/s
8       Method: DUMB    Elapsed: 0.00170        MiB: 0.50000    Copy: 294.811 MiB/s
9       Method: DUMB    Elapsed: 0.00170        MiB: 0.50000    Copy: 294.985 MiB/s
AVG     Method: DUMB    Elapsed: 0.00170        MiB: 0.50000    Copy: 294.846 MiB/s
0       Method: MCBLOCK Elapsed: 0.00176        MiB: 0.50000    Copy: 284.091 MiB/s
1       Method: MCBLOCK Elapsed: 0.00175        MiB: 0.50000    Copy: 285.551 MiB/s
2       Method: MCBLOCK Elapsed: 0.00176        MiB: 0.50000    Copy: 284.576 MiB/s
3       Method: MCBLOCK Elapsed: 0.00175        MiB: 0.50000    Copy: 285.388 MiB/s
4       Method: MCBLOCK Elapsed: 0.00176        MiB: 0.50000    Copy: 284.576 MiB/s
5       Method: MCBLOCK Elapsed: 0.00175        MiB: 0.50000    Copy: 285.388 MiB/s
6       Method: MCBLOCK Elapsed: 0.00175        MiB: 0.50000    Copy: 284.900 MiB/s
7       Method: MCBLOCK Elapsed: 0.00175        MiB: 0.50000    Copy: 285.388 MiB/s
8       Method: MCBLOCK Elapsed: 0.00176        MiB: 0.50000    Copy: 284.738 MiB/s
9       Method: MCBLOCK Elapsed: 0.00175        MiB: 0.50000    Copy: 285.551 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.00175        MiB: 0.50000    Copy: 285.014 MiB/s

3. 总结

工具的移植,无非就是时钟接口及内存分配等接口的重新实现。片内及片外的内存到底相差多少,经过测试之后,可以有很明显的数定进行比较。对于我们进行程序优化,相当有益的。下面是本人整理的表格,分享给大家。

希望对各位读者帮助。
欢迎订阅
嵌入式实操”一个分享开发实践经验的地方。
文章会同时发布到我的 CSDN主页今日头条号 平台上。

猜你喜欢

转载自blog.csdn.net/weixin_30965175/article/details/126500325
今日推荐