医院网站建设ppt室内设计装修案例

张小明 2026/1/10 12:04:09
医院网站建设ppt,室内设计装修案例,长春网站建设公司怎么样,餐饮设计公司Rk3588鲁班猫4点亮led这里只上代码#xff0c;先执行sudo sh -c echo 0 /sys/class/leds/sys_status_led/brightness关闭自带一直闪烁的led。随后编译下面代码得到.ko文件并加载到板卡。Makefile文件可以看我上一篇博客的末尾。#include linux/init.h#include 先执行sudo sh -c echo 0 /sys/class/leds/sys_status_led/brightness关闭自带一直闪烁的led。随后编译下面代码得到.ko文件并加载到板卡。Makefile文件可以看我上一篇博客的末尾。#include linux/init.h #include linux/module.h #include linux/cdev.h #include linux/fs.h #include linux/uaccess.h #include linux/io.h #define DEV_NAME led_chrdev #define DEV_CNT (1) #define GPIO4_BASE (0xFEC50000) #define GPIO4_DR_L (GPIO4_BASE 0x0000) #define GPIO4_DDR_L (GPIO4_BASE 0x0008) static dev_t devno; struct class *led_chrdev_class; struct led_chrdev { struct cdev dev; unsigned int __iomem *va_dr; // 数据寄存器设置输出的电压 unsigned int __iomem *va_ddr; // 数据方向寄存器设置输入或者输出 unsigned int led_pin; // 偏移 }; static int led_chrdev_open(struct inode *inode, struct file *filp) { unsigned int val 0; struct led_chrdev *led_cdev (struct led_chrdev *)container_of(inode-i_cdev, struct led_chrdev,dev); filp-private_data container_of(inode-i_cdev, struct led_chrdev, dev); printk(open\n); //设置输出模式 val ioread32(led_cdev-va_ddr); val | ((unsigned int)0x1 (led_cdev-led_pin16)); val | ((unsigned int)0X1 (led_cdev-led_pin)); iowrite32(val,led_cdev-va_ddr); //输出高电平 val ioread32(led_cdev-va_dr); val | ((unsigned int)0x1 (led_cdev-led_pin16)); val | ((unsigned int)0x1 (led_cdev-led_pin)); iowrite32(val, led_cdev-va_dr); return 0; } static int led_chrdev_release(struct inode *inode, struct file *filp) { return 0; } static ssize_t led_chrdev_write(struct file *filp, const char __user * buf, size_t count, loff_t * ppos) { unsigned long val 0; unsigned long copy_ret0; char ret 0; struct led_chrdev *led_cdev (struct led_chrdev *)filp-private_data; printk(write \n); copy_retcopy_from_user(ret, buf, 1); if (copy_ret ! 0) { printk(KERN_ERR led_chrdev: copy_from_user failed, uncopied: %lu\n, copy_ret); return -EFAULT; // 返回错误码告知用户空间读取失败 } val ioread32(led_cdev-va_dr); printk(val %lx\n, val); if (ret 0){ val | ((unsigned int)0x1 (led_cdev-led_pin16)); val ~((unsigned int)0x01 (led_cdev-led_pin)); /*设置GPIO引脚输出低电平*/ } else{ val | ((unsigned int)0x1 (led_cdev-led_pin16)); val | ((unsigned int)0x01 (led_cdev-led_pin)); /*设置GPIO引脚输出高电平*/ } iowrite32(val, led_cdev-va_dr); printk(val %lx\n, val); return count; } static struct file_operations led_chrdev_fops { .owner THIS_MODULE, .open led_chrdev_open, .release led_chrdev_release, .write led_chrdev_write, }; static struct led_chrdev led_cdev[DEV_CNT] { {.led_pin 13}, }; static __init int led_chrdev_init(void) { int i 0; dev_t cur_dev; printk(led_chrdev init (lubancat2 GPIO4_B5)\n); led_cdev[0].va_dr ioremap(GPIO4_DR_L, 4); led_cdev[0].va_ddr ioremap(GPIO4_DDR_L, 4); alloc_chrdev_region(devno, 0, DEV_CNT, DEV_NAME); led_chrdev_class class_create(THIS_MODULE, led_chrdev); for (; i DEV_CNT; i) { cdev_init(led_cdev[i].dev, led_chrdev_fops); led_cdev[i].dev.owner THIS_MODULE; cur_dev MKDEV(MAJOR(devno), MINOR(devno) i); cdev_add(led_cdev[i].dev, cur_dev, 1); device_create(led_chrdev_class, NULL, cur_dev, NULL, DEV_NAME %d, i); } return 0; } module_init(led_chrdev_init); static __exit void led_chrdev_exit(void) { int i; dev_t cur_dev; printk(led chrdev exit (lubancat2 GPIO4_B5)\n); for (i 0; i DEV_CNT; i) { iounmap(led_cdev[i].va_dr); // 释放模式寄存器虚拟地址 iounmap(led_cdev[i].va_ddr); // 释放输出类型寄存器虚拟地址 } for (i 0; i DEV_CNT; i) { cur_dev MKDEV(MAJOR(devno), MINOR(devno) i); device_destroy(led_chrdev_class, cur_dev); cdev_del(led_cdev[i].dev); } class_destroy(led_chrdev_class); unregister_chrdev_region(devno, DEV_CNT); } module_exit(led_chrdev_exit); MODULE_AUTHOR(embedfire); MODULE_LICENSE(GPL);之后执行下面语句就可以看到板卡的led点亮和关闭了。#绿灯亮 sudo sh -c echo 0 /dev/led_chrdev0 #绿灯灭 sudo sh -c echo 1 /dev/led_chrdev0
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

中国建设教育协会网站培训中心企业网络的规划与设计

定制云镜像场景 私有云平台上常见的虚拟机镜像厂商提供免费的,常规之外的业务镜像需要提供官方ISO镜像由云厂商定制化完成。那具体云平台使用的镜像和ISO标准镜像有什么不同呢,为什么需要要重新定制化虚拟机镜像呢?云平台镜像并不是使用原版…

张小明 2025/12/31 16:21:05 网站建设

平台电商网站开发网站设置价格错误不愿意发货

DynusT基础介绍 1. DynusT概述 DynusT(Dynamic Network User Equilibrium Model)是一款介观交通流仿真软件,用于模拟城市交通网络中的动态交通流。与宏观数学模型和微观仿真软件相比,DynusT在时间和空间分辨率之间取得了平衡&…

张小明 2025/12/31 16:52:38 网站建设

哪家公司因为做网站失败了浙江建设信息港打不开

AI智能棋盘借助SHT30实现高精度环境测量在AI与物联网深度融合的今天,传统设备正悄然经历一场感知能力的革命。以AI智能棋盘为例,它早已不只是一个能识别棋子位置、连接云端对弈的“聪明板子”。真正决定其长期稳定性与用户体验的,往往是那些看…

张小明 2026/1/1 0:31:22 网站建设

学校网站设计图片百度贴吧广告投放

第一章:从0到1构建合规引擎——Open-AutoGLM的跨境AI数据处理新范式在跨境AI系统日益普及的背景下,数据主权与隐私合规成为核心挑战。Open-AutoGLM通过构建内生合规引擎,实现了数据流动的自动化策略决策与执行,为全球化AI部署提供…

张小明 2026/1/1 0:31:10 网站建设

解决问题的网站中国建设银行信用卡旅游卡服务网站

大模型领域就业前景广阔,薪资高但竞争激烈,需掌握深度学习、Transformer等核心技术。建议提升编程能力,积累项目经验,持续学习前沿技术,拓展跨领域能力。保研者应明确研究方向,选择有实力的院校导师&#x…

张小明 2025/12/31 18:55:13 网站建设

四川达州网站建设专业手机网站建设价格明细表

LobeChat角色预设功能详解:让AI对话更贴近业务场景 在企业开始大规模引入大语言模型的今天,一个现实问题日益凸显:通用型AI虽然“知识渊博”,但在具体业务中却常常显得“不得要领”。客服对话时语气轻浮、教育辅导时缺乏引导性、技…

张小明 2026/1/1 22:10:18 网站建设