随笔分类 -  嵌入式驱动

摘要:1.Linux 总线模型 Linux下的任何驱动在内核中最终都抽象为bus, driver以及device三者间的相互作用。 总线是处理器和一个或多个设备之间的通道,在设备模型中,所有的设备都通过总线相连接。总线将设备和驱动绑定,在系统每注册一个设备的时候,会遍历该总线上的driver list,通 阅读全文
posted @ 2019-10-22 10:50 xtusir 阅读(3537) 评论(0) 推荐(1)
摘要:/*************************************************************************** * Linux sysfs device_attribute * 声明: ... 阅读全文
posted @ 2019-08-24 20:15 xtusir 阅读(656) 评论(0) 推荐(0)
摘要:一、对于休眠(suspend)的简单介绍 在Linux中,休眠主要分三个主要的步骤: 1) 冻结用户态进程和内核态任务 2) 调用注册的设备的suspend的回调函数, 顺序是按照注册顺序 3) 休眠核心设备和使CPU进入休眠态, 冻结进程是内核把进程列表中所有的进程的状态都设置为停止,并且保存下所 阅读全文
posted @ 2019-08-24 20:08 xtusir 阅读(2457) 评论(0) 推荐(0)
摘要:echo 0 > /sys/devices/system/cpu/cpu3/online 查看当前有哪些核心 cat /sys/devices/system/cpu/online 阅读全文
posted @ 2019-07-26 14:51 xtusir 阅读(1071) 评论(0) 推荐(0)
摘要:如下图所示,使用命令“cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors”,其中其中userspace 表示用户模式,在此模式下允许其他用户程序调节 CPU 频率。 如下图所示,使用命令“cat /sys/devi 阅读全文
posted @ 2019-07-26 14:45 xtusir 阅读(564) 评论(0) 推荐(0)
摘要:Contents [hide] 1 Introduction 2 Audio Gadget Driver 1.0 2.1 Enabling the audio gadget driver 2.2 Using the audio gadget driver Contents [hide] Conten 阅读全文
posted @ 2019-07-13 08:24 xtusir 阅读(609) 评论(0) 推荐(0)
摘要:1、查看寄存器0x01c20824寄存器的值: cd /sys/class/sunxi_dump echo 0x01c20824 > dump cat dump 例如: 2、都多个寄存器 echo 0x01c68000,0x01c68300 > dump cat dump 3、给寄存器写入值 往0x 阅读全文
posted @ 2019-06-22 13:06 xtusir 阅读(776) 评论(0) 推荐(0)
摘要:1、make menuconfig进入图形界面后,输入 / 进行查找页面,如果输入有错,要删除前面输入的可以输入 ctrl加<--键(ctrl加回退按键) 阅读全文
posted @ 2019-06-13 16:45 xtusir 阅读(327) 评论(0) 推荐(0)
摘要:为什么要使用buildroot? (文件系统搭建,强烈建议直接用buildroot,官网[http://buildroot.uclibc.org/]上有使用教程非常详细)文件系统通常要包含很多第三方软件,比如busybox,udhcpc,tftp,apache,sqlite,PHP,iptable, 阅读全文
posted @ 2019-06-12 10:32 xtusir 阅读(4354) 评论(1) 推荐(0)
摘要:jiffies在内核中是一个全局变量,它用来统计系统启动以来系统中产生的总节拍数,这个变量定义在include/Linux/jiffies.h中,定义形式如下。 unsigned long volatile jiffies; 想要理解jiffies的含义,我们需要首先理解时钟 节拍率 节拍的概念。 阅读全文
posted @ 2017-06-23 14:20 xtusir 阅读(3303) 评论(0) 推荐(0)
摘要:使用非阻塞 I/O 的应用程序常常使用 poll, select, 每个允许一个进程来决定它是否可读或者写一个或多个文件而不阻塞. 这些调用也可阻塞进程直到任何一个给定集合的文件描述符可用来读或写. 因此, 它们常常用在必须使用多输入输出流的应用程序, 而不必粘连在它们任何一个上. 支持这些调用都需 阅读全文
posted @ 2017-06-16 14:12 xtusir 阅读(827) 评论(0) 推荐(0)
摘要:1、mutex_lock,mutex_unlock只用在进程间2、spin_lock,spin_unlock一般是只用在中断或者只用在进程中。如果进程和中断都用spin_lock获取锁,访问临界区,可能会导致死锁3、spin_lock_irq,spin_unlock_irq可以用在进程和中断中申请锁 阅读全文
posted @ 2017-06-10 12:34 xtusir 阅读(233) 评论(0) 推荐(0)
摘要:一、常用的模块操作命令(1)lsmod(list module,将模块列表显示),功能是打印出当前内核中已经安装的模块列表 (2)insmod(install module,安装模块),功能是向当前内核中去安装一个模块,用法是insmod xxx.ko(3)modinfo(module inform 阅读全文
posted @ 2016-09-20 01:29 xtusir 阅读(359) 评论(0) 推荐(0)
摘要:一、驱动开发的准备工作(1)正常运行linux系统的开发板。要求开发板中的linux的zImage必须是自己编译的,不能是别人编译的。(2)内核源码树,其实就是一个经过了配置编译之后的内核源码。(3)nfs挂载的rootfs,主机ubuntu中必须搭建一个nfs服务器。 二、驱动开发的步骤(1)驱动 阅读全文
posted @ 2016-09-20 00:52 xtusir 阅读(309) 评论(0) 推荐(0)