准备工作
-
安装交叉编译工具链接
$ sudo apt-get install gcc-arm-none-eabi gcc-arm-linux-gnueabi
gcc-arm-none-eabi
编译器用于编译 ARM 架构的裸机系统, 他使用的是 newlib 这个专用于嵌入式系统的C库, 而gcc-arm-linux-gnueabi
则可以编译ARM系统中所有环节的代码, 包括裸机程序和 App 应用程序, 使用glibc. -
安装烧写工具
$ sudo apt-get install sunxi-tools
sunxi-tools 是用于全志芯片的程序烧写工具, 使用方法参考
-
WSL 环境
对于使用 WSL 环境, 将 USB 插入 Windows 并让芯片进入fel 模式(进入fel 模式需要插入前将 PE0 脚, 也就是 Flash 的 CS 脚, 拉低), 设备管理器中若显示未知设备可使用 Zadig 进行驱动安装, 默认设置即可.
-
编译安装 sunxi-tools (MSYS 环境)
因为 WSL 不支持访问一些 USB 设备, 需要单独编译安装 Windows 端的 sunxi-tools. 编译需要依赖 libusb 库, 因此先安装 libusb 库, 在源代码根目录下.
$ ./autogen.sh $ ./configure $ make -j16 && make install
或者直接使用pacman仓库的版本
$ pacman -S mingw-w64-x86_64-libusb
安装完 libusb 依赖后执行
$ git clone https://github.com/Icenowy/sunxi-tools.git -b f1c100s-spiflash $ cd sunxi-tools $ make -j16 && make install
-
-
纯 MSYS 环境
若只使用 MSYS 环境, 可在arm官网 下载编译工具, 不过 pacman 仓库也包含有 ARM GNU 工具链, 比如 64 位系统:$ pacman -S mingw-w64-x86_64-arm-none-eabi-gcc
-
minicom
minicom 可作为串口终端, 安装 minicom:$ sudo apt-get install minicom
使用 minicom 非常简单, 进入 minicom 先设置串口号:
minicom -s
, 设置完保存为默认 Save setup as dfl. 在 minicom 中操作可使用 Ctrl^A 然后 按 Z 进行可视化设置, 非常方便.
测试 xboot
xboot 支持 f1c100s 芯片, 在 make 的时候指定目标平台PLATFORM 为 f1c100s 即可
$ git clone https://github.com/xboot/xboot.git
$ cd xboot
$ make CROSS_COMPILE=arm-none-eabi- PLATFORM=arm32-f1c100s -j16
- 下载程序
使用 sunxi-fel 工具可以将程序下载到内存
或者下载到 flash$ sunxi-fel -p write 0x80000000 ./output/xboot.bin $ sunxi-fel exec 0x80000000
sunxi-fel -p spiflash-write 0 ./output/xboot.bin
下载到内存后使用 exec 参数来执行代码, 下载到 flash 需要拔插电源, 因为设备默认从flash加载程序. 程序执行后如需重启进入 fel 下载模式可事先将 PE0 接地, 然后在 xboot 中执行 reboot 即可.
网友评论