» 您尚未 登录   注册 | 银行 | 首页调用管理 | 博客 | 帮助 | 社区 | 无图版
华镭社区论坛 -> 应用程序 -> 用GNU工具开发基于ARM的嵌入式系统 (三)
 XML   RSS 2.0   WAP 

--> 本页主题: 用GNU工具开发基于ARM的嵌入式系统 (三) 加入收藏 | 收藏主题 | 上一主题 | 下一主题
reertek




该用户目前不在线
级别: 新手上路
精华: 0
发帖: 18
威望: 19 点
镭: 36 L
贡献值: 0 点
在线时间:1(小时)
注册时间:2008-09-02
最后登录:2009-03-31
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子

用GNU工具开发基于ARM的嵌入式系统 (三)

用GNU工具开发基于ARM的嵌入式系统 (三)



( 4)   用连接器生成最终目标文件


  有了连接脚本文件 ,如下命令可生成最终的目标文件:


   arm-linux-ld-nostadlib-o bootstrap.elf-T link.lds init.o xmrecever.o flash.o


  其中 ,ostadlib表示不连接系统的运行库 ,而是直接从 begin入口 ;-o指明目标文件的名称 ;-T指明采用的连接脚本文件 ;最后是需要连接的目标文件列表。


( 5)   生成二进制代码


  连接生成的 elf文件还不能直接下载执行 ,通过 objcopy工具可生成最终的二进制文件:


   arm-linux-objcopy-O binary bootstrap.elf bootstrap.bin


  其中 -Obinary指定生成为二进制格式文件。 Objcopy还可以生成 S格式的文件 ,只需将参数换成 -O srec。如果想将生成的目标代码反汇编 ,还可以用 objdump工具:


   arm-linux-objdump-D bootstrap.elf


  至此 ,所生成的目标文件就可以直接写入 Flash中运行了。如果要通过自举模式下载 ,还需要转换为自举模式的文件格式 ,相关转换工具可以在摩托罗拉的网站上找到。


  掌握了 GNU工具后 ,开发者就可以开发或移植 C或 C++代码的程序。用户可以不需要操作系统 ,直接开发简单应用程序。但对于更复杂的应用来说 ,操作系统必不可少。目前流行的源代码公开的操作系统如 Linux、 μC/OS都可以用 GNU工具编译。 ARM的 Linux已有很多成熟的版本 ,可以支持 ARM720、 ARM920、 ARM1020等多种处理器 ,读者可从 www.uclinux.orgwww.armdevzone.com上获取最新信息。 Linux移植过程中和处理器相关的代码都放在 arch/arm目录下。对于内核 ,用户需要做的是设定自己系统的内存映像 ,RAM起始地址 ,I/O地址空间和虚拟 I/O地址空间 ,参看 arch/arm/mach-integrator/arch.c文件。除了内核外 ,用户还需要为自己的系统编制各种各样的驱动程序。


4 调试工具


   Linux下的 GNU调试工具主要是 gdb、 gdbserver和 kgdb。其中 gdb和 gdbserver可完成对目标板上 Linux下应用程序的远程调试。 gdbserver是一个很小的应用程序 ,运行于目标板上 ,可监控被调试进程的运行 ,并通过串口与上位机上的 gdb通信。开发者可以通过上位机的 gdb输入命令 ,控制目标板上进程的运行 ,查看内存和寄存器的内容。 gdb 5.1.1以后的版本加入了对 ARM处理器的支持 ,在初始化时加入- target==arm参数可直接生成基于 ARM平台的 gdbserver。 gdb工具可以从 ftp://ftp.gnu.org/pub/gnu/gdb/上下载。

  对于 Linux内核的调试 ,可以采用 kgdb工具 ,同样需要通过串口与上位机上的 gdb通信 ,对目标板的 Linux内核进行调试。由于篇幅所限 ,感兴趣的读者可以从 http://oss.sgi.com/projects/kgdb/上了解具体的使用方法。


结束语


  本文以一个具体的实例为例 ,对 GNU工具中的常用功能作了介绍。其实 GNU工具的功能还远不止这些 ,更进一步的操作有:针对不同处理器 ,不同算法的软件优化、高效的内嵌汇编、大型项目管理功能等。相信 GNU能成为越来越多开发人员的选择。


参考资料


1 摩托罗拉公司 . MC928MX1 user manual

全国统一报名电话:800-886-3788 (免费)
  成都:(028)-85175020 (028)-85194325
QQ:张老师:619646474   杜老师:1070109944
成都睿尔科技 公司网站:www.re-er.com.cn


[楼 主] | Posted: 2009-03-04 17:09
顶端

华镭社区论坛 -> 应用程序