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

郑州专业网站设计公司地址大连网页设计培训学校

郑州专业网站设计公司地址,大连网页设计培训学校,设计研发网站,什么网站做跨境电子商务//编译驱动 (注意Makefile的编译到移植到开发板的内核) make archarm //清除编译生成文件 make clean ****************************************** //安装驱动 insmod mycdev.ko //卸载驱动 rmmod mycdev 需要在内核路径/arch/arm/boot/dts/ 修改 stm32mp157a-fsm… //编译驱动  (注意Makefile的编译到移植到开发板的内核)         make archarm //清除编译生成文件         make clean ****************************************** //安装驱动         insmod mycdev.ko //卸载驱动         rmmod mycdev   需要在内核路径/arch/arm/boot/dts/  修改 stm32mp157a-fsmp1a-dts 文件 *************************** 添加以下内容 leds{led1-gpiosgpioe 10 0;//10表示引脚编号 0表示默认led2-gpiosgpiof 10 0;led3-gpiosgpioe 8 0; };myirq{interrupt-parentgpiof;//引用中断父节点interrupts9 0,7 0,8 0;//声明和中断父节点的关系 9表示索引号0表示默认设置 };mycdev.c #include linux/init.h #include linux/module.h #include linux/of.h #include linux/of_irq.h #include linux/of_gpio.h #include linux/gpio.h #include linux/interrupt.hstruct device_node *dev; /* leds{led1-gpiosgpioe 10 0;//10表示引脚编号 0表示默认led2-gpiosgpiof 10 0;led3-gpiosgpioe 8 0; };*/ struct gpio_desc *gpiono1; // led1 struct gpio_desc *gpiono2; // led2 struct gpio_desc *gpiono3; // led3 /*myirq{interrupt-parentgpiof;//引用中断父节点interrupts9 0,7 0,8 0;//声明和中断父节点的关系 9表示索引号0表示默认设置 }; */ unsigned int irqno1; // key1 unsigned int irqno2; // key2 unsigned int irqno3; // key3// 定时器处理函数 void ctl_led(struct gpio_desc *gpiono) {// led状态取反gpiod_set_value(gpiono, !gpiod_get_value(gpiono)); } // 中断处理函数 irqreturn_t myirq_handler(int irq, void *dev) {if (irq irqno1){printk(KEY1_INTERRUPT\n);ctl_led(gpiono3);}else if (irq irqno2){printk(KEY2_INTERRUPT\n);ctl_led(gpiono2);}else if (irq irqno3){printk(KEY3_INTERRUPT\n);ctl_led(gpiono1);}return IRQ_HANDLED; }static int myled_to_init(int a) {// 根据设备树节点的路径解析设备树信息dev of_find_node_by_path(/leds);if (dev NULL){printk(解析设备树节点失败\n);return -EFAULT;}printk(解析设备树节点成功\n);// 申请gpio_desc对象并设置输出为低电平gpiono1 gpiod_get_from_of_node(dev, led1-gpios, 0, GPIOD_OUT_LOW, NULL);if (IS_ERR(gpiono1)){printk(申请gpio对象失败\n);return -PTR_ERR(gpiono1);}printk(申请gpio对象成功\n);gpiono2 gpiod_get_from_of_node(dev, led2-gpios, 0, GPIOD_OUT_LOW, NULL);if (IS_ERR(gpiono2)){printk(申请gpio对象失败\n);return -PTR_ERR(gpiono2);}printk(申请gpio对象成功\n);gpiono3 gpiod_get_from_of_node(dev, led3-gpios, 0, GPIOD_OUT_LOW, NULL);if (IS_ERR(gpiono3)){printk(申请gpio对象失败\n);return -PTR_ERR(gpiono3);}printk(申请gpio对象成功\n);return 0; }static void myled_to_exit(int a) {// 灭灯gpiod_set_value(gpiono1, 0);gpiod_set_value(gpiono2, 0);gpiod_set_value(gpiono3, 0);// 释放gpio编号gpiod_put(gpiono1);gpiod_put(gpiono2);gpiod_put(gpiono3);printk(led注销成功); }static int __init mycdev_init(void) {int ret;myled_to_init(1);// 解析按键的设备树节点dev of_find_node_by_path(/myirq);if (dev NULL){printk(解析设备树节点失败\n);return -EFAULT;}printk(解析设备树节点成功\n);// 根据设备树节点解析出软中断号irqno1 irq_of_parse_and_map(dev, 0); // 按键1索引号为0if (!irqno1){printk(解析软中断号1失败\n);return -ENXIO;}printk(解析软中断号1成功 irqno%d\n, irqno1);irqno2 irq_of_parse_and_map(dev, 1); // 按键2索引号为1if (!irqno2){printk(解析软中断号2失败\n);return -ENXIO;}printk(解析软中断号2成功 irqno%d\n, irqno2);irqno3 irq_of_parse_and_map(dev, 2); // 按键3索引号为2if (!irqno3){printk(解析软中断号3失败\n);return -ENXIO;}printk(解析软中断号3成功 irqno%d\n, irqno3);// 注册中断ret request_irq(irqno1, myirq_handler, IRQF_TRIGGER_FALLING, key1, NULL);if (ret){printk(注册中断1失败\n);return ret;}printk(注册中断1成功\n);ret request_irq(irqno2, myirq_handler, IRQF_TRIGGER_FALLING, key2, NULL);if (ret){printk(注册中断2失败\n);return ret;}printk(注册中断2成功\n);ret request_irq(irqno3, myirq_handler, IRQF_TRIGGER_FALLING, key3, NULL);if (ret){printk(注册中断3失败\n);return ret;}printk(注册中断3成功\n);return 0; } static void __exit mycdev_exit(void) {myled_to_exit(1);// 注销中断free_irq(irqno1, NULL);free_irq(irqno2, NULL);free_irq(irqno3, NULL);printk(irq注销成功\n); } module_init(mycdev_init); module_exit(mycdev_exit); MODULE_LICENSE(GPL); Makefile  KERNELDIR 赋予的路径可能有所不同 modname ? mycdev arch ? armifeq ($(arch),arm) KERNELDIR : /home/ubuntu/13_UBOOT/linux-stm32mp-5.10.61-stm32mp-r2-r0/linux-5.10.61 else KERNELDIR : /lib/modules/$(shell uname -r)/build endifPWD : $(shell pwd)all:make -C $(KERNELDIR) M$(PWD) modulesclean:make -C $(KERNELDIR) M$(PWD) cleandistclean:make -C $(KERNELDIR) M$(PWD) cleanobj-m : $(modname).o
http://www.hkea.cn/news/14372796/

相关文章:

  • 公司网站域名及空间网站的标题与关键词
  • 惠州做网站的公司有哪些wordpress怎么设计首页
  • 主机屋网站如何寻找seo网站建设客户
  • 网站建立策划书郴州网站建设
  • 优质的网站建设流程国内免费的建网站平台
  • 网站建设入门书深夜小网站
  • 深圳网站建设定制开发超凡科技上海自适应网站建设
  • 天津网站备案时间花瓣网网站模板
  • 网站建设 该如何选好域名惠州网站建设是什么意思
  • 网站模版整站下载网站建设敬请期待图片素材
  • 网站主机推荐电商saas
  • 番禺区网站设计电脑维护网站模板
  • 中国专业的网站建设网站ui
  • 怎么截取网站视频做动图霸州做网站1766534168
  • 提高网站的用户体验度怎做视频网站
  • 一个公司可以做2个网站么设计类专业学什么
  • 广东石油化工建设集团公司网站asp.net 微信网站
  • 婚纱网站页面设计网站开发英文参考文献
  • 红桥集团网站建设设计师网站 pins
  • 怎么备份网站数据库湖州建设网站
  • 最简单的网站模板下载多个域名的网站
  • 网站建设资料总结成立公司需要什么材料和手续
  • 网站建设需要的框架结构哪个女装网站做的好
  • 百度网站收录删除做游戏用什么电脑系统下载网站
  • 微信电脑网站是什么原因网站建设和网站优化哪个重要
  • 平面设计短期培训班seo公司是干嘛的
  • 建设银行互联网网站首页苏州能做网站
  • 网页制作与网站建设初学者必看教程dw软件怎么用
  • 网站专题页面文案设计做网络销售如何找客户
  • 怎么用源代码做网站张家港网站建设培训学校