如何正确添加设备树节点

怎么做?

第 166 行指定了 of_match_table,它是用来跟设备树节点匹配的,如果设备树节点中有 compatile 属
性,并且其值等于第 157 行的“ 100as,leddrv”
,就会导致第 162 行的 probe 函数被调用。

156 static const struct of_device_id ask100_leds[] = {
157 { .compatible = "100as,leddrv" },
158 { },
159 };
160
161 static struct platform_driver chip_demo_gpio_driver = {
162 .probe = chip_demo_gpio_probe,
163 .remove = chip_demo_gpio_remove,
164 .driver = {
165 .name = "100ask_led",
166 .of_match_table = ask100_leds,
167 },
168 };
169
170 static int __init chip_demo_gpio_drv_init(void)
171 {
172 int err;
173
174 err = platform_driver_register(&chip_demo_gpio_driver);
175 register_led_operations(&board_demo_led_opr);
176
177 return 0;
178 }
179

为什么这么做?

1.要知道内核对设备树的处理流程

从源代码文件 dts 文件开始,设备树的处理过程为:
在这里插入图片描述

① dts 在 PC 机上被编译为 dtb 文件;
② u-boot 把 dtb 文件传给内核;
③ 内核解析 dtb 文件,把每一个节点都转换为 device_node 结构体;
④ 对于某些 device_node 结构体,会被转换为 platform_device 结构体。
⑤platform_device 和platform_driver 配对

这里的第⑤怎么实现的呢,有5个比较方式

在这里插入图片描述

第一个是最先比较:是否强制选择某个driver

比较 platform_device. driver_override 和 platform_driver.driver.name
可以设置 platform_device 的 driver_override,强制选择某个 platform_driver。

第二个比较:设备树信息

比较: platform_device. dev.of_node 和 platform_driver.driver.of_match_table。
由设备树节点转换得来的 platform_device 中,含有一个结构体: of_node。
它的类型如下:在这里插入图片描述
如果一个 platform_driver 支持设备树,它的 platform_driver.driver.of_match_table 是一个数组,
类型如下:在这里插入图片描述
使用设备树信息来判断 dev 和 drv 是否配对时,
首先,如果 of_match_table 中含有 compatible 值,就跟 dev 的 compatile 属性比较,若一致则成功,
否则返回失败;
其次,如果 of_match_table 中含有 type 值,就跟 dev 的 device_type 属性比较,若一致则成功,否则
返回失败;
最后,如果 of_match_table 中含有 name 值,就跟 dev 的 name 属性比较,若一致则成功,否则返回失败

而设备树中建议不再使用 devcie_type 和 name 属性,所以基本上只使用设备节点的 compatible 属性来寻找匹配的platform_driver。
到这里我们就知道怎么添加设备树节点了吧,我们接着往下看完剩下两个比较device和drevers 的方式吧
第三个比较:platform_device_id

比较 platform_device. name 和 platform_driver.id_table[i].name, id_table 中可能有多项。
platform_driver.id_table 是“ platform_device_id”指针,表示该 drv 支持若干个 device,它里面
列出了各个 device 的{.name, .driver_data},其中的“ name”表示该 drv 支持的设备的名字, driver_data
是些提供给该 device 的私有数据。

最后比较:platform_device.name 和 platform_driver.driver.name

platform_driver.id_table 可能为空,
这时可以根据 platform_driver.driver.name 来寻找同名的 platform_device。

  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验3 决策树 一、实验目的 1. 了解决策树的基本概念。 2. 掌握决策树挖掘分析的操作步骤。 1. 实验内容 对 三国志4 武将数据.xls 中的数据进行决策树分析。 2. 实验仪、设备 计算机、visual studio 2008、分析用数据、数据库服务 3. 实验步骤 准备工作:三国志4 武将数据.xls 数据导入数据库中。 1. 打开visual studio 2008,新建项目,选择商业智能项目,analysis services项目 图1 新建项目 2. 在解决方案资源管理器中,右键单击数据源,选择新建数据源 图2 数据源向导 3. 在该界面中选择新建,进行数据源具体设置 图3 新建数据源 4. 在服务器名中填写要连接的数据库服务器名称,或者单击服务器名右方下拉按钮进行 选择;勾选使用windows身份验证 ;选择或输入一个数据库名中填写将要分析数据所在的数据库或者单击右方下拉按 钮进行选择 图4 数据源具体设置 5. 确定后配置完的数据源已显示在窗口上,继续下一步 图5 完成数据源具体设置 6. 勾选使用服务账户,继续下一步 图6 模拟信息设置 7. 数据源名称保持默认,完成 图7 完成数据源设置向导 8. 在解决方案资源管理器中,右键单击数据源视图,选择新建数据源视图 图8 数据源视图向导 9. 下一步 图9 选择数据源 10. 在可用对象中,将要分析数据所在表添加到包含的对象中,继续下一步 图11 选择包含对象 11. 默认名称,完成 图12 完成数据源视图向导 12. 在解决方案资源管理器中,右键单击挖掘结构,选择新建挖掘结构 图13 数据挖掘向导 13. 勾选从现有关系数据库或数据仓库,继续下一步 图14 选择定义方法 14. 选择microsoft 决策树,继续下一步 图15 创建数据挖掘模型结构 15. 下一步 图16 选择数据源视图 16. 勾选事例,继续下一步 图17 指定表类型 17. 在键列勾选序号码,在输入列勾选出身、国别、魅力、统御、武力、政治、智慧、忠 诚,在可预测列勾选身份,继续下一步 图18 指定定型数据 18. 下一步 图19 指定内容和数据类型 19. 勾选允许钻取,完成 图21 完成数据挖掘向导 20. 单击挖掘模型查看器 图22 完成设置 21. 询问是否部署项目,是 图23 部署项目 22. 询问是否继续,是 图24 处理模型 23. 单击运行 图25 运行挖掘项目 24. 待处理完成后,关闭 图26 处理结果 25. 关闭处理窗口后,就可在挖掘模型查看器的决策树中看到系统经过分析得出的结果 图27 分类关系图 依赖关系网络: 图27 分类剖面图 26. 在挖掘模型中,右键单击挖掘模型可以设置算法参数 图28 算法参数 27. 算法参数的意义 COMPLEXITY_PENALTY:禁止决策树生长。减少此值会增加拆解的可能性,而增加此值则会 减少拆解的可能性。 FORCE_REGRESSOR:强制算法使用的数据行作为回归公式的回归输入变量,而不考虑其在 算法计算中的重要性为何。 MAXIMUM_INPUT_ATTRIBUTES:指定在叫用功能选项之前,算法可以处理输入属性的最大数 目。 MAXIMUM_OUTPUT_ATTRIBUTES:指定在叫用功能选项之前,算法可以处理输出属性的最大 数目。 MINIMUM_SUPPORT:指定分叶节点必须包含的最小个例数目 SCORE_METHOD:指定用来计算分割准则的方法。 SPLIT_METHOD:指定用来节点分杈的模式。 图29 设置算法参数 28. 设定完算法后,再次点击挖掘模型查看器进行数据处理,处理完成后所得出的结果就 是设置算法后的结果。 4. 实验心得体会 通过这次关于决策树的实验,让我对决策树的应用有了相对具体的理解,并且为决策 树的学习提供了一个好的铺垫,在学习过程中,决策树中的算法由于利用系统本身, 所以并没有具体理解ID3这个算法的具体运转环节,但是有了这次实验的铺垫,使自 己能够更加容易之后的ID3算法的学习。 5. 思考题 决策树对数据分类的正确率是否可以达到100%? 答:不可以达到100% 决策树一般都是自上而下来生成的。决策树由一个决策图和可能的结果(包括资源成 本和风险)组成,用来创建到达目标的规划。每个决策或事件都可能引出两个或多个事件 ,导致不同的结果,把这种决策分支画成图形很像一棵树的枝干,所以称作决策树。 对于那些各类别样本数量不一致的数据,在决策树当中信息增益的结果偏向于那些具有 更多数值的特征。决策树的这种明确性可能带来误导。 决策树分类准确率极限理论: 定理1:有经验风险和结构风险时,决策树分类准确率的极限不存在。 定理2:无经验风险、有结构风险时,决策树分类准确率的极限不存在。 定

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值