RTEMS运行在STM32上

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,运行结果
WX20180915-162758.png

真机运行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
3,运行结果
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容