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

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

?? ucos學(xué)習(xí)報(bào)告之c8051f060移植篇.txt

?? 找了很久,這里的C8051F020的UCOS移植.020沒(méi)有SFRPAGE. KEIL下的C8051F040的UCOS的源代碼,用YY的改寫的,增加了對(duì)頁(yè)寄存器SFRPAGE和PSBANK寄存器的保
?? TXT
字號(hào):
 UCOS學(xué)習(xí)報(bào)告之C8051F060移植篇


   掩飾不住內(nèi)心的喜悅,我用了6天就將UCOS移植到C8051F060,這期間得到了楊屹,牛毅,郝剛等廣大網(wǎng)友的幫助,在此一并表示感謝。本文來(lái)自于網(wǎng)絡(luò),落葉于網(wǎng)絡(luò),回饋給像我一樣不知該怎么入門的網(wǎng)友,若你能從中學(xué)到什么或有同感,我將甚感欣慰。若你要拍磚砸我,請(qǐng)讓我死的瞑目(呵呵,開個(gè)玩笑,真心希望你的頂,我們一塊討論,一塊進(jìn)步)各位網(wǎng)友說(shuō)過(guò)的已經(jīng)比較明了的問(wèn)題我就不說(shuō)或少說(shuō)
前言:我以前學(xué)過(guò)2個(gè)月的ARM7+uClinux,深知移植的難處,那時(shí)叫交叉編譯,我當(dāng)時(shí)就交叉編譯這個(gè)概念就1個(gè)星期沒(méi)搞懂,當(dāng)面對(duì)開發(fā)板移植好的uClinux心里總是不甘心,心想自己也想移植一個(gè),可眼睜睜的看了好一段時(shí)間,就是不知道怎么下手,那么多代碼啊,(有同感的朋友頂一下啊)身邊又沒(méi)有做這一塊的,別人都學(xué)VxWorks,就這樣我把ARM當(dāng)成了單片機(jī)用拉,看懂理解bootloader,然后遍一些簡(jiǎn)單的程序,交叉編譯環(huán)境更是2個(gè)星期沒(méi)搞定。郁悶之中,項(xiàng)目選用了C8051F060,我又被該派成學(xué)習(xí)它,干一個(gè)愛一個(gè)啊,我就努力中。ARM7+uClinux成了我心中的遺憾。
  言歸正傳,本文章我們主要說(shuō)一下移植過(guò)程中遇到的實(shí)際問(wèn)題及我的切身體會(huì),需要源碼和有疑惑者可來(lái)信,我將知無(wú)不言,言無(wú)不盡。(畢竟這是我第一篇啊)
我下面說(shuō)一下我的移植體會(huì),對(duì)于下面的問(wèn)題我將給于解答,不對(duì)之處,敬請(qǐng)指出。說(shuō)的時(shí)候頭一句,腳一句,讓大家笑話了^-^
1,    貝貝翻譯的書可按其說(shuō)名看一邊,做到心中有數(shù),以后再慢慢翻閱,知道一直要做那些工作即可。書中有個(gè)程序結(jié)構(gòu)圖,看好好看,知道那些代碼跟移植有關(guān),那些代碼跟應(yīng)用程序有關(guān)
2,    找個(gè)源嗎仔細(xì)研究,對(duì)于51+KEIL推薦楊屹大俠的,他的思路比較清晰,我就是按他的程序,結(jié)構(gòu)思路來(lái)的。
3,    分析一個(gè)C函數(shù),和4個(gè)匯編函數(shù),想一想,為什么要自己編寫它,寫完了干什么?它們是怎么運(yùn)動(dòng)的?想想這些函數(shù)名一定要定義這個(gè)樣子嗎,能寫成其他的樣子嗎?
4,    仔細(xì)看看里面的C語(yǔ)言知識(shí),這是你可能回發(fā)現(xiàn)這我們平時(shí)用的簡(jiǎn)單的C51知識(shí)點(diǎn)多多了。
5,    OS里面很注重保護(hù),保護(hù)各種各樣的量,重入函數(shù)本身就是一種保護(hù)它的局部變量,由于我接觸過(guò)VC++,了解了里面的多線程編程,所以對(duì)這一塊我比較好理解些。時(shí)間一長(zhǎng),大家就會(huì)明白。
6,    對(duì)移植來(lái)說(shuō)我感覺一個(gè)難點(diǎn)是堆棧的設(shè)計(jì),我比較了牛毅和楊屹的堆棧設(shè)計(jì),一開始我心中有好多疑惑如何保證用戶堆棧在片外,局部變量如何保存才不被破壞
7,    時(shí)間節(jié)拍函數(shù)是怎么回事,理解了其工作原理之后,我該怎么提筆寫程序,這是像我這樣的初學(xué)著深深體會(huì)的,(自己曾有過(guò)不少這樣的體會(huì),我學(xué)習(xí)C8051F060的CAN總線時(shí)就時(shí)這樣,看了一個(gè)星期后,就感覺差不多了,就是不知道程序該怎么寫,心理想誰(shuí)要是能給我一個(gè)例程,我可能很快就上手,一天晚上當(dāng)我得到例程,第二天我高興的5點(diǎn)就起床了,一天就感覺胸有成竹了,然后就沒(méi)什么了)看來(lái),像我這樣的網(wǎng)友們水平都一般,但好在大伙都學(xué)習(xí)的激情,相信日積月累我們會(huì)有收獲的,相信有一天,我們能達(dá)到自己認(rèn)為理解了的東西,都能夠用程序?qū)崿F(xiàn)出來(lái)。
8,    最后就是結(jié)合自己要移植的硬件,我原別人移植好的該程序,這期間會(huì)遇到各種各樣的問(wèn)題,正如不幸的家庭千奇百狀。后文我會(huì)提出一些。
  不知大家看到這里有什么體會(huì),我是針對(duì)入門著來(lái)說(shuō)的,高手可不必看了,如果看,一定要提寶貴意見啊,呵呵,手都敲累了,休息5分鐘。
繼續(xù),下面我解答上面的問(wèn)題和針對(duì)KEIL+ C8051F060具體細(xì)節(jié)做出說(shuō)明,是本文的關(guān)鍵。
   C8051F060有256B+4K的片內(nèi)RAM,如果用戶的任務(wù)消耗資源不是太多的話,應(yīng)該不用外括。
1,對(duì)于KEIL我們要裝上新華龍?zhí)峁┑尿?qū)動(dòng),并選用硬件仿真,點(diǎn)擊一旁的SET,彈出對(duì)話框,選用COM3,其它的都默認(rèn)即可。點(diǎn)擊確定返回。這樣KEIL下編譯環(huán)境就建立好了,把所需文件加到工程里即可,在option for target 里面選用large模式,c429:  'data' segment too large就是沒(méi)設(shè)置large模式造成的錯(cuò)誤。我寫這篇文章的時(shí)候沒(méi)有keil環(huán)境(在別人的機(jī)器上),有些單詞或說(shuō)明的不準(zhǔn)確,但我相信不防礙我思想的表達(dá),設(shè)置好后,編譯連接生成目標(biāo)文件后,即可點(diǎn)擊那個(gè)帶d的按鈕,激動(dòng)人心的時(shí)刻到來(lái)了,你會(huì)發(fā)現(xiàn)flash正在燒寫,我第一次看到時(shí)高興的跳了起來(lái),那種感覺太爽了。
   2,我說(shuō)一下在編譯過(guò)成中我遇到的問(wèn)題,首先是工程里的包含文件,startup.a51要使用,并修改RAM的地址,大家看一下我的源碼即可明白。對(duì)于UCOS的SOURCE源代碼只包含ucos_ii.c即可,因?yàn)樗锩姘嗽创a。下面我將按要修改的文件分別說(shuō)明。
a)    INCLUDES.h是個(gè)主包含文件你要把所有的頭文件都要放在里面。
b)    OS_CFG。H決定了你編譯文件的取舍
c)    OS_CPU_A.asm中只要把別人移植好的理解后,需要改動(dòng)的代碼只有時(shí)間節(jié)拍函數(shù),針對(duì)C8051F060可把楊屹的serial函數(shù)去掉,直接printf即可。
d)    OS_CPU_C可不用改動(dòng)。
e)    對(duì)于主測(cè)試程序,建議在每個(gè)任務(wù)中對(duì)不需要打斷的代碼中加上保護(hù),這就是上文中所說(shuō)的保護(hù),否則輸出的是被打斷的內(nèi)容,大家一看我的源碼即可明白
f)    對(duì)于編譯的文件就簡(jiǎn)單的說(shuō)以上5點(diǎn),下面說(shuō)以下各位大俠給我的意見,在次一并轉(zhuǎn)給各位網(wǎng)友。牛毅回答的(僅供參考):
問(wèn):OSStartHighRdy等4個(gè)匯編子程序是否為可重入的?
答: 不可重入好些因?yàn)樗鼈兙筒徽?C_XBP空間
問(wèn):typedef bit               BOOLEAN;
     我看有的說(shuō)一定要把 BOOLEAN定義成char
      答:這個(gè)定義要看實(shí)際聲明的變量怎么賦值
     問(wèn):在你的OS_STK  *OSTaskStkInit(。。。)中
stk      -= sizeof(void *);
         *(void **)stk   = (void *)os_pdata;  
答:stk      -= sizeof(void *);
*(void **)stk   = (void *)os_pdata;  
stk是指向?C_XBP的堆棧指針(堆棧類型是滿向下的);第一句是調(diào)整其指針使其空出(void *)個(gè)空間,第二句把stk強(qiáng)制轉(zhuǎn)換為(void *)類型后對(duì)其賦值
問(wèn):你是如何包證建立的用戶任務(wù)棧在片外ram的?我知道系統(tǒng)棧應(yīng)該在片內(nèi)的
答:把SP  COPY   到?C_XBP中OSTaskStkInit()函數(shù)就是模擬入棧
問(wèn):os_pdata(R3,R2,R1)用寄存器傳遞os_pdata實(shí)際應(yīng)用中,通常是不是沒(méi)有參數(shù)
答:通常不用傳遞有效參數(shù),就傳遞0,但必須有
     楊屹回答的(僅供參考):
     問(wèn):此外冒昧問(wèn)一下你的OS_CPU_A.ASM沒(méi)有包含OS_CFG.H是為什么?
     答:不需要的頭文件不必包含
問(wèn):對(duì)于可重入函數(shù),只加上那個(gè)關(guān)鍵字就可以嗎?我看有些移植的代碼中對(duì)他操作了好多,都很難看懂了,麻煩你說(shuō)一下,另外我看了你的關(guān)于重入函數(shù) 說(shuō)明的文檔,對(duì)這個(gè)問(wèn)題還是不太理解
答:重入函數(shù)加上關(guān)鍵字并處理仿真堆棧指針
    問(wèn):upstart51.a這個(gè)文件有什么用,和設(shè)置的堆棧關(guān)系大嗎?好像是跟堆棧有關(guān)系
答:startup51是初始化文件,用于初始化指針、內(nèi)存等
3,對(duì)C語(yǔ)言的知識(shí)我想說(shuō)明2點(diǎn),extrn是用來(lái)聲明外部定義好的,在本程序中的應(yīng)用。
   Public是聲明定義在本程序中,將來(lái)讓另外的文件調(diào)用的,是預(yù)留的接口。
4,有些函數(shù)名不一定要定義成書上說(shuō)的樣子,只要函數(shù)原型聲明對(duì)了即可
5,對(duì)于時(shí)間節(jié)拍函數(shù)是用我們的硬件定時(shí)器產(chǎn)生的,大家一看就明白。
好了,手又敲累了,想必大家也看累了。羅嗦了這些,希望能對(duì)大家有那么一點(diǎn)點(diǎn)幫助,我這段時(shí)間來(lái)的付出就沒(méi)有白費(fèi),歡迎大家和我交流。同時(shí)也希望大家多支持我的UCOS學(xué)習(xí)報(bào)告,我會(huì)繼續(xù)學(xué)習(xí),有什么體會(huì)繼續(xù)發(fā)表出來(lái),將來(lái)還會(huì)把ARM+linux的遺憾彌補(bǔ)掉。
語(yǔ)言草率之處,請(qǐng)大家涼解,技術(shù)錯(cuò)誤之處,再次懇請(qǐng)之處,讓我們共同進(jìn)步。
最后感謝我的女朋友一直支持我的工作,原諒我陪她逛街的次數(shù)一壓再壓,以至于我們2個(gè)星期沒(méi)好好玩了。

QQ:12928376
EMAIL:shan318@163.com

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91视频在线观看免费| 欧美在线免费观看亚洲| 亚洲国产日韩一区二区| 精品91自产拍在线观看一区| 一本大道综合伊人精品热热| 韩国v欧美v日本v亚洲v| 亚洲第一二三四区| 国产精品久久久久国产精品日日| 久久久综合九色合综国产精品| 亚洲一区二区三区四区在线| 欧美三级日韩三级| 国产成人免费视频精品含羞草妖精| 日韩色视频在线观看| 亚洲欧洲国产日韩| 欧美一卡2卡3卡4卡| 色偷偷久久人人79超碰人人澡| 自拍偷拍亚洲综合| 久久网站热最新地址| 欧美一区二区高清| 一本色道久久综合狠狠躁的推荐 | 国产欧美日韩不卡| 日本丶国产丶欧美色综合| 国产成人精品www牛牛影视| 蜜桃精品视频在线| 日韩av电影一区| 午夜在线成人av| 亚洲尤物在线视频观看| 亚洲欧美偷拍三级| 国产精品视频九色porn| 国产色综合久久| 久久久久久影视| 久久久久久久国产精品影院| 精品久久久久久久久久久院品网 | 蜜臀av国产精品久久久久| 亚洲线精品一区二区三区| 亚洲欧洲性图库| 成人欧美一区二区三区白人| 国产精品三级av在线播放| 久久久一区二区三区| 2023国产精品自拍| 久久免费看少妇高潮| 久久久久久久久久久久久女国产乱| 成人免费va视频| 丁香桃色午夜亚洲一区二区三区| 亚洲精品综合在线| 亚洲精品乱码久久久久久久久 | 91麻豆精品秘密| 99热这里都是精品| bt7086福利一区国产| 99精品在线免费| 在线观看日韩高清av| 欧美影院一区二区| 欧美午夜精品免费| 欧美精品123区| 精品国产乱码久久久久久图片| 色婷婷av久久久久久久| 91福利小视频| 欧美一区二区三区不卡| 日韩一区二区电影网| 久久久久久久久久久黄色| 国产精品久久久久久久午夜片| 日韩亚洲国产中文字幕欧美| 日韩精品一区二区三区三区免费 | 亚洲黄色免费网站| 亚洲国产精品一区二区www| 亚洲国产日产av| 日本aⅴ免费视频一区二区三区| 亚洲色图一区二区| 亚洲chinese男男1069| 久久精品国产99国产| 国产一区二区视频在线播放| 床上的激情91.| 欧美午夜片在线观看| 精品国偷自产国产一区| 国产精品传媒视频| 婷婷综合久久一区二区三区| 国内精品写真在线观看| 91片黄在线观看| 日韩免费在线观看| 中文字幕一区二区三区在线不卡 | 1000部国产精品成人观看| 亚洲一区二区欧美| 奇米888四色在线精品| 成人黄色777网| 在线播放91灌醉迷j高跟美女| 欧美亚洲国产一区在线观看网站 | 亚洲国产精品影院| 精品一区二区日韩| 色吧成人激情小说| 精品女同一区二区| 一区二区激情小说| 国产91高潮流白浆在线麻豆| 欧美日韩成人在线一区| 国产精品视频麻豆| 久久国产尿小便嘘嘘| 色婷婷亚洲精品| 久久综合久久久久88| 亚洲一区在线视频| 国产成人免费9x9x人网站视频| 国产成人免费在线视频| 欧美精品少妇一区二区三区| 中文字幕av一区二区三区高| 天堂av在线一区| 91丝袜美女网| 国产日韩欧美精品电影三级在线 | 日韩理论片一区二区| 精品一区二区三区久久久| 在线看国产一区| 中文字幕不卡在线| 国产伦精一区二区三区| 91精品午夜视频| 一区二区三区四区激情| 成人网在线免费视频| 久久综合精品国产一区二区三区| 久久久亚洲精华液精华液精华液 | 国产精品自产自拍| 欧美精品乱人伦久久久久久| 1024成人网色www| 成人永久aaa| 久久久影院官网| 经典三级视频一区| 精品裸体舞一区二区三区| 日韩电影免费在线观看网站| 欧美日韩国产影片| 亚洲综合色视频| 在线观看网站黄不卡| 亚洲欧美另类小说| av网站免费线看精品| 国产精品嫩草影院av蜜臀| 高潮精品一区videoshd| 国产日韩精品一区| 成人教育av在线| 国产精品区一区二区三| 国产成人精品影视| 欧美激情在线一区二区| 国产精品综合二区| 国产精品麻豆视频| 北条麻妃国产九九精品视频| 亚洲同性同志一二三专区| 99精品国产99久久久久久白柏 | 欧美久久高跟鞋激| 五月婷婷综合网| 欧美日韩卡一卡二| 日韩高清中文字幕一区| 日韩午夜精品电影| 国产最新精品精品你懂的| 久久你懂得1024| 99精品视频一区二区三区| 亚洲欧美日韩中文字幕一区二区三区 | 欧美亚洲动漫制服丝袜| 亚洲综合清纯丝袜自拍| 欧美日韩你懂的| 欧美a一区二区| 国产日韩欧美精品综合| 成人av第一页| 亚洲综合一二区| 91精品国产91久久久久久最新毛片| 中文字幕亚洲一区二区va在线| 日韩av电影天堂| 2017欧美狠狠色| 暴力调教一区二区三区| 亚洲欧美一区二区不卡| 欧美电影在哪看比较好| 精品一区二区精品| 国产精品无人区| 欧美日韩在线亚洲一区蜜芽| 美腿丝袜亚洲一区| 中国色在线观看另类| 在线观看国产精品网站| 奇米一区二区三区av| 国产精品丝袜91| 欧美日韩国产不卡| 国产九色sp调教91| 亚洲一区二区欧美日韩| 2023国产精品| 欧美在线观看18| 国产一区二区精品久久| 亚洲自拍欧美精品| 26uuu另类欧美| 欧美在线不卡一区| 国产精品夜夜嗨| 亚洲成精国产精品女| 久久久美女毛片| 欧美日韩国产一二三| 国产成人免费视频| 日韩精品乱码av一区二区| 久久青草欧美一区二区三区| 色婷婷国产精品久久包臀| 狠狠网亚洲精品| 午夜婷婷国产麻豆精品| 中文字幕精品一区二区精品绿巨人| 国产大陆精品国产| 视频一区二区中文字幕| 欧美国产一区二区| 911精品国产一区二区在线| eeuss鲁片一区二区三区在线看| 中文字幕一区二区三区四区| 日韩欧美国产一区二区三区| 一本色道综合亚洲| 国产69精品一区二区亚洲孕妇|