从零开始构建矽璓工业物联操作系统

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

ARM架构系列的开发板有

aiit-arm32-board	stm32f407-st-discovery		stm32f407zgt6

RISC-V

RISC-V架构系列的开发板有

aiit-riscv64-board		hifive1-rev-B		kd233		maix-go

开发环境

推荐使用:

操作系统: Ubuntu18.04

开发工具: VSCode

依赖包安装:

$ 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实物如图,可在购物网站搜索关键字购买)
从零开始构建矽璓工业物联操作系统_第1张图片

RISC-V:K-FLash

每种开发板分别对应board目录下的一个文件夹,具体编译及烧录步骤请参见board目录下对应文件夹下的README文件。

此处以KD233和stm32f407开发板为例:

KD233

1. 简介

硬件 描述
芯片型号 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等。

2. 编译说明

编译环境: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

3. 烧写及执行

连接开发板串口(即Type-C口)到USB接口,拨动电源开关打开开发板,然后使用K-Flash工具进行烧写bin文件。
从零开始构建矽璓工业物联操作系统_第2张图片
执行以下命令安装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

3.1 运行结果

如果编译 & 烧写无误,将会在串口终端上看到信息打印输出。
从零开始构建矽璓工业物联操作系统_第3张图片

STM32F407-DISCOVERY

1. 简介

硬件 描述
芯片型号 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等。

2. 编译说明

编译环境:Ubuntu18.04

编译工具链:arm-none-eabi-gcc

编译步骤:

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张图片

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

3. 烧写及执行

将 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

3.1 运行结果

如果编译 & 烧写无误,将会在串口终端上看到信息打印输出,(终端串口引脚为PB6、PB7)。
从零开始构建矽璓工业物联操作系统_第5张图片

你可能感兴趣的:(操作系统,rtos)