本文主要是通过迁移的思维,记录本人初次使用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主页、今日头条号 平台上。