摘要:
调试 imx6 的 spi slave 内核驱动,前期调试总免不了得要追一下寄存器的设置,过程函数的调用。采用了 printk() 打印语句。1、采用的硬件方法是:分析 imx6 spi slave 的各路引脚主要是 clk, cs, mosi, miso, gnd, vcc,连接至spi 主端(C... 阅读全文
摘要:
一、gdb server 的生成1、官网下载 gdb-7.8.tar.gzhttp://ftp.gnu.org/gnu/gdb2、解压$ tar zxf gdb-7.8.tar.gz参考 gdb-7.8/gdb/gdbserver/README,按如下描述进行配置。3、新建空目录$ mkdir s-... 阅读全文
摘要:
与用户空间应用不同的是,内核不能调用标准C库或其它任何不属于内核的库。主要原因是,速度及大小的限制。标准C库对内核而言实在是太大了。许多常用的的 libc 函数已经在内核中实现了。内核中的库文件是在内核的根目录下 lib 目录下存放。如常用的字符串操作函数是在 lib/string.c 中定义的,调... 阅读全文
摘要:
参考:http://www.jesshamrick.com/2012/09/10/absolute-beginners-guide-to-emacs/ 阅读全文
摘要:
1、内核既不能访问C库也不能访问标准C头文件2、内核按照 GNU C 的标准进行编码3、内核没有内存保护4、内核实现浮点运算比较困难5、内核的每个进程拥有比较小且大小固定的栈空间6、由于内核支持异步中断,可抢占,对称多处理器,导致了同步及并发的实现需要重点关注7、可移植性很重要 阅读全文
摘要:
1、理论依据1)make 支持将编译过程分解成多个并发的任务2)内核的 Makefiles 有正确的依赖关系,将内核编译过程分解成多个并发任务不会导致编译失败2、方法$ make -jn其中 n 代表了可分解的任务数,实际的经验是,为每个处理器分配1至2个任务,比如 4 核的机器,可以使用以下命令:... 阅读全文
摘要:
实现的方法是输出重定向,以下实现将所有无价值的输出重定向到 无返回的黑洞中。$ make > /dev/null或者,编译内核时:$ make uImage > /dev/null 阅读全文
摘要:
内核的配置由 以CONFIG 为前缀的 CONFIG_FEATURE 形式的配置选项决定。配置选项决定了以下两个方面:1)哪些文件被编译2)预处理器指令处理哪些代码配置选项通过 bool 选项 及 tristate 选项 来控制编译过程。bool 选项的值为 yes 和 no,tristate 选项... 阅读全文