美文网首页
JTAG mt7688烧录flash (救砖/调试)

JTAG mt7688烧录flash (救砖/调试)

作者: Neucrack | 来源:发表于2018-11-28 18:38 被阅读261次

    MT7688 正常情况下可以通过uboot来升级固件,也能升级uboot。
    但是难免有些情况下会升级失败或者BootLoader出错,或者是裸的flash,需要下载程序,

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

    安装openocd

    sudo apt-get update
    sudo apt-get install -y autoconf libtool libftdi-dev libusb-1.0-0 libusb-1.0-0-dev 
    git clone --recursive git://git.code.sf.net/p/openocd/code openocd-git
    cd openocd-git
    ./bootstrap
    ./configure --enable-sysfsgpio\
         --enable-maintainer-mode \
         --disable-werror \
         --enable-ft2232_libftdi \
         --enable-ep93xx \
         --enable-at91rm9200 \
         --enable-usbprog \
         --enable-presto_libftdi \
         --enable-jlink \
         --enable-vsllink \
         --enable-rlink \
         --enable-arm-jtag-ew \
         --enable-dummy \
         --enable-buspirate \
         --enable-ulink \
         --enable-presto_libftdi \
         --enable-usb_blaster_libftdi \
         --enable-ft2232_libftdi\
         --prefix=/usr
    make
    sudo make install
    

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

    这里使用angelic47写的配置文件

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

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

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

    修改成

    # tck tms tdi tdo
    sysfsgpio_jtag_nums 11 25 10 9
    
    sysfsgpio_trst_num 7
    sysfsgpio_srst_num 24
    

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

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

    运行openocd

    sudo openocd -f jlink.cfg
    

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

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

    加载uboot在ram中运行

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

    reset halt
    ddrinit
    load_image ramboot.bin 0x80200000 
    resume 0x80200000
    

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

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

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

    reset halt
    resume 0x80200000
    

    再来一次即可


    参考文章

    相关文章

      网友评论

          本文标题:JTAG mt7688烧录flash (救砖/调试)

          本文链接:https://www.haomeiwen.com/subject/ayovqqtx.html