本博客目的是熟悉fb的原理和驱动实现,只有模仿才有行动。
1. 框架图
此处省略10000字........
2. 设备树
3. 驱动代码
a 配置这个结构体fbtft_device_display
b 在编译kernel需要加入FB的CONFIG
4. 点亮
echo !!!!! > /dev/fb0
5. 问题和发现
1. fb设备挂载spi总线上,但是高度抽象fb,通过mmap映射即可写数据进入帧缓存。
2. fbtft_device_display需要把设备树关联的dc和rst引脚配置到结构体。
3. cs对于spi来说可以直接拉低接地,在调试过程中用逻辑分析仪分析spi数据,发现时钟异常,立马排查驱动的挂载,发现
graphics fb0: fb_st7735s frame buffer, 160x128, 40 KiB video memory, 4 KiB buffer memory, fps=42, spi0.0 at 24 MHz
证明可以/dev/fb0,但是这仅仅是注册的过程而已,spi有时钟线接触不良,导致始终不正常。
4. 屏幕的一些参数可以在设备树中配置,也可以通过上层的结构体实现配置,但该过程有点问题了。(下文继续分享)
Life is mess, don't let mess mess us.