嵌入式linux基础知识累积

分享到:
点击量: 221187

  一、GCC工具

  GCC是一个全功能的ANSI C兼容编译器。

  例子:gcc –o test test.c 和./test

  基本用法是:gcc [options] [filename]

  1.1 编译选项

  -o 为将产生的可执行文件指定一个文件名。

  -c 告诉GCC仅把源代码编译成目标代码而跳过会变和链接的步骤,产生.o的目标代码文件

  -s 告诉GCC在为C代码产生了汇编语言文件后,就停止编译,产生.s的扩展名汇编语言文件。

  -E 告诉编译器仅对输入文件进行预处理。

  -O 告诉GCC对源代码进行基本的优化。

  -O2 选项告诉GCC产生尽可能小和尽可能快的代码。

  二、GNU Make

  在linux环境下使用GNU的Make工具能够比较容易的构建一个属于你自己的工程,整个工程的编译只需要一个命令就可以完成编译、链接以至于*后的执行。

  三、GDB

  linux包含一个叫GDB的GNU调试程序。GDB是一个用来调试C和C++程序的强大调试器,它使用户能在程序运行时观察程序的内部结构和内存的使用情况。

  gdb常见命令:

  1、file:装入想要调试的可执行文件

  2、kill:终止正在调试的程序

  3、list:列出产生执行文件的源代码的一部分

  4、next:执行一行源代码但不进入函数内部

  5、step:执行一行源代码而且进入函数内部

  6、run:执行当前被调试的程序

  7、quit:终止gdb

  8、watch:能监视一个变量的值而不管它何时被改变

  9、print:显示表达式的值

  10、break:在代码里设置断点,这将使程序执行到这里时被挂起

  11、make:不退出gdb就可以重新产生可执行文件

  12、shell:不离开gdb就执行UNIX shell命令

  四、交叉编译环境

  交叉编译环境就是在一台计算机上编译软件,其生成的软件在另一台不同类型处理器的机器上运行。

  总结应用交叉编译环境时,嵌入式linux软件开发的流程如下:

  (1)要有一台PC机和一个嵌入式开发板,这是硬件基础。

  (2)在PC上安装linux操作系统。

  (3)在linux上安装交叉编译工具。

  (4)在linux环境编译代码文本,使用交叉编译器编译,调试器调试。

  (5)完成挑时候,通过连接PC机的串口、USB口和网口,将程序下载到目标板上。

  (6)在目标板上运行和测试程序。

  五、NFS方式连接主机(嵌入式uClinux和Ubuntu9.10上NFS实验)

  如果每次在开发板上测试程序时,都需要烧写FLASH的话,将是一件十分麻烦的事情(对于我们的嵌入式Linux开发来说,还需要重新生成根文件系统镜像才能烧录)。利用

  NFS方式---将主机的硬盘作为开发板的网络硬盘来使用。

  NFS是一种网络文件系统。

  常见命令集合:

  (1)file 命令:查看文件类型

  (2)cp命令:cp 源文件名 目标地址

  (3)mount:挂载,mount 源地址 目标地址

  (4)cat:连接文件并打印到标准输出

  例子:cat –b –E .lessrc 显示文件.lessrc的内容

  -b参数表示从**行开始记数,计算所有非空行的输出。 -E表示在每行结尾加上字符'$'。

  (5)cd:改变当前目录

  (6)clear:**屏幕

  (7)df:报告磁盘剩余空间。

  (8)find:用来在大量目录中搜寻特定文件

  find [路径] [匹配表达式]

  (9)man:显示具有一定格式的在线手册

  (10)mkdir:建立目录

  (11)passwd:设置用户的密码

  (12)pwd:显示正在工作或当前目录名

  (13)rm:删除文件或目录

  (14)mount,umount:装载/卸下一个文件系统

  (15)~/.bashrc和~/.bash_profile的区别

  /etc/profile:此文件为系统的每个用户设置环境信息,当用户**次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置

  /etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.

  ~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.

  ~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取.