微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM/uClinux应用程序的开发

ARM/uClinux应用程序的开发

时间:11-16 来源:互联网 点击:

后面的头文件路径在搜索系统头文件路径前被搜索从而有可能替代系统的头文件,如果有多个这样的参数,则搜索的顺序是从左到右,然后是系统的头文件。

  2)-m 是针对CPU的选项。

  -mcpu=arm7tdmi 说明CPU类型
  -msoft-float 产生包含浮点库的输出
  -fsigned-char 让char类型有符号
  -fomit-frame-pointer 对所有不需要帧指针的函数都不将其保存在寄存器中。
  3) -Os –Wall

  -Wall:所有警告都显示

  Os:优化尺寸,该选项使能所有所有不增加尺寸的O2优化,并且进一步根据尺寸优化

  4) = -DEMBED -D_uclinux_

  -D: 将-Dmacro 后的macro定义为字符串1。

  以下是链接:
  arm-elf-ld -L/root/uClibc/lib -L/usr/local/gnu/arm-elf/lib -L/usr/local/gnu/lib/gcc-lib/arm-elf/3.0.1 -elf2flt –o hello /root/uClibc/lib/crt0.o /usr/local/gnu/lib/gcc-lib/arm-elf/3.0.1/crtbegin.o hello.o
/usr/local/gnu/lib/gcc-lib/arm-elf/3.0.1/crtend.o -lc -lgcc –lc

  其中
  1) 链接工具: arm-elf-ld

  2) -L指明需要链接的库的路径,用法和-I一样,自己的库的路径也可以在这里加入。 -L/root/uClibc/lib -L/usr/local/gnu/arm-elf/lib -L/usr/local/gnu/lib/gcc-lib/arm-elf/3.0.1

  3) –o 后面紧跟生成的最终的文件名

  4)/root/uClibc/lib/crt0.o /usr/local/gnu/lib/gcc-lib/arm-elf/3.0.1/crtbegin.o OBJECTS.o
/usr/local/gnu/lib/gcc-lib/arm-elf/3.0.1/crtend.o

这是需要链接在一起的.o文件

  5) -lc -lgcc –lc -l 后面紧跟的是需要链接的库的名字,一般库的名字是libxxx.a,使用时为-lxxx即可,不加lib和.a。还要注意位置,自己的库文件应该加在他的库前面。

  编译通过后,移植就算完成了,对于比较小的源代码都可以这样,即先分析他的编译选项(用到了那些头文件,库文件等),然后用自己的编译器对照相应参数重新编译一下就行了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top