摘要:
strace ``` (1)先下载压缩包文件,解压编译生成一个strace可执行文件,并拷贝到开发板上 (2)strace的用法:可以用来解决一些简单的问题 1)strace -o log.txt ./firstdrvtest on //将追踪结果存入log.txt中 (3)strace原理: st 阅读全文
摘要:
原理:是系统时钟中断永不停息,可在系统时钟中断中添加打印信息。 系统定时器中断中调试(不可打印寄存器reg) ``` cat /proc/interrupts //可查看系统定时器中断 /* * IRQ handler for the timer */ static irqreturn_t //li 阅读全文
摘要:
a. 作为模块: ``` 1. 根据pc值确定该指令属于内核还是外加的模块 pc=0xbf000018 它属于什么的地址?是内核还是通过insmod加载的驱动程序? 先判断是否属于内核的地址: 看System.map确定内核的函数的地址范围:c0004000~c03265a4 如果不属于System 阅读全文
摘要:
驱动调试之printk的原理 ``` UBOOT传入 console=ttySAC0 console=tty1 1. 内核处理UBOOT传入的参数 __setup("console=", console_setup); //当内核处理参数时,会调用console_setup来处理 //Linux-4 阅读全文
摘要:
``` (1)线程的创建: pthread_t tid = pthread_self(); //获取当前线程的tid号 int ret = pthread_create(&tid1,NULL,fun1,(void *)&a);//创建线程传入变量a的地址 ret = pthread_create(& 阅读全文
摘要:
``` (1)网络协议被分为5层 1)应用层:直接为用户的应用进程提供服务 HTTP协议,FTP协议,DNS,POP3,SNMP,Telnet 2)运输层(传输层):负责向两个主机中进程之间的通信提供服务 (基于TCP/UDP) (1)传输控制协议TCP(Transmission Control P 阅读全文
摘要:
``` (1)预处理(preprocessing)、编译(compilation)、汇编(assembly)和链接(linking) gcc -E -o hello.i hello.c //预处理(preprocessing) gcc -S -o hello.s hello.i //编译(compi 阅读全文
摘要:
最小根文件系统: ``` (1)/dev/console /dev/null (2)init ==> busybox (3)/etc/initab (4)配置文件指定的程序 (5)C库 ``` 构建完善根文件系统: ``` (1)创建 /dev/console /dev/null mkdir -p 阅读全文
摘要:
``` static int noinline init_post(void) { if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) init_main busybox-1.7.0\init\init.c | signal(S 阅读全文
摘要:
``` (1)自解压代码 linux-2.6.22.6\arch\arm\boot\compressed\head.S 对比于linux-2.6.22.6\arch\arm\kernel\head.S, 是自解压代码+原本的代码,执行时执行自解压代码的内容 ``` ``` (2)第一阶段: ENTR 阅读全文