3 Try burning the board

From Banana Pi Wiki
Revision as of 21:12, 17 February 2019 by Sinovoip (talk | contribs) (Created page with "# Document ![](./head.jpg) ## 尝试烧写板子 ### 1. 为什么要烧写板子呢? - 烧写是一种过去下载程序到硬件里的说法,如今只是习惯用语...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
  1. Document

![](./head.jpg)

    1. 尝试烧写板子
      1. 1. 为什么要烧写板子呢?

- 烧写是一种过去下载程序到硬件里的说法,如今只是习惯用语。只要我们通过烧写的工具,就可以将我们想要的程序放到硬件当中运行。

      1. 2. 准备相关工具

- 以 Windwos 为例,你需要到[release](https://github.com/BPI-STEAM/BPI-BIT-MicroPython/releases)里面选择一个版本,将 AutoErase.exe、AutoFlash.exe、firmware.bin 下载下来放到同一目录即可。

- 其他平台系统的则需要使用 py 脚本进行烧写,也就是 AutoErase.py 和 AutoFlash.py。

- ![all_tools](how_to_flash/all_tools.png)

- 最后请确保驱动已经成功安装且板子已经正确连入电脑后,您可以继续阅读以下内容。

- ![win_check_ch340](how_to_flash/win_check_ch340.png)

      1. 3. 一键烧写固件
        1. 1. 擦除板子固件

- 遇到以下情况时,建议擦除一次板子。

 - 第一次使用该固件
 - 此前存在其他固件
 - 板子运行操作异常
 - 当不知所措的时候

- 以 Windows 为例,双击运行 **AutoErase.exe**,它会识别电脑最新插入板子的串口,并自动擦除该板子,所以你只需要确保板子是最新插入的设备即可。

- ![erase_succeed](how_to_flash/erase_succeed.png)

- 以上即为成功擦除,如果失败请重试,仍然失败,请检查或设备的串口。

        1. 2. 更新板子固件

- 遇到以下情况时,建议更新一次板子。

 - 擦除板子后
 - 需升级固件

- 以 Windows 为例,双击运行 **AutoFlash.exe**,它会识别最新插入的板子的串口,并自动将同一目录下的 **firmware.bin** 固件文件烧写到板子当中。

- ![flash_succeed](how_to_flash/flash_succeed.png)

- 以上即为成功烧写,如果失败请重试,仍然失败,请检查或设备的串口。

- 至此已经完成了烧写,可以进入下一章节[Hello, World!](https://github.com/BPI-STEAM/BPI-BIT-MicroPython/wiki/helloworld)了,如有其他疑问或想知道更多的,可以继续往下看。

  1. 烧写工具详解*
    1. 使用 windows 系统*

- 运行 `AutoFlash.exe` 程序会自动查找最新插入的串口并将同一目录下的`fimware.bin`文件一键烧写至芯片当中。

- ![auto_flash_running](how_to_flash/auto_flash_running.png) 。

- 使用 `AutoErase.exe` 程序可以将固件擦除,如果此前有其他固件存在,或遇到了不可解决的问题,均可通过该修复(擦除)工具重置板子后烧写固件,注意,它会将板子的所有文件全部删除。

- ![auto_erase_running](how_to_flash/auto_erase_running.png) 。

- 上述程序经由相关 Python 脚本与`Pyinstller X86`模块打包而成。

- 以上两工具均支持命令行 ` AutoErase.exe --port COM4 --baud 115200 --port` 的用法,具体可以看下方配置参数介绍。

    1. 使用 linux 系统*

``` Shell sudo esptool.py --chip esp32 --port COM3 --baud 1152000 write_flash -z --flash_mode dio --flash_freq 40m 0x1000 firmware.bin ```

- 在此之前需用户安装 python 与安装其依赖项 esptool ,例如`pip install esptool`。

- esptool.py 是 ESP 芯片系列的烧写脚本工具。

- `--chip esp32` 指esp32芯片。

- `--port COM3` 指烧写端口,COM3是Windows环境下的串口命名,在Linux下则是/dev/ttyUSB0。

- `--baud 921600`,如果出现烧写错误,可以下调到460800,这会导致烧写的速度下降。

- `firmware.bin`,指烧写文件的位置,如果没有路径则默认是同一目录下。

- 其他保持不变,如果有疑问向我们可以提出。

    1. 在 Python 解释器环境当中执行烧写*

- [AutoFlash.py](https://github.com/junhuanchen/AutoTools/blob/master/AutoFlash.py) 跟Linux的Shell一致,可在Py代码中查阅得知。

- [AutoErase.py](https://github.com/junhuanchen/AutoTools/blob/master/AutoErase.py) 是指擦除当前硬件的固件,当遇到无法解决的问题时候,可以尝试擦除。

  1. 烧写之后?

- 烧写之后,如果烧写成功会如下图,否则会闪退或出现红色警告内容,等其他信息报告。

- ![flash_finish](how_to_flash/flash_finish.jpg)

  1. 出现问题?

- 当不知道怎么解决的时候,请直接提交问题给我们进行解决。

- 如果没人提供解决方案,您也可以自己使用修复(擦除)工具后重新烧写固件。

- 修复(擦除)工具执行成功之后结果的如下图。

- ![repair_finish](how_to_flash/repair_finish.jpg)

  1. 疑难解答
    1. 烧写固件失败,烧写程序闪退,或结果出现 红色警告 。

- 大多数原因是因为您的串口驱动存在问题,解决这个问题后可以再次尝试,如果出现了烧写错误,有可能是您的电脑正在使用多个串口导致识别错误的问题,请确保板子是最新插入的,否则不能自动识别并烧写,如果确定有这个问题也出现了烧写失败的情况,请更换至其他烧写的连接线,此时依旧烧写失败的话,请将板子寄给我们,我们将为您维修或更换。

    1. 烧写成功?但是没有工作?

- 先确认线材,如果面板灯没有亮,有两种可能,一种是连接线材的问题(线比较差,供电不足),更换好一点的线就可以了,另一种是存在先前固件的问题,分区数据受损,需要擦除一次才可以,一般发生在先前烧过其他固件的时候,如果排除了这两种情况,就只能是电脑的问题,可以先检查一下驱动是否正常,没有感叹号,或者是更换电脑再试。

![logo](./logo.jpg)