摘要:
1.上章的oops栈信息如下图所示: 9fe0: 代表最初的栈顶SP寄存器位置 9e80:代表函数出错的SP寄存器位置 2.我们先来分析上图的栈信息,又是怎样的过程呢? 2.1内核主要是通过STMDB和LDMIA汇编命令来入栈和出栈 (STMDB和LDMIA汇编命令参考: http://www.cn 阅读全文
摘要:
1.当驱动有误时,比如,访问的内存地址是非法的,便会打印一大串的oops出来 1.1以LED驱动为例 将open()函数里的ioremap()屏蔽掉,直接使用物理地址的GPIOF,如下图所示: 1.2然后编译装载26th_segmentfault并执行测试程序后,内核便打印了oops出来,如下图所示 阅读全文
摘要:
1.Makefile解析 1.1Makefile规则: 目标(target)…: 依赖(prerequiries)… <tab>命令(command) 如果“依赖文件”比“目标文件”更加新,那么执行“命令”来重新生成“目标文件”。 命令被执行的2个条件:依赖文件比目标文件新,或是 目标文件还没生成。 阅读全文
摘要:
1.用Makefile编译一个程序 1 hello: hello.c 2 gcc -o hello hello.c 3 clean: 4 rm -f hello 将上述4行存为Makefile文件(注意必须以Tab键缩进第2、4行,不能以空格键缩进) make命令根据文件更新的时间戳来决定哪些文件需 阅读全文