摘要: 编译C 首先,程序编译过程有: 1.预处理(展开宏,头文件,检查代码是否有误) 2.编译(将.c转为汇编代码.s) 3.汇编(将汇编代码.s转为机器代码.o) 4.链接(将所有机器代码.o和库文件链接成一个可执行程序) 一般编译常常包括了:预处理,编译,汇编 在linux系统中,编译c使用gcc编译 阅读全文
posted @ 2017-08-21 15:09 诺谦 阅读(12054) 评论(0) 推荐(1) 编辑
摘要: 主设备号:为了区分不同类型的设备 次设备号:为了区分同一设备下不同子设备 例如 通过ls /dev/null -l ,查看null设备: 实例: 阅读全文
posted @ 2017-08-18 16:03 诺谦 阅读(1753) 评论(0) 推荐(0) 编辑
摘要: mount:用于挂载文件系统,使能访问其它文件系统中的资源 umount:用于卸载已挂载的文件系统 mount: 格式: mount [-参数] [设备名称] [挂载点] 其中常用的参数(参数默认自带读写):-a 安装在/etc/fstab文件中类出的所有文件系统。-f 伪装mount,作出检查设备 阅读全文
posted @ 2017-08-17 11:09 诺谦 阅读(1903) 评论(0) 推荐(0) 编辑
摘要: 名称:ps(process status) 使用权限:所有使用者说明:显示瞬间进程 (process) 的动态 ps -A 显示所有程序。 ps -l 显示详细信息 示例: 比如输入ps查看进程,如下图: 其中输出状态栏参数: PID 该 process 的号码 UID 程序被该 UID 所拥有,0 阅读全文
posted @ 2017-08-16 14:43 诺谦 阅读(1178) 评论(0) 推荐(0) 编辑
摘要: 内核启动并初始化后,最终目的是像Windows一样能启动应用程序,在windows中每个应用程序都存在C盘、D盘等,而linux中每个应用程序是存放在根文件系统里面,那么挂载根文件系统在哪里,怎么实现最终目的运行应用程序? 1.内核运行应用程序步骤: 1.1首先是进入stext函数启动内核: 1.2 阅读全文
posted @ 2017-08-15 18:31 诺谦 阅读(4782) 评论(0) 推荐(1) 编辑
摘要: 内核启动分析之start_kernel初始化函数(init/main.c) stext函数启动内核后,就开始进入start_kernel初始化各个函数, 下面只是浅尝辄止的描述一下函数的功能,很多函数真正理解需要对linux相关体系有很深的了解后才能明白 代码如下: 然后进入rest_init(): 阅读全文
posted @ 2017-08-15 18:28 诺谦 阅读(5483) 评论(0) 推荐(0) 编辑
摘要: 目标: (1)创建Source Insight 工程,方便后面分析如何启动内核的 (2)分析uboot传递参数,链接脚本如何进入stext的 (3) 分析stext函数如何启动内核: (3.1) 关闭irq和fiq,设置svc管理模式 (3.2)判断是或支持这个CPU (3.3)判断是否支持这个单板 阅读全文
posted @ 2017-08-15 18:25 诺谦 阅读(2745) 评论(0) 推荐(0) 编辑
摘要: 简介: ARM指令中多数据传输共有两种: LDM:(load much)多数据加载,将地址上的值加载到寄存器上 STM:(store much)多数据存储,将寄存器的值存到地址上 主要用途:现场保护、数据复制、参数传送等,共有8种模式(前面4种用于数据块的传输,后面4种是堆栈操作)如下: (1)IA 阅读全文
posted @ 2017-08-15 09:12 诺谦 阅读(20178) 评论(0) 推荐(5) 编辑
摘要: 目标: 通过分析makefile,明白make uImage如何编译内核 把整个内核的makefile分成三类(makefile资料文档在linux-2.6.22.6/Documentation/build/makefiles.txt) <1>各级子目录makefile(每个子目录都有makefil 阅读全文
posted @ 2017-08-12 00:48 诺谦 阅读(1639) 评论(0) 推荐(0) 编辑
摘要: 目标: 分析make menuconfig内核配置过程 在上1小结中(内核编译试验)讲到了3种不同的配置: (1)通过make menuconfig 直接从头到尾配置.config文件 (2) 通过make s3c2410_deconfig 命令在默认的配置上进行自动修改.config文件 (3)使 阅读全文
posted @ 2017-08-11 23:50 诺谦 阅读(2667) 评论(0) 推荐(2) 编辑