sam-ba 的应用(Linux)
MCU 烧录工具
1. Download
在官网上下载适合的版本
网址: https://www.microchip.com/
右上角搜寻框中搜寻输出 sam-ba
进行查找, 抉择适合版本下载, 而后进行解压.
2. boot from Flash
By default, samv7 boots from ROM, we want it boot from Flash. Using SAM-BA we can set a non-valotile config bit on the chip so it boots from Flash after power cycle.(也能够间接用上面所说的 reset 操作,无需从新上电)
$ cd ~/Downloads/sam-ba_3.3.1
$ ./sam-ba -p usb -b samv71-xplained -a bootconfig -c writecfg:bootmode:flash
须要在下载的 sam_ba 的目录下运行, 执行完命令后从新上电即可从 flash 中启动.
3. loading boot_loader to Flash
$ ./sam-ba -p usb -b samv71-xplained -a internalflash -c erase -c write:/home/xuhui/sub/dashboard_indicator/embedded-sw_test/bazel-bin/products/dashboard_indicator_loader/dashboard_indicator_loader_app.bin
将本人的 Bin 文件下载进 flash 中, 同样须要在 sam-ba 的目录下进行下载.
4. reset
$ ./sam-ba_3.3.1/sam-ba -p usb -b samv71-xplained -a reset
能够通过这条命令间接 reset MCU 无需从新上电。
5. 注意事项
MCU 与 SAM-BA 的连贯是因为芯片内有一段固化的代码运行起来后才会检测到指标板并建设连贯.
假如当初你烧写了 Bootstrap 进去,芯片上电后发现有可运行的代码,从而就不执行片内固化的那个代码. 因而, 就无奈与 SAM-BA 建设连贯. 解决办法次要有以下几个方面:
- 在开发板上曾经预留了解决这个问题的硬件,即有个按钮, 一旦这个按钮按下,则革除 flash 中的所有代码,以便让芯片上电后执行其片内固化的代码。当 然,这个要 bootstrap 外面软件的反对, 就是 bootstrap 检测按钮是否按下, 若按下则革除. 这样, 芯片上电检测不到无效的、可执行的代码就会 执行片内固化的局部.
- 还有一个比拟不业余的方法,但很无效。如果开发板没有设计按钮, 也没有在 bootstrap 中设计革除代码. 但我这里有一招就是短接 nand flash(如果板子上没有 nor flash 和 data flash)的地址线,大略是 42 脚左右的地位都行. 这样做的目标就是让芯片不能正确的将 nand flash 中的代码正确搬运到 sdram 中,因而芯片内的固化代码仍然会执行。这就解决了和 SAM-BA 不能连贯的问题.