5.Eclipse集成开发环境

5.Eclipse集成开发环境

Eclipse集成开发环境不仅可以编译裸机工程,还可以调试整个裸机工程,这样当程序异常的时候,可以更加有效的进行修改。接下来就是搭建整个eclipse集成环境:这个调试环境的框架如下图1-1:

5.Eclipse集成开发环境

图1-1

从上面的框架图看到,要实现eclipse在线调试裸机程序,需要安装的软件是eclipse+CDTJLink驱动GDB调试软件,需要连接的硬件是JLink连接pc机和开发板

注意:为了避免干扰,最好对NandFlash进行格式化:图1-2:

5.Eclipse集成开发环境

然后选择y:

5.Eclipse集成开发环境

图1-2

格式化NandFlash不是必须的,只是为了更好确定因素。上面是格式化的过程。格式好了之后重新设置开发板从NandFlash启动。

安装GDB Server:

在配套资料的ARM-Tools文件夹里有GDB软件:图1-3:

5.Eclipse集成开发环境

图1-3

arm-linux-gdb:

1.解压命令:

tar -zxvf arm-linux-gdb-7.5.tar.gz,然后进入该文件夹,执行build-all:./build-all进行安装:图1-4:

5.Eclipse集成开发环境

5.Eclipse集成开发环境

5.Eclipse集成开发环境

图1-4

可以打开刚才运行的sh脚本看看做了哪些工作:图1-5:

/bin/sh

rm -fr gdb-7.5

rm -r /opt/arm-linux-gdb/

tar xvzf gdb-7.5.tar.gz

cd gdb-7.5

./configure --target=arm-linux --prefix=/opt/arm-linux-gdb/ -v

make && make install

cd /opt/arm-linux-gdb/

5.Eclipse集成开发环境

图1-5

该脚本的功能是首先强制删掉当前目录gdb-7.5,删掉/opt/arm-linux-gdb/文件夹。确保环境里没有干扰因素。然后解压当前目录里的gdb-7.5.tar.gz。然后进入解压生成的文件夹gdb-7.5。接着进行gdb配置,执行./configure --target=arm-linux --prefix=/opt/arm-linux-gdb/ -v产生Makefile。接着就是执行make进行编译,最后执行make install进行安装。安装好了之后切换到arm-linux-gdb的目录。

解压安装完成之后,会在/opt/的目录下生成GDB的安装文件,在该文件夹的bin文件夹里的arm-linux-gdb就是调试工具:图1-6:

5.Eclipse集成开发环境

5.Eclipse集成开发环境

图1-6

上面完成了arm-linux-gdb的安装,还需要对该工具进行环境变量的配置,才方便使用。打开/etc/profile配置文件:vim /etc/profile。在最后arm-linux-gcc环境的配置的前面加上:

export PATH=$PATH:/opt/arm-linux-gdb/bin。注意必须是在arm-linux-gcc的前面配置。这是因为工具链里面也有arm-linux-gdb工具。为了确保使用的是现在安装的arm-linux-gdb。图1-7:

5.Eclipse集成开发环境

该版本是6.8的:

5.Eclipse集成开发环境

5.Eclipse集成开发环境

图1-7

测试一下安装是否成功:在命令行执行:arm-linux-gdb,看到刚才安装的gdb是7.5版本的。图1-8:

5.Eclipse集成开发环境

图1-8

安装JLink软件:

先解压:tar -zxvf JLink_Linux_V434a.tgz。图1-9:

5.Eclipse集成开发环境

图1-9

解压完成时候进入该文件夹:图1-10:

5.Eclipse集成开发环境

图1-10

接下来就是把对应的文件拷贝到对应的文件夹。相当于安装:图1-11:

5.Eclipse集成开发环境

图1-11

由于我前面已经装了一次,所以直接覆盖即可。这样就安装好了JLink了。从前面知道,当安装好了JLink之后,就可以来连接开发板了。下面进行测试。

首先是给开发板上电,图2-1:

5.Eclipse集成开发环境

图2-1

给开发板上电后,把JLink接到开发板的JLink接口:图2-2:

5.Eclipse集成开发环境

图2-2

这样硬件就连接好了。接下来就是把JLink从windows 7拉到虚拟机:

在vbox虚拟机的右下角的usb口里找到JLink,把它从windows拉到虚拟机:图2-3:

5.Eclipse集成开发环境

5.Eclipse集成开发环境

图2-3

然后运行一下JLinkGDBServer,看看能够检测到内核:图2-4:

5.Eclipse集成开发环境

图2-4

上面看到JLink成功连接了开发板,检测到了内核ARM11.

安装eclipse:

所谓的安装就是解压:tar -zxvf eclipse-cpp-helios-SR2-linux-gtk.tar.gz -C /usr/local/。完成如下图2-5:

5.Eclipse集成开发环境

图2-5

解压完成后就是等于安装完成。接下来运行eclipse,第一次运行的时候会出现指定默认工程路径的选项,我选的是是:图2-6:

cd /usr/local/eclipse

[root@FORFISH eclipse]# ./eclipse

5.Eclipse集成开发环境

图2-6

当然在上面中你也可以选择你要保存工程的目录。然后点击OK即可。这样就启动了eclipse:图2-7:

5.Eclipse集成开发环境

图2-7

这要eclipse就安装好了。这只是简单的安装好了。为了eclipse能够协调JLink,arm-linux-gdb等工具来方便裸机开发工作。必须安装一个插件。所以需要虚拟机电脑可以连接网络。

安装插件CDT:

打开eclipse后,选择工具栏的Help,在下拉菜单选择Install New Software:会出现Install窗口。图2-8:

5.Eclipse集成开发环境

5.Eclipse集成开发环境

图2-8

然后在Work with框里输入插件的位置:http://opensource.zylin.com/zylincdt。输入完成之后回车,会看到要下载的插件:图2-9:

5.Eclipse集成开发环境

图2-9

然后选中插件点击Next:图2-10:

5.Eclipse集成开发环境

图2-10

再点击Next:图2-11:

5.Eclipse集成开发环境

图2-11

接着选中我接受协议,然后点击Finish,就进行安装了:图2-12:

5.Eclipse集成开发环境

图2-12

安装图2-13:

5.Eclipse集成开发环境

图2-13

安装好了执行需要重启:图2-14,选择Restart Now。

5.Eclipse集成开发环境

图2-14

这样就安装好了插件。

Eclipse裸机调试:

测试eclipse裸机调试的代码在:/home/samba/OK6410_bare,所以直接导入eclipse即可。选择eclipse的工具栏File->New->Makefile Project with Existing Code.图3-1:

5.Eclipse集成开发环境

5.Eclipse集成开发环境

图3-1

在新打开的窗口里选择Browse,找到已经存在工程的目录:然后点右下角的OK:图3-2:

5.Eclipse集成开发环境

5.Eclipse集成开发环境

图3-2

回到原来的界面,点击Finish即可:图3-3:

5.Eclipse集成开发环境

图3-3

这样就把一个工程导入到了eclipse里面。图3-4:

5.Eclipse集成开发环境

图3-4

上面成功导入一个工程。

接下来就是编译了:

编译也很简单,用鼠标,选择该工程名字,右键,然后选择Build project,进行编译:图3-5:

5.Eclipse集成开发环境

5.Eclipse集成开发环境

图3-5

其实eclipse的编译是调用了工程里面的Makefile文件。

上面就编译好了,接下来就是利用刚刚安装的CDT插件来调试该工程。调试之前需要配置一下调试参数。

参数设置:

首先是点击eclipse的工具栏下面有一个像虫子的图标:点击它的下拉箭头之后会看见选项,选择Debug Configurations。图3-6:

5.Eclipse集成开发环境

5.Eclipse集成开发环境

图3-6

点击之后会出现下面的界面:图3-7:

5.Eclipse集成开发环境

图3-7

然后双击Zylin Embedded debug (Native),会生成一个默认的调试配置,名字是OK6410_bare Default,会出现下面的窗口。图3-8:

5.Eclipse集成开发环境

图3-8

然后在C/C++ Application里选择Browse,找到要调试的过程,然后选择过程里的elf文件。点击OK图3-9:

5.Eclipse集成开发环境

5.Eclipse集成开发环境

图3-9

然后切换到Debugger选项窗口。把默认停在main函数的选项去掉。把GDB debugger改为:arm-linux-gdb:图3-10:

5.Eclipse集成开发环境

改后:

5.Eclipse集成开发环境

图3-10

无论调试那一款开发板,在裸机调试之前都必须会开发板进行初始化,这里,初始化的命令,我使用的是飞凌标配的OK6410的,它的名字叫init-6410:图3-11:

5.Eclipse集成开发环境

图3-11

Init-6410的内容:

tiny6410_config

connect to the J-Link gdb server

target remote localhost:2331

Set JTAG speed to 30 kHz

monitor endian little

monitor speed 30

Reset the target

monitor reset

monitor sleep 10

CPU core initialization (to be done by user)

Set the processor mode

monitor reg cpsr = 0xd3

config MMU

flush v3/v4 cache

monitor cp15 7, 7, 0, 0 = 0x0

/ flush v4 TLB /

monitor cp15 8, 7, 0, 0 = 0x0

disable MMU stuff and caches

monitor cp15 1, 0, 0, 0 =0x1002

Peri port setup

monitor cp15 15, 2, 0, 4 = 0x70000013

disable watchdog

monitor MemU32 0x7e004000 = 0x00000000

monitor sleep 10

disable interrupt

monitor MemU32 0x71200014 = 0x00000000

monitor MemU32 0x71300014 = 0x00000000

monitor MemU32 0x7120000C = 0x00000000

monitor MemU32 0x7130000C = 0x00000000

monitor MemU32 0x71200F00 = 0x00000000

monitor MemU32 0x71300F00 = 0x00000000

set clock

monitor MemU32 0x7e00f900 = 0x0000801e

monitor MemU32 0x7e00f000 = 0x0000ffff

monitor MemU32 0x7e00f004 = 0x0000ffff

monitor MemU32 0x7e00f020 = 0x01043310

monitor MemU32 0x7e00f00C = 0xc2150601

monitor MemU32 0x7e00f010 = 0xc2150601

monitor MemU32 0x7e00f024 = 0x00000003

monitor MemU32 0x7e00f014 = 0x00200102

monitor MemU32 0x7e00f018 = 0x00000000

monitor MemU32 0x7e00f01C = 0x14000007

config sdram

monitor MemU32 0x7e00f120 = 0x00000008

monitor MemU32 0x7e001004 = 0x00000004

monitor MemU32 0x7e001010 = 0x0000040f

monitor MemU32 0x7e001014 = 0x00000006

monitor MemU32 0x7e001018 = 0x00000001

monitor MemU32 0x7e00101c = 0x00000002

monitor MemU32 0x7e001020 = 0x00000006

monitor MemU32 0x7e001024 = 0x0000000a

monitor MemU32 0x7e001028 = 0x0000000c

monitor MemU32 0x7e00102c = 0x0000018f

monitor MemU32 0x7e001030 = 0x0000000c

monitor MemU32 0x7e001034 = 0x00000002

monitor MemU32 0x7e001038 = 0x00000002

monitor MemU32 0x7e00103c = 0x00000002

monitor MemU32 0x7e001040 = 0x00000002

monitor MemU32 0x7e001044 = 0x00000013

monitor MemU32 0x7e001048 = 0x00000013

monitor MemU32 0x7e00100C = 0x00010012

monitor MemU32 0x7e00104C = 0x00000b45

monitor MemU32 0x7e001200 = 0x000150f8

monitor MemU32 0x7e001304 = 0x00000000

monitor MemU32 0x7e001008 = 0x000c0000

monitor MemU32 0x7e001008 = 0x00000000

monitor MemU32 0x7e001008 = 0x00040000

monitor MemU32 0x7e001008 = 0x00040000

monitor MemU32 0x7e001008 = 0x000a0000

monitor MemU32 0x7e001008 = 0x00080032

monitor MemU32 0x7e001004 = 0x00000000

Setup GDB for faster downloads

set remote memory-write-packet-size 1024

set remote memory-write-packet-size 4096

set remote memory-write-packet-size fixed

monitor speed 12000

break _start

load

把这些内容拷贝到Commands窗口里,然后点击Apply,再点击Close关闭窗口:图3-12:

5.Eclipse集成开发环境

5.Eclipse集成开发环境

图3-12

到这里才配置好了整个工程的工作。呼呼……接下来运行一下。

在启动调试之前,确保JLInk成功连接开发板:图4-1:

5.Eclipse集成开发环境

图4-1

然后再次点击:Debug Configuretions:图4-2。

5.Eclipse集成开发环境

图4-2

双击配置工程的名字:OK6410_bare Defunct:如果裸机调试启动成功的话,eclipse会自动跳转到Debug模式:图4-3:

5.Eclipse集成开发环境

图4-3

第一次界面有点乱,可以自己调整:调整后的界面:图4-4:

5.Eclipse集成开发环境

图4-4

可以看见界面下面红黑交替的就是在Conmands配置的,初始化板子的硬件平台的。接下来就可以真正地进行裸机单步调试了。

调试:

在菜单栏的Run里有各种调试命令:图5-1:

5.Eclipse集成开发环境

图5-1

可以看到单步调试可以按F5(进入函数调试),F6(不进入函数)等。

按下F5:进入reset函数,图5-2:

5.Eclipse集成开发环境

在按F5,进入set_svc函数:图5-3:

5.Eclipse集成开发环境

图5-3

在运行的过程中,可以查看寄存器,参数等信息的变化:图5-4:

5.Eclipse集成开发环境

图5-4

转化为16进制的:选中要转换的参数,右键,选择Format->Hexadecimal.图5-5:

5.Eclipse集成开发环境

5.Eclipse集成开发环境

图5-5

上面就实现了eclipse裸机调试工程了。当完成调试之后,不要直接关掉eclipse,先关掉调试,红色方块。因为这样,当你需要在再次调试的时候,直接选择调试图标,再选择调试工程即可:图5-6:

5.Eclipse集成开发环境

5.Eclipse集成开发环境

图5-6

点击上面的调试工程名就可以实现调试了。不用才去配置。到这里,一个简单的工程的调试操作完成了。看是一个简单的过程,做个笔记也做了半天。菜鸟加油。

接下来就是试一试直接点击调试里的工程名:正确启动图6-1:

5.Eclipse集成开发环境

图6-1

接下来试着跳转到light_led函数去点灯:图6-2:

这一次为了看到效果,把mov r0,#0xe改为mov r0,#0x3.

还没运行这一句之前:

5.Eclipse集成开发环境

5.Eclipse集成开发环境

图6-2

运行之后:

5.Eclipse集成开发环境

5.Eclipse集成开发环境

图6-3

记得退出按:

5.Eclipse集成开发环境

最后就是,eclipse快捷方式的创建,因为前面老是要经过命令行去启动eclipse,有点烦:创建的过程如下:图6-4:

5.Eclipse集成开发环境

图6-4

如上,鼠标右键,选择Create Launcher..,会出现:图6-5:

5.Eclipse集成开发环境

图6-5

填写好信息,在Command的Browse里选择你自己的eclipse可执行文件:图6-6:

5.Eclipse集成开发环境

图6-6

然后点击Open,得到下图6-5:

5.Eclipse集成开发环境

图6-5

最后点击OK,这样在桌面就多了一个图标,这就是eclipse的快捷方式。直接双击就可以打开eclipse软件:图6-6:

5.Eclipse集成开发环境

图6-6

今天的笔记到此了。明天继续。
原文链接: https://www.cnblogs.com/FORFISH/p/5188684.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/228644

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月13日 下午2:02
下一篇 2023年2月13日 下午2:03

相关推荐