开发板:龙芯1B

PC:Ubuntu 13.10

本程序自己定义一个设备注册到内核,然后再编写该设备驱动。最终实现开发板led灯控制,开发板led灯通过gpio口控制

/*************************************************************************

> File Name: platform_test.c

> Author: kid

> Mail: 280197326@qq.com

> Created Time: 2014年03月05日 星期三 11时17分02秒

************************************************************************/

#include

#include

#include

#include

#include

#define SET_GPIO (*(volatile unsigned *)0xbfd010C4)

#define SET_OUT (*(volatile unsigned *)0xbfd010D4)

#define SET_LED (*(volatile unsigned *)0xbfd010F4)

static int led_probe(struct platform_device *pdev)  //驱动加载时运行此函数,设置gpio控制led灯

{

SET_GPIO = (SET_GPIO | 0x000000C0);

SET_OUT = (SET_OUT & ~(0x000000C0));

SET_LED = (SET_LED & ~(0x000000c0));

printk(KERN_ALERT "hello\n");

return 0;

}

static struct platform_device led_device = {  //添加设备结构体

.name = "led",

.id = 99,

};

static struct platform_driver led_driver = {  //添加驱动结构体

.driver = {

.name = "led",

.owner = THIS_MODULE,

},

.probe  = led_probe,

};

static int __devinit led_init(void)  //初始化驱动

{

int ret = 0;

platform_device_register(&led_device);  //注册设备到内核

ret = platform_driver_register(&led_driver);  //注册驱动到内核

if (ret){

printk(KERN_ERR "failed to register\n");

}

return ret;

}

static void __devexit led_exit(void)  //驱动退出

{

platform_driver_unregister(&led_driver);  //卸载驱动

platform_device_unregister(&led_device);  //卸载设备

printk(KERN_ALERT "good bye\n");

}

module_init(led_init);

module_exit(led_exit);

MODULE_LICENSE("GPL");

注意:必须要注册设备和驱动,调试过程中曾没有注册设备导致驱动初始化的时候不会执行probe函数,注册设备和驱动的顺序可以随意。但两者必须的设备名称必须匹配。

linux总线控制设备,在platform总线上注册设备并载入驱动控制led灯相关推荐

  1. 泰凌微ble mesh蓝牙模组天猫精灵学习之旅 ① 小白也痴迷,如何在 Linux环境搭建编译烧录 安信可TB02,点亮一盏LED灯;

    本<泰凌微ble mesh蓝牙模组天猫精灵学习之旅>系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1.小 ...

  2. [Error]在苹果开发者网站上注册设备失败

    2022年11月17日 APP修复了一个客户反馈的Bug,在开发者账号上新注册设备时遇到了问题.新注册的设备,状态显示为Processing. 页面上方有警告提示: Registration is b ...

  3. android驱动例子(led灯控制),android驱动例子(LED灯控制)

    --作者:赖玉平(Peter Lai)aulyp@163.com 本例子,讲述在android2.1上完全自已开发一个驱动去控制硬件口并写应用测试该驱动,通过这样一个例子,解析android下的驱动开 ...

  4. Linux设备驱动模型之platform总线

    1 平台设备和驱动初识 platform是一个虚拟的地址总线,相比pci,usb,它主要用于描述SOC上的片上资源,比如s3c2410上集成的控制器(lcd,watchdog,rtc等),platfo ...

  5. 【Linux开发】linux设备驱动归纳总结(九):1.platform总线的设备和驱动

    linux设备驱动归纳总结(九):1.platform总线的设备和驱动 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...

  6. Linux驱动(9)--注册设备

    注册设备 1. 总线设备驱动注册流程 2. 以内核的方式注册设备 3. 以module的方式注册设备 4. 注意 1. 总线设备驱动注册流程 Linux下的总线设备驱动注册流程如下图所示: ① Lin ...

  7. Linux 自带的LED 灯驱动实验

    目录 Linux 内核自带LED 驱动使能 Linux 内核自带LED 驱动简介 LED 灯驱动框架分析 module_platform_driver 函数简析 gpio_led_probe 函数简析 ...

  8. 51单片机控制LED灯

    个人网站:Geek交流圈 控制单个LED灯 基础知识 C-51的数据类型扩充定义sfr:特殊功能寄存器声明sbit:特殊功能位声明bit:位变量声明 例:sfr SCON = 0X98;sbit OV ...

  9. 基于I-MX287A的mqtt远程控制ARM板上LED灯小项目总结

    最近在学linux嵌入式技术,自己做了一个在周立功的I-MX287A开发板上实现的,基于MQTT远程控制的小项目,其中用到了一些比较好玩和有趣的技术,在这里自己记录分享一下. 额,让我想想该从和处开始 ...

  10. python控制树莓派led_Python 控制树莓派 GPIO 输出:控制 LED 灯

    树莓派 GPIO 控制输出的入门应该都是从控制 LED 灯开始的吧. 树莓派版本:Model 3B+ 树莓派系统:Raspbian Stretch with desktop and recommend ...

最新文章

  1. Spring应用注解配置实现IOC
  2. 如何搭建python框架_从零开始:写一个简单的Python框架
  3. 0xc000000f 由于系统注册表文件丢失或损坏,因此Windows无法加载
  4. visual studio 2017 显示行号
  5. 工程图标注粗糙度_Inventor教程之工程图标注实例
  6. 狮子鱼社区团购独立版V15.3.0源码
  7. MyBatis复习(一):开眼看世界
  8. Sr Software Engineer - Big Data Team
  9. 多个线程对串口读取 modbus_看完这个,如果还不懂Modbus,那您去撞豆腐吧
  10. Quartz学习总结(1)——Spring集成Quartz框架
  11. Sasha and a Very Easy Test CodeForces - 1109E (数学,线段树)
  12. 判断一个字符串的字符是不是唯一
  13. 计算机基础知识运算符,计算机基础运算符
  14. mysql与sqlyog连接_如何用sqlyog实现远程连接mysql
  15. YII 1.0 隐藏单入口index.php 设置路由与伪静态
  16. c语言必背100行代码编程入门教学,(完整版)c语言初学必背代码.docx
  17. 学Excel,一辈子这门课就够了
  18. gwas snp 和_GWAS | 原理和流程 | 全基因组关联分析
  19. 魔兽争霸无法在这个计算机,W7系统魔兽争霸3不能初始化DirectX怎么办
  20. HTN规划 jshop2

热门文章

  1. 浏览器控件JxBrowser V6.14大版本发布 | 注入CSS
  2. [LintCode] 翻转二叉树
  3. 如何打开SAR 文件
  4. [置顶] Android系统移植与调试之-------build.prop文件详细赏析
  5. 【Webcam设计】总结与代码仓库
  6. Visualizing and Understanding Convolutional Networks论文解读
  7. 大端与小端字节数据详解(转)
  8. 推荐一款专为新手用的Python开发工具
  9. Kata: 从随机的三字符列表组中恢复秘密字符串
  10. Go Hack 2017 报名开启:十月魔都约一场 Go 语言烧脑之战