郑州网站的建设,株洲做网站优化,可不可以用帝国cms做企业网站,各购物网站销售特点一. 简介
本文学习使用 设备树操作函数#xff0c;读取设备节点的一个字符串类型的属性值。
读取设备树文件 imx6ull-14x14-evk.dts 中一个设备节点的信息。这里读取 backlight设备节点的属性值#xff1a;读取字符串类型的 status属性。 二. 读取 backlight设备节点的s…一. 简介
本文学习使用 设备树操作函数读取设备节点的一个字符串类型的属性值。
读取设备树文件 imx6ull-14x14-evk.dts 中一个设备节点的信息。这里读取 backlight设备节点的属性值读取字符串类型的 status属性。 二. 读取 backlight设备节点的status属性值 imx6ull-14x14-evk.dts文件中 backlight设备节点信息如下
backlight {compatible pwm-backlight;pwms pwm1 0 5000000;brightness-levels 0 4 8 16 32 64 128 255;default-brightness-level 6;status okay;};这里准备读取 imx6ull-14x14-evk.dts 设备树文件中 status属性。
主要调用的函数如下
struct device_node *of_find_node_by_path(const char *path); //通过路径来获取设备节点
int of_property_read_string(struct device_node *np, const char *propname, const char **out_string); //获取字符串类型属性的值 1. 代码实现
读取 imx6ull-14x14-evk.dts 设备树文件中 status属性。代码实现如下
#include linux/module.h
#include linux/of.h/*模块入口*/
static int __init dtsof_init(void)
{int ret 0;struct device_node * dev_node NULL;const char* str NULL;//1. 读取设备节点dev_node of_find_node_by_path(/backlight);if(NULL dev_node){ret -EINVAL;goto find_dev_node_failed;}//2. 获取字符串类型属性的值ret of_property_read_string(dev_node, status, str);if(ret ! 0) {ret -EINVAL;goto find_dev_property; }printk(status: %s\r\n, str); find_dev_property:
find_dev_node_failed:return ret;
}/*模块出口*/
static void __exit dtsof_exit(void)
{}/*模块入口与出口*/
module_init(dtsof_init);
module_exit(dtsof_exit);/*模块 Licence*/
MODULE_LICENSE(GPL);
/*模块作者*/
MODULE_AUTHOR(LingXueWu); 三. 编译测试 1. 编译程序
ubuntu 终端进入 4_dtsof工程根目录下编译工程
wangtianwangtian-virtual-machine:~/zhengdian_Linux/Linux_Drivers/4_dtsof$ make编译后生成驱动文件 dtsof.ko。 将 dtsof.ko拷贝到开发板系统下 /lib/modules/4.1.15/目录下
wangtianwangtian-virtual-machine:~/zhengdian_Linux/Linux_Drivers/4_dtsof$ sudo cp dtsof.ko /home/wangtian/linux/nfs_File/rootfs/lib/modules/4.1.15/ -f 2. 加载驱动
这里不需要先运行 depmod命令。因为前面已经运行过一次。
开发板上电进入系统 /lib/modules/4.1.15/目录下加载 dtsof.ko 驱动模块
/lib/modules/4.1.15 # modprobe dtsof.ko
status: okay