2014025656《嵌入式程序设计》第二周学习总结
教材学习总结
GCC学习总结:
gcc选项优化:
含义:
gcc可以对代码进行优化,他通过编译选项-On来控制优化代码的生成,n可以看做是一个代表优化级别的变量。并且在不同版本的gcc中,n的值及其对应的优化效果可能不完全相同。
优化的优缺点:
优点是可以加快代码的运行速度。
缺点是代码经过优化之后,源程序中的声明、变量等很可能不再使用,控制流也可能会突然跳转到意外的地方,循环语句也有可能因为循环的展开而变得到处都有等等,这将导致调试变的极其困难。
建议是在调试时不使用优化选项,在最终发行时才考虑对其优化。
优化选项说明:
gcc默认提供了5级优化选项的集合
选项 功能
-O0 无优化(默认)
-O/-O1 使用能减少目标文件大小以及执行时间并且不会使编译时间明显增加的优化。在编译大型程序的时候会显著增加编译时内存的使用
-O2 包含-O1的优化并增加了不需要在目标文件大小和执行速度上进行折中的优化。编译器不执行循环展开以及函数内联。此选项将增加编译时间和目标文件的执行性能
-Os 专门优化目标文件大小,执行所有的不增加目标文件大小的-O2优化选项。并且执行专门减小目标文件大小的优化选项
-O3 打开所有-O2的优化选项并且增加-finline-functions, -funswitch-loops,-fpredictive-commoning,-fgcse-after-reload and -ftree-vectorize优化选项
gcc编译过程:
①预处理 gcc —E hello.c -o hello.i
②编译 gcc —S hello.i -o hello.s
③汇编 gcc —c hello.s -o hello.o
④连接 gcc hello.o -o hello
GDB学习总结:
(1)查看文件:l(list)
(2)设置断点:b + 对应行号
(3)查看断点情况:info b
(4)运行代码:r
(5)查看变量值:p+变量值
(6)单步运行:n或s
n:不会进入该函数 s:会进入该函数
(7)恢复程序运行:c
实验总结
使用vi编辑hello.h、starfun.h、hello.c、star.c四个程序文件,使用gcc编译器,编译程序,gdb进行调试。
Makefile编程实验
其他
在实验过程中,由于很多马虎大意,导致下一步出错,遗漏一下细小符号,下次一定注意细心。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 10 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | linux命令 |
第二周 | 300/500 | 3/4 | 16/38 | gcc,gdb,makefile |
第三周 | 500/1000 | 3/7 | 22/60 | |
第四周 | 300/1300 | 2/9 | 30/90 |
参考资料
《嵌入式应用程序设计》学习指导