我看zero.licheepi.pro的文档,使用i2c和spi这些常用外设时只要在dts使能相应芯片就行了,难道linux内核已经自带这些常用芯片的驱动了吗?我看主线的目录:https://github.com/torvalds/linux/tree/master/drivers中至少上万种驱动了,难道都编译进内核了吗?
最近编辑记录 kekemuyu (2019-11-04 22:54:00)
离线
根据 .config 控制哪些驱动参与编译,参与编译才会链接到linux内核。
具体看哪些文件参与编译可以用命令:
find . | grep \\.o$
离线
哦,原来如此。瞬间感觉linux真厉害,集成了如此多的驱动,所有这些芯片不用写代码,简单配置一下就可以用了。之前用树莓派读取ds18b20的温度,是直接从一个文件中读到温度的。感觉是树莓派自己把ds18b20的驱动做好了,现在才知道是linux内核的功劳。那我想在f1c100s和v3s用ds18b20是不是配置一下内核就可以了。
最近编辑记录 kekemuyu (2019-11-04 23:36:49)
离线
对, 所以在 Linux下基本没什么机会写器件驱动,因为都被大神写完了,最多适配一下soc的片内外设, 如SPI/I2C/UART/I2S/CAN等控制器,让他们在Linux下能正常工作就行。
离线
现在一般linux系统芯片不都是配一下dts吗,平台驱动厂家都做好了,写写应用程序就可以了。
离线
还有点疑问是:比如全志的芯片,虽然能运行linux,但外设驱动会因为arm架构和寄存器的差异,还是需要给每一种arm芯片移植驱动呀,难道是全志把所有驱动给每种自己的芯片移植一遍吗?
离线