问题描述
在使用Alinx的MPSoC Linux驱动开发手册第17章进行I2C驱动学习时,在按照手册,在system-user.dtsi
文件最后添加引用i2c1节点内容:
然后使用petalinux-build
命令进行编译,后报错如下:
尝试解决问题
1,检查错误第一步就是把新添加的这部分设备树代码删掉,重新编译,发现可以正常编译通过,说明就是这段添加有问题。
2,把Alinx资料里的设备树文件直接替换掉我所创建的文件,最后也还是报错!
3,最后再去Alinx针对MPSoC录制的视频里看了一下,其关于这部分的设备树如下图所示:
那问题就是很明显了,没有在引用完i2c1的最后加上分号;
。这里也吐槽一下黑金这个资料居然没有检查过,而且两份资料都没检查,还都存在错误。
另外,我们也注意到,这里的status的值不是enable
,而是okay
,对此,黑金的解释是,使用enable编译时不会出错的,但在加载驱动时可能会出问题,导致匹配不上,所以得用okay
。但我后面查询了一下,enable本身就不是status属性标准值的一部分,这难怪会有匹配不上的可能。