嵌入式文本编辑器
Linux最常用的文本编辑器是vi(或vim)visual lnterface的简称,文本编辑器是计算机系统中 最常用的一种工具。它可以执行文本的输出、删除、查找、替换等文本操作,vi只有命令,没有菜单,命令繁多。vi有三总基本工作模式。命令行模式、底行模式、插入模式。
命令模式:控制屏幕光标的移动,字符、字、或者行的删除,移动、复制。进入插入模式或者底行模式。
底行模式:文件保存或者退出vi,设置编辑环境。
插入模式:只在插入模式才能输入文字。ESC返回命令模式
vi的基本操作
进入vi后的是处于命令模式,按i进去插入模式,按ESC返回命令模式。
vi的复制、删除
x(小写):每按一次删除光标后面的一个字符。
#x(小写):6x表示删除光标后面的6个字符。
X(大写):每按一次,删除光标所在的前一个字符。
#X(大写):6X:表示删除光标所在的前6个字符
dd:删除光标所在行
#dd:从光标所在行开始删除#行
复制
yy:将光标所在行复制
#yy:6yy从光标所在的该行往下数的6行复制。
撤销
u:回到上一个操作
嵌入式编译器
Linux平台最流行的编译系统就是Gcc,GCC是GNU发布的软件,GCC可以编译C、C++、Java等多种语言。可以编译不同体系的结构的编译程序,如ARM,x86,效率比较其他编译系统高出20%-30%。
gcc命令的使用格式
gcc -c 对源文件进行编译或者汇编
gcc -E 对源文件进行预处理
gcc -S 对源文件进行编译
gcc -o file 输出目标文件 file
gcc -g 产生调试信息
gcc -W 屏蔽所有警告信息
gcc -Wall 显示所有警告信息
gcc -werror 出现任何警告信息就停止编译
编译过程分为4个阶段
1、预处理 pre=processing gcc -E 对源文件进行预处理 在编译时候把头文件的内容加载进来
2、编译 Compiling gcc -S 对源文件进行编译 不做其他处理
3、汇编 Assembling gcc -c 对源文件进行编译或者汇编 把汇编程序翻译成CPU可以执行的二进制文件(目标文件)
4、链接 Linking 把程序中所有的目标文件和所需的库文件都链接在一起,生成一个可以直接运行的可执行文件。
嵌入式调试器GDB
使用GCC调试程序的时候只能依靠gcc发出的警告信息或者错误信息来运行,效率低。
代码如下:计算5的阶层程序
gcc -g test.c -o test 对test进行编译 ,其中g的作用是把调试信息加入生成的test可执行文件中,否则GDB无法对test进行调试。
使用命令 gdb test 启动gdb对test的调试
①查看源文件 list 在调试程序的时候,gcc会产生警告或者错误的代码行数,普通的文本环境无法直接获取语句行数
②设置断点 b 通过断点可以知道程序的每一步执行状况(当前变量的值、函数是否被调用等)
③查看断点 info b 因为命令b可以设置多个断点,所以为了随时查看断点情况,在GDB中用info b 看所有断点情况
④运行程序 r (run) GDB默认从代码的首行开始执行,也可r+行数 从指定行数开始运行,如果程序有断点,则程序会在断点前一行停止运行。
⑤查看变量值 p n(printf 当前变量n的值) 程序暂停运行后就可以查看当前状态了,printf 当前变量n的值
⑥继续运行程序 c continue 查看完当前程序后,就可以继续执行程序
⑦单步运行 s n 在程序比较复杂的时候往往需要程序一步一步的往下运行,每行设置断点比较麻烦,所以可以但不运行 ,(step next) s可以在程序发生函数调用的时候进入函数内部运行,而n不会进入函数内部运行。