全部博文(396)
分类: 嵌入式
2017-04-18 21:22:27
1. 因为eclipse是基于Java运行,所以在运行Eclipse之前,需要安装Java SE,对于Java SE,需要Java SE6 JRE系列的版本,可以在这个位置下载: Java SE 6
只下载安装JRE即可。
2. Eclipse运行平台:Eclipse Platform 3.6.2
Eclipse下载后解压到相应目录,不需安装,可自己创建个快捷方式。
3. CDT插件:CDT 7.0.2
插件下载后,解压。将features和plugins复制到Eclipse目录即可。
请下载RT-Thread向导插件和配置插件:
并下载编译相关工具(包括GNU make.exe,python环境、scons工具等):
请复制向导插件到eclipse/plugins目录。utils解压后,放到eclipse目录下。
更新记录:
正确复制RT-Thread向导插件后,请在Preferences中选择RT-Thread的目录以及GNU GCC工具链目录,如下图所示:
然后就可以开始使用RT-Thread向导插件了,在新建工程时,第一次可以在Others中找到RT-Thread Project,如下图所示:
点击Next,输入对应的工程名,例如LPC1768
点击Next,选择libcpu目录,针对LPC1768可以选择libcpu/arm/cortex-m3,如下图所示:
点击Next,选择RT-Thread的 BSP,请选择bsp/lpc176x,如下图所示:
然后点击Finish。
RT-Thread向导插件这个时候会开始从bsp/lpc176x目录中把这个目录下面的文件、子目录复制一份到新建的工程目录中。而RT-Thread的内核、组件等代码都采用虚拟链接的方式。
点击工程的build按钮,eclipse就会自动编译工程了,如下图所示:
注:当前还没有专门的插件用于调试RT-Thread工程,需要自行配置下。
启动eclipse后,打开菜单栏Help–>Install New Software对话框,输入
然后安装插件即可,如下所示
插件安装完成以后,eclipse会提示重启以使插件生效,重启即可。
首先在eclipse左侧Project Explorer栏中点击待配置工程(这是因为eclipse中可以打开多个工程),这样该工程就为当前工程,然后点击工具栏debug按钮下的debug configurations项,或着点击 eclipse菜单栏 run—>debug configurations
则会打开如下所示对话框
按照图示操作,然后下一步,填入当前工程的axf/elf文件,然后勾选Application Console,如下图所示
然后切换到debugger选项卡,按下图填入gdb,GDB Command file栏不填。
然后切换到commander选项卡,如下所示
可以看到上图有上下两个编辑框,在上面的编辑框中填入(以stm32_103ZE芯片为例)
# connect to the J-Link gdb server target remote localhost:2331 # Enable flash download and flash breakpoints. # Flash download and flash breakpoints are features of # the J-Link software which require separate licenses # from SEGGER. # Select flash device monitor flash device = STM32F103ZE # Enable FlashDL and FlashBPs monitor flash download = 1 monitor flash breakpoints = 1 # Clear all pendig breakpoints monitor clrbp # Set gdb server to little endian monitor endian little # Set JTAG speed to 5 kHz monitor speed 5 # Reset the target monitor reset monitor sleep 100 # Set JTAG speed in khz monitor speed auto # Vector table placed in Flash monitor writeu32 0xE000ED08 = 0x00000000
在下面的编辑框中填入
monitor reg r13 = (0x00000000) monitor reg pc = (0x00000004) break ResetHandler break main continue
注:
到这里zylin的配置已经全部完毕,点击 Apply,保存配置。
在调试之前需要先烧录程序,为了在eclipse中烧录程序,我们可以配置一个脚本实现烧录。
将下面的内容保存成jlink_flash.txt,放在当前工程目录下
h speed 4800 exec device = STM32F103ZE loadbin rtthread.bin 0x8000000 r g qc
注意:
然后配置eclipse外部工具,添加一个菜单项实现烧录。 点击eclipse菜单run–>external tools→external tools configurations.,如下图所示
做如下配置,请根据您的jlink软件实际安装路径配置。
点击Applay后关闭。这样在eclipse菜单run–>external tools下就可以看到新添加的jlink flash项。点击它就可以实现烧录。
启动调试之前,首先我们需要先启动jlink软件包中的gdb server,请根据您的开发板上的调试器的连接方式,选择Jtag或者SWD。
注:如果您的jlink软件版本过低,可能不提供J-Link GDB Server via SWD软件,您需要升级jlink软件包,另,请不要使用jlink 4.42a,这个版本有bug。
这里以SWD为例,启动J-Link GDB Server via SWD软件,如下所示
然后按照下图点击eclipse工具栏debug按钮下的子项,如下所示。
eclipse会自动切换到调试试图,在线调试效果如下所示。
准备工作:
注意:上面生成的SDCARD文件是一个空文件(全是0x0),因此为了被rt-thread的fat文件系统正确识别,你首先需要格式化这个文件,至少有三种方法
将下面保存成windows的批处理文件,例如命名为run.bat,然后放在mini2440主目录下
@echo off @Rem 设置qemu的路径 set qemu=F:\Project\tools @Rem 加入qemu路径到系统路径 path %path%;%qemu% cd %~dp0 @Rem 启动qemu到gdb模式,并且设置gdb的远程连接端口为1234. start qemu-system-arm.exe -s -S -M mini2440 -kernel rtthread-mini2440.axf -show-cursor -sd %qemu%\SDCARD -serial telnet:127.0.0.2:1200,server -serial file:virtualkbd -gdb tcp::1234 @Rem 启动putty连接qemu start putty.exe telnet://127.0.0.2:1200/ @Rem 启动一个cmd控制台窗口用于输入gdb命令 start cmd
请注意,您需要修改上面的第三行set qemu=F:\Project\tools为您的qemu路径
点击这个bat文件,会弹出4个窗口,
在cmd控制台窗口中执行arm-none-eabi-gdb启动gdb,然后使用gdb提供的target remote:1234连接qemu,然后输入c,运行程序,就可以看到运行效果了。
关于gdb的更多用法请参考gdb官方网站。
请先参考上一小节,测试您的gdb是否可以调试qemu中运行的mini2440程序。
使用eclipse的rtt插件创建mini2440工程。
启动eclipse,在菜单栏run→Debug Configuration
按照下图所示配置gdb
配置完成之后,使用上一节提供的脚本启动qemu,然后点击eclipse 菜单栏,Run→Debug,就可以看到已经qemu正常工作了,可以设置断点,单步,查看变量。如下图所示
类似Keil MDK,RT-Thread有专门的针对(基于)代码的图形化界面配置插件。
请在工程栏中选择rtconfig.h,然后鼠标右键从Other…中选择RT-Thread Configurator打开。打开后会出现RT-Thread的配置插件界面:
RT-Thread的配置插件操作的是rtconfig.h头文件,它根据其中的XML规格的注释来提取可配置项,也可以在编辑器中直接修改rtconfig.h文件。插件的初始界面即编辑器的界面,在下面的标签页中还有一栏Configuration Wizard,切换到另外一页去:
从Configuration Wizard我们即可看到rtconfig.h中的可配置项,左边是名称,右边是值。可以在这个界面上进行修改,然后保存时,rtconfig.h头文件也相应的进行更新。
上面各个小节介绍的eclipse编译向导插件,配置插件,目前仅在svn上BSP目录下的lpc176x中提供完全的支持。如果您想要在某个BSP中测试eclipse的编译插件和配置插件,您只需要参考lpc176x下的Sconstruct文件和rtconfig.h做相应修改。
例如,按照上几节的介绍使用eclipse克隆bsp\stm32f40x工程为F:\RTOS\project\stm32f4,创建完成以后,编译,则可能遇到如下问题:
Build of configuration scons for project stm32f4 make all scons --max-drift=1 --implicit-deps-unchanged scons: Reading SConscript files ... ImportError: No module named building: File "F:\RTOS\project\stm32f4\SConstruct", line 8: from building import * make: *** [all] Error 2
这里的提示信息非常明确,即stm32f4目录下的Sconstruct文件的第8行有问题,参考lpc176x目录下Sconstruct文件做修改。将Sconstruct相应部分修改为
# RTT_ROOT = os.path.normpath(os.getcwd() + '/../..') # sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')] # from building import * if os.getenv('RTT_ROOT'): RTT_ROOT = os.getenv('RTT_ROOT') else: RTT_ROOT = os.path.normpath(os.getcwd() + '/../..') sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')] from building import *
说明:Sconstruct是一个python脚本,#号开始行为注释行。
如果遇到了使用问题请检查下:
请检查RTT_ROOT是否指向RT-Thread目录;
请检查PATH中是否包含utils的路径;RTT_ROOT是否指向RT-Thread目录;RTT_EXEC_PATH是否指向arm的GNU GCC工具链;