www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]今天終于把s3c2410的lcd在skyeye上搞出來了。看到網(wǎng)上還有朋友在發(fā)貼詢問,所以在這里與大家分亨一下。 首先,我的skyeye是1.2.3版的,linux內(nèi)核版本是2.6.16.21-0.8 ,suse 10.0自帶的。u-boot-1.1.6為引導(dǎo)程序。u

今天終于把s3c2410的lcd在skyeye上搞出來了??吹骄W(wǎng)上還有朋友在發(fā)貼詢問,所以在這里與大家分亨一下。

首先,我的skyeye是1.2.3版的,linux內(nèi)核版本是2.6.16.21-0.8 ,suse 10.0自帶的。u-boot-1.1.6為引導(dǎo)程序。u-boot在skyeye
上的移植網(wǎng)上有,我也是在網(wǎng)上學(xué)來的,如果你還不清楚,可以到網(wǎng)上google一下。具體的地址我也不記得了。

下面主要說下我自己在skyeye上移植s3c2410的經(jīng)歷。

先聲明一下本人也是初學(xué)者,有很多東西都 不是很清楚。在配置內(nèi)核的時候l看到 linux2.6 自帶了s3c2410的驅(qū)動,以為只要把它編譯進(jìn)
內(nèi)核就可以了,可是在啟動的時候檢測不到設(shè)備,后來到網(wǎng)上找了下lcd的移植過程,原來還要在平臺初始化文件中對lcd進(jìn)行設(shè)置,初始
化即可。
修改文件為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結(jié)構(gòu)體的初始化在網(wǎng)上找的,著了點修改。
其中主要是寄存器的問,在skyeye中只使用了其中4個寄存器
lcdcon1的第1位啟動和關(guān)閉lcd功能
lcdcon2中有關(guān)lcd 高度的設(shè)置
lcdcon3中有關(guān)lcd 寬度的設(shè)置
lcdsaddr1 中有關(guān)顯存地址的值
查看skyeye的源代碼發(fā)現(xiàn),在s3c2410的lcd的模擬中將顏色的深度直接設(shè)置成了16,所以,以上代碼中bpp的值也為16,
如果你感興趣,可以查看s3c2410的手冊中有關(guān)lcd寄存器的說明,對skyeye修改一下。
skyeye的lcd模擬中沒有用到兩個寄存器,所以在lcd的初始化過程中會有以下兩個錯誤:
ERROR: s3c2410x_io_write_word(0x4d000060) = 0x00000000
ERROR: s3c2410x_io_write_word(0x4d000050) = 0x00000000
這對skyeye的模擬和以驅(qū)動程序不會有影響。
基本上就這些了。

順便提下,不知各位在skyeye下模擬的s3c2410的主頻是多少?
我一開始用u-boot引導(dǎo)的時候有有3個s3c2410x_io_write_word錯誤,s3c2410的主頻也只有62MZ多。
后來看了下s3c2410x_io_write_word的代碼,發(fā)現(xiàn)有三個寄存器LOCKTIME,MPLLCON, UPLLCON在頭文件中定義了
,但在skyeye的
switch語句中并沒有相關(guān)的寫操作。具體的寄存器作用我并不清楚,也沒有查手冊,但應(yīng)該與時鐘用關(guān)。所以就在switch
語句里添加了以下代碼:
case LOCKTIME:
io.clkpower.locktime = data;
break;
case MPLLCON:
io.clkpower.mpllcon = data;
break;
case UPLLCON:
io.clkpower.upllcon = data;
break;
現(xiàn)在我的skyeye模擬出來s3c2410的主頻是202.800MZ了。
下一步打算把觸摸屏的驅(qū)動也移植上來,還有網(wǎng)絡(luò)。
如果你還有什么問題可以跟我聯(lián)系。liren0@126.com
也可直接在此回復(fù)。
以下是skyeye上s3c2410的截圖

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

  引言   汽車的普及為人們的生活帶來了方便,同時也給人們提出了一大難題——汽車防盜。本設(shè)計是為了解決以往汽車防盜產(chǎn)品的缺點和不足而開發(fā)的集成傳感、報警和遠(yuǎn)程圖

關(guān)鍵字: 數(shù)據(jù)采集 操作系統(tǒng) s3c2410 汽車防盜系統(tǒng)

  引言   巡航控制系統(tǒng)(CCS)是20世紀(jì)60年代發(fā)展起來的,又稱為恒速行駛系統(tǒng)。巡航控制系統(tǒng)工作時,ECU根據(jù)各種傳感器輸送來的信號判斷汽車的運行狀況,通過執(zhí)行元件自動調(diào)節(jié)節(jié)氣門的

關(guān)鍵字: ARM 三星 Linux ecu s3c2410 電子控制系統(tǒng)

  在過去一百年里(l906-2005),全球地表平均溫度升高了0.74攝氏度,未來20年,每十年全球溫度將會升高0.2攝氏度。氣候變暖已成為不容忽視的、直接影響全球生產(chǎn)和生活問題。  

關(guān)鍵字: can總線 s3c2410

  在此設(shè)計的基于 GPRS 的遠(yuǎn)程安防監(jiān)控系統(tǒng),是采用的是攝像機(jī)傳送視頻信號經(jīng)壓縮編碼后,通過內(nèi)部總線傳送到內(nèi)置的 Web 服務(wù)器。用戶在監(jiān)控端可以直接通過瀏覽器觀看 Web服務(wù)器上的攝像機(jī)視

關(guān)鍵字: GPRS s3c2410 安防監(jiān)控

網(wǎng)上介紹LINUX下的一般驅(qū)動程序開發(fā)示例浩如煙海,或是因為簡單,關(guān)于DMA驅(qū)動的介紹卻寥寥無幾;近期zhaoyang因工作需要,花了幾日時間開發(fā)了某設(shè)備在S3C2410處理器Linux下DMA通信的驅(qū)動程序,有感于剛接...

關(guān)鍵字: Linux s3c2410 dma驅(qū)動

1引言目前 , 在嵌入式系統(tǒng)里基于ARM核的嵌入式處理器已經(jīng)成為市場主流。隨著ARM技術(shù)的廣泛應(yīng)用 , 建立面向ARM構(gòu)架的嵌入式操作系統(tǒng)也就成為當(dāng)前研究的熱點。S3C2410是SAMSUNG公司基于ARM920T處理器...

關(guān)鍵字: s3c2410 移植 標(biāo)準(zhǔn)linux

一、S3C2410支持4種供電模式(1)NORMAL MODE耗電最大、可以通過關(guān)閉具體控制器的時鐘來節(jié)電(2)SLOW MODE在此模式下可以沒有內(nèi)部PLL,耗電情況依賴于外部時鐘的頻率(3)IDLE MODEFCLK...

關(guān)鍵字: s3c2410 電源管理

snailszzy的s3c2410_gpio_setpin()與s3c2410_gpio_cfgpin()函數(shù)定義s3c2410_gpio_setpin()在gpio.c中作用:設(shè)置相應(yīng)GPIO口的值,如pin=S3C2...

關(guān)鍵字: s3c2410 函數(shù)定義

通過數(shù)據(jù)手冊的INTERRUPT SOURCES即可看出所有中斷源,其中Descriptions列有講述,帶多個中斷源的用括弧表述出來了。以下中斷源寄存器通過各自MAST連接到INTPND(只能一個位置一)SRCPND(...

關(guān)鍵字: s3c2410 中斷源數(shù)量

反反復(fù)復(fù)弄了一個多星期,參考了不少資料,終于讓UCOS在自己的板子上跑起來了。期間遇到了不少問題,還好堅持下來,挺 了過去.....復(fù)習(xí)一下,記錄下來,以當(dāng)后用: 1.在ADS中建產(chǎn)工程,進(jìn)入工程界面后,先建立兩個組,一...

關(guān)鍵字: s3c2410 ucos 移植
關(guān)閉