linux--s3c2440LCD屏驱动修改学习和ctags的使用

最近要研究LCD屏的驱动,对驱动模块的框架有一定了解后就可以比较送的看linux驱动源码了,恰好s3c2440里面自带的有驱动源码,所以先从现有的样例入门,而且板子lcd显示的每次就只有半个屏幕,一定是驱动源码有问题,或者是make menuconfig配置有问题

为了查看源码,下载了我们的看源码利器ctags,在成千上万的c文件里穿梭自如,ctags -R * 为arm目录下文件创建索引文件tags这样我们就能实现函数的跳转,妈妈再也不用担心我找不到函数定义了=-=,但是有个问题你索引的目录树约大,tags文件的大小越大。

建立索引的步骤:
首先可以~/.bash_profile中添加命令的别名,因为我们的命令实在是太长了:
alias tag=‘cscope -Rbq && ctags --C-Kinds=+defglmnstuvx --langmap=c:.c.h.ho.hem.het.hec.hev.him.hit.hic.hiv -R .’
保存 然后运行source ~/.bash_profile让他生效:

在要建立的目录树下建立tags索引
我是在linux-3.0目录下运行tag,就产生了tags和cscope文件

然后还要做vim的配置 进入当前目录下的.vimrc,在最后一行写入:set tag=/home/xiaobaicai/fl2440/linux/linux3.0

先来说说ctags的使用

static struct platform_device *smdk2440_devices[] __initdata = { 
    &s3c_device_ohci,		//开放式控制接口设备
    &s3c_device_lcd,		//LCD屏设备
    &s3c_device_wdt,		//看门狗设备
    &s3c_device_i2c0,		//i2c总线设备
    &s3c_device_iis,		//网络通信设备
    &s3c_device_dm9000,/*添加dm9000网卡设备*/
};

可以看到我们platform_device中添加了lcd的设备,下面我们来看看他的设备信息

struct platform_device s3c_device_lcd = { 
    .name         = "s3c2410-lcd",
    .id       = -1, 
    .num_resources    = ARRAY_SIZE(s3c_lcd_resource),
    .resource     = s3c_lcd_resource,
    .dev              = { 
        .dma_mask       = &s3c_device_lcd_dmamask,
        .coherent_dma_mask  = 0xffffffffUL
    }   
};

对着我们的&s3c_device_lcd就是一顿ctrl+]就跳到了我们的设备结构体里面来了,如果发现有很多同名的跳转,g+]可以列出所有的选项,选择序号加空格跳进相应的位置。
在这里插入图片描述
可以看到有两处位置可以跳转

LCD驱动的改动

在这里插入图片描述
先是一些参数的修改,
在这里插入图片描述
pixclock后面的HCLK时钟60MHZ是错误的,HCLK总线时钟应该是100MHZ,pixclock=HCLK/DCLK
改屏为3.5寸的屏,修改内容为上
修改的值查看LCD3.5寸屏datasheet
在这里插入图片描述

在这里插入图片描述
此值我们跳入相应的定义处
在这里插入图片描述
显示是lpc3600 控制寄存器有关的值,查了datasheet发现
在这里插入图片描述
.plcsel的值有十二个位,最后一个位为控制位,由于我们没有用到LPC3600,所以我们将最后一个位改为0就ok
在这里插入图片描述

然后我们去配置make menuconfig
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后我们lcd就能完整显示了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值