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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

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

?? 移植UCLINUX到44B0上的過程.txt
?? TXT
字號:
  
移植UCLINUX到44B0上的過程 
電路設計  www.PCBTech.net   2003-12-24  中國PCB技術網 


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

首先,拿我的4510板開工做實驗,嘗試修改內核的一些參數。

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

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

三、(重點)
修改uC使其在不REMAP的情況下在4510上運行。因為44B0與4510第一點區(qū)別就是4510可REMAP而44B0不行。在這點上遇到點問題花了我三天時間才搞掂,其實是在個很簡單的地方設置一下。
1、修改存儲器參數 
ARCH/ARMNOMMU/CONFIG.IN里面對應的SNDS100下的參數:
DRAM_BASE,DRAM_SIZE,FLASH_MEM_BASE,FLASH_SIZE
針對不同的開發(fā)板,這些參數也可能不同,我的4510板原值分別為
0X00000000,0X01000000,0X01000000,0X00200000
這些參數意思一看就明,我將它們分別改為
0X01000000,0X01000000,0X00000000,0X00200000
即不對內存分配REMAP。
2、把第二步中的KERNEL運行地址改為0X01008000。
3、修改VECTORS_BASE的宏定義,原值在INCLUDE/ARMNOMMU/PROC-ARMV/SYSTEM.H中定義為0,意思是KERNEL將向量表COPY到DRAM中的地址,現改DRAM_BASE即0X01000000,因為實際向量還是在0地址即FLASH起始地址,所以在FLASH中向量處做個跳轉:
0: LDR PC,=0X01000000
4: LDR PC,=0X01000004
.........
我的BIOS有下載和運行程序的功能,因此沒有改地址0的指令。這樣發(fā)生中斷時先到實際地址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函數里將
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時不要選擇自己手動設置存儲器參數?。ê芎唵蔚囊稽c,搞了我好久)

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

把我的步驟總結一下,文件位置就不說了
1.修改運行地址和存儲器參數,包括兩個MAKEFILE和一個CONFIG.IN,再 make menuconfig不選手動輸入存儲器參數.
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.改網絡驅動中的MAKEFILE, 改字符驅動中的MAKEFILE,加入SERIAL-CORE.C H, S3C44B0.C H
5.改ENTRY-ARMV.S, HEAD.S

記住在你的BIOS中設好一些外圍參數,或者用壓縮內核時在HEAD.S中初始化

從我移植的經歷來看,把UC轉到一個類似的核上去并不是一件很艱深的工作,當你熟悉之后就會找到訣竅很快搞掂. 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区欧美二区| 国产精品77777| 国产综合久久久久影院| 色欲综合视频天天天| 精品嫩草影院久久| 亚洲黄色在线视频| 高清视频一区二区| 日韩一本二本av| 亚洲一级二级三级| 白白色 亚洲乱淫| 国产欧美一区二区精品性色| 午夜影院久久久| 972aa.com艺术欧美| 国产三级精品三级在线专区| 日韩成人一级片| 欧美在线免费播放| 亚洲日本青草视频在线怡红院| 美国毛片一区二区| 欧美一区二区三区不卡| 性做久久久久久免费观看欧美| 91在线云播放| 日韩毛片精品高清免费| 成人动漫中文字幕| 国产日韩v精品一区二区| 久久 天天综合| 欧美www视频| 狠狠久久亚洲欧美| 337p日本欧洲亚洲大胆色噜噜| 日本不卡的三区四区五区| 欧美亚洲动漫精品| 亚洲激情成人在线| 欧美色图免费看| 亚洲第一福利一区| 欧美三区在线视频| 亚洲成av人片在线观看无码| 亚洲欧美欧美一区二区三区| 成人18视频在线播放| 国产精品日韩精品欧美在线| 成人性视频免费网站| 欧美高清在线精品一区| hitomi一区二区三区精品| 国产精品三级av| 色素色在线综合| 亚洲午夜电影在线观看| 欧美日韩大陆一区二区| 日韩中文欧美在线| 欧美一卡2卡3卡4卡| 韩国精品在线观看| 久久综合色一综合色88| 成人黄页毛片网站| 亚洲欧洲性图库| 欧美日韩国产片| 日韩av电影天堂| 亚洲精品在线三区| 91啪亚洲精品| 日韩 欧美一区二区三区| 精品国产电影一区二区| 国产成人免费视频精品含羞草妖精| 久久久www成人免费无遮挡大片| 成人激情黄色小说| 香蕉乱码成人久久天堂爱免费| 日韩天堂在线观看| 粉嫩av亚洲一区二区图片| 亚洲欧美电影一区二区| 日韩欧美国产综合一区| 丁香五精品蜜臀久久久久99网站| 亚洲日本在线看| 日韩美女一区二区三区| 99re热这里只有精品免费视频| 亚洲一区视频在线| 久久久久9999亚洲精品| 91久久线看在观草草青青 | 午夜激情综合网| 日韩欧美电影一二三| aaa欧美大片| 欧美亚洲国产bt| 国产麻豆一精品一av一免费| 一区二区三区精密机械公司| 2022国产精品视频| 欧美综合一区二区| 国产成人午夜高潮毛片| 亚洲成人一区二区在线观看| 国产日韩影视精品| 日韩亚洲欧美成人一区| 91视频在线观看免费| 国内精品国产成人国产三级粉色| 一区二区理论电影在线观看| 久久青草国产手机看片福利盒子| 欧美自拍丝袜亚洲| 丁香婷婷综合五月| 另类调教123区| 亚洲大片免费看| 亚洲精品视频在线看| 国产欧美久久久精品影院| 日韩丝袜情趣美女图片| 欧美日韩一区二区三区免费看| 成人免费视频免费观看| 国产一区美女在线| 理论电影国产精品| 日韩成人一级片| 亚洲高清在线视频| 一区二区三区欧美日| 中文字幕一区二区三区四区| 久久精品男人天堂av| 欧美va日韩va| 欧美一区二区日韩一区二区| 欧美日韩午夜影院| 日本二三区不卡| 色婷婷精品久久二区二区蜜臀av | 欧美xxxxx牲另类人与| 欧美日本乱大交xxxxx| 在线看不卡av| 91麻豆免费观看| 91丨porny丨国产| 91蜜桃在线观看| 91麻豆国产自产在线观看| www..com久久爱| 成人av午夜影院| jizzjizzjizz欧美| 99精品久久免费看蜜臀剧情介绍| 不卡av免费在线观看| av一区二区不卡| 色综合色狠狠综合色| 色先锋资源久久综合| 欧美在线观看视频一区二区| 欧美在线观看一二区| 欧美日韩夫妻久久| 日韩欧美国产一区二区在线播放| 亚洲男人都懂的| 亚洲自拍偷拍图区| 日一区二区三区| 久久99九九99精品| 粉嫩av一区二区三区粉嫩| 成人免费视频免费观看| 日本高清不卡在线观看| 欧美精品日韩一本| 日韩三级视频中文字幕| 国产农村妇女精品| 一区二区三区国产精华| 青青草一区二区三区| 国产精一区二区三区| 91视频免费播放| 欧美精品欧美精品系列| 久久免费的精品国产v∧| 国产精品国产自产拍在线| 亚洲线精品一区二区三区八戒| 麻豆精品国产91久久久久久| 国产aⅴ精品一区二区三区色成熟| 99热精品国产| 日韩视频不卡中文| 亚洲欧洲色图综合| 热久久久久久久| 99久久精品国产一区| 这里只有精品电影| 亚洲国产精品高清| 水蜜桃久久夜色精品一区的特点| 国产精品原创巨作av| 91美女精品福利| 精品国产一二三区| 亚洲一区二区免费视频| 国产成人啪午夜精品网站男同| 欧洲av一区二区嗯嗯嗯啊| 久久久精品国产99久久精品芒果 | 国产精品九色蝌蚪自拍| 午夜欧美在线一二页| 成人av电影在线| 欧美大胆一级视频| 国产999精品久久久久久绿帽| 欧美精品自拍偷拍动漫精品| 国产精品久久久久久久蜜臀| 黄页网站大全一区二区| 欧美日韩一卡二卡| 亚洲色图另类专区| 国产精品系列在线播放| 7777精品伊人久久久大香线蕉经典版下载| 国产精品色眯眯| 国内精品国产成人| 日韩免费看网站| 亚洲成人免费在线观看| 99精品视频一区二区| 国产午夜精品美女毛片视频| 免费人成在线不卡| 欧美日韩黄色一区二区| 亚洲男人的天堂网| 成人午夜激情影院| 国产日韩欧美综合在线| 精品在线免费视频| 91精品国产麻豆国产自产在线| 亚洲综合自拍偷拍| 91免费观看视频在线| 成人欧美一区二区三区黑人麻豆 | 久久久久高清精品| 蜜臀久久99精品久久久久久9 | 国产欧美一区视频| 久久国产精品无码网站| 日韩三级视频中文字幕| 日韩在线a电影| 正在播放亚洲一区| 日本sm残虐另类| 亚洲国产视频直播|