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

商业网站开发实训内容瑜伽网站设计

商业网站开发实训内容,瑜伽网站设计,永定门网站建设,wordpress金融目录 1.dac设备基类2.dac设备基类的子类3.初始化/构造流程3.1设备驱动层3.2 设备驱动框架层3.3 设备io管理层 4.总结5.使用 1.dac设备基类 此层处于设备驱动框架层。也是抽象类。 在/ components / drivers / include / drivers 下的dac.h定义了如下dac设备基类 struct rt_da… 目录 1.dac设备基类2.dac设备基类的子类3.初始化/构造流程3.1设备驱动层3.2 设备驱动框架层3.3 设备io管理层 4.总结5.使用 1.dac设备基类 此层处于设备驱动框架层。也是抽象类。 在/ components / drivers / include / drivers 下的dac.h定义了如下dac设备基类 struct rt_dac_device { struct rt_device parent; const struct rt_dac_ops *ops; }; dac设备基类的方法定义如下 struct rt_dac_ops { rt_err_t (*disabled)(struct rt_dac_device *device, rt_uint32_t channel); rt_err_t (*enabled)(struct rt_dac_device *device, rt_uint32_t channel); rt_err_t (*convert)(struct rt_dac_device *device, rt_uint32_t channel, rt_uint32_t *value); rt_uint8_t (*get_resolution)(struct rt_dac_device *device); }; 抽象出来dac设备的共性成为dac设备基类的方法。 共性:失能dac使能dac转换分辨率。 2.dac设备基类的子类 各个看dac设备基类的子类已经是在bsp的驱动层来实现了例如 / bsp / stm32 / libraries / HAL_Drivers / drivers 下的drv_dac.c定义的stm32 dac类这些都是可以实例化的终类。其他芯片厂家如此这般一样。 3.初始化/构造流程 以stm32为例从设备驱动层、设备驱动框架层到设备io管理层从下到上的构造/初始化流程如下 3.1设备驱动层 此层是bsp层可以实例化的终类地。 c文件: / bsp / stm32 / libraries / HAL_Drivers / drivers 下的drv_dac.c。 定义了stm32的dac类 struct stm32_dac { DAC_HandleTypeDef DAC_Handler; struct rt_dac_device stm32_dac_device; }; 总感觉不舒服和rtt设备io框架类继承机制不一致应该改成这样 struct stm32_dac { struct rt_dac_device stm32_dac_device; DAC_HandleTypeDef DAC_Handler; }; 这就是舒服许多了。 实例化了stm32的dac设备: static struct stm32_dac stm32_dac_obj[sizeof(dac_config) / sizeof(dac_config[0])]; 重写了dac设备基类的方法: static const struct rt_dac_ops stm_dac_ops { .disabled stm32_dac_disabled, .enabled stm32_dac_enabled, .convert stm32_set_dac_value, .get_resolution stm32_dac_get_resolution, }; stm32_dac_init中开启stm32的dac设备的初始化: 调用/ components / drivers / misc /dac.c的rt_hw_dac_register函数来初始化adc设备基类对象: rt_hw_dac_register(stm32_dac_obj[i].stm32_dac_device, name_buf, stm_dac_ops, stm32_dac_obj[i].DAC_Handler) 注意把重写的dac设备基类方法传递进去了。 3.2 设备驱动框架层 rt_hw_dac_register是dac设备驱动框架层的入口开启dac设备基类的构造/初始化流程。 其主要是重写设备基类对象的方法如下 / components / drivers / misc 下的dac.c实现了设备驱动框架层接口。 重写dac设备基类的父类设备基类的方法如下 #ifdef RT_USING_DEVICE_OPS device-parent.ops dac_ops; #else device-parent.init RT_NULL; device-parent.open RT_NULL; device-parent.close RT_NULL; device-parent.read RT_NULL; device-parent.write _dac_write; device-parent.control _dac_control; #endif 同时重写dac设备基类的方法。 device-ops ops; 并最终调用设备基类的初始化/构造函数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/300169/

相关文章:

  • 高端网站设计合肥网站建设个人网站建设公
  • 廊坊建站模板系统做效果图的网站
  • 建网站打开需要验证四川省成都市建设厅官网
  • 网站文章列表如何排版珠海建设工程信息网站
  • 郑州个人做网站建设银行招聘网站
  • 杭州网站设计公司联系亿企邦网站怎么上百度
  • 网站建设的未来网站不备案访问
  • 网站改版效果图怎么做网站建设的五个基本要素
  • 河南建站网站做o2o网站需要多少钱
  • 重庆企业网站定制开发公司wordpress用户页
  • 电子商务网站seo网站规划与设计方向
  • 外贸双语网站源码wordpress 柚子
  • 隆昌市住房和城乡建设厅网站html5网页成品代码
  • 泉州丰泽建设局网站wordpress设置logo和公司名
  • 网页与网站设计实验总结网上商城互联网网站开发
  • 学院宣传网站建设简介郑州加盟网站建设
  • 上海网站建设sheji021wordpress ssl 图片
  • 网站管理人员队伍建设说明材料搞笑网站建设目的和意义
  • 网站建设应该考虑哪些问题如何规划网站栏目
  • 照片网站模版广告设计软件哪个好用
  • 商城网站前端更新商品天天做吗惠州网络营销公司
  • 买高端品牌网站建设公司做网站比较好的平台
  • 找个网站这么难2021公司名称大全好听
  • 网站要实名认证网站建设 简易合同
  • 网站建站公司费用建设网站改版
  • 做网站php与python新渝网门户网
  • 响应式网站建设外文文献中介做网站的别打电话
  • 奥迪网站建设策划书wordpress取消评论审核
  • 无锡百度正规公司专业seo网站优化推广排名教程
  • 湖南城乡建设厅网站青岛网站推广招商