• 2024-06-08设备树下的 LED 驱动实验
    设备树下的LED驱动实验本章实验重点内容如下:①、在imx6ull-alientek-emmc.dts文件中创建相应的设备节点。②、编写驱动程序(在第四十二章实验基础上完成),获取设备树中的相关属性值。③、使用获取到的有关属性值来初始化LED所使用的GPIO。设备树文件添加设备节点:在根
  • 2024-06-05嵌入式 Linux LED 驱动开发实验学习
    I.MX6U-ALPHA开发板上的LED连接到I.MX6ULL的GPIO1_IO03这个引脚上,进行这个驱动开发实验之前,需要了解下地址映射。地址映射MMU全称叫做MemoryManageUnit,也就是内存管理单元。在老版本的Linux中要求处理器必须有MMU,但是现在Linux内核已经支持无MMU的处理器了。M
  • 2024-05-07linux学习第三天
    嵌入式linux学习第三天汇编语言点灯今天学习如何在linux板子上点灯。I.MX6UGPIO详解我们发现I.MX6UGPIO是分为两类的,:SNVS域的和通用的。在讨论i.MX6U或类似的复杂微处理器时,了解其GPIO(通用输入输出)引脚的不同分类是很重要的。i.MX6U的GPIO引脚被分为两大类:SNVS(SecureNon-V
  • 2024-04-19led驱动程序进阶-使用面向对象的思想完成led驱动程序
    上一篇文章实现了一个led驱动程序的模板,该模板虽然只是用于led驱动程序的编写,但是对于其它任何设备的驱动程序编写,其面向对象的思想都是可以借鉴和参考的。任何看似高深的技巧,都是从简单出发的,逐步深入。独孤九剑的最高境界就是无剑、无招,所有高深的变化都是从最基本的原理出发!本
  • 2024-03-23设备树LED驱动
    参考资料:https://www.bilibili.com/video/BV1fJ411i7PB?p=25&vd_source=432ba293ecfc949a4174ab91ccc526d6 dts节点:dtsled{#address-cells=<1>;#size-cells=<1>;compatible="dts-led";status="okay";
  • 2024-03-23新字符驱动框架驱动LED
    代码参考正点原子 在https://www.cnblogs.com/lethe1203/p/18091283一文中,存在以下的几个问题:1、使用register_chrdev函数注册字符设备,浪费了大量的次设备号,而且需要手动指定主设备号,还需要事先确认好哪一个主设备号没用2、需要手动mknode创建设备节点 解决问题1:使用设备
  • 2024-03-23LED字符设备驱动
    基本概念可参考https://www.cnblogs.com/lethe1203/p/18091326、代码参考正点原子 led驱动文件led.c:#include<linux/types.h>#include<linux/kernel.h>#include<linux/delay.h>#include<linux/ide.h>#include<linux/init.h>#include<linux/mod
  • 2024-03-16C语言bringup LED
    参考文章:https://doc.embedfire.com/linux/imx6/driver/zh/latest/bare_metal/gcc_led.html LED灯源码程序包含两部分内容,第一部分在汇编文件中设置“栈地址”并执行跳转命令跳转到main函数执行C代码。第二部分在C文件中使led灯不断闪烁。将“汇编点亮led灯的源码led.S复制到
  • 2024-03-16汇编bringup LED
    此节学习视频:https://www.bilibili.com/video/BV1yE411h7uQ?p=6&vd_source=432ba293ecfc949a4174ab91ccc526d6 在STM32上,.s就是汇编,cortexA一般不会提供汇编,必须自己写汇编文件,对于A系列,初始化ram,没办法用c初始化,必须先初始化一些外设,这些外设必须用汇编初始化,但是用到的汇编
  • 2023-12-26linux经典电灯驱动(古老版,参考用)
    驱动程序#include<linux/types.h>#include<linux/kernel.h>#include<linux/delay.h>#include<linux/ide.h>#include<linux/init.h>#include<linux/module.h>#include<linux/errno.h>#include<linux/gpio.h>#inc
  • 2023-03-09Platform平台总线模型
    Device.c文件:设备释放函数设备的资源信息platform_device结构体设备初始化函数设备退出函数 文件中涉及到的定义:/*寄存器的物理地址*/#defineCCM_CCGR1_BA
  • 2023-02-18【IMX6ULL学习笔记】十六、设备树下LED驱动
    一、修改设备树文件在根节点“/”下创建一个名为“alphaled”的子节点,打开imx6ull-alientek-emmc.dts文件,在根节点“/”最后面输入如下所示内容:alphaled{#address-ce
  • 2022-12-07NXP RT1052--GPIO复用寄存器
    GPIO配置,参考文档:IMXRT1050RM.pdf以GPIO1_IO01为列。GPIO1基地址:GPIOnbaseaddress:401B_8000h+(n-1)×4000h=401B_8000h(n=1)如下图,则GPIO1的地址/*GPIO1寄存器地
  • 2022-11-14 第四章 linux字符设备驱动一
    前言字符设备是Linux驱动中三大设备之一,字符(char)设备是个能够像字节流(类似文件)一样被访问的设备,由字符设备驱动程序来实现这种特性。字符设备驱动程序通常至少要实现open
  • 2022-11-02MX6U的模仿STM32及SDK移植的部分知识
    模仿STM32驱动开发格式知识点:类似于STM32工程文件中的部分头文件,设置好所有需要用到的寄存器地址,定义结构体变量,通过结构体指针访问寄存器,从而实现控制效果。这里截取文
  • 2022-11-02单板程序led
     主要三个部分1、设置复用寄存器2、往配置寄存器赋值3、gpio具体voidled_init(void){/*1、初始化IO复用*/IOMUXC_SetPinMux(IOMUXC_GPIO1_IO03_GPIO1
  • 2022-10-31[I.MX6UL] 裸机点灯 C语言 GPIO的使用
    一、启动文件.global_start//全局变量_start://进入SVC模式mrsr0,cpsr//将特殊寄存器CPSR里面的数据复制到R0中bicr0,r0,#0x1f//00011111将r0
  • 2022-10-31[I.MX6UL]官方 SDK 移植实验
    我们参考ST官方给STM32编写的stm32f10x.h来自行编写I.MX6U的寄存器定义文件。自己编写这些寄存器定义不仅费时费力,没有任何意义,而且很容易写错,幸好NXP官方为I.MX6U
  • 2022-10-31[I.MX6UL] 用STM32的方式来写I.MX6UL程序
    /**************************************************************Copyright©zuozhongkaiCo.,Ltd.1998-2019.Allrightsreserved.文件名:mian.c作者:左
  • 2022-08-18Linux驱动开发十三.platform设备驱动——2.无设备树的platform驱动
    在上面一章我们借助Linux驱动分离和分层的概念引出来驱动——总线——设备的概念,然后引出来了platform这种基于设备驱动模型的驱动架构,我们下面通过使用来演示下platform架