Linux
文章平均质量分 76
放羊娃
这个作者很懒,什么都没留下…
展开
-
Linux应用程序——用户层检测按键输入状态
stm32mp157 盘古开发板 Linux内核版本4.191、背景在我的博客《Linux驱动分析——input输入子系统》中已经大概了解了按键输入的来龙去脉,博客链接:https://blog.csdn.net/fang_yang_wa/article/details/1132543962、测试情况:应用层测试用代码:#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>..原创 2021-02-05 19:48:56 · 3151 阅读 · 0 评论 -
linux ps命令,查看某进程cpu和内存占用率情况, linux ps命令,查看进程cpu和内存占用率排序。 不指定
背景:有时需要单看某个进程的CPU及占用情况,有时需要看整体进程的一个占用情况。目录一、 linux ps命令,查看某进程cpu和内存占用率情况二、linux ps命令,查看进程cpu和内存占用率排序一、 linux ps命令,查看某进程cpu和内存占用率情况[root@test vhost]# ps auxUSER PID%CPU%MEMVSZ RSS TTYSTATSTART TIME COMMAND解释:linux ...原创 2021-02-05 10:08:53 · 1119 阅读 · 0 评论 -
Linux应用程序——用户层操作GPIO
stm32mp157 盘古开发板 Linux内核版本4.19目录1、拜兔核i2SOM的wiki上关于gpio应用的说明2、gpio操作相关的数据结构3、测试代码:4、参考链接1、拜兔核i2SOM的wiki上关于gpio应用的说明链接:http://wiki.i2som.com/pages/viewpage.action?pageId=22479311以下是链接中的复制内容:GPIO操作在Linux系统上是常用功能,STM32MP1芯片平台也同样支持。从Linu...原创 2021-02-02 19:55:55 · 4128 阅读 · 0 评论 -
Linux驱动分析——块设备驱动
stm32mp157 盘古开发板 Linux内核版本4.19因为目前没有用到这一块,所以这里只是简单了解并记录一下,待后面用到了再来完善。目录1、朱有鹏老师视频课程笔记和示例代码1、朱有鹏老师视频课程笔记和示例代码第一部分、章节目录5.10.1.正确理解块设备驱动的概念5.10.2.块设备驱动框架简介5.10.3.块设备驱动案例分析15.10.4.块设备驱动案例分析25.10.5.块设备驱动案例分析3第二部分、章节介绍5.10.1.正确理解块设备驱动的概念 本...原创 2021-01-30 17:59:53 · 715 阅读 · 0 评论 -
Linux驱动分析——网卡驱动
stm32mp157 盘古开发板 Linux内核版本4.19目录1、朱有鹏老师视频课程笔记和源码2、找到我系统上面网卡驱动的位置3、dwmac-stm32.c文件中DW是什么意思1、朱有鹏老师视频课程笔记和源码第一部分、章节目录5.11.1.网络设备驱动概述5.11.2.虚拟网卡驱动分析15.11.3.虚拟网卡驱动分析25.11.4.DM9000驱动源码分析15.11.5.DM9000驱动源码分析第二部分、章节介绍5.11.1.网络设备驱动概述 本节对网络...原创 2021-01-30 17:43:06 · 2264 阅读 · 1 评论 -
Linux驱动分析——I2C子系统
stm32mp157 盘古开发板 Linux内核版本4.19目录1、朱有鹏老师视频笔记2、I2C子系统的4个关键结构体3、关键文件4、i2c-core.c初步分析4.1、smbus代码略过4.2、模块加载和卸载:bus_register(&i2c_bus_type); 在i2c-core-base.c中4.3、I2C总线的匹配机制4.3.1、match函数4.3.2、probe函数4.4、核心层开放给其他部分的注册接口5、adapter模...原创 2021-01-28 20:58:13 · 884 阅读 · 0 评论 -
Linux驱动分析——input输入子系统
1、朱有鹏老师的视频课程笔记和应用测试代码:***********《朱有鹏老师嵌入式linux核心课程》 ***********《5.linux驱动开发-第5部分-5.8.input子系统基础之按键》--------------------------------------------------------本课程由朱老师物联网大讲堂推出并提供技术支持,课件可打包下载网盘地址:http://yunpan.cn/cjVy3RAgfDufK 访问密码 4ad7技术交流QQ群:朱老师物联网讲堂原创 2021-01-27 18:09:34 · 1711 阅读 · 0 评论 -
Linux驱动分析——pwm-leds
stm32mp157 盘古开发板 Linux内核版本4.19pwm-leds就是用pwm来控制LED亮度1、内核相关文档linux-st\Documentation\devicetree\bindings\leds\leds-pwm.txtLED connected to PWMRequired properties:- compatible : should be "pwm-leds".Each LED is represented as a sub-node of the..原创 2021-01-20 21:09:45 · 3129 阅读 · 0 评论 -
Linux驱动分析——定时器子系统
stm32mp157 盘古开发板 Linux内核版本4.19这个定时器字系统,严格的来说应该是stm32-timer-trigger1、内核相关文档设备树配置文档linux-st\Documentation\devicetree\bindings\iio\timer\stm32-timer-trigger.txtSTMicroelectronics STM32 Timers IIO timer bindingsMust be a sub-node of an STM32 Timer..原创 2021-01-20 15:19:53 · 663 阅读 · 0 评论 -
Linux驱动分析——PWM子系统
stm32mp157 盘古开发板 Linux内核版本4.191、首先了解在Linux系统上面怎么使用PWM,比如设置某个引脚输出某个PWM脉冲内核文档linux-st\Documentation\ABI\testing\sysfs-class-pwm描述:What: /sys/class/pwm/Date: May 2013KernelVersion: 3.11Contact: H Hartley Sweeten <hsweeten@visionengravers.com&..原创 2021-01-19 15:57:04 · 2546 阅读 · 0 评论 -
Linux设备模型(9)——device resource management
转载:http://www.wowotech.net/device_model/device_resource_management.html1. 前言蜗蜗建议,每一个Linux驱动工程师,都能瞄一眼本文。之所以用“瞄”,因此它很简单,几乎不需要花费心思就能理解。之所有这建议,是因为它非常实用,可以解答一些困惑,可以使我们的代码变得简单、简洁。先看一个例子: 1: /* drivers/media/platform/soc_camera/mx1_camera.c, line 695转载 2021-01-14 19:20:47 · 396 阅读 · 1 评论 -
Linux设备模型(8)——platform设备
转载:http://www.wowotech.net/device_model/platform_device.htm1. 前言在Linux设备模型的抽象中,存在着一类称作“Platform Device”的设备,内核是这样描述它们的(Documentation/driver-model/platform.txt):Platform devices are devices that typically appear as autonomous entities in the system. T转载 2021-01-14 16:45:27 · 1027 阅读 · 0 评论 -
Linux设备模型(7)——Class
转载:http://www.wowotech.net/device_model/class.htm1. 概述在设备模型中,Bus、Device、Device driver等等,都比较好理解,因为它们对应了实实在在的东西,所有的逻辑都是围绕着这些实体展开的。而本文所要描述的Class就有些不同了,因为它是虚拟出来的,只是为了抽象设备的共性。举个例子,一些年龄相仿、需要获取的知识相似的人,聚在一起学习,就构成了一个班级(Class)。这个班级可以有自己的名称(如295),但如果离开构成它的学生(de转载 2021-01-14 16:29:42 · 421 阅读 · 0 评论 -
Linux设备模型(6)——Bus
转载:http://www.wowotech.net/device_model/bus.html1. 概述在Linux设备模型中,Bus(总线)是一类特殊的设备,它是连接处理器和其它设备之间的通道(channel)。为了方便设备模型的实现,内核规定,系统中的每个设备都要连接在一个Bus上,这个Bus可以是一个内部Bus、虚拟Bus或者Platform Bus。内核通过struct bus_type结构,抽象Bus,它是在include/linux/device.h中定义的。本文会围绕该结构,描述转载 2021-01-14 15:40:53 · 527 阅读 · 0 评论 -
Linux设备模型(5)——device和device driver
转载:http://www.wowotech.net/device_model/device_and_driver.html1. 前言device和device driver是Linux驱动开发的基本概念。Linux kernel的思路很简单:驱动开发,就是要开发指定的软件(driver)以驱动指定的设备,所以kernel就为设备和驱动它的driver定义了两个数据结构,分别是device和device_driver。因此本文将会围绕这两个数据结构,介绍Linux设备模型的核心逻辑,包括:设备及转载 2021-01-14 15:17:21 · 933 阅读 · 0 评论 -
Linux设备模型(4)——sysfs
转载:http://www.wowotech.net/device_model/dm_sysfs.html1. 前言sysfs是一个基于RAM的文件系统,它和Kobject一起,可以将Kernel的数据结构导出到用户空间,以文件目录结构的形式,提供对这些数据结构(以及数据结构的属性)的访问支持。sysfs具备文件系统的所有属性,而本文主要侧重其设备模型的特性,因此不会涉及过多的文件系统实现细节,而只介绍sysfs在Linux设备模型中的作用和使用方法。具体包括:sysfs和Kobject的关转载 2021-01-13 17:55:41 · 185 阅读 · 0 评论 -
Linux设备模型(3)——Uevent
转载:http://www.wowotech.net/device_model/uevent.html1. Uevent的功能Uevent是Kobject的一部分,用于在Kobject状态发生改变时,例如增加、移除等,通知用户空间程序。用户空间程序收到这样的事件后,会做相应的处理。该机制通常是用来支持热拔插设备的,例如U盘插入后,USB相关的驱动软件会动态创建用于表示该U盘的device结构(相应的也包括其中的kobject),并告知用户空间程序,为该U盘动态的创建/dev/目录下的设备节点,更转载 2021-01-13 17:39:17 · 531 阅读 · 0 评论 -
Linux设备模型(2)——Kobject
转载:http://www.wowotech.net/device_model/kobject.html1. 前言Kobject是Linux设备模型的基础,也是设备模型中最难理解的一部分(可参考Documentation/kobject.txt的表述)。因此有必要先把它分析清楚。2. 基本概念由“Linux设备模型(1)_基本概念”可知,Linux设备模型的核心是使用Bus、Class、Device、Driver四个核心数据结构,将大量的、不同功能的硬件设备(以及驱动该硬件设备的方法),以树转载 2021-01-13 17:30:29 · 284 阅读 · 0 评论 -
Linux设备模型(1)——基本概念
转载:http://www.wowotech.net/device_model/13.html1. 前言在“Linux内核的整体架构”中,蜗蜗有提到,由于Linux支持世界上几乎所有的、不同功能的硬件设备(这是Linux的优点),导致Linux内核中有一半的代码是设备驱动,而且随着硬件的快速升级换代,设备驱动的代码量也在快速增长。个人意见,这种现象打破了“简洁就是美”的理念,是丑陋的。它导致Linux内核看上去非常臃肿、杂乱、不易维护。但蜗蜗也知道,这不是Linux的错,Linux是一个宏内核,它必转载 2021-01-13 17:03:02 · 246 阅读 · 0 评论 -
Linux驱动分析——gpiolib子系统
stm32mp157 盘古开发板 Linux内核版本4.191、简述(摘自https://blog.csdn.net/zhoutaopower/article/details/98082006)GPIO 资源是相对来说较为简单,而且比较通用(比如 LED 灯),而 Linux 的 GPIO 驱动属于 Linux Driver 中较为容易上手的部分,但是简单归简单,在 Linux 系统中,要使用 GPIO 资源,还是需要了解一些内容。Linux Kernel 中对 GPIO 资源进行了抽象,抽..转载 2021-01-12 18:17:23 · 801 阅读 · 0 评论 -
Linux驱动分析——pinctrl子系统
stm32mp157 盘古开发板 Linux内核版本4.191.Linux Pinctrl子系统简介在许多soc内部都包含有pin控制器,通过pin控制器的寄存器,我们可以配置一个或者一组引脚的功能和特性。在软件方面,Linux内核提供了pinctrl子系统,目的是为了统一各soc厂商的pin脚管理。2.Linux Pinctrl子系统提供的功能 (1)管理系统中所有的可以控制的pin,在系统初始化的时候,枚举所有可以控制的pin,并标识这些pin。 (2)管理这些p...原创 2021-01-12 10:35:10 · 975 阅读 · 0 评论 -
Linux驱动分析——LED子系统+驱动框架简介
1、驱动是谁写的:(1)驱动开发工程师(2)内核维护者2、驱动编程写作要求:(1)接口标准化(2)尽量降低驱动开发者难度3、到底什么是驱动框架:(1)内核中驱动部分维护者针对每个种类的驱动设计一套成熟的、标准的、典型的驱动实现,然后把不同厂家的同类硬件驱动中相同的部分抽出来自己实现好,再把不同部分留出接口给具体的驱动开发工程师来实现,这就叫驱动框架。(2)内核维护者在内核中设计了一些统一管控系统资源的体系,这些体系让内核能够对资源在各个驱动之间的使用统一协调和分配,保证整个内原创 2021-01-08 16:18:22 · 2065 阅读 · 2 评论 -
Linux内核配置文件生成详解
今天想把Linux内核裁剪一下,即关掉一些用不到的功能。正常来说应该是命令:make menuconfig,弹出图形化配置界面,配置完成后的配置信息保存在内核源代码的根目录下的.config文件中。但是,盘古开发板的wiki上面给出的内核编译命令是:问题来了,它这里怎么不是makeconfig,而是makei2som_panguboard_defconfig,为什么会是make这个文件呢?百度发现,i2som_panguboard_defconfig这个配置文件位于内核源代码根目录...原创 2020-11-23 17:05:23 · 1619 阅读 · 0 评论 -
嵌入式Linux内核目录讲解
原创 2020-11-23 14:16:37 · 268 阅读 · 0 评论 -
嵌入式Linux平台上安装NTP服务并同步网络时间
NTP 时间同步客户端到网站下载源码http://www.ntp.org/downloads.html$ tar -xvf ntp-4.2.6p5.tar.gz$ cd ntp-4.2.6p5/$ ./configure --host=arm-linux$ make把ntpdate/ntpdate可执行文件拷贝到板子的/usr/bin/下面,做为客户端,只要这个,其他的都非必须板子上运行# ntpdate 192.168.0.88这样运行就会进行时间同步PS:NTP时间同步使用的原创 2020-11-03 11:27:50 · 2306 阅读 · 1 评论 -
Linux驱动开发———总线设备驱动模型
1、课程索引:2、总线模型概述: 随着技术的不断进步,系统的拓扑结构也越来越复杂,对热插拔,跨平台移植性的要求也越来越高,2.4内核已经难以满足这些需求。为适应这种形势的需要,从Linux2.6内核开始提供了全新的设备模型。3、总线的描述结构: 4、总线的注册与注销:5、总线设备模块加载到Linux内核中之后,可以在/sys/bus/目原创 2017-05-20 11:11:52 · 322 阅读 · 0 评论 -
Linux驱动开发———Linux中断处理程序设计
1、裸机程序的中断流程: A、所有的中断都有统一的入口; B、事先要注册中断处理程序; C、根据中断源的编号调用中断处理程序。2、Linux中断处理流程: A、irq_svc是linux中中断的统一入口; B、获取中断号; C、根据中断号找到相应的中断;原创 2017-05-10 20:35:25 · 510 阅读 · 0 评论 -
Linux驱动分析———平台总线设备驱动
1、平台总线概述: 平台总线(Platform bus)是linux2.6内核加入的一种虚拟总线,其优势在于采用了总线的模型对设备与驱动进行了管理,这样提高了程序的可移植性。2、通过平台总线机制开发设备驱动的流程图:3、原创 2017-05-11 17:00:32 · 517 阅读 · 0 评论 -
Linux应用开发———将so库加入到系统开发的动态链接库中
今天使用科大讯飞的语音识别和合成程序,在他们的demo中有个动态链接库,运行程序提示: 提示找不到动态链接库。 然后将这个动态链接库加入到系统的默认自动搜索的链接库中: 之后再运行程序就可以了,注意运行ldconfig命令的时候前面一定要加上sudo。原创 2017-08-10 14:33:54 · 3444 阅读 · 0 评论 -
Linux应用开发———编译程序提示“对“xxxxxx”未定义的引用”
使用C语言做一个简单的服务器demo程序,需要用到http,于是安装了一个libghttp。 安装完之后,在编译对应例程的时候提示: 在安装libghttp库的时候,在配置那里使用了命令: 于是到/usr/local/目录下查看,发现在include下有ghttp.h文件,在lib下有对应的so文件。 之后将动态链接库拷贝到/usr/lib下原创 2017-08-12 18:04:09 · 33201 阅读 · 0 评论 -
Linux应用开发———已经添加了C函数对应的头文件,还是提示找不到那个函数
提示找不到函数pow和floor的定义,这两个函数是c语言的库函数,头文件是math.h。 已经在程序中添加了该头文件,但还是提示找不到。 百度到: 最后,加上了-lm就可以了:原创 2017-08-13 16:22:45 · 8841 阅读 · 0 评论 -
如何查看Linux内核中printk打印的信息?
在内核编程只能使用printk而不能使用printf,那我们如何才能查看到我们用printk输出的信息呢?答案就是在shell中使用dmesg指令!!转载 2017-04-25 15:44:00 · 14840 阅读 · 0 评论 -
Linux驱动开发———混杂设备驱动模型
1、混杂设备概念: 在Linux系统中,存在一类字符设备,它们拥有相同的主设备号(10),但次设备号不同,我们称这类设备为混杂设备(miscdevice)。所有的混杂设备形成一个链表,对设备访问时内核根据次设备号查找到相应的混杂设备。2、混杂设备描述: Linux中使用struct miscdevice来描述一个混杂设备:3、混杂设备注册:原创 2017-05-10 20:07:26 · 428 阅读 · 0 评论 -
基于linux操作系统下s5pv210板子的按键中断实验
首先,在做这个实验之前有三件事是要明确的:1. linux下的中断实验不需要像裸机实验一样要自己写取消屏蔽,清除中断标志位的操作,系统会自动帮你完成;2.中断号的申请我使用的是gpio_to_irq()这个宏,它会帮我们自动分配中断号,返回值为中断号;3. 在每个板子配套来的内核代码大部分都是已经包含了按键中断驱动,如果想另自己写的按键中断驱动不与内核本身带的发生中断号上的转载 2017-02-19 16:37:31 · 654 阅读 · 0 评论 -
在source Insight中添加s文件的方法
使用source Insight浏览项目代码时,软件默认并不会包含.s后缀的文件,而且对于.s的文件也没有语法着色,怎么办呢?下面给出解决方法。1、首先,选择菜单options->Document Options,点Document Type下拉菜单,选择x86 Asm Source File,然后在File filter里*.asm;*.inc的后面加上*.s和*.S(注意以(;原创 2017-02-23 14:04:51 · 8247 阅读 · 0 评论 -
ubuntu14.04 Samba服务无法访问 可能没有权限 指定的网络名不再可用的问题
按常规配置后,在windows资源管理器中登陆samba服务器,看得到分享目录却无法打开,弹出"无法访问。您可能没有权限使用网络资源,请与这台服务器的管理员联系以查明您是否有访问权限。指定的网络名不再可用。"折腾了半天,始终不行。最后通过查看 /var/log/samba/下的日志文件发现,[2016/08/24 01:04:09.910581, 0] ../s转载 2017-03-19 14:23:16 · 520 阅读 · 0 评论 -
Linux系统中arm-linux-gcc编译器升级
Linux系统中arm-linux-gcc编译器升级:最近在编译Linux内核,但编译的时候提示错误:然后从网上查找该错误的原因:于是查看Linux系统arm-linux-gcc编译器的版本:查到当前版本是4.3.2,但是查看开发板(友善之臂tiny210v2)资料所带的arm-linux-gcc编译器的版本为4.5.1 。因此更加怀疑是编译器的版本低的原因原创 2017-03-10 10:42:02 · 6099 阅读 · 0 评论 -
嵌入式Linux内核配置和编译
1、首先将Linux内核源码在Linux环境下解压:2清除原有的配置和中间文件:3、将其中的一个config文件改为.config,以便将配置信息配置到图形配置界面当中,减少内核配置的工作量:4、内核的配置和编译命令:5、配置内核:6、编译内核:原创 2017-03-10 14:06:05 · 576 阅读 · 0 评论 -
执行make出现“Warning: File `xxx.c' has modification time 2.6e+04 s in the future“警告的解决方法
错误描述:执行make命令时出现“make[2]: Warning: File `xxx.c' has modification time 1.6e+05 s in the future “警告,原因是宿主机与虚拟机的系统时间没有同步造成的.解决方法:将时间将同步!由于时钟同步问题,出现 w转载 2017-03-14 17:24:01 · 1090 阅读 · 0 评论 -
Linux下运行程序时找不到链接库的解决办法
运行错误:error while loading shared libraries: xxx.so.0:cannot open shared object file: No such file or原因是程序运行的时候找不到动态链接库,需要将改程序运行的时候用到的库的路径加入到系统中,以便系统在运行程序的时候可以沿着词路径找到动态链接库。链接时可以通过-L和-l转载 2017-03-14 17:27:31 · 2978 阅读 · 0 评论