系统运输
由于某种需要,在Windows平台上进行程序开发,目标板基于Micrel芯片( ARMv4t ),其上运行着最小的Linux系统,只有最基本的命令,www 根据这些需求,第一个计划将按以下步骤进行。
1、首先在Windows平台上交叉编译简单的C语言程序,上传到开发板,使其正常运行即可;
2、交叉编译gdb服务器,上传至开发板;
3、进行远程调试。
根据上述计划,首先要寻找Windows环境下的交叉编译环境,参考http://www.very arm.com/arm-none-Linux-gnueabi-gcc,找到arm-2011.03-41-41
arm-none-Linux-gnueabi-gcc hello.c-o hello
目标板和Windows主机通过以太网和串行端口连接,以太网用于上传文件,串行端口用于终端访问。 目标板和Windows主机使用tfpt进行文件传输。 在Windows上,TFTP服务器正在运行,如下图所示。
使用串行终端在目标板上运行以下命令,下载在Windows主机上编译的hello程序:
tftp -gr hello 10.32.2.10
如果使用命令chmod 755 hello添加并运行执行权限,将显示以下错误消息:
Illegal Instruction
这表明程序可以运行,但指令有误。 这可能是因为在Windows上进行交叉编译时没有指定特定的目标体系结构。 (在Ubuntu中使用上述命令交叉编译的程序可以正常执行。 )。 为了解决这个问题,首先在串口终端上查看目标板启动时的信息,知道ARM芯片是arm-none-Linux-gnueabi-gcc-- target-hellet架构,然后进入arm-none-Linux-gnueabi-gcc-- tarm
arm-none-Linux-gnueabi-gcc-March=armv 4t hello.c-o hello-g
编译的程序可以在目标上运行! (运气好)
第一步完成,然后交叉编译gdb服务器。 以前安装的arm-2011.03-41-arm-none-Linux-gnueabi.exe包括在Windows上运行的arm-none-linux-gnueabi-gdb.exe命令要进行远程调试,必须在目标板上进行,于是进入gdb官方网站( http://ftp.gnu.org/gnu/gdb )下载gdb7.6代码。 突然想到,arm-2011.03-41-arm-none-Linux-gnueabi.exe包含在Windows上运行的gdb,因此也不包含在Linux上运行的gdb服务器进入安装目录的搜索,Bingo果然有。 安装目录codesourcery\\\\&; quot; sourcery_g_lite\\&; quot; arm-none-Linux-Gnueabi\__Lingo将此目录下的gdb服务器放在目标版上,就可以真正运行了。 第2步完成(我还是个懒汉,在Windows上有时不再自己编译)。
第三步比较简单,在目标板上运行命令以启动gdb服务器。
./gdbserver10.32.2.80:3333你好
上述命令中的IP是目标板自身的IP地址,端口号由自己指定,不冲突即可。 后面的hello是包含调试信息的被调试器。 然后在Windows上运行arm-none-linux-gnueabi-gdb.exe,进入gdb提示符后,运行target remote 20.32.2.80:3333以获取目标板的
详情请访问云服务器、域名注册、虚拟主机的问题,请访问西部数码代理商官方网站: www.chenqinet.cn