kernel
文章平均质量分 54
考古队码老板
这个作者很懒,什么都没留下…
展开
-
基础知识深挖
======》camera 先关1、摄像头输入格式常用的几种?2、raw, yuv444 yuv422 yuv420 数据格式的区别?3、yuv 中 Y代表什么,UV 代表什么?4、人眼对亮度敏感还是对色度比较敏感?5、======》lcd 显示相关4、老式显示器的原理?5、逐行与隔行的区别,为什么需要需要这两种?6、timing 中 Vblank 也就是HBP HFP 为什么需要这个参数?7、pclk 如何计算的======》touch 相关1、数据流如何实原创 2022-01-07 19:44:17 · 2351 阅读 · 0 评论 -
camera 输入数据格式 & lcd 显示原理
1、摄像头输入格式常用的几种?2、yuv444 yuv422 yuv420 数据格式的区别?3、yuv 中 Y代表什么,UV 代表什么?4、老式显示器的原理?5、逐行与隔行的区别,为什么需要需要这两种?6、timing 中 Vblank 也就是HBP HFP 为什么需要这个参数?7、...原创 2022-01-07 19:43:23 · 1120 阅读 · 0 评论 -
dtb 反向解析
今天就一句话:有时候因为环境的问题,导致你花了额外长的时间调查问题,所有每一步都要check 是否配置ok 了,下面的指令一定要常用dtc -I dtb -O dts ./xxx.dtb -o xxx.txt原创 2021-10-19 11:47:02 · 334 阅读 · 0 评论 -
【kernel 中内存分配那点事】
首先呢作为车载bsp开发人员,写大量的内核代码是不现实的事情,多数都是修修改改,但是要有内核代码阅读浏览理解的能力,毕竟linux kernel 还是很nb 的,所有技术人员深入研究内核代码是必须的,也毛病,而且越是资深的大佬对这方便越牛。kernel 中内存分配的常用几种方式:1、kmalloc: (分配连续的物理空间,最大为128K)通用 cache void *kmalloc(size_t size, gfp_t flags) kmalloc 基于以下几种size的mem c.原创 2021-07-28 19:27:21 · 759 阅读 · 0 评论 -
usb如何枚举
1-1 状态转换USB协议定义了设备的6种状态,仅在枚举过程中,设备就经历了4个状态的迁移:上电状态(Powered),默认状态(Default),地址状态(Address)配置状态(Configured)(其他两种是连接状态和挂起状态(Suspend))1-2Hub监测它各个端口数据线上(D+/D-)的电压在hub端,数据线D+和D-都有一个阻值在14.25k到24.8k的下拉电阻Rpd,而在设备端,D+(全速,高速)和D-(低速)上有一个1.5k的上拉电阻Rpu。当...原创 2021-07-16 17:42:14 · 706 阅读 · 0 评论 -
usb前世今生
1、为什么有usb的存在USB 是「通用串行总线(Universal Serial Bus)」的简称USB 的标准是由 USB 开发者论坛制定的,为了解决数据线不能通用的问题,论坛希望用被称为「C 型」的新型数据线,来取代所有的 A 型和 B 型数据线,兼容所有的手机、平板、电脑及周边设备的接口,并将支持更快的 USB 3.1。再过几年,C 型数据线可能就会成为标配,到那时我们不会再需要装一抽屉各式各样的数据线了。但仰望星空还需脚踏实地,我们在期待 C 型数据线「大一统」时代到来的同时,先简要回原创 2021-07-14 18:23:54 · 191 阅读 · 0 评论 -
usb 那点事
1、usb 为何而生https://blog.csdn.net/u013165704/article/details/1187342582、usb 如何枚举3、usb 低速 高速 全速如何匹配的4、usb 接口类型5、usb otg6、usb fastboot7、usb 调式技巧原创 2021-07-14 18:30:42 · 112 阅读 · 0 评论 -
vim命令总结
vim命令总结1.删除字符要删除一个字符,只需要将光标移到该字符上按下"x"。2.删除一行删除一整行内容使用"dd"命令。删除后下面的行会移上来填补空缺。3.删除换行符在Vim中你可以把两行合并为一行,也就是说两行之间的换行符被删除了:命令是"J"。4.撤销如果你误删了过多的内容。显然你可以再输入一遍,但是命令"u" 更简便,它可以撤消上一次的操作。5.重做如果你撤消了多次,你还可以用CTRL-R...转载 2018-05-31 13:36:01 · 175 阅读 · 0 评论 -
adb 命令小集(转)
ADB很强大,记住一些ADB命令有助于提高工作效率。获取序列号: adb get-serialno查看连接计算机的设备: adb devices重启机器: adb reboot重启到bootloader,即刷机模式: adb reboot bootloader重启到recovery,即恢复模式: adb reboot recovery查看log: adb logcat终止adb服务进...转载 2018-05-31 13:36:42 · 163 阅读 · 0 评论 -
常用 Git 命令清单(转)
一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个命令。下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库一、新建代码库# 在当前目录新建一个Git代码库$ git init# 新建一个目录,将其初始化为Git代码库...转载 2018-05-31 13:37:48 · 182 阅读 · 0 评论 -
Linux驱动修炼之道-内存映射
努力成为linux kernel hacker的人李万鹏原创作品,为梦而战。转载请标明出处http://blog.csdn.net/woshixingaaa/archive/2011/06/02/6462151.aspxC-sharp代码 void *mmap(void *addr, size_t len, int prot, int flags, int fd, off_t offset); ...转载 2018-05-31 13:38:23 · 316 阅读 · 1 评论 -
高通---GPU&CPU频率和工作模式的获取设置
1gpu信息获取1.1 高通gpu说明 高通设备CPU采用cpufreq框架动态调节频率,相似的GPU这块采用了Linux devfreq框架进行调节。Devfreq有四种对频率的管理策略governor(框架规定,实际实现各厂商不同):1、 performance:GPU会固定工作在其支持的最高频率上,以追求最高性能。2、 powersave:GPU会固定工作在其支持的最低频率上...原创 2018-05-31 20:20:46 · 17644 阅读 · 1 评论 -
Linux 打开/关闭CPU命令
Linux 打开/关闭CPU命令2016年06月14日 13:31:20阅读数:1162怎么关闭CPU下面的语法表示关闭CPU core #4:echo 0 > /sys/devices/system/cpu/cpu3/online怎么开启CPU下面的语法表示打开CPU core #4:echo 1 > /sys/devices/system/cpu/cpu3/online怎么验证有没...原创 2018-05-31 20:24:37 · 3693 阅读 · 0 评论 -
Linux驱动调试中的Debugfs的使用简介 CONFIG_DEBUG_FS 的功能与配置
Linux驱动调试中的Debugfs的使用简介 (2012-03-31 14:14)在调试linux驱动的时候,可以用debugfs来调试,debugfs类似字符设备驱动一样,甚至更简单,不需要主设备号次设备号等等,只需要实现一个file_operations,然后通过debugfs_create_file就可以在debugfs中建立一个文件结点,就像字符设备驱动那样,只需要对这个文件结点进行op...原创 2018-06-22 19:26:33 · 27815 阅读 · 0 评论 -
linux内核中的GPIO系统之(4):pinctrl驱动的理解和总结
1. 前言本站之前的三篇文章[1][2][3]介绍了pin controller(对应的pin controller subsystem)、gpio controller(对应的GPIO subsystem)有关的基本概念,包括pin multiplexing、pin configuration等等。本文将基于这些文章,单纯地从pin controller driver的角度(屏蔽掉pinctrl...转载 2018-06-01 10:35:37 · 1032 阅读 · 0 评论 -
Linux 内核引导选项简介 *********很多常用的受益匪浅
内核引导选项大体上可以分为两类:一类与设备无关、另一类与设备有关。与设备有关的引导选项多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导选项。比如,如果你想知道可以向 AHA1542 SCSI 驱动程序传递哪些引导选项,那么就查看 drivers/scsi/aha1542.c 文件,一般在前面 100 行注释里就可以找到所接受的引导选项说明。大多数选项是通过"__setup()...转载 2018-06-01 17:31:59 · 1056 阅读 · 0 评论 -
Linux-4.x_x _64 内核配置选项简介
Gentoo LinuxGentoo内核(gentoo-sources)特有的选项Gentoo Linux supportCONFIG_GENTOO_LINUX选"Y"后,将会自动选中那些在Gentoo环境中必须开启的内核选项,以避免用户遗漏某些必要的选项,减轻一些用户配置内核的难度.建议选"Y".Linux dynamic and persistent device naming (usersp...原创 2018-06-02 13:44:32 · 7876 阅读 · 0 评论 -
imx6 LCD 参数配置(lvds为例)
目前imx6的BSP开发中,lvds的参数配置一般在两个地方: 1. uboot的CMDLINE的参数设置,形如: video=mxcfb0:dev=ldb,bpp=32 2. uboot板级代码中对struct display_info_t的配置,形如:static struct display_info_t const displays[] = {{ .bus = -1, ...转载 2018-06-02 13:50:09 · 5436 阅读 · 3 评论 -
Linux cpuidle framework(4)_menu governor
Linux cpuidle framework(4)_menu governormenu governor的主要任务就转化为两个:1. 根据系统的运行情况,预测CPU将在C state中停留的时间(简称predicted_us);2. 借助pm qos framework,获取系统当前的延迟容忍度(简称latency_req)。1. 前言本文以menu governor为例,进一步理解cpuidl...转载 2018-06-02 15:35:35 · 435 阅读 · 0 评论 -
linux 比较新的设备树 详解 device tree
一、设备树总览首先,设备树是一种数据结构,他用来描述一个系统的硬件组织,比如说一个BBB开发板是由哪些模块组成的。既然如此,如何描述一个组织呢?分为两部分。各个组件的层次关系。每个组件的具体信息。这是通过常理就能推断出来的。然后根据这两条常识,结合设备树知识可以知道,dts文件中的每个节点代表一个组件,整个设备树的层级关系也就是各个组件的层次关系。二、各个组件的描述每个组件的信息通过属性prope...原创 2018-06-02 16:33:26 · 1292 阅读 · 0 评论 -
linux kernel 中mdelay() 与msleep()的区别
在Linux Driver开发中,经常要用到延迟函数:msleep,mdelay/udelay.虽然msleep和mdelay都有延迟的作用,但他们是有区别的.1.)对于模块本身mdelay是忙等待函数,在延迟过程中无法运行其他任务.这个延迟的时间是准确的.是需要等待多少时间就会真正等待多少时间.msleep是休眠函数,它不涉及忙等待.你如果是msleep(10),那实际上延迟的时间,大部分时候是...原创 2018-06-28 12:00:20 · 2138 阅读 · 0 评论 -
IMX6的相关音频结构体的定义
在IMX上的音频接口主要有3种接口,分别为SSI, SPDIF, ESAI 等;platform 连接 codec 与 cpu 的驱动时,通过内核函数结构体static struct snd_soc_dai_link 来设置两边的接口;SSI接口中,IMX6中的SSI接口有3对可以接着路I2S;三路SSI可以每路SSI 单独作为一个声卡,也可以是一个声卡包含多个设备;以下的定义模式是一个声卡多个设...转载 2018-06-04 16:42:32 · 1448 阅读 · 0 评论 -
Linux内核调试方法总结之sysrq
sysrq【用途】Sysrq被称为”魔术组合键”, 是内建于Linux内核的调试工具。只要内核没有完全锁住,不管内核在做什么事情,使用这些组合键都可以搜集包括系统内存使用、CPU任务处理、进程运行状态等系统运行信息。【原理】【内核帮助文档kernel/Documentation/sysrq.txt】首先,内核配置选项中要使能CONFIG_MAGIC_SYSRQ选项,这样系统启动之后,会生成/pro...转载 2018-05-31 13:35:17 · 502 阅读 · 0 评论 -
Linux下1号进程的前世(kernel_init)今生(init进程)----Linux进程的管理与调度
Linux下有3个特殊的进程,idle进程(PID=0PID=0), init进程(PID=1PID=1)和kthreadd(PID=2PID=2)* idle进程由系统自动创建, 运行在内核态 idle进程其pid=0,其前身是系统创建的第一个进程,也是唯一一个没有通过fork或者kernel_thread产生的进程。完成加载系统后,演变为进程调度、交换* init进程由idle通过kernel...转载 2018-05-31 09:32:43 · 1865 阅读 · 0 评论 -
imx6 板卡移植官方yocto版本(2_定制系统)
上一节中已经讲述了如何去构建编译环境,这一节讲一下如何定制专属于自己板卡的系统。1.配置linux内核官方repo下来的yocto项目里配置了多个内核可选,我们可以在yocto目录下/source/meta-fsl-arm/recipes-kernel/linux中找到,配置的三个内核如下:linux-fslc_3.8.bb-->kernelmainline(fromkernel.org)l...转载 2018-06-06 20:25:45 · 649 阅读 · 0 评论 -
Linux 2.6内核配置说明(Networking网络)
Networking options网络选项Network packet debugging在调试不合格的包时加上额外的附加信息,但在遇到Dos攻击时你可能会被日志淹没Packet socket这种Socket可以让应用程序(比如tcpdump,iptables)直接与网络设备通讯,而不通过内核中的其它中介协议Packet socket: mmapped IO让Packet socket驱动程序使...转载 2018-05-29 19:28:26 · 2691 阅读 · 0 评论 -
Linux 2.6内核配置说明(Device Drivers设备驱动程序)
Generic Driver Options驱动程序通用选项Select only drivers that don't need compile-time external firmware只显示那些不需要内核对外部设备的固件作map支持的驱动程序,除非你有某些怪异硬件,否则请选上Prevent firmware from being built不编译固件.固件一般是随硬件的驱动程序提供的,仅在...转载 2018-05-29 19:26:51 · 2352 阅读 · 1 评论 -
Network device support
[*] Network device support ---> 网络设备驱动网卡驱动在这里了。自己看着选吧。不清楚就全部搞成模块也不会出错。< > Intermediate Functional Block support这是一个中间层驱动,可以用来灵活的配置资源共享,看不懂的可以不选< > Dummy net driver support哑接口网络,使用S...转载 2018-05-29 19:24:07 · 2214 阅读 · 0 评论 -
查看内核中每个函数花费的时间 initcall_debug
实现查看内核启动的时候每个函数花费的时间在uboot的环境变量中 添加如下信息,就可以在内核启动的时候查看到每个函数花费的时间添加: initcall_debug=1Linux version 3.10.40 1. 使用说明Documentation/kernel-parameters.txt中的说明如下: initcall_debug [KNL] Trace initcalls...原创 2018-06-04 20:43:24 · 1266 阅读 · 0 评论 -
GPU的介绍 以及原理的分析
1 GPU是什么 如图1所示,这台PC机与普通PC机不同的是这里插了7张显卡,左下角是显卡,在中间的就是GPU芯片。显卡的处理器称为图形处理器(GPU),它是显卡的“心脏”,与CPU类似,只不过GPU是专为执行复杂的数学和几何计算而设计的。 GPU计算能力非常强悍,举个例子:现在主流的i7处理器的浮点计算能力是主流的英伟达GPU处理器浮点计算能力的1/12。图1 显卡与GPU2...转载 2018-06-04 16:43:08 · 39114 阅读 · 3 评论 -
Linux电源管理(10)_autosleep
Linux电源管理(10)_autosleep作者:wowo 发布于:2014-9-18 23:42 分类:电源管理子系统1. 前言Autosleep也是从Android wakelocks补丁集中演化而来的(Linux电源管理(9)_wakelocks),用于取代Android wakelocks中的自动休眠功能。它基于wakeup source实现,从代码逻辑上讲,autosleep是一个简单...转载 2018-06-04 11:51:28 · 346 阅读 · 0 评论 -
kernel 下串口serial输入输出控制,屏蔽log的输出
最近工作在调试usb虚拟串口,让其作为kernel启动的调试串口,以及user空间的输入输出控制台。利用这个机会,学习下printk如何选择往哪个console输出以及user空间下控制台如何选择,记录与此,与大家共享,也方便自己以后翻阅。Kernel版本号:3.4.55依照我的思路(还是时间顺序)分了4部分,指定kernel调试console , kernel下printk console的选...转载 2018-05-23 15:50:01 · 4814 阅读 · 0 评论 -
LCD 进入休眠的操作解决方式
LCD进入睡眠 echo "0" > /sys/class/graphics/fb0/blank LCD显示退出睡眠模式方法1、 echo -e "\033[9;0]" > /dev/tty02、echo 1 > /sys/class/graphics/fb0/blank 如果想屏幕永不休眠,在UBOOT启动参数bootargs中增加 consoleblank=0在/sys/c...转载 2018-06-04 09:40:23 · 3253 阅读 · 0 评论 -
Linux下LCD自动关闭解决方法,一般就自动十分钟黑屏的原因
Linux下LCD自动关闭解决方法主机环境:Gentoo Linux 11.2内核版本:Linux Kernel 3.2.1原创作品,转载请表明http://blog.csdn.net/yming0221/article/details/7339296正常情况下Linux会在一段时间后默认关闭屏幕,默认为10分钟。这里你可能会认为是Gnome或KDE等桌面环境设置的屏幕保护程序或电源管理功能,即使...原创 2018-06-04 09:27:32 · 2178 阅读 · 0 评论 -
Linux 2.6内核配置说明(File systems文件系统)
转载博客博主的网址 https://blog.csdn.net/liu1164316159/article/category/1588671Second extended fs supportExt2文件系统是Linux的标准文件系统,擅长处理稀疏文件Ext2 extended attributesExt2文件系统扩展属性(与inode关联的name:value对)支持Ext2 POSIX Ac...转载 2018-05-29 19:29:59 · 2148 阅读 · 1 评论 -
linux 下的 initrd ramdisk
在Linux操作系统中,有一项特殊的功能——初始化内存盘INITRD(INITial Ram Disk)技术,而且内核支持压缩的文件系统映像。有了这两项功能,我们可以让Linux系统从小的初始化内存盘启动,并把系统内存的一部分作为根文件系统挂载。 Ramdisk就是将内存的一部分分配为一个分区并作为硬盘来使用。对于系统运行时不断使用的程序,将它们放在Ramdisk中将加快计算机的操作,如大数据量...原创 2018-05-29 20:46:22 · 782 阅读 · 0 评论 -
imx6 板卡移植官方yocto版本(1_安装环境)
玩imx6板卡也有两年了,之前由于各种原因(主要是懒),一直用的是官方的LTIB版本,这里必须要吐槽一下这个LTIB,各种错误百出,而且严重挑系统,硬是将我从CentOS阵营搞到Ubuntu社区。最近由于有其他用途,终于花了一周时间移植了这个庞大的系统。1.系统准备(以ubuntu14.04LTS为例)在命令行下使用apt-get安装如下软件:#sudoapt-getinstallgawkwget...转载 2018-06-06 20:24:46 · 741 阅读 · 0 评论 -
Yocto的使用实例
Yocto的使用实例本文以往rootfs中添加一个软件包为例,阐述使用Yocto定制发行版的大致流程。 有关Yocto的功能和结构介绍,详见Yocto详解1.开发环境构建一般有两种情况:一种是公司服务器中已有了Yocto,我们只需在个人账户下简单复制Yocto开发环境即可。另一种情况是什么都没有,在服务器或个人电脑上从零搭建Yocto开发环境。在这里我们假设已经有了Yocto需要的基本依赖库,如果...转载 2018-06-06 20:18:58 · 2175 阅读 · 0 评论 -
Yocto基本概念及介绍
Yocto详解参考:http://www.yoctoproject.org/docs/2.1/mega-manual/mega-manual.html#creating-a-general-layer-using-the-yocto-layer-script 这篇文章第五章不错1.名词解释Yocto:Yocto是这个开源项目的名称,该项目旨在帮助我们自定义Linux系统Poky:Poky有两个含义...转载 2018-06-06 20:18:36 · 1049 阅读 · 0 评论 -
ARM嵌入式平台性能测试
在新项目需要选择一个全新的基于ARM嵌入式处理器平台的时候,难免会需要对新平台的性能进行评估,这时候有几种思路可以进行参考,一是ARM芯片厂家发布的性能指标,不过大多数是基于理论情况;二是购买同样平台的开发板移植应用进行实测,效果最直接但是可能需要花费较大精力和时间;那么这个时候也可以考虑使用针对性的benchmark软件在目标平台上面进行性能测试,算是一个折衷的方法,其结果有一定参考意义但由于影...转载 2018-06-06 19:48:56 · 3490 阅读 · 0 评论