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不能连贯的问题.