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

it网站模板网站推广的六种方式

it网站模板,网站推广的六种方式,wordpress 文章页当前栏目链接,中小型企业网络部署目录 1.脉冲编码器设备基类2.脉冲编码器设备基类的子类3.初始化/构造流程3.1设备驱动层3.2 设备驱动框架层3.3 设备io管理层 4.总结5.使用 1.脉冲编码器设备基类 此层处于设备驱动框架层。也是抽象类。 在/ components / drivers / include / drivers 下的pulse_encoder.h定义… 目录 1.脉冲编码器设备基类2.脉冲编码器设备基类的子类3.初始化/构造流程3.1设备驱动层3.2 设备驱动框架层3.3 设备io管理层 4.总结5.使用 1.脉冲编码器设备基类 此层处于设备驱动框架层。也是抽象类。 在/ components / drivers / include / drivers 下的pulse_encoder.h定义了如下脉冲编码器设备基类 struct rt_pulse_encoder_device { struct rt_device parent; const struct rt_pulse_encoder_ops *ops; enum rt_pulse_encoder_type type; }; 脉冲编码器设备基类的方法定义如下 struct rt_pulse_encoder_ops { rt_err_t (*init)(struct rt_pulse_encoder_device *pulse_encoder); rt_int32_t (*get_count)(struct rt_pulse_encoder_device *pulse_encoder); rt_err_t (*clear_count)(struct rt_pulse_encoder_device *pulse_encoder); rt_err_t (*control)(struct rt_pulse_encoder_device *pulse_encoder, rt_uint32_t cmd, void *args); }; 抽象出来共性成为脉冲编码器设备基类的方法。 2.脉冲编码器设备基类的子类 各个看脉冲编码设备基类的子类已经是在bsp的驱动层来实现了例如 / bsp / stm32 / libraries / HAL_Drivers / drivers 下的drv_pulse_encoder.c定义的stm32脉宽编码器类这些都是可以实例化的终类。其他芯片厂家如此这般一样。 3.初始化/构造流程 以stm32为例从设备驱动层、设备驱动框架层到设备io管理层从下到上的构造/初始化流程如下 3.1设备驱动层 此层是bsp层可以实例化的终类地。 c文件: / bsp / stm32 / libraries / HAL_Drivers / drivers 下的drv_pulse_encoder.c。 定义了stm32脉宽编码器类 struct stm32_pulse_encoder_device { struct rt_pulse_encoder_device pulse_encoder; TIM_HandleTypeDef tim_handler; IRQn_Type encoder_irqn; rt_int32_t over_under_flowcount; char *name; }; 实例化了stm32的脉宽编码器设备: static struct stm32_pulse_encoder_device stm32_pulse_encoder_obj[] ; 重写了脉宽编码器设备基类的方法: static const struct rt_pulse_encoder_ops _ops { .init pulse_encoder_init, .get_count pulse_encoder_get_count, .clear_count pulse_encoder_clear_count, .control pulse_encoder_control, }; hw_pulse_encoder_init中开启stm32脉宽编码器设备的初始化: 调用/ components / drivers / misc /pulse_encoder.c的rt_device_pulse_encoder_register函数来初始化脉宽编码器设备基类对象: stm32_pulse_encoder_obj[i].pulse_encoder.ops _ops; rt_device_pulse_encoder_register(stm32_pulse_encoder_obj[i].pulse_encoder, stm32_pulse_encoder_obj[i].name, RT_NULL) ; 注意重写了脉宽编码器设备基类的方法。 3.2 设备驱动框架层 rt_device_pulse_encoder_register是脉宽编码器设备驱动框架层的入口开启脉宽编码器设备基类的构造/初始化流程。 其主要是重写设备基类对象的方法如下 / components / drivers / misc 下的pulse_encoder.c实现了设备驱动框架层接口。 重写的脉宽编码设备基类的父类——设备基类——的方法如下 #ifdef RT_USING_DEVICE_OPS device-ops pulse_encoder_ops; #else device-init rt_pulse_encoder_init; device-open rt_pulse_encoder_open; device-close rt_pulse_encoder_close; device-read rt_pulse_encoder_read; device-write RT_NULL; device-control rt_pulse_encoder_control; #endif 并最终调用设备基类的初始化/构造函数rt_device_register。 3.3 设备io管理层 rt_device_register是io管理层的入口。从框架章节可以知道所有设备类都继承自设备基类rt_device自然都要实现设备基类rt_device的约束方法上面已经重写。 在/ components / drivers / core 下的device.c中实现了rt_device_register由它将pin设备放到容器里管理。 4.总结 整个设备对象的构造/初始化流程其实是对具体设备对象也就是结构体进行初始化赋值按照先调用子类构造/初始化函数再调用父类的构造/初始化函数方式——其实也是子类构造/初始化函数调用父类构造/初始化函数的流程来完成设备对象的初始化/构造。最终放到对象容器里来管理。 5.使用 文档
http://www.zqtcl.cn/news/704955/

相关文章:

  • 与女鬼做的网站上海有限公司
  • ytwzjs烟台网站建设c 做的网站又哪些
  • 做网站就是做app中国包装创意设计网
  • 淄博做网站宿迁房产网丫丫找房
  • 苏州专业做网站比较好的公司杭州好的公司网站设计
  • 做百度网站要多少钱帮做网站一般多少钱
  • 云南网站备案查询山西做网站费用
  • 北京建站管理系统开发网站高转化页面
  • 南充网站制作不会做网站能做网络销售吗
  • 这2个代码 找做网站的 安装一下搜索引擎排行榜
  • 百度收录收费 重大网站网络空间设计说明怎么写
  • 网站开发 php模板图书馆网站建设的项目报告
  • 保定模板建站定制网站wordpress 收集
  • 万网 网站模板软件开发三个主要阶段
  • 网站首页psd格式怎么做seo关键词有哪些类型
  • 做部队网站技术vue做购物网站
  • 品牌网站建设服务机构wordpress英文改中文
  • 系统开发费外链优化方法
  • 网站建设公司起名网站构建的友情链接怎么做
  • 网站建设湖南wordpress 缓存时间
  • 木藕设计网站大全福州网络营销推广产品优化
  • 建设银行网上官方网站怎么批量修改wordpress文章内容
  • 多肉建设网站的目的及功能定位app网站开发成本
  • 如何保存网站上的图片不显示图片报纸网站建设
  • 网站营销的流程品牌推广方式有哪些
  • 网站开发的条件美术字设计
  • 网站可以自己做服务器么wordpress架站教程
  • 用ps怎么做网站导航条怎么做部署iis网站
  • 酒店 网站构建怎么创建自己的网址
  • 江苏推广网站建设业务个人工作室网站源码带后台