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

营销型品牌网站建设百度推广平台登陆

营销型品牌网站建设,百度推广平台登陆,展示型网站怎么做,平面设计教学视频从Linux设备树读取字符串信息 在Linux内核中&#xff0c;从设备树&#xff08;DTS&#xff09;中读取字符串信息&#xff0c;通常使用内核提供的设备树解析API。这些API主要位于<linux/of.h>头文件中。 常用函数解析 1. of_get_property 获取设备树中的属性。原型:con…

从Linux设备树读取字符串信息

在Linux内核中,从设备树(DTS)中读取字符串信息,通常使用内核提供的设备树解析API。这些API主要位于<linux/of.h>头文件中。


常用函数解析

1. of_get_property

  • 获取设备树中的属性。
  • 原型:
    const void *of_get_property(const struct device_node *np, const char *name, int *lenp);
    
  • 参数:
    • np: 设备树节点指针。
    • name: 属性名。
    • lenp: 输出该属性的长度指针。
  • 返回值:
    • 成功时,返回指向属性值的指针;失败时返回NULL。

示例:

const char *string_val;
int len;string_val = of_get_property(np, "my-string-property", &len);
if (!string_val)pr_err("Failed to read property 'my-string-property'\n");
elsepr_info("Property value: %s\n", string_val);

2. of_property_read_string

  • 直接读取设备树中的字符串属性。
  • 原型:
    int of_property_read_string(const struct device_node *np, const char *propname, const char **out_string);
    
  • 参数:
    • np: 设备树节点指针。
    • propname: 属性名。
    • out_string: 输出的字符串指针。
  • 返回值:
    • 成功返回0;失败返回负值(如-EINVAL)。

示例:

const char *string_val;if (of_property_read_string(np, "my-string-property", &string_val)) {pr_err("Failed to read string property\n");
} else {pr_info("String property value: %s\n", string_val);
}

3. of_property_read_string_array

  • 用于读取多个字符串属性(以空格分隔的字符串数组)。
  • 原型:
    int of_property_read_string_array(const struct device_node *np, const char *propname, const char **out_strings, size_t sz);
    
  • 参数:
    • np: 设备树节点指针。
    • propname: 属性名。
    • out_strings: 字符串数组指针。
    • sz: 最大字符串数量。
  • 返回值:
    • 成功返回实际读取的字符串数量;失败返回负值。

示例:

const char *strings[3];
int count;count = of_property_read_string_array(np, "my-strings-property", strings, 3);
if (count < 0) {pr_err("Failed to read string array\n");
} else {for (int i = 0; i < count; i++) {pr_info("String[%d]: %s\n", i, strings[i]);}
}

流程示例

假设DTS文件如下:

example-node {compatible = "example,device";my-string-property = "example-string";my-strings-property = "string1", "string2", "string3";
};

在驱动代码中:

static int example_probe(struct platform_device *pdev)
{struct device_node *np = pdev->dev.of_node;const char *string_val;if (!np) {dev_err(&pdev->dev, "No device tree node found\n");return -EINVAL;}// 读取单个字符串if (of_property_read_string(np, "my-string-property", &string_val)) {dev_err(&pdev->dev, "Failed to read 'my-string-property'\n");} else {dev_info(&pdev->dev, "Property value: %s\n", string_val);}// 读取字符串数组const char *strings[3];int count = of_property_read_string_array(np, "my-strings-property", strings, ARRAY_SIZE(strings));if (count < 0) {dev_err(&pdev->dev, "Failed to read 'my-strings-property'\n");} else {for (int i = 0; i < count; i++) {dev_info(&pdev->dev, "String[%d]: %s\n", i, strings[i]);}}return 0;
}

常见问题

  1. 设备树节点不存在
    • 确保设备树节点被正确绑定到驱动中,可以通过compatible属性匹配。
  2. 属性不存在
    • 确保DTS中定义了对应的属性名称,并符合读取代码中的匹配。

通过上述方法,可以方便地从设备树中读取字符串信息,并用于设备驱动的配置和初始化。

http://www.dt0577.cn/news/48306.html

相关文章:

  • 网络推广培训公司域名seo查询
  • 用dw制作做网站需要钱吗营销网站大全
  • gvm网站是什么类的网站seo关键词布局案例
  • 用软件做seo网站关键词推广网络推广好做吗多少钱
  • 网站建设模板型和定制型手机百度app免费下载
  • 创立个网站专业卖手机营销网站制作公司
  • 南昌网站建设报价惠州自动seo
  • pageadmin 制作网站怎么绑定域名购物网站大全
  • 哪家可以做网站哪里可以引流到精准客户呢
  • 做网站合同模板站长统计官方网站
  • 建设银行杭州招聘网站深圳网
  • 怎么做网站二级页面最新网站查询工具
  • 河南有名的做网站公司有哪些品牌网站建设公司
  • 企业网站的制作与维护南宁白帽seo技术
  • 如何建一个手机网站网址注册在哪里注册
  • 徐州专业制作网站百度收录怎么查询
  • 网站内容采编怎么做自己有域名怎么建网站
  • 合肥网站建设的公司哪家好宁波关键词优化排名工具
  • vultr wordpress引擎优化
  • 电白区住房和城乡建设局网站互联网推广方案
  • 深圳市设计院排名杭州关键词推广优化方案
  • 做营销网站应该要注意些什么seo优化工作内容做什么
  • 从零精通网站建设国际新闻热点事件
  • 南昌有做网站的吗濮阳网站推广
  • 东莞网站优化域名注册查询软件
  • 网站优化怎么样东莞网站制作
  • 北京专业的网站ui设计公司百度推广后台登陆
  • 网站建设制度搜索引擎技术
  • 用html5做的静态网站sem是什么仪器
  • 购物02网站竞价推广托管公司介绍