目录一、驱动程序分离的思想二、设备树2.1使用设备树三、平台总线设备驱动模板一、驱动程序分离的思想【IMX6ULL驱动开发学习】05.字符设备驱动开发模板(包括读写函数、poll机制、异步通知、定时器、中断、自动创建设备节点和环形缓冲区)_阿龙还在写代码的博客-CSDN博客之前编写驱动程序的代码存在不少弊端:移植性差,驱动程序移植到别的板子上时,开发者需要修改引脚。,并且还要重新编译驱动程序或内核。为提高移植和开发效率,驱动程序分离编程的思想尤为重要。首先我们要知道: 内核里有个结构体platform_bus_type(虚拟的总线),总线上抽象出两个链表:设备链表和驱动链表。我们在写驱动程序时
承接上一篇博客【IMX6ULL驱动开发学习】11.驱动设计之面向对象_分层思想(学习设备树过渡部分)代码获取:https://gitee.com/chenshao777/imx6-ull_-drivers我后面将三个层合并了(实际上只有前两层),合并成一个dev_drv.c了,暂时没有加GPIO操作,只是个框架合并前的代码在11.button_drv_chip_device-tree文件夹中合并后的代码在12.led_button_drv_tree文件夹中,文章最后把代码贴出来打算在第13次代码中加入GPIO子系统的代码,并且根据Pinctrl子系统编写设备树,使得外设控制更简单,敬请期待哦!
linux系列目录:linux基础篇(一)——GCC和Makefile编译过程linux基础篇(二)——静态和动态链接ARM裸机篇(一)——i.MX6ULL介绍ARM裸机篇(二)——i.MX6ULL启动过程ARM裸机篇(三)——i.MX6ULL第一个裸机程序ARM裸机篇(四)——重定位和地址无关码ARM裸机篇(五)——异常和中断linux系统移植篇(一)——linux系统组成linux系统移植篇(二)——Uboot使用介绍linux系统移植篇(三)——Linux内核使用介绍linux系统移植篇(四)——根文件系统使用介绍linux驱动开发篇(一)——Linux内核模块介绍linux驱动开发篇(
1.设备树部分首先在imx6ull.dtsi文件中已经帮我们定义好了一些pwm的设备树节点,这里以pwm2为例pwm2:pwm@02084000{ compatible="fsl,imx6ul-pwm","fsl,imx27-pwm"; reg=0x020840000x4000>; interrupts=GIC_SPI84IRQ_TYPE_LEVEL_HIGH>; clocks=&clksIMX6UL_CLK_DUMMY>, &clksIMX6UL_CLK_DUMMY>; clock-names="ipg","per"; #pwm-cells=2>;};我们要在设备树(.dts)文件中引用和
没玩过NES游戏的童年,可能不是80后的童年。我们小时候是从玩FC开始接触游戏机的,那时真的是红极一时啊,我上初中时还省吃俭用买了一台小霸王,暑假里把电视机都给打爆了!那时任天堂单是FC机的主机的发售收入就超过全美的电视台的收入的总和,在人们的心目中扎下了任天堂的这个招牌。前言1983年7月15日,由日本任天堂株式会社(原本是生产日式扑克即“花札”)的宫本茂先生领导开发的一种第三代家用电子游戏机:FC,全称:FamilyComputer,也称作:Famicom;在欧美发售时则被称为nes,全称:NintendoEntertainmentSystem;在中国大陆、台湾和香港等地,因其外壳为红白两
MfgTool烧录的原理和方法网上和各大开发板生产商教程都写的很明白了,这里记录一下遇到的问题供大家参考。打开MfgTool工具,开发板上电后,显示NoDeviceConnected。软件显示识别不到“符合HID标准的供应商定义设备”。确定拨码没有问题,检查线路也正常,没有使用USBHUB接线,而是直接接在电脑上。(网上有说使用USBHUB的问题)反复上下电后,终于能够识别“符合HID标准的供应商定义设备”,点击start开始下载。在烧录文件系统时,烧录失败。提示:“Push”error,file=“D:\TOOLS\mfgtool\Profiles\linux\OSFirmware\file
目录零、前言一、libusb交叉编译1.0前言1.1交叉编译二、usbutils交叉编译2.0前言2.1交叉编译三、libudev交叉编译3.0前言3.1交叉编译3.2错误处理-没找到usbutils3.3错误处理-没找到pci.ids (pci.idsnotfound)3.3.0前言3.3.1查找pci.ids3.3.2继续编译3.4错误处理-没找到gperf (gperfnotfound) 3.5编译并安装四、eudev交叉编译4.0前言4.1交叉编译五、测试代码5.1usb测试代码5.2编译脚本Makefile5.3运行结果零、前言背景:由于正点原子imx6ull需要使用到usblib进
IMX6ULL一共有两个ADC,每个ADC都有八个通道,但他们共用一个ADC控制器1.设备树在imx6ull.dtsi文件中已经帮我们定义好了adc1的节点部分信息adc1:adc@02198000{ compatible="fsl,imx6ul-adc","fsl,vf610-adc"; reg=0x021980000x4000>; interrupts=GIC_SPI100IRQ_TYPE_LEVEL_HIGH>; clocks=&clksIMX6UL_CLK_ADC1>; num-channels=2>; clock-names="adc"; status="disabled";};注意
周日业余时间太无聊,又不喜欢玩游戏,大家的兴趣爱好都是啥?我觉得敲代码也是一种兴趣爱好。正巧手边有一块儿0.96寸的OLED显示屏,一直在吃灰,何不把玩一把?于是说干就干,最后在我的imax6ul的linux开发板上使用spi用户态驱动成功点亮。这里总结下过程,分享给有需要的小伙伴。前言本文主要介绍在imax6ul-mini开发板上如何驱动OLED显示屏外设,总结下过程。由于板子默认是spi接口的,这里先玩一把spi接口的驱动,后续计划改为i2c的接口驱动再玩一次。我的环境资源:Linux内核:linux-4.1.15所用开发板:正点原子imax6ul-mini所用OLED屏幕:中景园电子0.
目录前沿Ubuntu和Windows文件互传Ubuntu下NFS和SSH服务开启 Ubuntu交叉编译工具链安装SourceInsight软件安装和使用VisualStudioCode软件的安装和使用前沿为什么我们要学习裸机开发呢? 1、裸机开发是了解所使用的CPU最直接、最简单的方法,比如使用的I.MX6U,跟STM32一样,裸机开发是直接操作CPU的寄存器。Linux驱动开发最终也是操作的寄存器,但是在操作寄存器之前要先编写一个符合Linux驱动的框架。同样一个点灯驱动,裸机可能只需要十几行代码,但是Linux下的驱动就需要几十行代码。 2、大部分Linux驱动