logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

嵌入式Linux驱动笔记(十六)------设备驱动模型(kobject、kset、ktype)

你好!这里是风筝的博客,欢迎和我一起交流。前几天去面试,被问到Linux设备驱动模型这个问题,没答好,回来后恶补知识,找了些资料,希望下次能答出个满意答案。Linux早期时候,一个驱动对应一个设备,也就对应一个硬件地址,那当有两个一样的设备的时候,就要写两个驱动,显然是不合理的。应该是从Linux2.5开始,就引入了device-bus-driver模型。其中设备驱动模型主...

嵌入式Linux驱动笔记(十七)------详解V4L2框架(UVC驱动)

你好!这里是风筝的博客,欢迎和我一起交流。Video for Linux 2,简称V4l2,是Linux内核中关于视频设备的内核驱动框架,为上层的访问底层的视频设备提供了统一的接口。凡是内核中的子系统都有抽象底层硬件的差异,为上层提供统一的接口和提取出公共代码避免代码冗余等好处。首先来看看所有的v4l2驱动都必须要有的几个组成部分:– 用来描述每一个v4l2设备实例状态的结构(struct v4

嵌入式Linux驱动笔记(二十三)------使用buidroot构建文件系统

如上所述,Buildroot基本上是一组Makefiles,可以使用正确的选项下载,配置和编译软件。它还包括各种软件包补丁-主要参与的交叉编译工具链的那些(gcc,binutils和 uClibc)。每个软件包基本上有一个Makefile,它们以.mk扩展名命名。Makefile分为许多不同的部分。该toolchain/目录包含Makefile文件和相关文件的有关交叉编译工具链的所有软件:bi..

自编STM32轻量级操作系统(一)------操作系统实现

你好,这里是风筝的博客,欢迎和我一起交流。16年寒假那段时间开始接触UCOS实时操作系统,感觉真的很神奇,还借了任哲和邵贝贝的书的来看,原来代码还可以写得那么美妙。后来,在知乎上看到一位答主的文章(https://www.zhihu.com/question/25628124/answer/133388181),顿时对操作 系统兴趣大增,想着自己也简单写一个轻量级的嵌入式操作系

#stm32#开源
嵌入式Linux驱动笔记(二十)------音频子系统(ASOC框架)之Codec

你好!这里是风筝的博客,欢迎和我一起交流。codec_dai和pcm配置信息通过结构体snd_soc_dai_driver描述,包括dai的能力描述和操作接口,snd_soc_dai_driver最终会被注册到asoc-core中。附上一位博主的话:“最后顺便提下dai_link中的codec和codec_dai的区别:codec指音频codec共有的部分,包括cod...

自编STM32轻量级操作系统(二)------任务调度

你好,这里是风筝的博客,欢迎和我一起交流。上一章自编STM32轻量级操作系统(一)------操作系统实现 讲了那么多,终于到了实战环节。现在来开始动手码程序。根据之前分析的,我们先写下分析流程:上帝(操作系统)正在开心的玩耍着,看了看时间,一天结束了,夜晚来了(系统定时器中断),哦,要搞事情了,人间将要掀起一场腥风血雨!!!此时人间(用户进程)

#stm32#嵌入式#开源
ALSA子系统(三)------Audio测试工具(tinyalsa)

你好!这里是风筝的博客,欢迎和我一起交流。TinyAlsa是 Android 默认的 alsalib, 封装了内核 ALSA 的接口,用于简化用户空 间的 ALSA 编程。合理的pcm_config可以做到更好的低时延和功耗,移动设备的开发优为敏感。struct pcm_config {unsigned int channels;unsigned int rate;unsigned int per

嵌入式Linux驱动笔记(三十一)------SYSRQ组合键使用

你好!这里是风筝的博客,欢迎和我一起交流。SYSRQ组合键是Linux调试的一种手段,即使在系统死机、panic等情况,只要系统还能响应中断,那么SYSRQ就派上用场了,具体的使用情况可以参考内核文档里的详细描述:Documentation/sysrq.txtnote:SYSRQ键也就是键盘上的Print Screen键.使用SYSRQ组合键需要在内核开启配置:CONFIG_MAGIC_SYSRQ

嵌入式Linux驱动笔记(三十)------wait_event与wait_event_interruptible的区别

你好!这里是风筝的博客,欢迎和我一起交流。wake_up与wake_up_interrupt有什么区别?wait_event与wait_event_interruptible有什么区别?最近在项目,被报了一个log,然后就思考到了这个问题:wait_event_interruptible将当前进程的状态设置成TASK_INTERRUPTIBLE。wait_event将当前进程的状...

Android音频子系统(一)------openOutput打开流程

你好!这里是风筝的博客,欢迎和我一起交流。Audio在Android也算是比较复杂的系统,我也是一边学习一边做笔记,如果有不对的地方看样子在评论区指出。status_t AudioFlinger::openOutput(audio_module_handle_t module,audio_io_handle_t *output,audio_config_t *c

    共 49 条
  • 1
  • 2
  • 3
  • 4
  • 5
  • 请选择