linux内核
zyx_linux
思考加实践
展开
-
嵌入式linux内核学习之系统框架
本人学习嵌入式linux已经有一年半了,因为还是个学生,所以学习的时候断断续续,也没有时间来得及总结,但是在本子有做过笔记,每次忘记了,翻翻笔记,感觉都会有新的不同体会。现在我报嵌入式实训班了,决定把自己学习过程中的一些心得体会写下来,因为本人刚刚入门,难免有错误的地方,希望大家帮忙指出,本人不胜感激。原创 2013-11-22 13:04:00 · 1798 阅读 · 0 评论 -
gcc编译选项
gcc编译选项文件后缀简介:.c 需要进行预处理的 C 源代码.h C 的头文件.i 不需要预处理的 C 源代码.o 可供链接器使用的目标文件.S 需要预处理的汇编语言源代码.s 不需要预处理的汇编语言源代码.so 包含一个或多个供链接器使用的 .o 文件的动态库(也称共享库)一. 常用编译命令选项-c 只激活预处转载 2014-05-05 17:18:14 · 1196 阅读 · 0 评论 -
gcc 编译多个源文件
一. 常用编译命令选项假设源程序文件名为test.c。1. 无选项编译链接用法:#gcc test.c作用:将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。2. 选项 -o用法:#gcc test.c -o test作用:将test.c预处理、汇编、编译并链接形成可执行文件test。-o选项用来指定输出文件的文件名转载 2014-05-05 17:09:32 · 1064 阅读 · 0 评论 -
GDB 进行调试 使用心得
1: 对于在应用程序中加入参数进行调试的方法: 直接用 gdb app -p1 -p2 这样进行调试是不行的。 需要像以下这样使用: #gdb app (gdb) r -p1 -p2 或者在运行run命令前使用set args命令: (gdb) set args p1 p2 可以用show args 命令来查看2. 加入断点转载 2014-05-06 15:31:40 · 614 阅读 · 0 评论 -
寄存器与函数栈帧之整理篇
转载自:转载 2014-05-13 10:09:32 · 1146 阅读 · 0 评论 -
C函数调用机制及栈帧指针
在Linux内核程序boot/head.s执行完基本初始化操作之后,就会跳转去执行init/main.c程序。那么head.s程序是如何把执行控制转交给init/main.c程序的呢?即汇编程序是如何调用执行C语言程序的?这里我们首先描述一下C函数的调用机制、控制权传递方式,然后说明head.s程序跳转到C程序的方法。函数调用操作包括从一块代码到另一块代码之间的双向数据传递和执行控制转移。转载 2014-05-13 10:06:43 · 1149 阅读 · 0 评论 -
目标文件格式分析工具: ar,nm,objdump,objcopy,readelf
如果普通编程不需要了解这些东西,如果想精确控制你的目标文件的格式或者你想查看一下文件里的内容以便作出某种判断,那么你可以看一下下面的工具:ar,nm,objdump,objcopy。具体用法请参考man在线手册。ar基本用法 ar命令可以用来创建、修改库,也可以从库中提出单个模块。库是一单独的文件,里面包含了按照特定的结构组织起来的其它的一些文件(称做此库文件的m转载 2014-05-13 20:01:05 · 1230 阅读 · 0 评论 -
C语言程序的存储区域和内存布局
《嵌入式Linux上的C语言编程实践》第13章韩超/魏治宇/廖文江 电子工业出版社段式内存管理架构BSS:BlockStarted by Symbol 13.1 C语言程序的存储区域本章介绍C语言程序的内存布局结构,包括连接过程中目标程序各个段的组成和运行过程中各个段加载的情况。在本章的学习中,读者应重点关注以下内容:C语言程序在内存中各个段的组成C语言程序连接过程转载 2014-08-25 15:22:05 · 1006 阅读 · 0 评论