XiUOS (X Industrial Ubiquitous Operating System) 矽璓工业物联操作系统是一款面向工业物联场景的泛在操作系统,来自泛在操作系统研究计划。所谓泛在操作系统(UOS: Ubiquitous Operating Systems),是支持互联网时代人机物融合泛在计算应用模式的新型操作系统,是传统操作系统概念的泛化与延伸。在泛在操作系统技术体系中,不同的泛在计算设备和泛在应用场景需要符合各自特性的不同UOS,XiUOS即是面向工业物联场景的一种UOS,主要由一个极简的微型实时操作系统(RTOS)内核和其上的智能工业物联框架构成,支持工业物联网(IIoT: Industrial Internet of Things)应用。
名称 | 说明 |
---|---|
application | 应用代码 |
board | 板级支持包 |
framework | 应用框架 |
fs | 文件系统 |
kernel | 内核源码 |
resources | 驱动文件 |
tool | 系统工具 |
目前XiUOS支持ARM和RISC-V两种架构的微处理器:
ARM架构系列的开发板有
aiit-arm32-board stm32f407-st-discovery stm32f407zgt6
RISC-V架构系列的开发板有
aiit-riscv64-board hifive1-rev-B kd233 maix-go
$ sudo apt-get install build-essential pkg-config
$ sudo apt-get install gcc make libncurses5-dev openssl libssl-dev bison flex libelf-dev autoconf libtool gperf libc6-dev
ARM: arm-none-eabi,默认安装到Ubuntu的/usr/bin/arm-none-eabi-,使用如下命令行下载
$ sudo apt-get install gcc-arm-none-eabi
RISC-V: riscv-none-embed-,默认安装到Ubuntu的/opt/,下载源码并解压。下载网址
$ tar -zxvf gnu-mcu-eclipse-riscv-none-gcc-8.2.0-2.1-20190425-1021-centos64.tgz -C /opt/
ARM:ST-LINK(ST-LINK V2实物如图,可在购物网站搜索关键字购买)
RISC-V:K-FLash
每种开发板分别对应board目录下的一个文件夹,具体编译及烧录步骤请参见board目录下对应文件夹下的README文件。
硬件 | 描述 |
---|---|
芯片型号 | K210 |
CPU | 双核RV64GC |
主频 | 400MHz |
片内SRAM | 8MB |
外设 | 内嵌AES与SHA256算法加速器 |
DVP、JTAG、OTP、FPIOA、GPIO、UART、SPI、RTC、I²S、I²C、WDT、Timer与PWM |
XiUOS板级当前支持使用GPIO、I2C、LCD、RTC、SPI、Timer、UART和watchdog等。
编译环境:Ubuntu18.04
编译工具链:riscv-none-embed-gcc
编译步骤:
1.将编译工具链的路径添加到board/kd233/config.mk文件当中,例如:
export CROSS_COMPILE ?=/opt/gnu-mcu-eclipse/riscv-none-gcc/8.2.0-2.1-20190425-1021/bin/riscv-none-embed-
2.在代码根目录下执行以下命令,生成配置文件
make BOARD=kd233 menuconfig
3.在menuconfig界面配置需要关闭和开启的功能,按回车键进入下级菜单,按Y键选中需要开启的功能,按N键选中需要关闭的功能,配置结束后选择Exit保存并退出
4.继续执行以下命令,进行编译
make BOARD=kd233
5.如果编译正确无误,会产生XiUOS_kd233.elf、XiUOS_kd233.bin文件。其中XiUOS_kd233.bin需要烧写到设备中进行运行。
注:最后可以执行以下命令,清除配置文件和编译生成的文件
make BOARD=kd233 distclean
连接开发板串口(即Type-C口)到USB接口,拨动电源开关打开开发板,然后使用K-Flash工具进行烧写bin文件。
执行以下命令安装K-Flash工具
sudo apt install python3 python3-pip
sudo pip3 install pyserial
sudo pip3 install pyelftools
sudo pip3 install kflash
如果最后一步安装kflash出现错误,可以尝试以下命令
sudo python -m pip install kflash
sudo python3 -m pip install kflash
sudo pip install kflash
sudo pip2 install kflash
代码根目录下执行K-Flash工具烧录,-p为USB端口号,视实际情况而定
kflash -t build/XiUOS_kd233.bin -p /dev/ttyUSB0
硬件 | 描述 |
---|---|
芯片型号 | Stm32F407VGT6 |
CPU | arm cortex-m |
主频 | 168MHz |
片内SRAM | 192KB |
片上FLASH | 1MB |
外设 | 内嵌FPU处理器 |
DCMI、JTAG、OTG、ADC、DAC、USB、GPIO、UART、SPI、SDIO、RTC、I²S、CAN、DMA、MAC、I²C、WDT、Timer与PWM |
XiUOS板级驱动当前支持使用GPIO、I2C、LCD、USB、RTC、SPI、Timer、UART和WDT等。
编译步骤:
1.ARM下编译需要安装arm-none-eabi编译工具, 安装到Ubuntu的默认路径/usr/bin/arm-none-eabi-,使用如下命令行下载
sudo apt-get install gcc-arm-none-eabi
2.在代码根目录下执行以下命令,生成配置文件
make BOARD=stm32f407-st-discovery menuconfig
3.在menuconfig界面配置需要关闭和开启的功能,按回车键进入下级菜单,按Y键选中需要开启的功能,按N键选中需要关闭的功能,配置结束后保存并退出
4.继续执行以下命令,进行编译
make BOARD=stm32f407-st-discovery
5.如果编译正确无误,会产生XiUOS_stm32f407-st-discovery.elf、XiUOS_stm32f407-st-discovery.bin文件。其中XiUOS_stm32f407-st-discovery.bin需要烧写到设备中进行运行。
sudo write build/XiUOS_stm32f407-st-discovery.bin 0x8000000
6.最后可以执行以下命令,清除配置文件和编译生成的文件
make BOARD=stm32f407-st-discovery distclean
将 BOARD=stm32f407-st-discovery开发板SWD经 st-link 转接到USB接口,然后使用st-flash工具进行烧写bin文件。
执行以下命令下载st-link工具
git clone https://github.com/texane/stlink.git
sudo apt-get install libusb-dev
sudo apt-get install libusb-1.0-0-dev
sudo apt-get install cmake
cd stlink
make
cd build/Release && make install DESTDIR=_install
将生成的st-flash复制到/usr/bin下就可使用了
代码根目录下执行st-flash工具烧录
sudo st-flash write build/XiUOS_stm32f407-st-discovery.bin 0x8000000