亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 移植uclinux到44b0上的過程.txt

?? uClinux上的應(yīng)用程序設(shè)計(jì)對ARM芯片S3C44B0。
?? TXT
字號:
  
移植UCLINUX到44B0上的過程 
電路設(shè)計(jì)  www.PCBTech.net   2003-12-24  中國PCB技術(shù)網(wǎng) 


我本人對于UCLINUX方面的開發(fā)和應(yīng)用其實(shí)并不熟悉,因?yàn)榭吹诫娮赢a(chǎn)品世界論壇上有很多這方面的討論覺得有點(diǎn)意思,后來就買了塊代博的板子玩玩,然后對此興趣漸濃,后來我覺得不在自己那塊44B0上玩玩UC實(shí)在不甘心,就慢慢摸索著把它移植過去.當(dāng)然碰到了不少的問題,不過現(xiàn)在已經(jīng)在我的板上跑得很好,網(wǎng)絡(luò)也通了,就跟在4510上運(yùn)行差不多.我看看了本論壇上討論4510的UC的貼子還是不少,希望大家也可以在44B0上跑通UC,而且完全可以把4510上運(yùn)行UC的經(jīng)驗(yàn)搬到44B0上來.TPU曾告訴我他以前在這上面跑過MICROWINDOW,這也很吸引人哦,快快學(xué)吧!
在好幾個(gè)壇子上面看到大家對uC的討論熱火朝天,但差不多都是基于4510開發(fā)板的,而基于44B0的好象很少,并且不象4510的那樣成熟和清晰??赡芎?510主要是網(wǎng)絡(luò)應(yīng)用有關(guān)吧,它可以充分利用uC的網(wǎng)絡(luò)功能。如果在44B0上加入uC,也可以體驗(yàn)一下這個(gè)操作系統(tǒng),再加入往卡驅(qū)動(dòng)的話,也能實(shí)現(xiàn)網(wǎng)絡(luò)哦!記得以前在ARM開發(fā)論壇看到一位高人寫過在44B0的uC上加網(wǎng)卡驅(qū)動(dòng)的文章,想做這個(gè)的兄弟可以去找找。
我手頭有4510和44B0的板子各一塊,4510是代博的,上面帶的uC挺好用。于是想在44B0上也跑跑uC,兩周前我調(diào)通了8019后覺得條件差不多了,因?yàn)閡C的IMAGE.RAM是非壓縮的,有1M多,調(diào)試的時(shí)候如果不用到網(wǎng)絡(luò)下載的話會很慢,即使用串口調(diào)到115.2K也要幾分鐘時(shí)間,而且可靠性也較低,所以有網(wǎng)卡芯片是移植的一個(gè)重要條件,當(dāng)然有USB通訊的話也很快,不過我的板那塊壞了,并考慮到以后會用到網(wǎng)絡(luò),還是用8019吧。從我有板開始我就一直找可用于44B0的uC,并下載過TPU兄的源文件,上次看到TPU兄的留言可幫忙移植就馬上留言聯(lián)系,后來通過一封MAIL好象就沒消息了,只好自己摸索著做做,所以我的移植過程可能存在很多不對的地方,大家一起參考修正.
開始我想跑跑TPU的ZIMAGE,這是一個(gè)壓縮后的文件,運(yùn)行時(shí)需要自解壓,查到它的起始運(yùn)行地址是0XC300000,KENERL運(yùn)行地址是0XC008000,用自己的BIOS將數(shù)據(jù)DOWN到設(shè)定地,再RUN,運(yùn)行出現(xiàn)結(jié)果了,開始是些亂碼,調(diào)了一下串口速率,在38400,顯示UCOMPRESS KERNEL...不過到START KERNEL后,再沒下文了,于是用AXD反匯編調(diào)試,發(fā)現(xiàn)是因?yàn)檫M(jìn)入KERNEL后沒找到PROCESSER ID而停掉,可能是要在BIOS中傳遞過去。后來想到一個(gè)辦法,把我現(xiàn)在在4510板上跑的uC改動(dòng)后移植到44B0上,在那一版上大家對uC的應(yīng)用都做得比較熟了,編起來也比較方便。開始有這個(gè)想法沒貼出來,因?yàn)槭紫鹊抿?yàn)證可行性,就先做做實(shí)驗(yàn)啦。
首先準(zhǔn)備一分uC的源碼,我用的是uCLinux-dist20030522版,本來是在4510上跑的,板的型號叫SNDS100,帶上代博的PATCH,以前的版本應(yīng)該也可以,我沒有試。再準(zhǔn)備一個(gè)BIOS,可以下載編譯好的程序進(jìn)行調(diào)試,可以看看我以前貼的那個(gè)。還需要一個(gè)串口調(diào)試工具,用來和BIOS和uC做人機(jī)交互,我用的是SSCOM3.2,在LINUX下也有相應(yīng)程序。我的移植過程是從4510開發(fā)板上開始的,所以需要看本文的人對4510有一定了解。在這我只列出修改的地方,如果你有什么不明之處可以和我討論。uC編譯后在IMAGES目錄生成三個(gè)文件,一個(gè)是IMAGE.RAM,這是帶自啟動(dòng)的壓縮版,可燒入FLASH運(yùn)行,一個(gè)是IMAGE.RAM,這是沒壓縮的,須通過下載后直接運(yùn)行.

首先,拿我的4510板開工做實(shí)驗(yàn),嘗試修改內(nèi)核的一些參數(shù)。

一、
修改波特率
1、INCLUDE/ASM-ARMNOMMU/ARCH-SNDS100/HARDWARE.H中將
#define DEBUG_UBRDIV_REG_VAL (0x500) 改為
#define DEBUG_UBRDIV_REG_VAL (0x1a0)
此為啟動(dòng)期間輸出信息所用串口波特率分頻系數(shù)
2、DRIVERS/CHAR/SERIAL-SAMSUNG.C中將serial_console_setup函數(shù)中
int baud = 19200 改為 57600
此為CONSOLE STARTUP時(shí)設(shè)置的波特率,此時(shí)用的是這個(gè)文件,到后面移植到44B0X時(shí)換為另一個(gè)文件。
3、VENDERS/SAMSUNG/4510B/CONFIG-ARCH
19200->57600 不知有用否,為防止出錯(cuò)先改了。
編譯運(yùn)行成功。

二、
修改運(yùn)行地址
1、ARCH/ARMNOMMU/MAKEFILE
TEXTADDR 決定KERNEL起始運(yùn)行地址,即IMAGE.RAM應(yīng)DOWN到的位置
2、ARCH/ARMNOMMU/BOOT/MAKEFILE
ZREALADDR 決定KERNEL解壓后數(shù)據(jù)輸出的地址,同1
ZTEXTADDR 帶BOOTLOADER的壓縮內(nèi)核文件燒入FLASH的起始地址,即從哪個(gè)位置開始執(zhí)行
BOOTLOADER,若啟動(dòng)時(shí)直接執(zhí)行,將其設(shè)為0,若自帶BIOS可以跳到你想要的地址,可改為你要的位置。
我把KERNEL運(yùn)行地址改為0X00208000,編譯運(yùn)行成功。

三、(重點(diǎn))
修改uC使其在不REMAP的情況下在4510上運(yùn)行。因?yàn)?4B0與4510第一點(diǎn)區(qū)別就是4510可REMAP而44B0不行。在這點(diǎn)上遇到點(diǎn)問題花了我三天時(shí)間才搞掂,其實(shí)是在個(gè)很簡單的地方設(shè)置一下。
1、修改存儲器參數(shù) 
ARCH/ARMNOMMU/CONFIG.IN里面對應(yīng)的SNDS100下的參數(shù):
DRAM_BASE,DRAM_SIZE,F(xiàn)LASH_MEM_BASE,F(xiàn)LASH_SIZE
針對不同的開發(fā)板,這些參數(shù)也可能不同,我的4510板原值分別為
0X00000000,0X01000000,0X01000000,0X00200000
這些參數(shù)意思一看就明,我將它們分別改為
0X01000000,0X01000000,0X00000000,0X00200000
即不對內(nèi)存分配REMAP。
2、把第二步中的KERNEL運(yùn)行地址改為0X01008000。
3、修改VECTORS_BASE的宏定義,原值在INCLUDE/ARMNOMMU/PROC-ARMV/SYSTEM.H中定義為0,意思是KERNEL將向量表COPY到DRAM中的地址,現(xiàn)改DRAM_BASE即0X01000000,因?yàn)閷?shí)際向量還是在0地址即FLASH起始地址,所以在FLASH中向量處做個(gè)跳轉(zhuǎn):
0: LDR PC,=0X01000000
4: LDR PC,=0X01000004
.........
我的BIOS有下載和運(yùn)行程序的功能,因此沒有改地址0的指令。這樣發(fā)生中斷時(shí)先到實(shí)際地址0X18,再跳到UCLINUX的中斷向量地址0X01000018。
4、修改ARCH/ARMNOMMU/MACH-SNDS100/ARCH.C,
在 MAINTAINER("XXX") 后加上
BOOT_MEM(DRAM_BASE, 0x00000000, 0x00000000)
5、修改ARCH/ARMNOMMU/INIT.C,在reserve_node_zero函數(shù)里將
if (machine_is_integrator() || machine_is_snds100() ||
machine_is_evS3C4530HEI() ) 
reserve_bootmem_node(pgdat, 0, __pa(&_stext));
改為
if (machine_is_integrator() || machine_is_snds100() ||
machine_is_evS3C4530HEI() )
reserve_bootmem_node(pgdat, DRAM_BASE, __pa(&_stext)-DRAM_BASE);
6、make menuconfig時(shí)不要選擇自己手動(dòng)設(shè)置存儲器參數(shù)?。ê芎唵蔚囊稽c(diǎn),搞了我好久)

上訴過程完成后,可以證明這版uC是可以移植到44B0X上的,之后開始移植過程。先做些基本修改,把上面第二步中的KERNEL運(yùn)行地址改為0X0C008000,這是44B0X中的DRAM地址。把上面第三步中的1中DRAM_BASE, DRAM_SIZE 分別改為0X0C000000, 0X00800000, 另外把FLASH中0-0X1C中的指令改跳轉(zhuǎn)到0X0C000000-0X0C00001C。
基礎(chǔ)做好了,之后看看在原版中對應(yīng)于4510的硬件操作包括些什么。第一個(gè)是網(wǎng)絡(luò)部分,我們可以先把它去掉,以后在加自己的驅(qū)動(dòng),我在DRIVERS/NET/MAKEFILE里面屏蔽了
obj-$(CONFIG_ETH_S3C4510) += s3c4510.o這一行,使網(wǎng)絡(luò)驅(qū)動(dòng)不被編譯,也不知道有什么相關(guān)的遺留問題,不過我把VENDORS/SAMSUNG/4510B/下面inittab和rc兩個(gè)文件中啟動(dòng)網(wǎng)絡(luò)的命令也關(guān)了。剩下的和硬件相關(guān)的操作還有三個(gè),一是中斷處理,二是TIMER,三是串口控制臺,另外在編譯IMAGE.ROM時(shí)用到ARCH/ARMNOMMU/BOOT/COMPRESSED/HEAD.S文件,原文件因是啟動(dòng)版包含了相關(guān)的硬件初始化,因?yàn)橄炔挥每梢远计帘蔚簟?下面仔細(xì)對付先前提的三個(gè)問題。和4510相關(guān)的寄存器定義都在INCLUDE/ASM-ARMNOMMU/ARCH-SNDS100/HARDWARE.H中,同時(shí)在這個(gè)目錄下還包含了一些需要修改的頭文件,在后面說明。在HARDWARE.H中根據(jù)寄存器的用途和地址作出修改,我并沒改它們的名字,只是先改成44B0中相對的寄存器所在的地址,另外還有些修改我不能盡述,可以把文件貼出來。其實(shí)對三個(gè)問題的解決應(yīng)該是同時(shí)搞好才行,缺了哪個(gè)都不能看到正常結(jié)果輸出,但我只能一一說明。
調(diào)試中我遇到不少問題,但不能都寫出來,就講必須作的吧。第一要保證中斷可以開了,在
ARCH/ARMNOMMU/MACH-SNDS100/IRQ.C里加上中斷初始化,設(shè)置模式及預(yù)清一次所有中斷,使能全局中斷。
時(shí)鐘的初始化和中斷使能在INCLUDE/ASM-ARMNOMMU/ARCH-SNDS100/TIME.H中設(shè)置,頻率在TIMEX.中,我用的是TIMER5。 
對于中斷,開始的處理過程和在4510上面不REMAP的情況差不多,差別就在于獲取中斷號,可以看看源文件ARCH/ARMNOMMU/KERNEL/ENTRY-ARMV.S里面有個(gè)get_irqnr_and_base的宏定義,我先自己改了個(gè),后來試了在calibrate_delay中TIMER中斷老有問題,我也沒再仔細(xì)研究,把TPU的相關(guān)代碼直接COPY來用,呵呵,好了!顯示出我的BogoMIPS了,不過顯示值是我實(shí)際運(yùn)行頻率的一半,我想是因?yàn)槲业腄RAM數(shù)據(jù)總線只有16位的原因吧。后來運(yùn)行老是會死掉,要不就顯示一些錯(cuò)誤信息停掉,要不就瘋狂打出亂七八糟的數(shù)據(jù)來,反正顯示不到SH這個(gè)SHELL下,讓我一直懷疑這樣做是不是有問題。后來才用降頻法,我原來用50M,和4510板一樣,后來改到20M才算是正常了,(好在我的BIOS可以交互式改頻
,不用退到98下修改再燒入),這個(gè)我估計(jì)和硬件穩(wěn)定性有關(guān),也可能你的可跑高頻。不過正常的時(shí)候是停住了,沒錯(cuò)誤信息也沒瘋狂打印,我敲了下鍵盤,之后就顯示出一堆數(shù)據(jù),進(jìn)入了SH,再按鍵沒有輸出,奇怪!這是串口控制臺的問題了。
再講講串口控制臺,我開始把4510中相對的寄存器換到44B0中相應(yīng)的位置,并對狀態(tài)寄存器做了相應(yīng)的轉(zhuǎn)換,因?yàn)?510的是一個(gè)寄存器而44B0是兩個(gè),我把DRIVERS/CHAR/SERIAL-SAMSUNG.C中相應(yīng)讀狀態(tài)的語句都加了加讀一個(gè)寄存器內(nèi)容的操作,以為做得可以了,實(shí)際還是出了些問題,先是忘了改注冊發(fā)送中斷的部分,所以出現(xiàn)前面的問題,改過后能輸出我按的鍵了,不過是按鍵有時(shí)沒顯示有時(shí)顯示兩三個(gè)字符,但輸入命令后居然可以執(zhí)行。我想再仔細(xì)研究一下源碼吧,可覺得這是一項(xiàng)很艱苦的工作,我對LINUX并不熟,SEIRAL文件有一百多K四千多行,再加上相關(guān)部分各種結(jié)構(gòu)和控制臺、中斷等等,不是能短期內(nèi)完成的。后來還是TPU兄的源碼幫了忙,我看了那里面使用串口控制臺的部分,有個(gè)SERIAL-CORE.C和一個(gè)S3C44B0.C文件,前者應(yīng)該是個(gè)標(biāo)準(zhǔn)文件,后者比較小,包括控制臺的一些標(biāo)準(zhǔn)操作,里面調(diào)用前者的一些函數(shù)。摸索一番后把它們COPY到CHAR目錄下,作了一些修改,并在MAKEFILE里面去掉SERIAL-SAMSUNG,加上后面兩個(gè),編譯-出錯(cuò)-修改-編譯......,最后搞掂,懷著忐忑不安的心情把IMAGE.RAM下到板上RUN,呵呵,一用就好。運(yùn)行自己以前在4510下編了個(gè)最簡單的用戶程序輸出“Hello,uCLinux”(我的LINUX編程水平僅限于此)也成功了!
通過上述總結(jié),大家應(yīng)該可以自己動(dòng)手做做了,之后就測試其是否可以正常運(yùn)轉(zhuǎn)了,如果有什么缺陷漏洞的話我想應(yīng)都可解決,希望高手們可以幫忙修改。這一招可叫做借殼上市,如果成功的話可以在uC編譯增加一項(xiàng)44B0的選項(xiàng)以為其正名。

把我的步驟總結(jié)一下,文件位置就不說了
1.修改運(yùn)行地址和存儲器參數(shù),包括兩個(gè)MAKEFILE和一個(gè)CONFIG.IN,再 make menuconfig不選手動(dòng)輸入存儲器參數(shù).
2.改ARCH.C(加BOOT_MEM), 改IRQ.C(改中斷初始化,并加一句 INTCON = 5),改SYSTEM.H(VECTORS_BASE),改INIT.C(reserve_node_zero),改你的FLASH向量處指令
3.改HARDWRE.H,TIME.H,TIMEX.H,IRQS.H
4.改網(wǎng)絡(luò)驅(qū)動(dòng)中的MAKEFILE, 改字符驅(qū)動(dòng)中的MAKEFILE,加入SERIAL-CORE.C H, S3C44B0.C H
5.改ENTRY-ARMV.S, HEAD.S

記住在你的BIOS中設(shè)好一些外圍參數(shù),或者用壓縮內(nèi)核時(shí)在HEAD.S中初始化

從我移植的經(jīng)歷來看,把UC轉(zhuǎn)到一個(gè)類似的核上去并不是一件很艱深的工作,當(dāng)你熟悉之后就會找到訣竅很快搞掂. 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费视频最近日韩| 久久久久久亚洲综合影院红桃| 国产精品网站在线播放| 国产精品一区二区黑丝| 国产色产综合色产在线视频| 国产成人三级在线观看| 中文字幕免费不卡| 一本大道久久a久久综合婷婷| 亚洲精品国产品国语在线app| 欧美视频一区在线| 蜜桃av一区二区在线观看| 2欧美一区二区三区在线观看视频| 国产乱码精品一区二区三区忘忧草| 一区二区三区国产| 51精品视频一区二区三区| 国产制服丝袜一区| 亚洲天堂免费在线观看视频| 在线视频一区二区三区| 另类小说综合欧美亚洲| 国产精品全国免费观看高清| 欧美一区二区精品在线| 国v精品久久久网| 久久电影网站中文字幕| 亚洲成av人**亚洲成av**| 精品国产一区二区三区忘忧草| 99综合电影在线视频| 亚洲永久免费av| 久久青草欧美一区二区三区| 3atv一区二区三区| 欧美老年两性高潮| 成人动漫av在线| 蜜臀久久99精品久久久久宅男| 亚洲第一成人在线| 亚洲韩国一区二区三区| 国产欧美一区二区精品婷婷 | 成人禁用看黄a在线| 国产一区二区三区日韩| 亚洲精品欧美综合四区| 国产精品久久影院| 日韩精品视频网| 精品91自产拍在线观看一区| 日韩欧美一级精品久久| 不卡视频一二三| av男人天堂一区| 成人av电影在线观看| 97国产精品videossex| 美女一区二区久久| 精品午夜久久福利影院| 亚洲一区在线观看免费观看电影高清 | 日本一区二区三区高清不卡| 国产欧美日韩精品一区| 国产清纯美女被跳蛋高潮一区二区久久w| 久久久亚洲高清| 欧美国产精品v| 亚洲男人的天堂网| 久久久久久电影| 久久久久九九视频| 国产精品二区一区二区aⅴ污介绍| 中文字幕在线一区二区三区| 亚洲精品免费在线播放| 亚洲伦在线观看| 婷婷综合另类小说色区| 樱花影视一区二区| 丝袜美腿成人在线| 国产在线精品一区在线观看麻豆| 成人激情视频网站| 欧洲精品在线观看| 日韩视频国产视频| 91精品视频网| 日本一区二区不卡视频| 一区二区视频免费在线观看| 在线亚洲+欧美+日本专区| 欧美一区二区日韩| 国产免费成人在线视频| 亚洲一区中文在线| 国产在线看一区| 色婷婷精品大在线视频| 日韩一区二区三区视频在线| 久久精品夜色噜噜亚洲a∨| 亚洲女厕所小便bbb| 理论片日本一区| 99久久精品情趣| 日韩一区二区在线看| 中文字幕一区二区在线观看| 欧美国产禁国产网站cc| 亚洲成av人片一区二区三区| 国产精品一区二区不卡| 色婷婷综合视频在线观看| 精品少妇一区二区三区日产乱码 | 2021中文字幕一区亚洲| 自拍偷拍亚洲激情| 另类小说综合欧美亚洲| 色av一区二区| 欧美性感一区二区三区| 久久丝袜美腿综合| 亚洲第一激情av| 不卡一卡二卡三乱码免费网站| 欧美一级黄色录像| 亚洲夂夂婷婷色拍ww47| 东方欧美亚洲色图在线| 日韩欧美国产午夜精品| 欧美日韩一区二区电影| 精品视频123区在线观看| 国产色婷婷亚洲99精品小说| 日本美女一区二区| 国产一区二区主播在线| 欧美无砖砖区免费| 中文字幕一区二区三区在线播放| 麻豆精品久久久| 亚洲免费色视频| 国产sm精品调教视频网站| 91精品国产福利在线观看| 夜夜精品视频一区二区| av在线综合网| 欧美国产日韩亚洲一区| 狠狠色狠狠色综合系列| 欧美精品在线观看一区二区| 一区二区三区四区激情| 成人精品免费看| 精品污污网站免费看| 亚洲欧美偷拍卡通变态| 成人免费av网站| 国产欧美在线观看一区| 国产剧情一区在线| 精品精品国产高清a毛片牛牛| 五月天精品一区二区三区| 91福利国产成人精品照片| 亚洲人亚洲人成电影网站色| 国产成人av网站| 国产欧美视频一区二区| 国产精品一区二区黑丝| 国产视频一区二区三区在线观看| 激情综合一区二区三区| 欧美mv和日韩mv国产网站| 蜜桃视频在线观看一区| 日韩欧美国产综合一区 | 国产综合色视频| 日韩一区二区三区免费观看| 日韩影院免费视频| 69堂国产成人免费视频| 人人爽香蕉精品| 日韩精品一区二区三区在线| 久久久美女毛片| 亚洲精品一区二区三区四区高清 | 日韩一级免费一区| 久久国产精品色| 26uuu亚洲| 国产ts人妖一区二区| 国产精品久久久久久福利一牛影视 | 欧美日韩在线三区| 日日摸夜夜添夜夜添亚洲女人| 欧美日韩一区二区在线观看| 男女男精品视频网| 久久久不卡网国产精品一区| 风流少妇一区二区| 亚洲日韩欧美一区二区在线| 91丨九色porny丨蝌蚪| 久久久久国产一区二区三区四区 | 亚洲大片一区二区三区| 亚洲主播在线观看| 欧美精品乱码久久久久久按摩 | 国产精品沙发午睡系列990531| 成人avav影音| 亚洲一区二区三区不卡国产欧美| 欧美日韩精品一区二区| 国产精品全国免费观看高清| 色哟哟一区二区在线观看| 五月天激情综合网| 2019国产精品| 91麻豆视频网站| 日韩国产欧美三级| 国产日韩欧美综合一区| 欧洲激情一区二区| 免费人成在线不卡| 国产精品天干天干在观线| 欧美视频完全免费看| 国模套图日韩精品一区二区| 综合久久久久综合| 91精品国产一区二区| thepron国产精品| 奇米精品一区二区三区四区| 国产精品精品国产色婷婷| 在线播放91灌醉迷j高跟美女| 国产成人免费在线观看不卡| 亚洲午夜激情网页| 亚洲国产精品99久久久久久久久| 欧美日韩中文字幕精品| 国产精品伊人色| 丝袜亚洲精品中文字幕一区| 国产精品女同互慰在线看| 91精品国产综合久久久久久久久久| 风间由美一区二区三区在线观看 | 亚洲一卡二卡三卡四卡无卡久久 | 欧美主播一区二区三区| 国产在线播精品第三| 亚洲伊人色欲综合网| 国产精品欧美久久久久一区二区| 欧美日韩一区二区三区视频| 成人精品国产免费网站| 精品夜夜嗨av一区二区三区|