当前位置:首页 > 单片机 > 单片机
[导读]今天终于把s3c2410的lcd在skyeye上搞出来了。看到网上还有朋友在发贴询问,所以在这里与大家分亨一下。 首先,我的skyeye是1.2.3版的,linux内核版本是2.6.16.21-0.8 ,suse 10.0自带的。u-boot-1.1.6为引导程序。u

今天终于把s3c2410的lcd在skyeye上搞出来了。看到网上还有朋友在发贴询问,所以在这里与大家分亨一下。

首先,我的skyeye是1.2.3版的,linux内核版本是2.6.16.21-0.8 ,suse 10.0自带的。u-boot-1.1.6为引导程序。u-boot在skyeye
上的移植网上有,我也是在网上学来的,如果你还不清楚,可以到网上google一下。具体的地址我也不记得了。

下面主要说下我自己在skyeye上移植s3c2410的经历。

先声明一下本人也是初学者,有很多东西都 不是很清楚。在配置内核的时候l看到 linux2.6 自带了s3c2410的驱动,以为只要把它编译进
内核就可以了,可是在启动的时候检测不到设备,后来到网上找了下lcd的移植过程,原来还要在平台初始化文件中对lcd进行设置,初始
化即可。
修改文件为arch/arm/mach-s3c2410/mach-smdk2410.c
添加头文件:
#inlcude
#include
添加初始化代码:
static struct s3c2410fb_mach_info s3c2410_lcd_info __initdata = {
.fixed_syncs = 0,
.regs = {
.lcdcon1 = S3C2410_LCDCON1_TFT16BPP |
S3C2410_LCDCON1_TFT |
//S3C2410_LCDCON1_ENVID |
S3C2410_LCDCON1_CLKVAL(6),

.lcdcon2 = S3C2410_LCDCON2_VBPD(0) |
S3C2410_LCDCON2_LINEVAL(239) |
S3C2410_LCDCON2_VFPD(10) |
S3C2410_LCDCON2_VSPW(1),

.lcdcon3 = S3C2410_LCDCON3_HBPD(6) |
S3C2410_LCDCON3_HOZVAL(319) |
S3C2410_LCDCON3_HFPD(15),

.lcdcon4 = S3C2410_LCDCON4_MVAL(13) |
S3C2410_LCDCON4_HSPW(28),

.lcdcon5 = S3C2410_LCDCON5_FRM565 |
S3C2410_LCDCON5_INVVLINE |
// S3C2410_LCDCON5_INVVCLK |
S3C2410_LCDCON5_INVVFRAME |
//S3C2410_LCDCON5_INVLEND|
S3C2410_LCDCON5_PWREN |
S3C2410_LCDCON5_HWSWP,
},

.lpcsel = 0,// ((0xCE6) & ~7) | 1<<4,
.gpccon= 0xaaaaaaaa,
.gpccon_mask= 0xffffffff,
.gpcup= 0xffffffff,
.gpcup_mask= 0xffffffff,
.gpdcon= 0xaaaaaaaa,
.gpdup= 0xFFFFFFFF,
.gpdup_mask= 0xffffffff,
.width = 320,
.height = 240,

.yres = {
.min = 240,
.max = 240,
.defval = 240,
},

.xres = {
.min = 320,
.max = 320,
.defval = 320,
},

.bpp = {
.min = 16,
.max = 16,
.defval = 16,
},
};
static void __init smdk2410_lcd_init(void)
{
s3c24xx_fb_set_platdata(&s3c2410_lcd_info);
}

最后在MACHINE_START与MACHINE_END中添加如下代码:
.init_machine = smdk2410_lcd_init,
//到此修改完毕
以上s3c2410_lcd_info结构体的初始化在网上找的,着了点修改。
其中主要是寄存器的问,在skyeye中只使用了其中4个寄存器
lcdcon1的第1位启动和关闭lcd功能
lcdcon2中有关lcd 高度的设置
lcdcon3中有关lcd 宽度的设置
lcdsaddr1 中有关显存地址的值
查看skyeye的源代码发现,在s3c2410的lcd的模拟中将颜色的深度直接设置成了16,所以,以上代码中bpp的值也为16,
如果你感兴趣,可以查看s3c2410的手册中有关lcd寄存器的说明,对skyeye修改一下。
skyeye的lcd模拟中没有用到两个寄存器,所以在lcd的初始化过程中会有以下两个错误:
ERROR: s3c2410x_io_write_word(0x4d000060) = 0x00000000
ERROR: s3c2410x_io_write_word(0x4d000050) = 0x00000000
这对skyeye的模拟和以驱动程序不会有影响。
基本上就这些了。

顺便提下,不知各位在skyeye下模拟的s3c2410的主频是多少?
我一开始用u-boot引导的时候有有3个s3c2410x_io_write_word错误,s3c2410的主频也只有62MZ多。
后来看了下s3c2410x_io_write_word的代码,发现有三个寄存器LOCKTIME,MPLLCON, UPLLCON在头文件中定义了
,但在skyeye的
switch语句中并没有相关的写操作。具体的寄存器作用我并不清楚,也没有查手册,但应该与时钟用关。所以就在switch
语句里添加了以下代码:
case LOCKTIME:
io.clkpower.locktime = data;
break;
case MPLLCON:
io.clkpower.mpllcon = data;
break;
case UPLLCON:
io.clkpower.upllcon = data;
break;
现在我的skyeye模拟出来s3c2410的主频是202.800MZ了。
下一步打算把触摸屏的驱动也移植上来,还有网络。
如果你还有什么问题可以跟我联系。liren0@126.com
也可直接在此回复。
以下是skyeye上s3c2410的截图

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭