android开发环境搭建教程RT-Thread教程一之Linux下开发环境及QEMU配置

前言 这两个月要开始RT-Thread了,在此记录一下过程,也好给后人指一条路。 各种工具安装编译器、调试器 我选择了直接在系统仓库里面下载 sudo apt install gcc-arm-none-eabi gdb-arm-n
原标题:RT-Thread教程一之Linux下开发环境及QEMU配置前言这两个月要开始RT-Thread了,在此记录一下过程,也好给后人指一条路。各种工具安装编译器、调试器我选择了直接在系统仓库里面下载sudoaptinstallgcc-arm-none-eabigdb-arm-none-eabibinutils-arm-none-eabisconsqemu-system-arm第一个包提供了编译链工具,第二个是GDB,第三个是工具集,详见Binutils工具集详解,scons是RT-Thread使用的编译系统。RT-Thread源代码Linux下安装git后在工程目录下(比~/Workplace)执行gitclonehttps://github.com/RT-Thread/rt-thread我们看一下树目录结构➜rt-threadgit:(master)✗tree.-L1.├──AUTHORS├──bsp//板级支持包├──ChangeLog.md├──components//RT-Thread组件目录├──COPYING├──documentation//相关文档├──examples//官方示例├──include//头文件├──Kconfig├──libcpu//平台相关的启动代码及线程切换代码├──README.md├──README_zh.md├──src//RT-Thread源码目录└──tools//RT-ThreadScons脚本目录在这里我么将使用bsp下的qemu-vexpress-a9,进入该目录后可发现如下文件➜qemu-vexpress-a9git:(master)✗tree.-L1.├──applications├──build├──compile_commands.json├──cpu├──drivers├──Kconfig├──link.lds├──main.cpp├──packages├──qemu.bat├──qemu-dbg.bat├──qemu-dbg.sh├──qemu-nographic.sh├──qemu.sh//这是我们的启动脚本├──README.md├──rtconfig.h├──rtconfig.py├──rtconfig.pyc├──rtthread.bin├──rtthread.elf//编译后会输出该文件├──rtthread.map├──SCon├──SConstruct└──sd.binqemu.sh内容如下if[!-f\"sd.bin\"];thenddif=/dev/zeroof=sd.binbs=64Mcount=1//模拟的SD卡文件fiqemu-system-arm-Mvexpress-a9-kernelrtthread.elf-serialstdio-sdsd.bin在运行之前,我们需要先编译整个系统,在当前目录下直接输入scons即可编译出默认配置的系统,输出一个rtthread.elf文件。之后在运行./qemu.sh即可启动启动后如下图所示:进行调试在终端下通过GDB直接调试QEMU配置首先我们要拷贝一份qemu.sh命名为qemu-dbg.sh,给他qemu-system-arm后面添加-s-S参数前一个代表开启一个GDBServer,默认端口号为1234,后一个参数为在启动时冻结CPU,所以我们等会儿需要在GDB下continue以下。修改完后的qemu-dbg.sh如下if[!-f\"sd.bin\"];thenddif=/dev/zeroof=sd.binbs=64Mcount=1fiqemu-system-arm-Mvexpress-a9-kernelrtthread.elf-serialstdio-sdsd.bin-s-S然后直接执行它,结果如下图所示。发现他卡在了这儿,目的达到了。接下来让我们配置GDBGDB设置接下来,我们在另一个终端下输入如下命令arm-none-eabi-gdb-sert-thread.elf-s表示从该文件读取符号表,-e指定了可执行文件。在这里都是同一个文件。正常情况应如下图所示:接下来,输入bmain,然后是c,分别表示在main函数设置断点并且继续执行。最终如下两图所示以上就完成了。Eclipse下进行调试Eclipse在EclipseMarket里面搜索MCU安装GNUMCUEclipse安装完重启之后,在`Run-DebugConfigurations`里面如下图所示配置之后点击Debug即可。结尾以上就是全部过程,期待我们下一次再见面!责任编辑:

本文来自投稿,不代表长河网立场,转载请注明出处: http://www.changhe99.com/a/qBdO5GDorV.html

(0)

相关推荐