RT-Thread开发 之 Linux环境详细配置步骤(好几个坑)

1、Linux 环境  软件安装


引用:https://blog.csdn.net/wanywhn/article/details/79983753
选择直接在系统仓库里面下载

sudo apt install    gcc-arm-none-eabi
                              gdb-arm-none-eabi
                              binutils-arm-none-eabi
                              scons
                              qemu-system-arm
   
第一个包提供了编译链工具gcc for arm,
第二个是GDB,
第三个是工具集,详见Binutils工具集详解,
第四个是scons是RT-Thread使用的编译系统。

2、RT-thread 软件包


    在RT-thread官网,下载完源码后,将软件包解压,放置在Linux所在的根目录的位置下(此处好几个坑)
自己当时放到“数据盘data”目录下,该数据盘和系统盘如Windows类似显示为两个硬盘,终端输入scons --menuconfig时

总是提示kconfig:没有权限错误,无法进入配置图形界面,折腾了两三天,真快要崩溃了!!!


就在老血快被逼出来之时,突然想到了什么,将解压后RT-thread软件包拷贝到了***Linux系统盘目录里***,
执行scons --menuconfig,界面出来了,顿时泪流到脚底!!!!

  在RTT配置界面选择需要的配置退出后,scons 不像windows那样会自动下载选择的辅助包,
也不会自动执行编译,需要手动进行辅助包下载、编译。

3、env配置工具(linux)


    https://github.com/RT-Thread/env
    下载env配置工具包,解压(放到Linux系统目录相应位置)
    配置env工具环境,进入终端,输入sudo vim ~/.bashrc
    在最后一行添加 export PATH=$PATH:/home/linhai/env-master(根据自己目录进行设置)
    保存退出,执行source ~/.bashrc,保存环境变量。
    在终端内输入env,正常会出现env相关的信息则表示env环境变量设置成功。

4、RT-thread软件包下载

    以stm32f103-atk-nano模板为例,
    在RT-Thread/BSP/stm32/stm32f103-atk-nano/目录内进入终端,
    输入env pkgs --update命令,正常情况下就会成功下载选择的辅助包。

5、编译


    RT-thread在使用Keil时,keil软件会有C99编译选择项,在rtconfig.py的脚本配置中,gcc没有
    C99,在执行scons编译时,会出现C99错误。


    如:
    packages/LedBlink-latest/ledblink.c:152:5: error: 'for' loop initial declarations
     are only allowed in C99 or C11 mode
         for (int i = 0; i < led_num; i++)
         ^
    packages/LedBlink-latest/ledblink.c:152:5: note: use option -std=c99, -std=gnu99,
    -std=c11 or -std=gnu11 to compile your code

    需要以下几步修改:
            使用文本打开rtconfig.py,
                将第20行               EXEC_PATH   = r'C:\Users\XXYYZZ'  
                        改为               EXEC_PATH   = r'/usr/bin'(arm-none-eabi-gcc所在的环境变量目录)
                第46行的 Device 字符串内增加‘ -std=c99’
    保存退出。
    终端内输入scons进行编译。
    默认情况下会编译出rt-thread.elf  及 rtthread.bin文件 输出以下字符
    如:
    LINK rt-thread.elf
    arm-none-eabi-objcopy -O binary rt-thread.elf rtthread.bin
    arm-none-eabi-size rt-thread.elf
       text       data        bss        dec        hex    filename
      72344       1456       2212      76012      128ec    rt-thread.elf
    scons: done building targets.
    
    至此,项目编译完成。  

6、烧录bin文件至设备


    参考:https://segmentfault.com/a/1190000039922834?utm_source=sf-similar-article
    具体操作参考:
    1)下载并安装STLink_Linux驱动

    首先,安装一些过程中会用到的工具。

    输入如下的指令来安装:

    sudo apt-get install git make cmake libusb-1.0-0-dev
    sudo apt-get install gcc build-essential

    然后,爬取stlink的源码,打开所在目录、编译。

    cd ~
    git clone https://github.com/stlink-org/stlink
    cd stlink
    cmake .
    make

    完成编译后,进入bin目录,复制一些东西到系统的指定位置去。然后去到lib目录,再复制一些东西放到系统的指定位置。

    cd bin
    sudo cp st-* /usr/local/bin
    cd ../lib
    sudo cp *.so* /lib64

    最后一条指令中,东西往lib64放还是往lib32放取决于你的系统位数。

    再之后我们来设置udev rules,切到源码的config/udev/rules.d这个目录下,然后把里面的一些东西放到系统的指定位置去。

    cd ../config/udev/rules.d
    sudo cp 49-stlinkv*.rules /etc/udev/rules.d/

    然后,reboot重启,Ctrl + Alt + T开终端,插上stlink,键入lsusb查看有没有叫"xxxx ST-LINK xxx"的设备。有的话,进行下一步确认,

    看看输入st-info --version是否有版本信息显示,输入st-info --probe是否会显示”Found x stlink programmers ......“
    如果一切正常的话,恭喜,STLink驱动安装成功!


    2)使用
        烧录
        st-flash write rt-thread.bin 0x0800000        上传bin文件到自己的stm32板中
        读取
        st-flash read dummy.bin 0 0xffff

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值