版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
: 联系关键字:USB转JTAG,USB转串口,调试,Eclipse,OpenOCD,OpenJTAG,,Eclipse,OpenOCD,OpenJTAG开发................................................................................. OpenJTAG套件简 Windows下OpenJTAG套件的使 硬件、安 安装OpenJTAG驱动程 安装OpenOCD、交叉编译工具链、 使用OpenOCD、OpenJTAG烧写程序、调试程 启动OpenOCD,OpenOCD常用命 使用OpenOCD烧写小程序 RAM,并运行、调 使用Eclipse进行开 启动Eclipse,进行简单设置 新建一个Eclipse工程 配置Eclipse工程 使用Eclipse调试程序:以leds、u-boot为 Ubuntu下OpenJTAG套件的使 硬件、安 修改udev规则,使得识别OpenJTAG后自动加载驱 安装OpenOCD、GDB、交叉编译工具链、 使用OpenOCD、OpenJTAG烧写程序、调试程 启动OpenOCD,OpenOCD常用命 使用OpenOCD烧写小程序到RAM,并运行、调 使用Eclipse进行开 启动Eclipse,进行简单设置 新建一个Eclipse工程 配置Eclipse工程 使用Eclipse调试程序:以leds、u-boot、Linux内核为 调试工具如AyAos等。们的安装、使用都很便利,功能强大,但是价格昂贵(几百甚至;还要相应的硬件,比如Jnk、Uk等UBAG对于学生,或者是开发有限的工程师来说,完全可以使用免费的开发工具Eclipse、OpenOCDJTAG转接器(JTAG等)就可以达到接近、甚至超越上述商业的效果。并口JTAG速率太低,一般很少使用。本使用OpenJTAG转换器,配合 OpenJTAG的外观及性能1.11.1,它含3大功能:USB转串口,USBJTAG,表 使用USBIEEE1149.1RS232标7812支持的多种CPU系列:ARM7,ARM9,Cortex-M3,·调试器OpenOCD的安装程序及(Linux/Windows版·烧写多种NorFlash和Nand4个部件:集成开发环境(IDE,IntegratedDevelopmentEnvironment,比如Eclipse)、交叉编译工具链、一个接收命令(复位、交叉编译工具链是开发中最的工具,它被用来编译、、调试程序。在集成开发环境出现之前,通常是先使用其他编辑工具(比如记事本、SourceInsight等)写好供一个现代化的编辑器。Eclipse的操作界面如图1.4所示。下面以一个例子来看看Eclipse是如何与交叉编译工具链协同,来编译、程序的。objs:=nit.oallobjs:=nit.oall:arm-elf-ld-Tmmu.lds-ommu_elfarm-elf-objcopy-Obinary-Smmu_elfmmu.binarm-elf-objdump-D-marmmmu_elf>arm-elf-gcc-Wall-g-c-o$@arm-elf-gcc-Wall-g-c-o$@rm-fmmu.binmmu_elfmmu.disall”命令,它根据Makefile的指示编译出heanit.o、leds.o,然后成elf格式的可执行文件mmu_elf,最后制作二进制可执行文件mmu.bin、制作反汇编文件mmu.dis。当点击Eclipse的菜单“Project->Clear...”时,就相当于在命令行里执行“makeclean”命令,它根据Makefile的指示删除mmu.bin、mmu_elf、mmu.dis、hea 当在Eclipse里按下“ExternalTools”按钮时,它将根据当前工程的配置信息启动的调试器arm-elf-gdb.exe(Windows下)或arm-linux-gdb(Linux)下,这将在后面说明。、清除程序,根据配置信息启动守护进程OpenOCD、调试器(arm-elf-gdb.exe或Eclipse的作用并不仅仅是提供按钮来启动其他程序,它的更大用处在于使调试程序更加查看CPU寄存器、点击按钮即可暂停/重新运行程序等等。其实这些功能也是调试器(arm-elf-gdb.exearm-linux-gdb)Eclipse再次把它们“封装”起来,使得“傻Eclipse进行调试时,它会自动启动调试器(arm-elf-gdb.exearm-linux-gdb)。请参考图1.3,Eclipse使用GDB/MI协议与调试器进行通信。令“$m0xb2ffffec,4#cs”RSP协议(RemoteSerialProtocol),表示从内存地址0xb2ffffec处读出4字节,如图1.6所示。1.6调试器与OpenOCD1.7“ICE宏单元”(EmbeddedICEmacrocell)的部件,借助它可以对系统进行实时仿真和调试,要通过JTAG接口来它。JTAG接口板完成USB协议到JTAG协议的转换,1.81.8JTAGCPUWindows下OpenJTAG套件的使硬件、安如果只是想把OpenJTAG当作USB2.1.1安装OpenJTAG次是“USBSerialPort”,安装方法完全一样。中,点击“设备管理器D”。100ASKSerialPort、USBCompositeDevice。如图2.5所示。2.5安装OpenOCD、交叉编译工具链、 如果系统中已经安装了高于1.4.2版本的java运行环境,就不用安装第4个文如图2.7所示:如果这个命令出错或是版本不大于1.4.2,则需要安装2.7java05.eclipse-cpp-ganymede-win32.zip是Eclipse压缩包,解压即可,无需安装即可使用。建议将它解压到C:\ProgramFiles “arm-elf-gcc--version2.8所示。如果这些命令没有出错,则安装成功。2.8对于S3C2410S3C2440开发板,大多使用sjf2410.extsjf2440.exe等工具通过并口JTAG接口板烧写程序,并口JTAG的速率非常低,烧写128K的文件至少耗时10多分钟。H-JTAGJTAG接口板并且速度很快,但是目前只支持烧写NorFlash,不支持NandFlash。注意:OpenOCDCFINorFlashOpenOCDu-boot当然也支持NandFlash。本节都假设工 在 下。假设已经把光盘上 到了 启动OpenOCD,OpenOCD线连接OpenJTAG与开发板时,开发板一定要上电)USBOpenJTAG和计openocd-ftd2xx的运行需要一些配置信息,这些配置信息写在E:\eclipse_projects\openocd.cfg文件中,在命令行里进入E:\eclipse_projects ,执行openocd-ftd2xx命令即可启动OpenOCD,如图2.9所示。2.9在Windows注意:openocd.cfg中有一行“#arm7_9fast_memory_accessenableopenocd-ftd2xx运行出错,请确认开发板是否已经供电。如果供电正常,则先拔下重新启动openocd-ftd2xx。OpenOCD启动后,在另一个命令行中执行“netlocalhost4444OpenOCD,以后就可以在net界面操作OpenOCD了:包括读/Flash,使用命令行的方式调试程序(使用图形界面调试程序需要使用Eclipse)。OpenOCD的使用文档是“开始->程序->OpenOCD-> ation”,表 目标板状态处理命令(stateresumestepbp<addr><length>rbp内 指令(Memoryaccessmdw<addr>mdh<addr>mdb<addr>mww<addr>mwh<addr>mwb<addr>load_image<file><address>dump_image<file><address>CPU架构相关命令(ArchitectureSpecificarmv4arm7_9sw_bkpts使能或断点,在ARMv4系统中有两个硬件断点,断点将占用一个硬件断arm920tcp15<num arm920tmd<bhw>_physaddr> arm920tmw<bhw>_physaddr> arm920tvirt2phys 其script执行file文件中下面试验一下,S3C2410或S3C2440从Nand启动时,内存地址是0;从NorS3C2410、S3C2440有4K的RAM,当程序小于4K时,可以通过OpenOCD直接把程序烧到RAM中、运行、调试。(1) ,执行“make”命令,如图2.12所示。2.12注意:程序之前先使用”命令暂停单板,才能代码;如果使用”命的U或et52令和后U是D确在net界面,先执行“load_imageleds\leds_elfleds_elf里面的信息0的内存处,“load_imageleds\leds.bin0x0”可以达到同样的效果;然后执行“resume0x0”命令执行程序。如图2.13所示。使用“arm7_9sw_bkpable”命令使能断点,使用bp命令设置断点,使用rbp命令删除断点。如图2.14所示。代码处设置断点,如图2.15所示。215leds.c②使用Eclipse使用OpenOCDu-boot,通过u-boot烧写Nor/Nandu-boot.cmd”命令实现的。u-boot.cmd文件就是把下面(1)、(2)小节所描述令写在一起然后启动它,就可以使用u-boot来烧写Nor/NandFlash了──u-boot的功能及速度都比一般在SDRAM能被之前,必须初始化控制器,这可以通过一个特定的小程序到RAM中,并运行它,由它来进行初始化,这个程序在E:\eclipse_projects\init下注意:程序之前先使用”命令暂停单板,才能代码;如果使用”命的U或et52令UDinit.bin是位置无关的代码所以无论是从NorFlashNandFlash启动,都可以将它到RAM去运行──不同启动方式下RAM的地址不同,NorFlash启动时,地址是0x40000000;NandFlash启动时,地址是0。启动OpenOCD(参考图 load_imageinit\init.binresumeload_imageinit\init.binresumeNorFlash启动load_imageinit\init.binresume load_imageinit\init.binresume(2)、运行u-load_imageu-boot\u-boot.bin0x33f80000resume0x33f80000u-bootE:\eclipse_projects\u-boot\u-boot.binnetload_imageu-boot\u-boot.bin0x33f80000resume0x33f80000U-BootU-Boot1.1.6(Sep232008-DRAM:64Flash:1NAND:64******Warning-badCRC,usingdefaultenvironment UsethesestepstoprogramtheimagetoInRunthe'halt'commandtohaltu-Runthe'load_image<file><address>'commandtoloadfiletoSDRAMRunthe'resume'commandtoresumeu-bootInu-boot,usetheflashcommandstoprogramtheimagetoOr,usethetft fscommandtodownloadfile,andthenprogramtheflash.现在,可以通过u-boot来烧写文件了,有两种方法将文件到单板内存中①通过 halt:暂停u-load_imagefile>address>:将文件烧写到内存中(这个地址一般取0x30000000) halt:暂停u-load_imagefile>address>:将文件烧写到内存中(这个地址一般取0x30000000)u-boot字都是16进制的。1.291.30Flash的长度、烧写的数据长度,这些数值都是根据要烧写的度都是0x30000,一是为了与Flash的可擦除长度相配(16K的整数倍),二是方便。支持S3C2410、可以烧写NorFlashNand支持CS8900或DM9000网卡、USB传输(通过OpenOCD、启动时,USB功能注意:单板从NandFlash启动时,无法操作NorFlash启动Eclipse在Eclipse的安装C:\ProgramFiles\eclipse下,双击启动Eclipse,等待一2.19所示界面。在里面设置工作为E:\eclipse_projects,并选择“UsethisasthedefaultanddonotaskagainE:\eclipse_projects作为缺省,并不再提示。新建一个Eclipse2.21的界面中,选择菜单项“File->New->CProject2.22ledsE:\eclipse_projects\leds下已经有源文件,则这些文件会被自动加入工。如果E:\eclipse_projects\leds是空的话,或者想添加新文件时,可以使E:\eclipse_projectstest_file_to_add.txt,然后以它为例介绍 “Intofolder”。如图2.25,点击“Finish”按钮即可添加文件。配置EclipseEclipse工程后,需要进行一些配置。在“Project”菜单里,点击去掉“BuildAutomatically”前面的标记,表示不自动编译工程,如图2.27所示。
选择其中的“C/C++Build->Discoveryoptions”,将“Compilerinvocationcommand”改为arm-elf-gcc.exe(前面将YAGARTO交叉编译工具链安装在C:\ProgramFiles\yagarto 如图2.30所示。继续选择“C/C++BuildSettings”,在“BinaryParsers”中选择“GNUElfParser”(先换成arm-elf-addr2line.exe和arm-elf-c++filt.exe,如图2.31所示(注意:设置为arm-elf-addr2line.exe和arm-elf-c++filt.exe之后,再次打开这个框,可能里面的文字会再次变为addr2line和c++filt,这没有影响)。开始编译程序,如图2.32所示;编译过程见图2.33。2.33图2.35)。图图2.34点击此菜单项弹出清除图2.35点击此菜单项弹出清除 序是在SDRAM中运行,还要使用init.bin程序来初始化控制器。下面以两个例子来进行说明,leds程序在RAM运行,无需运行init.bin来进行初始化;u-boot程序在SDRAM中运行,需要运行init.bin来进行初始化。#define#define #defineCONFIG_SKIP_RELOCATE_UBOOT Configurations…在图2.38中,然后点击左上角 按钮后,配置界面将发生变化,如图2.39所示,Files\yagarto\bin\arm-elf-gdb.exe”,设置“GDBcommandfile”为空。当上述设置都完成后,然后点击“Apply”“Close”退出 它们写进Eclipse中3333接口,即连接monitorarm920tcp1520monitorarm7_9sw_bkp breakmain
MMU,以防止单板上的程度已经使能//加载使用init.bin初始 它们写进Eclipse中3333接口,即连接monitorarm920tcp1520 monitorarm7_9sw_bkp //使能软中断monitorload_imageE:\eclipse_projects\init\init.binmonitorresume0x0monitorhaltinit.bin RAMu-小节),然后参考“(3)Configurations…弹出的窗口如图2.44所示,在里面选中“Program,然后点击左上角 按钮可以通过命令行启动OpenOCD(2.2.1小节如果参照“(2)配置Eclipse的外部工具”配置了外部工具,则可以点击图标右边按钮启动OpenOCD。图2.47在框里通过按钮启动,只需要启动1次。Configurations…,图2.49在框里通过按钮启动调试边的小箭头,从中选择“ledsDefault”(对于leds工程),如图2.50所示。=(//iLED1-4”左边的边框就可以设置断点,然后不断点击“Resume”按钮,就可以看到4个LED逐渐地变化。中。对于光盘中的u-boot,已经增加的自动识别代码,无需定义这个宏。在Eclipse下编译的。E:\eclipse_projects\u- 首先,在E:\eclipse_projects\u-boot 然后,仿照前面创建leds工程的方法创建u-boot工程。 monitorarm7_9sw_bkp monitor monitorarm7_9sw_bkp monitorload_imageE:\eclipse_projects\init\init.bin0x0monitorresume0x0break图2.56指定源码位置:由于u-boot代码不在E:\eclipse_projects\u-boot u-boot-1.1.6_OpenJTAG下,需要自己指定。配置完成后,先启动OpenOCD,然后启动“u-bootDefault”调试器,稍等一会就可以看到如图1.69所示的界面,u-boot停在start_armboot函数的第一条指令上。硬件、安如果只是想把OpenJTAG当作USB3.1.1$sudocp/media/cdrom0/Ubuntu/install/50-ftdi.rules把光盘文件Ubuntu/install/50-ftdi.rules$sudocp/media/cdrom0/Ubuntu/install/50-ftdi.rules$sudoudevcontrol有些Linux版比如Ubuntu8.04,没$sudoudevcontrol$ls/dev/ttyUSB*-crw-rw----1rootdialout188,02008-10-0313:25crw-rw----1rootdialout188,12008-10-0313:25将OpenJTAG板子接到PC的USB$ls/dev/ttyUSB*-crw-rw----1rootdialout188,02008-10-0313:25crw-rw----1rootdialout188,12008-10-0313:25$sudoapt-getinstall$sudoapt-get$sudoapt-getinstall$sudoapt-getsetline/dev/ttyUSB1 setspeed115200setcarrier-watchoffsethandshakenonesetflow-controlnonesetfiletypebinsetfilenamelitsetrecpack1000sedpacksetsetline/dev/ttyUSB1 setspeed115200setcarrier-watchoffsethandshakenonesetflow-controlnonesetfiletypebinsetfilenamelitsetrecpack1000sedpacksetwindow然后,运行“$sudokermitc”命令即可启动串口;要想关闭串口,先同时按住“Ctrl” 按照图3.1所示进行设置,然后选择“Savesetupasdfl”。图 安装OpenOCD、GDB、交叉编译工具链、安装OpenOCD、$sudocp/media/cdrom0/Ubuntu/install/openocd$sudocp/media/cdrom0/Ubuntu/install/arm-linux-gdb$sudocp/media/cdrom0/Ubuntu/install/openocd$sudocp/media/cdrom0/Ubuntu/install/arm-linux-gdb$ od+xs/usr/bin/openocd/usr/bin/arm-linux-如果Ubuntu还没有安装交叉编译工具链(可以执行“arm-linux-gccv$cp/media/cdrom0/Ubuntu/install/arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2$cd$tarxjfarm-linux-gcc-3.4.5-glibc-$cp/media/cdrom0/Ubuntu/install/arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2$cd$tarxjfarm-linux-gcc-3.4.5-glibc-$cp/media/cdrom0/Ubuntu/install/openocd.cfg $cp/media/cdrom0/Ubuntu/install/openocd.cfg$exportPATH=$PATH:/work/tools/gcc-3.4.5-glibc-$exportPATH=$PATH:/work/tools/gcc-3.4.5-glibc-安装sudoapt-getinstallsun-java6-sudoapt-getinstallsun-java6-sudoapt-getinstallsun-java6-sudoapt-getinstallsun-java6-sudoupdate-alternatives--configsudoupdate-alternatives--config
3.2sun-java6$cd$sudotarxjfeclipse-SDK-3.4.1-linux-gtk_cdt-5.0.1.tar.bz2-C$cd$$cd$sudotarxjfeclipse-SDK-3.4.1-linux-gtk_cdt-5.0.1.tar.bz2-C$cd$ od775eclipse-文件到$sudocp/media/cdrom0/Ubuntu/install/eclipse$ od+x$sudocp/media/cdrom0/Ubuntu/install/eclipse.desktop$ od+r$openocd-$arm-linux-gdb$openocd-$arm-linux-gdb$arm-linux-gcc-$java-JTAGJTAG128K的文件至少耗时10多分钟。H-JTAGJTAG接口板、速度很快,但是目前只支持烧写NorFlash,不支持NandFlash;并且只能在Windows下运行。注意:OpenOCDCFINorFlashOpenOCDu-boot到单板内存后,启动u-bootFlashCFI接口、JEDECNorFlash,当然也支持NandFlash。本节都假设工 在 下。假设已经把光盘上 启动OpenOCD,OpenOCD线连接OpenJTAG与开发板时,开发板一定要上电)USBOpenJTAG和计在运行openocd之前,Ubuntu会自动生成/dev/ttyUSB0、/dev/ttyUSB1两个设备节点。注意:如果是使用VMwareUbuntu,那么Vmware的版本至少为6.0,否则对支持USB设备;二是接上OpenJTAG时,VMware处于前openocd的运行需要一些配置信息,这些配置信息写在/work/eclipse_projects/openocd.cfg 这时候可以发现/dev/ttyUSB0设备了,如图3.6所示。3.6在Ubuntu注意:openocd.cfg中有一行“#arm7_9fast_memory_accessenableopenocd-ftd2xx运行出错,请确认开发板是否已经供电。如果供电正常,则先拔下重新启动openocd-ftd2xx。OpenOCD启动后,在另一个命令行中执行“netlocalhost4444OpenOCD,以后就可以在net界面操作OpenOCD了:包括读/Flash,使用命令行的方式调试程序(使用图形界面调试程序需要使用Eclipse)。图3.7Ubuntu下net登录OpenOCD的界表 目标板状态处理命令(stateresumestepbp<addr><length>rbp内 指令(Memoryaccessmdw<addr>mdh<addr>mdb<addr>mww<addr>mwh<addr>mwb<addr>load_image<file><address>dump_image<file><address>CPU架构相关命令(ArchitectureSpecificarmv4arm7_9sw_bkpts使能或断点,在ARMv4系统中有两个硬件断点,断点将占用一个硬件断arm920tcp15<num arm920tmd<bhw>_physaddr> arm920tmw<bhw>_physaddr> arm920tvirt2phys 其script执行file文件中下面试验一下,S3C2410或S3C2440从Nand启动时,内存地址是0;从NorS3C2410、S3C2440有4K的RAM,当程序小于4K时,可以通过OpenOCD直接把程序烧到RAM中、运行、调试。(1)以光盘上的/work/eclipse_projects/leds程序为例,先编译程序:在命令行进入文件源码所 ,执行“make”命令,如图3.9所示。3.9(2)、运行程序注意:程序之前先使用”命令暂停单板,才能代码;如果使用”命的U或et52令和后U是D确在net界面,先执行“load_imageleds/leds_elfleds_elf里面的信息0的内存处,“load_imageleds/leds.bin0x0”可以达到同样的效果;然后执行“resume0x0”命令执行程序。如图3.10所示。使用“arm7_9sw_bkpable”命令使能断点,使用bp命令设置断点,使用rbp命令删除断点。如图3.11所示。LEDLED就再次变化、再次停代码处设置断点,如图3.12所示。arm-linux-gdbleds.cEclipse使用OpenOCDu-boot,通过u-boot烧写Nor/Nandu-boot.cmd”命令实现的。u-boot.cmd文件就是把下面(1)、(2)小节所描述令写在一起然后启动它,就可以使用u-boot来烧写Nor/NandFlash了──u-boot的功能及速度都比一般在SDRAM能被之前,必须初始化控制器,这可以通过一个特定的小程序到RAM中,并运行它,由它来进行初始化,这个程序在/work/eclipse_projects/init注意:程序之前先使用”命令暂停单板,才能代码;如果使用”命的U或et52令UD以将它到RAM去运行──不同启动方式下RAM的地址不同,NorFlash启动时,地址是0x40000000;NandFlash启动时,地址是0。启动OpenOCD(参考图3.6)、net登录(参考图3.7)后,执行以下命令、运行load_imageinit/init.binresume①load_imageinit/init.binresume②NorFlash启动load_imageinit/init.binresume load_imageinit/init.binresume(2)、运行u-load_imageu-boot/u-boot.bin0x33f80000resume0x33f80000u-boot的可执行文件为/work/eclipse_projects/u-boot/u-boot.bin,接着在load_imageu-boot/u-boot.bin0x33f80000resume0x33f80000U-BootU-Boot1.1.6(Sep232008-DRAM:64Flash:1NAND:NAND:64***Warning-badCRC,usingdefaultenvironment UsethesestepstoprogramtheimagetoInRunthe'halt'commandtohaltu-Runthe'load_image<file><address>'commandtoloadfiletoSDRAMRunthe'resume'commandtoresumeu-bootInu-boot,usetheflashcommandstoprogramtheimagetoOr,usethetft fscommandtodownloadfile,andthenprogramtheflash.现在,可以通过u-boot来烧写文件了,有两种方法将文件到单板内存中①通过 halt:暂停u-load_imagefile>address>:将文件烧写到内存中(这个地址一般取0x30000000) halt:暂停u-load_imagefile>address>:将文件烧写到内存中(这个地址一般取0x30000000)②通过u-boot字都是16进制的。1.291.30Flash的长度、烧写的数据长度,这些数值都是根据要烧写的度都是0x30000,一是为了与Flash的可擦除长度相配(16K的整数倍),二是方便。在u-boot中使用nfs命令之前,要先启动NFS服务:首先在Ubuntu的/etc/exports文件增 (r,sync,no_root_sqash支持S3C2410、可以烧写NorFlashNand支持CS8900或DM9000网卡、USB传输(通过OpenOCD、启动时,USB功能不可注意:单板从NandFlash启动时,无法操作NorFlash启动Eclipse从图2.4所示的启动菜单中启动Eclipse,等待一会,可以看到如图3.16所示界面。在里 表示使用/work/eclipse_projects作为缺省 新建一个Eclipse3.18的界面中,选择菜单项“File->New->Project3.19Project表示打开“C/C++”。图3.22选择打开 leds工程时,如果/work/eclipse_projects/leds下已经有源文件,则这些文件会被自动加入工。如果/work/eclipse_projects/leds是空的话,或者想添加新文件时,可点击“Next”,打开“Import”框,在里面指定源“Fromdirectory”、选择要导入的文件、指定目的“Intofolder”。如3.24,点击“Finish”按钮即可添加文件。配置EclipseEclipse工程后,需要进行一些配置。在“Project”菜单里,点击去掉“BuildAutomatically”前面的标记,表示不自动编译工程,如图3.26所示。
选择其中的“C/CBuildDiscoveryoptions”,将“Compilerinvocationcommand”改为arm-linux-gcc,如图3.29所示。继续选择“C/C++Build->Settings”,在“BinaryParsers”中选择“GNUElfParser”(先换成arm-linux-addr2line和arm-linux-c++filt,如图3.30所示(注意:设置为arm-elf-addr2line.exe和arm-elf-c++filt.exe之后,再次打开这个框,可能里面的文字会再次变为addr2line和开始编译程序,如图3.31所示;编译过程见图3.32。3.32图3.34)。图图3.33点击此菜单项弹出清除图3.34点击此菜单项弹出清除 序是在SDRAM中运行,还要使用init.bin程序来初始化控制器。下面以三个例子来进行说明,leds程序在RAM运行,无需运行init.bin来进行初始#define#define /*SDRAM#defineCONFIG_SKIP_RELOCATE_UBOOT Configurations…在图3.37中,然后点击左上角 按钮后,配置界面将发生变化,如图3.示,于linux-工程则是“linux-Default”。leds工程,这个文件leds_elfu-boot工程,这个文件u-boot;对linux-工程,这个文件是vmlinux。如图3.39所示。设置“GDBcommandfile”为空。当上述设置都完成后,然后点击“Apply”“Close”退出①对于leds工程,这些命令如下(“//”开始的是注释 它们写进Eclipse中3333接口,即连接monitorarm920tcp1520monitorarm7_9sw_bkp breakmain
MMU,以防止单板上的程度已经使能//加载u-bootu-boot是在SDRAM使用init.bin初始 它们写进Eclipse中3333接口,即连接monitorarm920tcp1520 monitorarm7_9sw_bkp //使能软中断monitorload_image/work/eclipse_projects/init/init.binmonitorresume0x0monitorhaltinit.bin RAMu-小节),然后参考“(3)Configurations…弹出的窗口如图3.43所示,在里面选中“Program,然后点击左上角 按钮可以通过命令行启动OpenOCD(3.2.1小节如果参照“(2)配置Eclipse的外部工具”配置了外部工具,则可以点击图标右边按钮启动OpenOCD。图3.46在框里通过按钮启动,只需要启动1次。Configurations…,图3.48在框里通过按钮启动调试边的小箭头,从中选择“ledsDefault”(对于leds工程),如图3.49所示。=(//iLED1-4”左边的边框就可以设置断点,然后不断点击“Resume”按钮,就可以看到4个LED逐渐地变化。注意:调试网上的u-boot时,需要定义CONFIG_SKIP_LOWLEVEL_INIT,它表示对于光盘中的u-boot,已经增加的自动识别代码,无需定义这个宏。/work/eclipse_projects/u- 然后,仿照前面创建leds工程的方法创建u-boot工程。 monitorarm7_9sw_bkp monitorload_image monitorarm7_9sw_bkp monitorload_image/work/eclipse_projects/init/init.bin0x0monitorresume0x0break图3.55~3.56指定源码位置:由于u-boot代码不在/work/eclipse_projects/u-boot u-boot-1.1.6_OpenJTAG下,需要自己指定。然后点击“OK”,最后在再次弹出的框中输入源码位置“/work/eclipse_projects/u-boot/u-boot-1.1.6_OpenJTAG”,并选中“Searchsubfolders”。配置完成后,先启动OpenOCD,然后启动“u-bootDefault”调试器,稍等一会就可以看到如图3.57所示的界面,u-boot停在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度财务信息系统集成合同3篇
- 2024石子深加工技术研发与应用合同3篇
- 2024玩具乐园设备采购及租赁服务合同3篇
- 2024版影视作品版权转让与授权播放合同
- 2025年松树造林项目采购合同3篇
- 二零二五版船舶光租及船舶安全管理体系合同3篇
- 二零二五年度安置房项目公共设施维护合同3篇
- 2025年度淋浴房绿色环保材料采购与安装服务合同4篇
- 2025年度铝材贸易结算与风险管理合同4篇
- 二零二五年度跨境电商进口采购合同3篇
- 领导沟通的艺术
- 发生用药错误应急预案
- 南浔至临安公路(南浔至练市段)公路工程环境影响报告
- 绿色贷款培训课件
- 大学生预征对象登记表(样表)
- 主管部门审核意见三篇
- 初中数学校本教材(完整版)
- 父母教育方式对幼儿社会性发展影响的研究
- 新课标人教版数学三年级上册第八单元《分数的初步认识》教材解读
- (人教版2019)数学必修第一册 第三章 函数的概念与性质 复习课件
- 重庆市铜梁区2024届数学八上期末检测试题含解析
评论
0/150
提交评论