RTEMS运行在STM32上
主机环境
Ubuntu 16.04 AMD64
编译RTEMS
1,安装编译环境
$ sudo apt-get install build-essential
$ sudo apt-get install git
$ sudo apt-get install python-dev
$ sudo apt-get build-dep binutils gcc g++ gdb unzip git
2,建立编译目录
$ cd $HOME
$ mkdir github
$ mkdir -p development/rtems/compiler
$ mkdir -p development/rtems/source
$ mkdir -p development/rtems/build/br-stm32
3,下载编译工具
$ cd $HOME/development/rtems
$ wget https://git.rtems.org/rtems-source-builder/snapshot/rtems-source-builder-4.11.3.tar.bz2
$ tar jxf rtems-source-builder-4.11.3.tar.bz2
$ mv rtems-source-builder-4.11.3 rtems-source-builder
4,检查依赖环境
$ cd rtems-source-builder
$ ./source-builder/sb-check
检查结果ok
RTEMS Source Builder - Check, 4.11.not_released
Environment is ok
5,编译安装工具链
$ cd $HOME/development/rtems/rtems-source-builder/rtems
$ ../source-builder/sb-set-builder \
--log=build-log.txt \
--prefix=$HOME/development/rtems/compiler/4.11 \
4.11/rtems-arm
需要较长时间,耐心等待。
6,添加工具链路径到环境变量
$ cd $HOME
$ echo 'PATH=$HOME/development/rtems/compiler/4.11/bin:$PATH' >> $HOME/.profile
7,检查工具链版本
注销并重新登录电脑,打开终端,输入
$ arm-rtems4.11-gcc -v
8,下载源码
$ cd $HOME/development/rtems/source
$ wget https://git.rtems.org/rtems/snapshot/rtems-4.11.3.tar.bz2
$ tar jxf rtems-4.11.3.tar.bz2
$ mv rtems-4.11.3 rtems
9,编译源码
$ cd rtems
$ export TARGET="arm-rtems4.11"
$ ./bootstrap
$ cd $HOME/development/rtems/build/br-stm32
$ ../../source/rtems/configure --target=${TARGET} --enable-rtemsbsp=stm32f105rc --enable-tests=samples --prefix=$HOME/prefix/rtems-4.11
$ make
$ make install
10,制作bin文件
$ cd $HOME/development/rtems/build/br-stm32/arm-rtems4.11/c/stm32f105rc/testsuites/samples/hello
$ arm-rtems4.11-objcopy -O binary hello.exe hello.bin
模拟器运行RTEMS
1,编译STM32模拟器
$ cd $HOME
$ git clone https://github.com/beckus/qemu_stm32
$ cd qemu_stm32
$ ./configure --enable-debug --disable-werror --target-list="arm-softmmu"
$ make
2,运行模拟器
$ cd arm-softmmu
$ cp $HOME/development/rtems/build/br-stm32/arm-rtems4.11/c/stm32f105rc/testsuites/samples/hello/hello.bin .
$ ./qemu-system-arm -M stm32-p103 -serial stdio -serial stdio -serial stdio -kernel hello.bin
3,运行结果

真机运行RTEMS
1,编译stlink
下载源码及依赖库
$ cd $HOME
$ git clone git://github.com/texane/stlink.git stlink
$ cd stlink
$ sudo cp etc/udev/rules.d/* /etc/udev/rules.d/
$ sudo udevadm control --reload-rules
$ sudo apt install libusb-1.0-0-dev
下载图形客户端依赖库,不需要可忽略
$ sudo apt install libgtk-3-dev
编译
$ sudo apt install cmake
$ mkdir -p build/Release
$ cd build/Release
$ cmake -DCMAKE_BUILD_TYPE=Release ../..
$ sudo make install
$ echo 'export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib' >> $HOME/.profile
$ sudo ldconfig -v
2,下载bin到Demo板
stlink下载器连到电脑和板子,给板子上电
$ cp $HOME/development/rtems/build/br-stm32/arm-rtems4.11/c/stm32f105rc/testsuites/samples/hello/hello.bin .
$ st-flash write hello.bin 0x08000000
网友评论