/xboot

The extensible bootloader for embedded system

Primary LanguageCGNU General Public License v3.0GPL-3.0

XBOOT

xboot-logo

       _                   _                     
 _  _ | |___ _____ _____ _| |_                   
\ \/ /|  _  |  _  |  _  |_   _|  (C) 2007-2017   
 )  ( | |_| | |_| | |_| | | |____JIANJUN.JIANG__ 
/_/\_\|_____|_____|_____| |_____________________|

操作一个GPIO,需要仔细对照芯片手册,好繁琐;每换一个主控芯片,所有工作从头来过;想开发个现代点支持各种动效的UI,发现几乎是不可能的事情;各种协议栈有如天书一样,阅读都困难,何谈编写;虚拟机技术很流行,功能强大,想自己移植个,可是...;还是放开自己吧,让XBOOT来替你解决这些问题。xboot不仅仅是一款功能强大、可移植性强、代码复用率高的嵌入式系统bootloader,而且还是一款SOC片上系统应用软件执行引擎,无需复杂的操作系统,APP上电直接执行。一次编写,到处运行,不仅仅是个口号,而是还是xboot之所以存在的唯一原因。一些基本特性,简单列举如下:

  • 支持文件系统
  • 支持lua虚拟机
  • 支持各种协议栈
  • 支持矢量图形库,矢量字体
  • 支持各种现代gui控件,以及动效
  • 多平台支持
  • 各种总线驱动,UART,I2C,SPI等等
  • 各种设备驱动,GPIO,PWM,IRQ,CLK,LED,BUZZER,VIBRATOR,WATCHDOG,RNG,FRAMEBUFFER,RTC等等
  • 支持用lua编写应用软件,包含高等级API,可直接操作各种硬件抽象接口
  • 应用软件平台无关,一次编写,到处运行

集成开发环境

交叉工具链

编译

Makefile中有两个变量在编译时需要传递,一个是交叉工具链,另一个是具体的硬件平台

变量 说明
"CROSS_COMPILE" 指定交叉工具链
"PLATFORM" 指定硬件平台

Realview平台,qemu-system-arm模拟器

make clean
make CROSS_COMPILE=/path/to/arm-linux-gnueabihf- PLATFORM=arm32-realview

Raspberry PI 2代

make clean
make CROSS_COMPILE=/path/to/arm-linux-gnueabihf- PLATFORM=arm32-raspi2

Raspberry PI 3代

make clean
make CROSS_COMPILE=/path/to/aarch64-none-elf- PLATFORM=arm64-raspi3

X86_64位linux系统下的sandbox

sanbox依赖与SDL2库,在编译前需要安装libsdl2-dev,以ubuntu系统为例:

sudo apt-get install libsdl2-dev
make clean
make CROSS_COMPILE="" PLATFORM=x64-sandbox

运行

各种平台运行方式不太一样,具体查看板级支持包里面的相关说明文件,Realview平台直接执行tools目录下的相关执行脚本,linux系统下的sandbox平台,直接双击生成的目标文件即可。