大家好,又见面了,我是你们的朋友全栈君。
移植ST7789VLCD controller,程序修改步骤简要介绍如下:
1 配置GPIO, In ..\ arm-linux-3.3\linux-3.3-fa\drivers\spiftssp010_spi.c
2 下载 开源 TFT LCD display modules from the below link:
http://lxr.free-electrons.com/source/drivers/staging/fbtft/?v=4.4
Linux/drivers/staging/fbtft/
3 Installation ,Modify the Kconfig / Makefile
source : https://github.com/notro/fbtft
4 进入menuconfig, 修改内核配置 Device Drivers ->Graphics support, 选中选项
->Low level LCD controls / Low level Backlight controls
-><M> FB driver for the ST7789V LCD Controller
-><M>Module to for adding FBTFT devices
选择‘M-模块编译’,这样生成KO文件,便于模块加载卸载调试。之后保存设置后退出,重新编译(如遇到‘fb_info 结构体成员缺失’ 等编译错误<见附后>,这是编译环境及内核版本不一致引起的编译错误,可以根据其提示信息修改内核源程序相应部分)。重新编译最终得到所需KO文件:fbtft_device.KO/fb_st7789v.KO :
5 修改下载到的fbtft模块中的源程序文件.
配置 GPIO Configure , 请参考文档《GPIO_User_Guide_V1.0》。
/* set as input or output */ //value: 1-high 0-low
intgpio_direction_input(unsigned gpio);
intgpio_direction_output(unsigned gpio, int value);
/* GPIO INPUT: return zero or nonzero */
intgpio_get_value(unsigned gpio);
/*GPIO OUTPUT */
voidgpio_set_value(unsigned gpio, int value);
Please note it must use gpio_request()to control the pin.
In fbtft/fbtft_device.C文件中添加头文件及LCD controller 控制引脚GPIO配置,
修改fbtft\fbtft-io.c\ fbtft_write_spi();
修改fbtft\fbtft-core.c\fbtft_update_display;
6 编译运行内核后,加载得到的FBTFT模块两个KO文件
Insmod KO Module : / fbtft_device.KO/fb_st7789v.KO
参数命令及运行结果如下:
insmod fbtft_device.ko busnum=1 name=admatec_c-berry28 cs=0 gpios=reset:1,led:2 custom=1 speed=6000000 width=320 height=240 buswidth=9 mode=0
insmod fb_st7789v.ko
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/126575.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...