本博客目的是熟悉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. 屏幕的一些参数可以在设备树中配置,也可以通过上层的结构体实现配置,但该过程有点问题了。(下文继续分享)