对于硬件攻城狮来说,用这个工具进行简单测试还是特别方便的,写成shell脚本更是爽歪歪。知道这个再也不用甜言蜜语的求软件攻城狮啦。
memtool的用法如下所示。
root@imx6ul7d:~# /unit_tests/memtool
Usage:Read memory: memtool [-8 | -16 | -32] <phys addr> <count>
Write memory: memtool [-8 | -16 | -32] <phys addr>=<value>List SOC module: memtool *. or memtool .
Read register: memtool UART1.*
memtool UART1.UMCR
memtool UART1.UMCR.MDEN
memtool UART1.-
Write register: memtool UART.UMCR=0x12
memtool UART.UMCR.MDEN=0x1
Default access size is 32-bit.Address, count and value are all in hex.
To support autocompete feature please run below command:
complete -o nospace -C /unit_tests/memtool memtool
让我们以i.MX6ULL为例举个栗子。
查看i.MX6ULL的手册得知DDR地址为0x8000_0000到0xffff_ffff。所以可以对DDR芯片进行读写操作(写操作有风险,使用请谨慎)。
读DDR如下。写我就不试了,大家可以套用上文中的用法。
root@imx6ul7d:~# /unit_tests/memtool 0x80000000 10
E
Reading 0x10 count starting at address 0x800000000x80000000: 000081ED 0000253C 605BCBC9 5FD9DB33
0x80000010: 5FAFF038 00000000 00010000 00000018
0x80000020: 00080000 00000000 0001F30A 00000004
0x80000030: 00000000 00000000 00000003 00006CCE
这个工具不止可以访问DDR,它还可以配置寄存器。以i.MX6ULL的GPIO1_IO04为例 。寄存器地址可以从参考手册中找到。
root@imx6ul7d:~# /unit_tests/memtool 0x020E006C 1 //查看GPIO1_IO04的MUX
E
Reading 0x1 count starting at address 0x020E006C0x020E006C: 00000005 //5是MUX到GPIO功能
root@imx6ul7d:~# /unit_tests/memtool 0x0209C004 1 //查看GPIO1_IO04方向
E
Reading 0x1 count starting at address 0x0209C0040x0209C004: 00000300
root@imx6ul7d:~# /unit_tests/memtool 0x0209C004=0x310 //设置GPIO1_IO04为输出
Writing 32-bit value 0x310 to address 0x0209C004
root@imx6ul7d:~#
本文介绍了memtool工具在硬件调试中的便利性,演示了如何通过shell脚本进行内存读写和寄存器配置,涉及i.MX6ULL DDR操作和GPIO控制实例。
783

被折叠的 条评论
为什么被折叠?



