![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux学习
崔家寨大当家
这个作者很懒,什么都没留下…
展开
-
GT1151多点触摸屏例程
汇顶科技GT1151多点触摸屏驱动代码,基于4.1.15版本核,亲测可用原创 2023-08-12 21:28:27 · 626 阅读 · 0 评论 -
CMOS图像传感器OV7740数据手册
豪威OV7740数据手册,保密文件。网上很难找到的。原创 2022-06-07 11:22:32 · 556 阅读 · 2 评论 -
CMOS图像传感器OV7725数据手册
豪威OV7725数据手册,保密文件。网上很难找到的。原创 2022-06-07 11:18:22 · 1236 阅读 · 1 评论 -
为mini2440生成uImage命令参数介绍
mkimage -n 'mini2440' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008040 -d arch/arm/boot/zImage uImage参数解释: -n 'mini2440' // 指定原始内核镜像名称,即用mini2440来生成uImage -A arm // 指定将要运行镜像的芯片架构为ARM内核 -O linux // u...原创 2021-11-26 11:11:41 · 143 阅读 · 0 评论 -
记录一下QT开发基础
1.QT窗体结构:2.窗体类构建步骤 a.先评估需要的控件 b.声明窗体类成员 c.声明窗体类方法 c.声明窗体类信号和槽原创 2021-10-06 15:07:21 · 53 阅读 · 0 评论 -
记录一下tslib配置参数module_raw
来源:http://blog.sina.com.cn/s/blog_68fe569d01013cla.htmlmodule_raw input 当module_raw被设置为input时,时告诉tslib从linux的输入设备读取数据,需要用到input这个模块,也就是plugin目录下的input.so文件。 所以你的TSLIB_PLUGINDIR一定要配置正确,让tslib能够找到模块文件。...原创 2021-08-25 17:05:16 · 375 阅读 · 0 评论 -
mini2440开发板一线触摸原理
结论:mini2440开发板的一线触摸其实只是一个模拟串口通信而已。1.通过看查看mini2440开发板的LCD驱动板的原理图,我们可以发现驱动板上是用了一颗单片机来检测电阻屏。然后单片机引出两条线来和S3C2440连接到一起。这条件线就是S3C2440获取触摸数据的通信线。2.通过跟读mini2440_1wire_host.c中有关触摸屏的操作代码。从代码中我们可以发现,mini2440一线触摸驱动代码里面使用了两个定时器来和触摸屏驱动板上的单片机通信。而且是使用串口通信。 首先两个.原创 2021-08-22 16:19:47 · 698 阅读 · 0 评论 -
记录一下几个内核启动函数的作用
1.do_basic_setup(); // 执行所有驱动的入口函数do_initcalls(); //批量执行所有内核驱动的入口函数2.prepare_namespace(); // 挂载根文件系统3.init_post(); // 执行应用程序祖先进程-init进程-1号进程序 当uboot没有使用init变量给内核传递init进程的代码信息时,内核执行以下进程之一...原创 2021-08-22 10:41:27 · 132 阅读 · 0 评论 -
记录一下计老师如何将ELF文件转成汇编
以下内容是Makefile文件内容。#指定使用的是哪个链接脚本LED_LDS = -Tled.ldsledc.bin:start.S ledc.c arm-none-linux-gnuebi-gcc -c -o start.o start.S # 生成目录文件 arm-none-linux-gnuebi-gcc -c -o ledc.o ledc.c # 生成目录文件 #使用链接脚本将目标文件链接成ELF可执行文件。若不使用链接脚本时,连接顺序为目录文件书写的顺序 #-Ttext原创 2021-08-20 21:56:46 · 1050 阅读 · 0 评论 -
记录一下内核定时器-动态timer
动态 Timer动态 timer 由内核自身使用,其实也是其他 Timer 的实现基础。使用动态 Timer 的接口函数有三个: 1 2 3 add_timer() del_timer() init_timer() 使用时,先调用 init_timer() 初始化一个定时器,指定到期时间和到期处理函数;初始化完成后,内核代码可以用 add_timer() 启动定时器,或者用 del_timer() 来取消一个已经启动的定时器。转载 2021-08-17 21:52:46 · 97 阅读 · 0 评论 -
输入子系统按键测试APP-应用程序循环读取键值
应用程序使用一个while循环不断读取/dev/input/event1读取到有效键值时打印状态#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <linux/input.h>// 先声明一个input_event用于接收键值struct原创 2021-08-15 18:46:32 · 195 阅读 · 0 评论 -
输入子系统驱动例程-上报一个按键的键值
输入子系统套路: 1.申请一个struct input_dev对象 input_allocate_device(); 2.初始化 struct input_dev对象 evbit[] ,keybit[]初始化 3.注册 struct input_dev对象 input_r...原创 2021-08-15 18:21:36 · 460 阅读 · 0 评论 -
平台设备驱动例程-注册一个按键中断
1.使用platform_get_irq()获取中断号。头文件:<linux/platform_device.h>2.使用request_irq()注册中断处理函数。头文件:<linux/interrupt.h>3.使用gpio_get_value()读取按键电平。头文件:<linux/gpio.h>4.使用S3C2410_GPG(x)得到IO口编号。头文件:<mach/gpio-nrs.h>#include <linux/kern原创 2021-08-15 13:37:06 · 1235 阅读 · 0 评论 -
记录一下platform总线之pdrv简单模块
以下是简单的平台驱动代码例程#include "linux/init.h"#include "linux/module.h"#include "linux/platform_device.h"#include <linux/irq.h>#include "linux/err.h"#include "linux/interrupt.h"#include <asm/irq.h>#include <asm/io.h>irq_handler_t原创 2021-08-12 23:11:08 · 487 阅读 · 0 评论 -
记录一下platform之平台设备注册例程led_pdev.c
以下是注册一个平台设备的简单代码#include "linux/module.h"#include "linux/init.h"//#include <linux/irq.h>#include "linux/platform_device.h"//#include <asm/irq.h>#define LED_GPC0_CONF 0XE0200060#define LED_GPC0_SIZE 8struct resource led_pdev_reso原创 2021-08-12 22:26:48 · 86 阅读 · 0 评论 -
记录一下计老师写的模块Makefile文件
计好奇老师写的Makefile太好了,记录一下。以免忘记。感谢计老师。CROSS_COMPILE = arm-none-linux-gnueabi-CC = $(CROSS_COMPILE)gcc#APP_NAME = key_appMODULE_NAME = evdev_button_dev#内核源码路径KERNEL_DIR = /home/user1/Public/sh_samba/linux-2.6.32.2CUR_DIR = $(shell pwd)all:#表示先进入到原创 2021-08-10 22:25:21 · 107 阅读 · 0 评论 -
mini2440一线触摸驱动代码的位置
mini2440开发板的一线触摸屏驱动代码的位置在友善之臂提供的linux内核代码中的位置如下:linux-2.6.32.2\drivers\input\touchscreen\mini2440_1wire_host.c/* * mini2440_1wire_host.c * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Gener原创 2021-08-01 10:48:51 · 240 阅读 · 0 评论 -
查看库文件支持的GLIBC版本号
strings /lib/libc-2.6.so | grep GLIBC原创 2021-07-27 21:54:48 · 412 阅读 · 0 评论 -
记录一下大神韦东山构建最小根文件系统的步骤
1.需要构建的内容: a.使用busybox生成系统运行依赖的基本命令:ls,cd,、、、等。 b.使用mknod命令手动建立设备文件/etc/console, /etc/null. c. init程序(系统启动时运行的第一个程序) d. init程序依赖的配置文件:/etc/inittab(存放启动时脚本)2.由于通过上面建立的根文件系统还没有挂载系统依赖的proc文件系统,ps命令无法运行。因此还要在启动配置文件/etc/i...原创 2021-07-12 09:40:09 · 160 阅读 · 0 评论 -
tslib官网
tslib官网地址: www.tslib.orgtslib下载网址:https://github.com/libts/tslib/releases原创 2021-07-10 22:34:55 · 328 阅读 · 0 评论 -
ubuntu将eth0设置为自动获取IP,重启后不能ping通百度
今天将eth0设置为自动获取ip,之后eth0 down,eth0 up,结果ping www.baidu.com不通处理方法: 将系统重启后就可以ping通了。原创 2021-07-10 16:37:41 · 331 阅读 · 0 评论 -
旧版Linux源码下载网站
www.oldlinux.org原创 2021-06-10 16:39:42 · 387 阅读 · 0 评论 -
linux中IO内存的使用方法
在X86处理器中存在IO空间的概念,IO空间是相对于内存空间而言,他们是彼此独立的空间。在32位的X86处理器中,IO空间为64K,内存空间为4G。当寄存器处于IO空间时,则称寄存器为IO端口。当寄存器处于内存空间时,则称其为IO内存。1、IO内存访问的步骤: 1> 申请 - 向系统申请IO内存,申请后即占用 2> 映射 - 将IO内存映射到虚拟地址...原创 2020-03-20 15:55:42 · 322 阅读 · 0 评论 -
中断下半部之 work
如果中断下半部使用tasklet机制的话,实际上是利用软件中断来处理中断下半部。因此tasklet中不允许使用可能引起进行睡眠的函数调用。而work机制则是在一个独立的进程中来处理中断下半部,所以它允许调用可能引起进程睡眠的函数。1.work的结构体 struct work_struct { atomic_long_t data; s...原创 2020-02-20 12:02:57 · 192 阅读 · 0 评论 -
中断下半部之 tasklet
1.tasklet的结构体 struct tasklet_struct { struct tasklet_struct *next; unsigned long state; atomic_t count; void (*func)(unsigned long); unsigned ...原创 2020-02-20 11:47:27 · 129 阅读 · 0 评论 -
文件IO之异步信号通知-signal
1. 实现异步信号的步骤: 1> 在应用程序中注册信号SIGIO的处理函数 2> 设置处理SIGIO信号进程ID,即指定信号由哪个进程来接收 3> 将文件IO模式设置为异步模块-fasync模式 4> 在驱动中与接收信号的进程进行关联 5> 当驱动准备好数据后,向应用发送信号通知2. 应用程序 - 注册信...原创 2020-02-20 11:29:37 · 258 阅读 · 0 评论 -
文件IO之多路复用-poll
1.函数原型#include <poll.h>int poll(struct pollfd *fds, nfds_t nfds, int timeout)参数1:多个文件描述符的集合,为一个数组指针 struct pollfd{ int fd; // 文件描述符 ...原创 2020-02-20 10:34:41 · 231 阅读 · 0 评论 -
函数指针类型定义
typedef irqreturn_t (*irq_handler_t)(int,void*);用typedef 定义了一个函数指针类型irq_handler_t,指向的函数原型返回类型为 irqreturn_t它接收的参数类型就是int 和void* 两个参数static irqreturn_t pen_down_up_irq(int irq,void* dev_id)...转载 2020-02-05 09:08:44 · 514 阅读 · 0 评论 -
时间统计
方式一:统计程序运行时间,最后打印信息的单位为秒。// 定义变量int clktck = 0;struct tms tmsstart, tmsend;clock_t start, end;// 以下两名放在统计开如处clktck = sysconf(_SC_CLK_TCK);start = times(&tmsstart);// 以下两句放在统计结束处end = t...原创 2020-01-14 16:11:41 · 319 阅读 · 0 评论 -
linux下i2c操作例程
树莓派i2c操作例程,设备文件为:/dev/i2c-1/***************************************************************************************************************************************************/#include <unis...原创 2020-01-06 19:04:35 · 1405 阅读 · 0 评论 -
树莓派3B+修改WIFI为静态IP
1.先通过网线直接将树莓派和电脑连接起来。并且使用一个无线网卡上网。2.在WINDOWS里面打开CMD窗口,然后使用:arp - a查看树莓派的IP地址。 请参考博文:https://blog.csdn.net/TIME_LEAF/article/details/809375173.使用putty通过网线登陆到树莓派。 请参考博文:https://blog.csdn.net/...原创 2019-12-27 18:01:29 · 377 阅读 · 1 评论 -
arm-linux-gcc编译器的命名
1. arm-none-linux-gnueabi- arm - 目录CPU none - 编译厂商名称,none代表开源编译器 linux - 编译出的代码所以支持的系统 gnueabi - 开源的(gnu)的嵌入式标准接口2. arm-none-eabi- (不支持操作系统) arm - 目录CPU none - 编译厂商名称,n...原创 2019-10-26 20:58:46 · 474 阅读 · 0 评论 -
linux内核kobject的一些信息
1. kobject定义的头文件 #include <linux/kobject.h>2. kobject所能处理的任务和它所支持的代码 a. 对象的引用记数。 b. sysfs表述 c. 数据结构关联 d. 热插拔事件处理3. 如何通过一个kobject指针得到包函它的结构体指针 struct cdev {...原创 2019-10-23 11:37:24 · 663 阅读 · 0 评论 -
linux中断申请和释放函数
中断信号线是非常珍贵且有限的资源。内核维护了一个中断信号线的注册表,该表类似于I/O端口的注册表。模块在使用使用中断前要先求请一个中断通道(或者中断请求IRQ),在使用后还要记得释放该中断通道。在很多情况下,模块也希望可以和其它驱动程序共享中断信号线。1. 中断函数要包含的头文件 #include <linux/sched.h>1. 中断申请函数 int...原创 2019-10-20 10:52:33 · 1134 阅读 · 0 评论 -
man使用技巧-列出关键字的基本信息
man 命令后根 -f 选项时,会列出想要搜索的关键字的基本信息。如下例所示:输入命令 man -f kill输出信息: kill (1) - send a signal to a process kill (2)...原创 2019-08-27 14:09:07 · 320 阅读 · 0 评论 -
linux文件操作-系统函数read,write-例程
备注: 先建立要读写的文件。RDWR_test.txt,RDWR_test.txt.bak代码:#include <stdio.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>...原创 2019-07-24 17:52:31 · 398 阅读 · 0 评论 -
2.6内核中如何让系统自动为驱动创建设备文件
1.首先系统中要求已经安装有udev(mdev). 只有系统支持udev(mdev)这个应用才能自动在加载模块驱动时自动创建设备文件节点。2.要用到的两个函数: 要在模块初始化函数中使用以下两个函数才能自动创建设备文件节点. class_create();// 创建一个类 device_create();// 在类下创建设备文件3.示列: str...原创 2019-09-29 16:44:11 · 114 阅读 · 0 评论 -
vim基本操作
一、命令模式: 1、保存退出:ZZ 2、代码整理:gg=G (1)光标移动 3、左/下/上/右移动光标:H/J/K/L 4、光标移动到行首:0 5、光标移动到行尾:$ 6、光标移动到文件头部:gg 7、光标移动到文件尾部:G 8、光标移动到n行:n+G ...原创 2019-07-26 17:54:23 · 145 阅读 · 0 评论 -
记录一下:linux动态库是由谁来加载的
linux动态库是由ld-linux.so来加载的。ld-linux.so先后搜索以下目录看是否有需要加载的动态库:elf文件的DT-RPATH目录,环境变量LD_LIBRARY_PATH设置的目录,/etc/ld.so.cache文件列表,/lib/目录,/usr/lib/目录。如果在以上目录找到需要的动态库,则将动态库加载到内存。若没有在以上目录找到需要的动态库,则会报错:No s...原创 2019-07-26 15:25:59 · 242 阅读 · 0 评论 -
gcc工作流程图
原创 2019-07-26 14:24:38 · 384 阅读 · 0 评论