美文网首页
RTEMS运行在STM32上

RTEMS运行在STM32上

作者: tianjianwei | 来源:发表于2019-03-21 00:50 被阅读0次

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,运行结果

相关文章

  • RTEMS运行在STM32上

    RTEMS运行在STM32上 主机环境 Ubuntu 16.04 AMD64 编译RTEMS 1,安装编译环境 2...

  • 2019-12-09

    #linxu下编译i386架构的rtems rtems相关的文件汇总压缩包,下载链接:链接:https://pan...

  • STM32简介

    STM32简介 STM32简介STM32是什么?STM32与ARM的关系STM32F407Z76介绍STM32能做...

  • 行在云上

    年少轻狂 年少莽撞 年少无畏 无迷惘 朝如烈阳 暮如海浪 心怀执念 盼远方 妄欲如风 贪欲如霜 善恶因果 被遗忘 ...

  • 远程调试JAVA进程(jvisualvm+JMX)

    1. 场景描述 java应用运行在无界面的linux服务器上,现在需要在工作站或运维笔记本上通过jvisualvm...

  • NSOperation

    1.1、NSOperationQueue为我们提供两种队列,主队列和自定义队列,主队列运行在主线程上,自定义队列运...

  • STM单片机学习-day2 认识IO口

    STM32 IO口 STM32的IO口可以由软件来配置输入输出模式,主要有输入悬空、输入上拉、输入下拉、模拟输入、...

  • 使用esp8266实现STM32联网(最简单USART方法)

    上一篇 这一篇 esp8266怎么和STM32连接(引脚连接)? STM32使用USART和电脑相互传输数据? 那...

  • 《嵌入式》文集目录

    一、STM32 STM32学习:STM32介绍与学习[https://www.jianshu.com/p/2bca...

  • 行在囧途(上)

    当别克商务车仪表盘里电瓶故障灯突然亮了,显示电量不足需要马上排除故障时,我们一行五人正坐在车内行进在京哈高...

网友评论

      本文标题:RTEMS运行在STM32上

      本文链接:https://www.haomeiwen.com/subject/edcfvqtx.html