首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux Led 子系统

2、概述 led 子系统驱动框架: 所有 led 共性: 有和用户通信的设备节点 亮和灭 不同点: 有的 led 可能是接在 gpio 管脚上,不同的 led 有不同的 gpio 来控制 有的 led...可能由其他的芯片来控制(节约 cpu 的 pin,或者为了控制 led 的电流等) 可以设置亮度 可以闪烁 所以 Linux led 子系统把所有 led 的共性给实现了,把不同的地方留给驱动工程师去做...led 子系统核心文件: driver/leds/led-class.c driver/leds/led-core.c driver/leds/led-triggers.c include/linux/...led 子系统是一个简单的 Linux 子系统 ,在目录 /sys/class/leds 下展示该子系统设备,每个设备都有自己的属性: brightness:设置 LED 亮度,范围 0 ~ max_brightness...亮灭的时间,单位ms kernel/include/linux/leds.h enum led_brightness { LED_OFF = 0, //全暗 LED_HALF = 127,

30630
您找到你想要的搜索结果了吗?
是的
没有找到

Linux笔记】LED驱动

前言 上一篇我们分享了字符设备驱动框架:嵌入式Linux驱动基础,当时分享的是hello驱动程序。...在嵌入Linux操作系统的情况下,我们自然也要想到有个写1/0的思想。类比我们上一篇的hello程序: ? 我们的LED程序自然要写入的数据为0/1来点亮、熄灭LED。...此时我们要编写Linux系统下的led驱动,涉及到硬件操作的地方操作的并不是这些地址(物理地址),而是操作系统给我们提供的地址(虚拟地址)。...若是led_drv.c不用再修改了,那么这个led_drv.c驱动就是一个通用的驱动程序了。具体可查看韦东山老师的《嵌入式Linux应用开发完全手册第2版》第五篇第3~7节进行学习。...谢谢 参考/学习资料: 百问网《嵌入式Linux应用开发完全手册第2版》 正点原子《I.MX6U嵌入式Linux驱动开发指南V1.2》 野火《i.MX Linux开发实战指南》

8.6K32

第一课:linux设备树的引入与体验(基于linux4.19内核版本)

转载请注明原文地址:http://wiki.100ask.org/Linux_devicetree 本套视频面向如下三类学员: 有Linux驱动开发基础的人, 可以挑感兴趣的章节观看; 没有Linux驱动开发基础但是愿意学习的人...,请按顺序全部观看,我会以比较简单的LED驱动为例讲解; 完全没有Linux驱动知识,又不想深入学习的人, 比如应用开发人员,不得已要改改驱动, 等全部录完后,我会更新本文档,那时再列出您需要观看的章节...在Linux里,操作硬件都是统一的接口,比如操作LED灯,需要先open,如果要读取LED状态就调用read,如果要操作LED就调用write函数,也可以通过ioctl去实现。...查看原理图,知道我们要使用的引脚是GPF5,因此定义 led_pin = s3c2440_GPF(5)。...{ compatible = “jz2440_led”; reg = ; }; led { compatible = “jz2440_led”; pin

1.8K31

32.Linux-2440下的DMA驱动(详解)

由于我们是用字符设备的测试方法测试的,而本例子只是用两个地址之间的拷贝来演示DMA的作用,所以采用字符设备方式编写 1.驱动编写之前,先来讲如何分配释放缓冲区、DMA相关寄存器介绍、使用DMA中断 1.1在linux...而我们之前用的内存分配kmalloc()函数,是不能用在DMA上,因为分配出来的内存可能在物理地址上是不连续的. 1.2 那么2440开发板如何来启动DMA,先来看2440的DMA寄存器 (PS:实际这些.../6632273) 1.2.1 2440支持4个通道的DMA控制器 其中4个通道的DMA外设请求源,如下图所示(通过DCONn寄存器的[26:24]来设置) (PS:如果请求源是系统总线上的,就只需要设置...1.2.5 2440中的DMA寄存器如下图所示: ?.../module.h> #include #include #include #include <linux/delay.h

3.7K90

S3C2440③ | GPIO实验

实验1 —— 点亮一个LED 1.看原理图确定硬件如何连接 原理图中表示了芯片控制LED的硬件电路以及芯片的引脚与LED如何连接。 ? ? 2....-c led_on.s -Wall -o led_on.o 链接为可执行文件elf arm-linux-ld -Ttext 0 led_on.o -o led_on.elf 转换为bin文件 arm-linux-objcopy...-O binary -S led_on.elf led_on.bin 整个编译步骤可编写为一个makefile: TARGET = led_on #输出所有warning CFLAGS = -Wall...启动文件start.s:初始化C语言运行环境,引入C程序 @ brief: S3C2440启动文件 @ author: mculover666 .text .global _start...在S3C2440这颗处理器方面,掌握了: 如何控制S3C2440的GPIO引脚:输出高低电平和检测外部输入电平(GPFCON寄存器和GPFDAT寄存器) 5条常用的ARM汇编指令:MOV、LDR、STR

1.1K30

整理了一份Linux设备树基础知识!

在上一个实验:【Linux笔记】LED驱动实验(总线设备驱动模型)中我们使用了platform_device结构体来描述led设备(硬件资源)。既然已经有了描述设备的方法了,为什么还要引入设备树呢?...随着芯片的发展,Linux内核中就包含着越来越多这些描述设备的代码,导致Linux内核代码会很臃肿。...,内核中可能有A、B、C三个驱动都支持它,那可以这样写:led { compatible = “A”, “B”, “C”; }; 内核启动时,就会为这个LED按这样的优先顺序为它找到驱动程序...比如根节点中可以这样写:/ { compatible = "samsung,smdk2440", "samsung,mini2440"; model = "jz2440_v3";...}; 它表示这个单板,可以兼容内核中的“smdk2440”,也兼容“mini2440”。

55230

S3C2440② | arm-linux-gcc交叉编译工具链

1.为什么需要交叉编译工具 宿主机运行的是标准Linux操作系统,编译出的程序却需要在目标处理器(S3C2440@ARM920T)上跑,这就叫交叉编译,编译器叫做交叉编译器。...S3C2440@ARM920T芯片上跑的程序,所以不能使用这个编译器,需要使用arm-linux-gcc交叉编译器。...2.arm-linux-gcc的安装 arm-linux-gcc是ARM官方基于Linux平台的arm编译器,其特点有: 开源免费 支持的ARM芯片多 功能强大,稳定 2.1.下载arm-linux-gcc....bin格式文件,所以需要使用格式转换工具arm-linux-objcopy,其转换命令如下: arm-linux-objcopy -O binary -S led.elf led.bin 5.2.反汇编工具...,格式如下: arm-linux-objdump -D led.elf > led.dis

3.8K40

韦东山老师Linux设备树学习笔记(一)

最近一段时间可以说是又重操旧业了,回到过去的底层驱动开发,当然过段时间还是会回到Linux应用开发的。...所以现状基本上天天都在Linux内核以及Linux驱动打交道;当前很多驱动都是现成的,设备树的适配工作成为驱动工程师的必备技能之一,所以我们有必要来详细学习一下,以下是我学习韦东山老师的设备树教程自己做的一些笔记...,内核中可能有 A、B、C 三个驱动都支持它,那可以这样写: led { compatible = "A", "B", "C"; }; 内核启动时,就会为这个 LED 按这样的优先顺序为它找到驱动程序...比如根节点中可以这样写: / { compatible = "samsung,smdk2440", "samsung,mini2440"; model = "jz2440_v3"; };...它表示这个单板,可以兼容内核中的 “smdk2440” ,也兼容 “mini2440” 。

1.9K70

ARM9开发之学习过程总结

一路摸爬滚打,时至今日,与心爱的TQ2440相伴已有一年,从当初的一无所知到今天的得心应手,其间经历的种种,实在难以言表。...开发板的配套光盘有很多资料文档,在学习之前,大概浏览一下是非常不错的,强烈建议,特别是S3C2440的技术参考手册。...10,到了这一步,基本上就可以用板子上的硬件资源来练习了,LED,按键,IIC接口的EEPROM, LCD等(板子上的蜂鸣器, LED,串口都可以用来当调试工具,观察它们的现象,判断你的程序执行情况...13,当第12步完成后,你可以尝试用你的bootloader从PC的TFTP服务器下载Linux内核镜像到开发板,然后启动Linux。...(但是最主要的就是,获取Linux内核镜像,初始化硬件环境,运行Linux)。

70910

linux 驱动移植_免驱动led灯好吗

通过前两篇文章的介绍,我们已经把linux内核移植到了tiny210上,但是看到的现象都是通过超级终端来观察的,下面了,我们介绍一下led灯的移植,给大家一个更直观的感受。...因为我们是做led驱动的移植,而不是自己编写led的驱动代码。我们要移植的代码是linux-3.3.5源代码目录下的driver/leds的leds-gpio.c。...整个linux的驱动模型是在2.6的内核当中提出来的,当然platf也是在2.6中诞生的。platform总线是一个虚拟总线,也就是说根本不存在这种总线。...其实这也是移植led驱动的核心。好吧,不兜圈子了,注册的地方就是linux-3.3.5目录下的arch/arm/mach-s5pv210/mach-smdkv210.c的文件。...哈哈,现在应该编译一下内核了,要不然内核怎么知道你移植led驱动了,当然了,这得首先配置内核。再次进入linux-3.3.5源文件当中,用make menuconfig命令开始咱们的配置界面。

2K20
领券