• 5.Eclipse集成开发环境


    5.Eclipse集成开发环境

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

    图1-1

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

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

    然后选择y:

    图1-2

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

    安装GDB Server:

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

    图1-3

    arm-linux-gdb:

    1.解压命令:

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

    图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/

    图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:

    图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:

    该版本是6.8的:

    图1-7

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

    图1-8

    安装JLink软件:

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

    图1-9

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

    图1-10

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

    图1-11

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

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

    图2-1

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

    图2-2

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

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

    图2-3

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

    图2-4

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

    安装eclipse:

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

    图2-5

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

    cd /usr/local/eclipse

    [root@FORFISH eclipse]# ./eclipse

    图2-6

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

    图2-7

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

    安装插件CDT:

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

    图2-8

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

    图2-9

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

    图2-10

    再点击Next:图2-11:

    图2-11

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

    图2-12

    安装图2-13:

    图2-13

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

    图2-14

    这样就安装好了插件。

    Eclipse裸机调试:

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

    图3-1

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

    图3-2

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

    图3-3

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

    图3-4

    上面成功导入一个工程。

    接下来就是编译了:

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

    图3-5

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

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

    参数设置:

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

    图3-6

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

    图3-7

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

    图3-8

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

    图3-9

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

    改后:

    图3-10

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

    图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:

    图3-12

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

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

    图4-1

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

    图4-2

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

    图4-3

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

    图4-4

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

    调试:

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

    图5-1

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

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

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

    图5-3

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

    图5-4

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

    图5-5

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

    图5-6

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

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

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

    图6-1

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

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

    还没运行这一句之前:

    图6-2

    运行之后:

    图6-3

     

    记得退出按:

     

     

     

     

     

     

     

     

     

     

     

     

     

     

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

    图6-4

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

    图6-5

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

    图6-6

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

    图6-5

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

    图6-6

    今天的笔记到此了。明天继续。

  • 相关阅读:
    jar 常用操作
    linux 加载新的磁盘(卷组)
    apache 代理配置
    spring boot datasource 参数设置
    svn 常用命令
    最详细的maven教程
    centos 用户组操作
    ubuntu命令行操作mysql常用操作
    Ruby-Clamp
    maven使用备忘
  • 原文地址:https://www.cnblogs.com/FORFISH/p/5188684.html
Copyright © 2020-2023  润新知