当前位置: 首页 > news >正文

网站打不开建设中哪的问题怎样在各大网站做推广

网站打不开建设中哪的问题,怎样在各大网站做推广,wordpress安装linux,管理咨询公司排名 国内1、platform 平台总线模型就是把原来的驱动 C 文件给分成了两个, 一个是 device.c, 一个是 driver.c 。把稳定不变的放在 driver.c 里面, 需要变得就放在了 device.c 里面。平台总线模型将设备代码和驱动代码分离, 将和硬件设备相…

1、platform

平台总线模型就是把原来的驱动 C 文件给分成了两个, 一个是 device.c, 一个是 driver.c 。把稳定不变的放在 driver.c 里面, 需要变得就放在了 device.c 里面。平台总线模型将设备代码和驱动代码分离, 将和硬件设备相关的都放到 device.c 文件里面,驱动部分代码都放到 driver.c 文件里面。

2、platform_device

1)申请platform_device 结构体

struct platform_device {const char *name; 	//platform 设备的名字, 用来和 platform 驱动相匹配。int id;	//ID 是用来区分如果设备名字相同的时候(通过在后面添加一个数字来代表不同的设备)bool id_auto;struct device dev;	//内置的 device 结构体u32 num_resources;	//资源结构体数量struct resource *resource;	//指向一个资源结构体数组const struct platform_device_id *id_entry;char *driver_override; /* Driver name to force a match *//* MFD cell pointer */struct mfd_cell *mfd_cell;/* arch specific additions */struct pdev_archdata archdata;
};

platform 设备的名字, 用来和 platform 驱动相匹配。将会在/sys/bus 目录下生成以“name"命名的总线

注:platform_device 结构体中的 struct device dev内容,必须填写release相关内容,否则会有警告。建议添加。

2)填充platform_device 中resource 结构体

resource 结构体内容如下:

struct resource {resource_size_t start;resource_size_t end;const char *name;unsigned long flags;struct resource *parent, *sibling, *child;
};

start 和 end 分别表示资源的起始和终止信息, 对于内存类的资源, 就表示内存起始和终止地址,
name表示资源名字,
flags 表示资源类型, 可选的资源类型都定义在了文件 include/linux/ioport.h 里面。

常用 flags 宏定义如下所示:

#define IORESOURCE_IO IO内存
#define IORESOURCE_MEM 一段物理内存
#define IORESOURCE_IRQ 中断

3)将设备信息注册到内核

然后使用platform_device_register 函数将设备信息注册到 Linux 内核中。

3、demo

#include <linux/init.h>
#include <linux/module.h>
#include <linux/platform_device.h>#define PHY_BASEADDR_GPIO 0x01C20800struct resource	 led_res[]={[0] = {.start = PHY_BASEADDR_GPIO+0x0108,.end = PHY_BASEADDR_GPIO+0x010B,.flags = IORESOURCE_MEM ,.name = "PH_Config_Reg",},[1] = {.start = PHY_BASEADDR_GPIO+0x0114,.end = PHY_BASEADDR_GPIO+0x0117,.flags = IORESOURCE_MEM ,.name = "PH_Mul_Reg ",},[2] = {.start = PHY_BASEADDR_GPIO+0x010C,.end = PHY_BASEADDR_GPIO+0x010F,.flags = IORESOURCE_MEM ,.name = "PH_Data_Reg",}};void	led_device_release(struct device *dev)
{printk("led_device_release\n");
};struct platform_device  led_device={.name = "my_led_device",.id = -1,.resource = led_res,.num_resources = ARRAY_SIZE(led_res),.dev = {.release = &led_device_release}};static int led_device_init(void)
{int ret;printk("platform device enter\n");ret = platform_device_register(&led_device);printk("ret = %d\n",ret);return 0;}static void led_device_exit(void)
{platform_device_unregister(&led_device);printk("led_device_exit\n");}module_init(led_device_init);
module_exit(led_device_exit);
MODULE_LICENSE("GPL");

模块加载成功后可以在/sys/bus/platform/devices/ 路径下查看

http://www.yayakq.cn/news/162216/

相关文章:

  • 网站制作洋网络石家庄网站建设推广报价
  • 网站域名起名怎么做网站代销
  • 建设商务公司网站建设部网站工程设计收费标准
  • 上海的建设网站北京网站设计学校
  • 做个购物商城网站多长时间2003怎么建设网站空间
  • 网站建设可以先备案嘛网页设计素材怎么算侵权
  • 南京秦淮区建设局网站安阳网上车管所官网
  • 徐州免费模板建站湘潭今天刚刚发生的新闻
  • 西宁网站设计高端网络服务优势
  • 义乌网站建设优化排名小程序编程
  • 自己做网站seowordpress文章 代码块
  • 网站建设一条龙怎么样网站建设选择
  • loop wordpressseo黑帽2022
  • 聊城网站建设网站开发与设计的参考文献
  • 东莞品牌网站建设报价网页设计代码完整版
  • 可视化 网站开发工具竞价推广与seo的区别
  • 做一个网站旅游营销网站建设
  • 用户体验度好的网站做健身网站步骤
  • 有用模板网在线制作免费网站网站开发人员的工作
  • 机关网站及新媒体建设实施方案福州专业做网站的公司哪家好
  • 注册网站需要营业执照吗商标注册查询系统官网
  • 南京市建设执业资格中心网站网站规划的原则
  • wordpress改微博系统怎么样关键词优化
  • 郑州建站模板规划设计导航网站
  • 网站优化自己可以做吗沛县网站设计
  • 网站设计风格介绍郑州做网站大量网站被关
  • 三明鑫龙建设工程网站视频主持网站建设
  • 网站服务器怎么做安全防护网站链接维护怎么做
  • 企业建设网站注意事项iis 搭建网站
  • 长春免费建站模板网站开发的人怎么样