09 2023 档案
摘要: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
阅读全文
摘要:uboot源码分析(分为两个阶段) ``` 第一阶段: .globl _start u-boot-1.1.6\cpu\arm920t\start.S _start: b reset reset: u-boot-1.1.6\cpu\arm920t\start.S adr r0, _start /* r
阅读全文
摘要:硬件原理: (1)ov7740(摄像头模块) 输入信号: 自然景观等的模拟信号 输出信号: RGB、YUV格式的数字信号 1). 常用参数 1.输入信号: 自然景观等的模拟信号 2.输出信号: (看 OV7740_CSP_DS_1.51.pdf) 输出格式为:RAW RGB、YUV 输出分辨率为:V
阅读全文
摘要:UVC驱动编写流程: ``` 写一个USB摄像头驱动程序 1.构造一个 usb_driver //usb_interface 由USB host 枚举生成 2.设置 probe: 2.1. 分配 video_device:video_device_alloc 2.2. 设置 .fops .ioctl
阅读全文
摘要:参考:韦东山Linux教程 参考:https://blog.csdn.net/weixin_42462202/article/details/99719750 v4l2的操作流程(应用层编程)和对应的驱动层数据结构 ``` v4l2的操作流程 查询设备功能(VIDIOC_QUERYCAP) 枚举像素
阅读全文
摘要:参考:韦东山Linux教程 参考:https://blog.csdn.net/weixin_42462202/article/details/99680969 参考:https://blog.csdn.net/u013836909/article/details/125359789 1. V4L2
阅读全文
摘要:参考:韦东山Linux教程 ``` (1)machine : 单板相关 //结构体: struct snd_soc_card -> struct snd_soc_dai_link 1)表明 platform 是哪个, 通过 snd_soc_dai_link 指定名字,进行匹配 1. 指定 CPU D
阅读全文
摘要:参考:韦东山Linux驱动 生成字符设备接口: ``` (1)在文件 linux-2.6.31.14\sound\core\sound.c static int __init alsa_sound_init(void) | |register_chrdev(major, "alsa", &snd_f
阅读全文
摘要:参考:韦东山Linux教程 ``` 基础说明: 1.声音采集: (1)采样频率: 常用频率:44K, 采用频率越高,失真越小,容量越大 (2)采集: ADC,如果是双通道,数据表示为 : V1,V1' , V2,V2' , V3,V3' ...... 1)左声道:ADC精度,16位,24位 2)右声
阅读全文
摘要:参考:韦东山Linux教程 参考:https://blog.csdn.net/yangjizhen1533/article/details/113865973?spm=1001.2014.3001.5502 1. ALSA框架图 ``` Native ALSA Application:tinypla
阅读全文