作者:爱我如深海

原文链接:

这两个月要开始RT-Thread了,在此记录一下过程,也好给后人指一条路。

我选择了直接在系统仓库里面下载

sudo apt install gcc-arm-none-eabi gdb-arm-none-eabi binutils-arm-none-eabi scons qemu-system-arm

第一个包提供了编译链工具,第二个是GDB,第三个是工具集,详见

Binutils工具集详解,scons是RT-Thread使用的编译系统。

Linux下安装git后在工程目录下(比~/Workplace)执行git clone -Thread/rt-thread 我们看一下树目录结构

├── libcpu      //平台相关的启动代码及线程切换代码

在这里我么将使用bsp下的qemu-vexpress-a9,进入该目录后可发现如下文件

├── rtthread.elf        //编译后会输出该文件

qemu.sh内容如下

if [ ! -f "sd.bin" ]; then

在运行之前,我们需要先编译整个系统,在当前目录下直接输入scons即可编译出默认配置的系统,输出一个rtthread.elf文件。 之后在运行./qemu.sh即可启动

启动后如下图所示:

首先我们要拷贝一份qemu.sh命名为qemu-dbg.sh,给他qemu-system-arm后面添加-s -S参数前一个代表开启一个GDBServer,默认端口号为1234,后一个参数为在启动时冻结CPU,所以我们等会儿需要在GDB下continue以下。 修改完后的qemu-dbg.sh如下

然后直接执行它,结果如下图所示。

发现他卡在了这儿,目的达到了。接下来让我们配置GDB

接下来,我们在另一个终端下输入如下命令 arm-none-eabi-gdb -se rt-thread.elf -s表示从该文件读取符号表,-e指定了可执行文件。在这里都是同一个文件。 正常情况应如下图所示:

接下来,输入b main,然后是c,分别表示在main函数设置断点并且继续执行。

最终如下两图所示

以上就完成了。

Eclipse在Eclipse Market里面搜索MCU安装GNU MCU Eclipse

安装完重启之后,在`Run-Debug Configurations`里面如下图所示配置

以上就是全部过程,期待我们下一次再见面!

RT-Thread 近期活动

1.北京站RT-Thread沙龙:除了嘉宾关于RT-Thread入门经验的精彩主题分享,这次的workshop内容是,分组动手制作一个基于RT-Thread的物联网应用。

2.武汉站RT-Thread沙龙,预告9月份,主题有经验分享、sqlite等

让物联网终端的开发变得简单、快速,芯片的价值得到最大化发挥。GPLv2+协议,可免费在商业产品中使用。