选中内容(绿色)时除了会搜索文章名,还会搜索文章内容
点击结果中的文章名进入文章界面后可以按Ctrl+F在页面内搜索
  • 版权:CC BY-SA 4.0
  • 创建:2019-10-14
  • 更新:2019-10-21
MT7688 正常情况下可以通过uboot来升级固件,也能升级uboot,但是难免有些情况下会升级失败或者BootLoader出错,或者是裸的flash,需要下载程序,


有几种常用的方法:
第一种最简单粗暴的方法就是拆flash然后用flash烧录器烧录程序到flash中;
第二种方法就是使用调试器运行ramrun然后进行固件更新,而在MT7688上就是使用JTAG。

安装openocd

  1. sudo apt-get update
  2. sudo apt-get install -y autoconf libtool libftdi-dev libusb-1.0-0 libusb-1.0-0-dev
  3. git clone --recursive git://git.code.sf.net/p/openocd/code openocd-git
  4. cd openocd-git
  5. ./bootstrap
  6. ./configure --enable-sysfsgpio\
  7. --enable-maintainer-mode \
  8. --disable-werror \
  9. --enable-ft2232_libftdi \
  10. --enable-ep93xx \
  11. --enable-at91rm9200 \
  12. --enable-usbprog \
  13. --enable-presto_libftdi \
  14. --enable-jlink \
  15. --enable-vsllink \
  16. --enable-rlink \
  17. --enable-arm-jtag-ew \
  18. --enable-dummy \
  19. --enable-buspirate \
  20. --enable-ulink \
  21. --enable-presto_libftdi \
  22. --enable-usb_blaster_libftdi \
  23. --enable-ft2232_libftdi\
  24. --prefix=/usr
  25. make
  26. sudo make install

配置MT7688 openocd相关,并连接引脚

这里使用angelic47写的配置文件

  1. git clone https://github.com/Neutree/MT7688-OpenOCD

如果是使用linux开发板用gpio模拟jlink,则根据实际情况修改jlink-gpio.cfg中的GPIO模拟JTAG的引脚,比如将

  1. # tck tms tdi tdo
  2. sysfsgpio_jtag_nums 12 11 6 1
  3. sysfsgpio_trst_num 0
  4. sysfsgpio_srst_num 3

修改成

  1. # tck tms tdi tdo
  2. sysfsgpio_jtag_nums 11 25 10 9
  3. sysfsgpio_trst_num 7
  4. sysfsgpio_srst_num 24

如果是有JTAG-SEEGER硬件就直接使用jlink_seeger.cfg文件
一下配置文件均用jlink.cfg表示

然后连接好JTAG相关的这几个引脚,
以及给mt7688的串口连接到PC方便当uboot启动时看到启动信息,从而来判断我们是否成功做到了

运行openocd

  1. sudo openocd -f jlink.cfg

运行成功后会检测到mt7688并且启动telnet服务,使用本机或者另一台PC连接到telnet

  1. sudo apt install telnet
  2. telnet 127.0.0.1 4444
  3. #(注意如果要在本机执行,可以用命令`sudo openocd -f jlink.cfg &`让命令在后台执行)
  4. >

加载uboot在ram中运行

用minicom打开mt7688的串口(在PC上),波特率为57600(这里的ramboot.bin是这样的,根据实际情况决定)

  1. reset halt
  2. ddrinit
  3. load_image ramboot.bin 0x80200000
  4. resume 0x80200000

需要注意的是ramboot.bin需要填绝对路径才能找到文件

让执行了resume指令后应该就能在mt7688的串口看到uboot信息输出了,这时及时选择选项就可以进入uboot的正常升级程序了

如果反应慢了没来得及按按键,没关系,使用

  1. reset halt
  2. resume 0x80200000

再来一次即可


参考文章

文章有误?有想法想讨论?查看或者发起勘误/讨论 主题
(发起评论需要先登录 github)

/wallpaper/wallhaven-j5lk95.jpg