一、安装

//安装依赖包(不安装会报错)
sudo apt-get install pkg-config pkgconf zlib1g-dev libusb-1.0-0-dev

//获取源码
//v3s 分支
git clone -b v3s https://github.com/Icenowy/sunxi-tools.git
//v3s spiflash 分支
git clone -b v3s-spi https://github.com/Icenowy/sunxi-tools.git
//f1c100s 分支
git clone -b f1c100s https://github.com/Icenowy/sunxi-tools.git
//f1c100s-spiflash 分支
git clone -b f1c100s-spiflash https://github.com/Icenowy/sunxi-tools.git

//进入源码文件夹
cd sunxi-tools
//编译和安装
make && sudo make install

全志Android 开机速度优化_全志芯片



二、使用

参考:编译和使用sunxi-tools

//列出所有芯片的信息:
sudo sunxi-fel -l

//查看芯片信息:
sudo sunxi-fel ver

//加载并执行uboot的spl
sudo sunxi-fel spl 文件名

//显示spiflash的信息 
sudo sunxi-fel spiflash-info

//调用指定地址的函数 
sudo sunxi-fel exec 地址

//把文件内容写入内存指定地址(-p是显示写入进度) 
sudo sunxi-fel -p write 地址 文件名

//读取spiflash指定地址的数据并写入到文件 
sudo sunxi-fel spiflash-read 地址 长度 存放数据的文件路径

//写入指定文件的指定长度的内容到spiflash的指定地址 
sudo sunxi-fel spiflash-write 地址 长度 存放数据的文件路径

注:如果报错 Invalid command,如 Invalid command spiflash-info ,那么肯定是分支错误,需要 checkout 另一个分支。



全志进入 fel 模式的条件(三种方式):

  • TF卡和 spi flash 同时没有可启动镜像
    即不插卡,且焊接的是新的或者没有有效镜像的spi flash,上电就会自动进入fel下载模式。
  • TF卡中有进入fel模式的特殊固件 fel-sdboot.sunxi
    如果spi flash已经有了启动镜像,那么需要在TF卡中烧入一个sunxi提供的 启动工具 , 那么插入该TF卡启动会进入fel模式;
    命令:dd if=fel-sdboot.sunxi of=/dev/mmcblk0 bs=1024 seek=8
  • 上电时SPI_MISO拉低到地
    该引脚为boot引脚,上电时如果为低电平即会进入fel下载模式。

连接与fel模式检测:

注意:新拿到的开发板默认不焊接spi flash,此时USB与开发板连接,不插TF卡上电即可。

//查看芯片信息,确认是否成功进入fel模式:
sudo sunxi-fel ver

全志Android 开机速度优化_fel模式_02

程序下载:

有两种方式进行程序下载:

  1. 烧录到RAM中去执行,以 uboot file-with-spl形式进行(单次运行,测试时个人推荐)
sudo sunxi-fel uboot u-boot-sunxi-with-spl.bin

//或者执行烧录地址
sudo sunxi-fel -p write 0x40000000 u-boot-sunxi-with-spl.bin
sudo sunxi-fel exec 0x40000000
  1. 烧录到 spi-flash (开机自启)
sunxi-fel -p spiflash-write 0 u-boot-sunxi-with-spl.bin

注意:
如果要烧录到 spi-flash ,sunxi-tools 要切换到 spi-rebase 分支,并且spi flash需要手动焊接。
重新烧录或重进fel模式时,请在上电时拉低SPI flash 的 CS引脚


问题解决:

问题一:

No package 'libusb-1.0' found
fel_lib.c:26:10: fatal error: libusb.h: 没有那个文件或目录
 #include <libusb.h>
          ^~~~~~~~~~
compilation terminated.
Makefile:129: recipe for target 'sunxi-fel' failed
make: *** [sunxi-fel] Error 1

解决:


sudo apt-get install libusb-1.0-0-dev


问题二:

fatal error: zlib.h: No such file or directory

原因是缺少zlib.h文件,需要安装zlib
解决:

sudo apt-get install zlib1g-dev


问题三:

使用 sunxi-fel uboot u-boot-sunxi-with-spl.bin 时报错:

ERROR: You don't have permission to access Allwinner USB FEL device

解决:

sudo sunxi-fel uboot u-boot-sunxi-with-spl.bin


其他问题:

解决:

sudo apt install pkg-config
sudo apt install pkgconf


参考:
sunxi-tools工具的使用(for f1c100s)全志V3S 编译运行xboot笔记FEL / USB启动