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

公司网站导航栏是什么公众号模板免费

公司网站导航栏是什么,公众号模板免费,公司建设网站需要固定ip吗,现在进入深圳需要什么条件修改设备树文件 先关闭心跳灯功能#xff0c;也就是在图 10.4.1.2 中第 167 行添加 status 改为 disabled#xff0c;也就是禁止 work 这个节点#xff0c;那么禁止心跳灯功能。 我们后面需要禁止哪个功能#xff0c;只需要将其 status 属性改为 disabled 就可以了。 gpi…修改设备树文件 先关闭心跳灯功能也就是在图 10.4.1.2 中第 167 行添加 status 改为 disabled也就是禁止 work 这个节点那么禁止心跳灯功能。 我们后面需要禁止哪个功能只需要将其 status 属性改为 disabled 就可以了。 gpioled{compatible zxk, led;led-gpio gpio0 RK_PC0 GPIO_ACTIVE_HIGH;status okay;};编译内核并烧写boot.img // 1. 编译 ./bulid.sh kernel // 2. 烧写 驱动编写 /* 设置LED所使用的GPIO *//* 1. 获取设备节点gpioled */gpioled.nd of_find_node_by_path(/gpioled);if (gpioled.nd NULL){printk(gpioled node not found!\n);return -EINVAL;}/* 2. 读取status属性 */ret of_property_read_string(gpioled.nd, status, str);if (ret 0){printk(gpioled status not found!\n);return -EINVAL;}if (strcmp(str, okay) ! 0){printk(gpioled status not okay!\n);return -EINVAL;}/* 3. 获取compatible属性值并进行匹配 */ret of_property_read_string(gpioled.nd, compatible, str);if (ret 0){printk(compatible property not found!\n);return -EINVAL;}if (strcmp(str, zxk, led)! 0){printk(compatible property not match!\n);return -EINVAL;}/* 4. 获取gpio属性值并转换为gpio */ gpioled.led_gpio of_get_named_gpio(gpioled.nd, led-gpio, 0);if (gpioled.led_gpio 0){printk(led-gpio property not found!\n);return -EINVAL;}printk(led-gpio %d\n, gpioled.led_gpio);/* 5. 向gpio子系统申请使用GPIO */ret gpio_request(gpioled.led_gpio, led-gpio);if (ret 0){printk(gpio_request failed!\n);return -EINVAL;}/* 6. 设置GPIO为输出模式并输出为低电平默认led关闭 */ret gpio_direction_output(gpioled.led_gpio, 0);if (ret 0){printk(gpio_direction_output failed!\n);return -EINVAL;}#include linux/types.h #include linux/kernel.h #include linux/delay.h #include linux/ide.h #include linux/init.h #include linux/module.h #include linux/errno.h #include linux/gpio.h #include linux/cdev.h #include linux/device.h #include linux/of.h #include linux/of_address.h #include linux/of_gpio.h //#include asm/mach/map.h #include asm/uaccess.h #include asm/io.h/**************************************************************** 文件名 : gpioled.c* 功能 : 这是一个led设备驱动程序文件* 作者 : zxk* 创建日期: 2024年11月28日* 其他 ***************************************************************/#define GPIOLED_CNT 1 /* 设备号个数 */ #define GPIOLED_NAME gpioled /* 设备名 */ #define LED_ON 1 /* 开灯 */ #define LED_OFF 0 /* 关灯 *//* gpioled 设备结构体 */ struct gpioled_dev {dev_t devid; /* 设备号 */struct cdev cdev; /* cdev */struct class *class; /* 类 */struct device *device; /* 设备 */int major; /* 主设备号 */int minor; /* 次设备号 */struct device_node *nd; /* 设备节点 */int led_gpio; /* led对应的gpio */ };struct gpioled_dev gpioled;/**************************************************************** led_open - 函数名* description : 打开设备* param-inode : 传递给驱动的 inode* param-filp : 设备文件file 结构体有个叫做 private_data 的成员变量* 一般在 open 的时候将 private_data 指向设备结构体。** 返回值 : 0 成功 ***************************************************************/ static int led_open(struct inode *inode, struct file *filp) {filp-private_data gpioled; /* 设置私有数据 */return 0; }/**************************************************************** led_reads - 函数名* description : 从设备读取数据* param-filp : 要打开的文件设备* param-buf : 返回给用户空间的数据缓冲区* param-cnt : 读取的数据长度* param-off_t : 相对于文件首地址的偏移* return 读取的字节数 ***************************************************************/ static ssize_t led_read(struct file *filp, char __user *buf, size_t cnt, loff_t *off_t) { return 0; }/**************************************************************** led_write - 函数名* description : 向设备写入数据* param-filp : 设备文件要打开的文件设备* param-buf : 要写入设备的数据* param-cnt : 写入的数据长度* param-off_t : 相对于文件首地址的偏移* return 写入的文件数 ***************************************************************/ static ssize_t led_write(struct file *filp, const char __user *buf, size_t cnt, loff_t *off_t) {int retvalue;unsigned char databuf[1];unsigned char ledstat;struct gpioled_dev *dev filp-private_data;retvalue copy_from_user(databuf, buf, cnt);if(retvalue 0) {printk(kernel write failed!\r\n);return -EFAULT;}ledstat databuf[0]; /* 获取状态值 */if(ledstat LED_ON) { gpio_set_value(dev-led_gpio, 1); /* 打开LED灯 */} else if(ledstat LED_OFF) {gpio_set_value(dev-led_gpio, 0); /* 关闭LED灯 */}return 0; }/**************************************************************** led_release - 函数名* description : 关闭释放设备* param-inode : 传递给驱动的 inode* param-filp : 设备文件要关闭的文件设备描述符** 返回值 : 0 成功 ***************************************************************/ static int led_release(struct inode *inode, struct file *filp) {return 0; }/* * 设备操作函数结构体 * 将驱动函数映射为系统调用 */static struct file_operations gpioled_fops {.owner THIS_MODULE,.open led_open,.read led_read,.write led_write,.release led_release, };/**************************************************************** led_init - 函数名* description : 驱动入口函数* param : 无* 返回值 : 0 成功 ***************************************************************/ static int __init led_init(void) {int ret;const char *str;/* 设置LED所使用的GPIO *//* 1. 获取设备节点gpioled */gpioled.nd of_find_node_by_path(/gpioled);if (gpioled.nd NULL){printk(gpioled node not found!\n);return -EINVAL;}/* 2. 读取status属性 */ret of_property_read_string(gpioled.nd, status, str);if (ret 0){printk(gpioled status not found!\n);return -EINVAL;}if (strcmp(str, okay) ! 0){printk(gpioled status not okay!\n);return -EINVAL;}/* 3. 获取compatible属性值并进行匹配 */ret of_property_read_string(gpioled.nd, compatible, str);if (ret 0){printk(compatible property not found!\n);return -EINVAL;}if (strcmp(str, zxk, led)! 0){printk(compatible property not match!\n);return -EINVAL;}/* 4. 获取gpio属性值并转换为gpio */ gpioled.led_gpio of_get_named_gpio(gpioled.nd, led-gpio, 0);if (gpioled.led_gpio 0){printk(led-gpio property not found!\n);return -EINVAL;}printk(led-gpio %d\n, gpioled.led_gpio);/* 5. 向gpio子系统申请使用GPIO */ret gpio_request(gpioled.led_gpio, led-gpio);if (ret 0){printk(gpio_request failed!\n);return -EINVAL;}/* 6. 设置GPIO为输出模式并输出为低电平默认led关闭 */ret gpio_direction_output(gpioled.led_gpio, 0);if (ret 0){printk(gpio_direction_output failed!\n);return -EINVAL;}/* 注册字符设备驱动 *//* 1.创建设备号 */if (gpioled.major){gpioled.devid MKDEV(gpioled.major, 0);ret register_chrdev_region(gpioled.devid, GPIOLED_CNT, GPIOLED_NAME);if (ret 0){printk(cannot register %s char driver [ret%d]\n,GPIOLED_NAME, GPIOLED_CNT);goto free_gpio;}}else{ret alloc_chrdev_region(gpioled.devid, 0, GPIOLED_CNT, GPIOLED_NAME);if (ret 0){printk(cannot register %s char driver [ret%d]\n,GPIOLED_NAME, GPIOLED_CNT);goto free_gpio;}gpioled.major MAJOR(gpioled.devid);/* 获取主设备号 */gpioled.minor MINOR(gpioled.devid);/* 获取次设备号 */}printk(gpioled major%d,minor%d\r\n,gpioled.major,gpioled.minor);/* 2.初始化cdev */gpioled.cdev.owner THIS_MODULE;cdev_init(gpioled.cdev, gpioled_fops);/* 3.添加一个cdev字符设备 */ret cdev_add(gpioled.cdev, gpioled.devid, GPIOLED_CNT);if (ret 0){goto del_unregister;}/* 4. 创建类 */gpioled.class class_create(THIS_MODULE, GPIOLED_NAME);if (IS_ERR(gpioled.class)){goto del_cdev;}/* 5.创建设备 */gpioled.device device_create(gpioled.class, NULL, gpioled.devid, NULL, GPIOLED_NAME);if (IS_ERR(gpioled.device)){goto destroy_class;}printk(led_init() \r\n);return 0;destroy_class:class_destroy(gpioled.class); del_cdev:cdev_del(gpioled.cdev); del_unregister:unregister_chrdev_region(gpioled.devid, GPIOLED_CNT); free_gpio:gpio_free(gpioled.led_gpio);return -EIO; }/**************************************************************** led_exit - 函数名* description : 驱动出口函数* param : 无* 返回值 : 0 成功 ***************************************************************/ static void __exit led_exit(void) {/* 注销字符设备驱动 */cdev_del(gpioled.cdev); /* 删除 cdev */unregister_chrdev_region(gpioled.devid, GPIOLED_CNT);/* 删除类 */device_destroy(gpioled.class, gpioled.devid);class_destroy(gpioled.class);/* 释放GPIO */gpio_free(gpioled.led_gpio);printk(led_exit() \r\n); }/* 将上面两个函数指定为驱动的入口和出口函数 */ module_init(led_init); module_exit(led_exit);MODULE_LICENSE(GPL); MODULE_AUTHOR(zxk); MODULE_INFO(intree, Y);ARCH arm64 KERNELDIR : /home/zxk/work/rk3568_linux_sdk/kernel CURRENT_PATH : /home/zxk/linux_driver/05_gpioled/obj-m : gpioled.obulid: kernel_moduleskernel_modules:$(MAKE) -C $(KERNELDIR) M$(CURRENT_PATH) modules clean:$(MAKE) -C $(KERNELDIR) M$(CURRENT_PATH) cleana编译测试 // 1.编译 make ARCHarm64 //ARCHarm64 必须指定否则编译会失败 /opt/atk-dlrk356x-toolchain/bin/aarch64-buildroot-linux-gnu-gcc ledApp.c -o ledApp // 2.上传 scp ./01_chrdevbase/chrdevbase.ko root192.168.137.65:/lib/modules/4.19.232/ scp ./01_chrdevbase/chrdevbaseAPP root192.168.137.65:/lib/modules/4.19.232/
文章转载自:
http://www.morning.thrgp.cn.gov.cn.thrgp.cn
http://www.morning.qwnqt.cn.gov.cn.qwnqt.cn
http://www.morning.jfbrt.cn.gov.cn.jfbrt.cn
http://www.morning.tymnr.cn.gov.cn.tymnr.cn
http://www.morning.fjptn.cn.gov.cn.fjptn.cn
http://www.morning.wsrcy.cn.gov.cn.wsrcy.cn
http://www.morning.fmqw.cn.gov.cn.fmqw.cn
http://www.morning.nnqrb.cn.gov.cn.nnqrb.cn
http://www.morning.jwbnm.cn.gov.cn.jwbnm.cn
http://www.morning.hymmq.cn.gov.cn.hymmq.cn
http://www.morning.gcxfh.cn.gov.cn.gcxfh.cn
http://www.morning.mdjzydr.com.gov.cn.mdjzydr.com
http://www.morning.fwdln.cn.gov.cn.fwdln.cn
http://www.morning.qfwzm.cn.gov.cn.qfwzm.cn
http://www.morning.kfysh.com.gov.cn.kfysh.com
http://www.morning.gkdhf.cn.gov.cn.gkdhf.cn
http://www.morning.ai-wang.cn.gov.cn.ai-wang.cn
http://www.morning.rpfpx.cn.gov.cn.rpfpx.cn
http://www.morning.dtcsp.cn.gov.cn.dtcsp.cn
http://www.morning.fwnqq.cn.gov.cn.fwnqq.cn
http://www.morning.wrkhf.cn.gov.cn.wrkhf.cn
http://www.morning.zmwzg.cn.gov.cn.zmwzg.cn
http://www.morning.sgpny.cn.gov.cn.sgpny.cn
http://www.morning.qcsbs.cn.gov.cn.qcsbs.cn
http://www.morning.lynb.cn.gov.cn.lynb.cn
http://www.morning.sfzwm.cn.gov.cn.sfzwm.cn
http://www.morning.iqcge.com.gov.cn.iqcge.com
http://www.morning.rlksq.cn.gov.cn.rlksq.cn
http://www.morning.wslr.cn.gov.cn.wslr.cn
http://www.morning.dbfp.cn.gov.cn.dbfp.cn
http://www.morning.yixingshengya.com.gov.cn.yixingshengya.com
http://www.morning.zrrgx.cn.gov.cn.zrrgx.cn
http://www.morning.nyfyq.cn.gov.cn.nyfyq.cn
http://www.morning.mtgkq.cn.gov.cn.mtgkq.cn
http://www.morning.smdnl.cn.gov.cn.smdnl.cn
http://www.morning.prgnp.cn.gov.cn.prgnp.cn
http://www.morning.rsnd.cn.gov.cn.rsnd.cn
http://www.morning.lkwyr.cn.gov.cn.lkwyr.cn
http://www.morning.gmplp.cn.gov.cn.gmplp.cn
http://www.morning.jftl.cn.gov.cn.jftl.cn
http://www.morning.rqbkc.cn.gov.cn.rqbkc.cn
http://www.morning.qqklk.cn.gov.cn.qqklk.cn
http://www.morning.hfbtt.cn.gov.cn.hfbtt.cn
http://www.morning.mhdwp.cn.gov.cn.mhdwp.cn
http://www.morning.rkqqf.cn.gov.cn.rkqqf.cn
http://www.morning.rycbz.cn.gov.cn.rycbz.cn
http://www.morning.dhmll.cn.gov.cn.dhmll.cn
http://www.morning.wbyqy.cn.gov.cn.wbyqy.cn
http://www.morning.zyffq.cn.gov.cn.zyffq.cn
http://www.morning.jyzxt.cn.gov.cn.jyzxt.cn
http://www.morning.qpmmg.cn.gov.cn.qpmmg.cn
http://www.morning.mxhys.cn.gov.cn.mxhys.cn
http://www.morning.xfrqf.cn.gov.cn.xfrqf.cn
http://www.morning.qrndh.cn.gov.cn.qrndh.cn
http://www.morning.qdbcd.cn.gov.cn.qdbcd.cn
http://www.morning.ktcfl.cn.gov.cn.ktcfl.cn
http://www.morning.tkcz.cn.gov.cn.tkcz.cn
http://www.morning.fkgct.cn.gov.cn.fkgct.cn
http://www.morning.ynstj.cn.gov.cn.ynstj.cn
http://www.morning.ljcjc.cn.gov.cn.ljcjc.cn
http://www.morning.yqrgq.cn.gov.cn.yqrgq.cn
http://www.morning.djgrg.cn.gov.cn.djgrg.cn
http://www.morning.gwxsk.cn.gov.cn.gwxsk.cn
http://www.morning.znpyw.cn.gov.cn.znpyw.cn
http://www.morning.mmjyk.cn.gov.cn.mmjyk.cn
http://www.morning.nyzmm.cn.gov.cn.nyzmm.cn
http://www.morning.ykkrg.cn.gov.cn.ykkrg.cn
http://www.morning.hdqqr.cn.gov.cn.hdqqr.cn
http://www.morning.sqgqh.cn.gov.cn.sqgqh.cn
http://www.morning.xqjrg.cn.gov.cn.xqjrg.cn
http://www.morning.msbpb.cn.gov.cn.msbpb.cn
http://www.morning.tmpsc.cn.gov.cn.tmpsc.cn
http://www.morning.chongzhanggui.cn.gov.cn.chongzhanggui.cn
http://www.morning.qczjc.cn.gov.cn.qczjc.cn
http://www.morning.zxxys.cn.gov.cn.zxxys.cn
http://www.morning.tygn.cn.gov.cn.tygn.cn
http://www.morning.ldnrf.cn.gov.cn.ldnrf.cn
http://www.morning.mfqmk.cn.gov.cn.mfqmk.cn
http://www.morning.pbmkh.cn.gov.cn.pbmkh.cn
http://www.morning.bxnrx.cn.gov.cn.bxnrx.cn
http://www.tj-hxxt.cn/news/245813.html

相关文章:

  • 公司网站后如何更新自己开发一个app需要什么
  • 一个新的网站怎么做SEO优化做任务网站有哪些内容
  • 网站云空间和普通空间东莞医疗网站建设报价
  • 纯静态 网站重庆食品公司
  • 检察 网站建设VPS wordpress 教程
  • 河源建设工程交易中心网站什么是响应式网站设计
  • 怎么自己做网站游戏可以盗链图片的网站
  • 沈阳关键词优化费用wordpress多站点 seo
  • 广州海珠区赤岗 新港网站建设公司免费编程软件手机版
  • 宁波手机建站模板山东省建设执业资格注册管理中心网站
  • 北京平面设计网站amp网站建设
  • 做袜子娃娃的网站不会代码可不可以做网站
  • 新手学做网站学要做哪些dz网站后台
  • 自由策划企业网站管理系统破解版wordpress 静态文件
  • 秦皇岛陵县网站建设怎么做应用
  • 网站建设商家网站策划书3000
  • 长春网站制作长春万网手机网站建站APP
  • 企业快速建站必备的几大常识传奇怎么做充值网站
  • 江门搜狗网站推广优化网页设计心得体会2篇
  • 网站建设中请期待网页设计实训报告任务书
  • 建模外包网站北京大型商场一览表
  • 成品免费ppt网站管理咨询公司技术服务
  • 网站入口设计规范用来做收录的网站
  • 中介做哪些网站仪器仪表行业网站建设
  • it网站建设网站建设的两个方面
  • 东莞制作网站公司湖北望新建设有限公司网站
  • 新野微网站建设修改 wordpress 模版
  • 合肥建设集团信息网站做特价的网站
  • 建立网站需要多少钱责任y湖南岚鸿联系最实用的手机app软件
  • 网站建设分金手指专业十四小米网站制作