自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 Linux INPUT子系统实验

按键、鼠标、键盘、触摸屏等都属于输入(input)设备,Linux内核为此专门做了一个叫做input子系统的框架来处理输入事件。输入设备本质上还是字符设备,只是在此基础上套上了input框架,用户只需要负责上报输入事件,比如按键值、坐标等信息,input核心层负责处理这些事件。input子系统分为input驱动 层、input核心层、input事件处理层,最终给用户空间提供可访问的设备节点,input子系统框架如图所示:左边就是最底层的具体设备,比如按键、USB。

2024-04-21 21:08:30 723 1

原创 Linux自带的LED灯驱动

LED灯驱动文件为,打开这个文件:Makefile文件:这个驱动文件:第236~239行,LED驱动的匹配表,此表只有一个匹配项,compatible内容为“gpio-leds”,因此设备树中的LED灯设备节点的compatible属性值也要为“gpio-leds”,否则设备和驱动匹配不成功,驱动就没法工作。

2024-04-13 17:42:56 963

原创 设备树下的platform驱动编写

在没 有设备树的 Linux内核下,我们需要分别编写并注册和,分别代 表设备和驱动。在使用设备树的时候,设备的描述被放到了设备树中,因此 platform_device就 不需要我们去编写了,我们只需要实现 platform_driver即可。在设备树中创建设备节点来描述设备信息,重点是要设置好compatible属性的值,因为platform总线需要通过设备节点的compatible属性值来匹配驱动。第4行的compatible属性值为“”,因此一会在编写。

2024-04-13 11:02:59 732

原创 platform设备驱动实验

Linux系统内核使用bus_type结构体表示总线,此结构体定义在文件bus_type。

2024-04-12 01:09:38 640 1

原创 Linux的pinctrl和gpio子系统实验

使用一个GPIO之前一定要使用gpio_request 进行申请。函数参数和返回值含义如下:

2024-03-30 14:29:29 1105

原创 设备树下 的LINUX驱动实验

/ledApp /dev/dtsled 1 //打开。./ledApp /dev/dtsled 0 //熄灭。depmod //第一次加载驱动的时候需要运行此命令。modprobe dtsled.ko //加载驱动。③、使用获取到的有关属性值来初始化。,获取设备树中的相关属性值。文件中创建相应的设备节点。在第四十二章实验基础上完成。中,重启系统,进入到目录。命令:make -j32。修改完之后编译设备树木。将dtsled.ko。中,输入如下命令加载。文件, 在根节点“/

2024-03-26 23:21:08 359

原创 Linux设备树

使用cat命令查看model和compatible内容,正是设备树文件根节点的对应属性值。:前一个子节点,也就是从哪一个子节点开始迭代的查找下一个子节点。内核启动的时候会解析设备树中各个节点的信息,并且在根文件系统的。这个属性的值和uboot里面设置的bootargs一样。:带有全路径的节点名,可以使用节点的别名,比如“chosen节点是uboot添加的。表示从根节点开始查找整个设备树。表示从根节点开始查找整个设备树。表示从根节点开始查找整个设备树。表示从根节点开始查找整个设备树。

2024-03-26 22:44:15 1067

原创 新字符设备驱动实验

echo /sbin/mdev > /proc/sys/kernel/hotplug // 设置热插拔事件由。测系统中硬件设备状态,可以根据系统中硬件设备状态来创建或者删除设备文件。函数注册字符设备的时候只需要给定一个主设备号即可,但是这样会。./ledApp /dev/newchrled 1 //打开。./ledApp /dev/newchrled 0 //关闭。是要申请的起始设备号,也就是给定的设备号;①、需要我们事先确定好哪些主设备号没有使用。②、会将一个主设备号下的所有次设备号都使用掉。

2024-03-24 20:12:19 684 1

原创 Linux LED驱动实验

函数释放掉 ioremap 函数所做的映射。函数用于获取指 定 物 理 地 址 空 间 对 应 的 虚 拟 地 址 空 间。depmod //第一次加载驱动的时候需要运行此命令。./ledApp /dev/led 1 //打开。./ledApp /dev/led 0 //关闭。,此参数就是要取消映射的虚拟地址空间首地址。modprobe led.ko //加载驱动。是虚拟空间到物理空间的映射,也叫做地址映射。读取写内存地址,返回值就是读取到的数据。:要映射的物理起始地址。:要映射的内存空间大小。

2024-03-22 00:33:05 685 1

原创 Linux字符设备驱动入门

Linux应用程序对驱动程序的调用如图所示Linux应用程序对驱动程序的调用如图所示。

2024-03-21 00:39:00 877 1

原创 NFS服务器挂在搭建好的根文件系统调试

1、板子预先烧录自己编译的uboot,进入uboot命令行模式,设置bootargs和bootcmd。设置通过TFTP服务从服务器下载zImage和dtb文件到ARM板内存指定位置。根文件系统在linux环境搭建好之后,可以通过nfs服务器挂载,方便调试。结果,根文件系统有问题,继续。设置nfs挂载根文件系统命令。

2024-03-19 00:17:14 389 1

原创 联想拯救者R720重装系统

1、准备一个U盘,用老毛桃软件制作启动盘,在U盘里面导入WIN10.ISO系统镜像文件或者在待装系统电脑里面费系统盘预先下载系统镜像。5、待PE系统启动,在里面选择用磁盘工具重新分区或者用磁盘磁道扫描工具扫描磁盘,统计坏死磁道情况。2、插入启动盘,电脑重启,按F12,进入开机启动项选择界面,选择U盘启动。7、选择安装系统,选择安装在C盘,选择加载镜像文件,点击确认,等等系统安装成功。3、重新启动按F2,进入bios系统,配置xx。4、重启,选择启动盘启动,进入PE系统。

2024-03-16 23:51:36 1237 1

原创 将NXP官方Linux kernel移植到自己的开发板

1、安装库2、官网获取kernel包解压缩:3、根目录创建脚本文件12make ARCHarmlinuxgnueabihfdistclean3make ARCHarmlinuxgnueabihf4make ARCHarmlinuxgnueabihfmenuconfig5make ARCHarmlinuxgnueabihfallj16赋予运行权限chmod 777编译的过程中会弹出kernel编译的图形配置界面,按两下esc退出,继续编译。编译完成界面:Linux。

2024-03-16 14:27:48 885 1

原创 bootargs和bootcmd命令

fatload mmc 1:1 0x80800000 zImage //读取。bootz 0x80800000 - 0x83000000 //启动。系统的唯一目的就是为了调试,加快调试速度效率。倒计时结束以 后就会执行 bootcmd。mmc dev 1 //切换到。用来设置根文件系统的位置,用于指明根文件系统存放在。bootcmd 保存着。下载完成以后就是启动。

2024-03-16 13:32:08 673

原创 I.MX6ULL 从NXP官方获取uboot并且移植

1、NXP官方获取:2、解压缩:tar -vxjf boot-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz23、打开configs目录4、利用官方的配置文件编译uboot命令敲打之后会自动编译uboot5、编译成功画面6、避免每次编译uboot需要重新输入命令麻烦,可以创建sh脚本文件make ARCHarmlinuxgnueabihfdistcleanmake ARCHarmlinuxgnueabihfmake V1ARCHarmlinuxgnueabihf。

2024-03-16 13:13:28 1063

原创 I.MAX6ULL 从ATK获取uBoot编译烧写记录

2、虚拟机安装库:sudo apt-get install libncurses5-dev。赋予执行权限:chmod 777 imx_6ull_emmc_defconfig.sh。6、将编译好的uboot固件烧写到sd卡。7、开发板插入sd卡,选择从sd卡启动。4、执行如下配置脚本文件。可执行权限,一次即可。

2024-03-16 12:24:35 202 1

原创 sizeof使用二维数组时注意问题

先上代码:float gcode[10][2]={ {0.00,0.00}, {100.00,0.00}, {100.00,50.00}, {0.00, 50.00}, {0.00,100.00},

2017-02-05 16:25:49 528

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除