色偷偷偷久久伊人大杳蕉,色爽交视频免费观看,欧美扒开腿做爽爽爽a片,欧美孕交alscan巨交xxx,日日碰狠狠躁久久躁蜜桃
搜索
熱門關(guān)鍵詞:
電感
Multisim
頻譜分析儀
視頻監(jiān)控
Cirrus
手機(jī)版
官方微博
微信公眾號
登錄
|
免費(fèi)注冊
首頁
新聞
新品
文章
下載
電路
問答
視頻
職場
雜談
會(huì)展
工具
博客
論壇
在線研討會(huì)
技術(shù)頻道:
單片機(jī)/處理器
FPGA
軟件/編程
電源技術(shù)
模擬電子
PCB設(shè)計(jì)
測試測量
MEMS
系統(tǒng)設(shè)計(jì)
無源/分立器件
音頻/視頻/顯示
應(yīng)用頻道:
消費(fèi)電子
工業(yè)/測控
汽車電子
通信/網(wǎng)絡(luò)
醫(yī)療電子
機(jī)器人
x
x
當(dāng)前位置:
EEChina首頁
›
論壇
›
ARM訓(xùn)練班
返回列表
查看:
5081
|
回復(fù):
1
Keil MDK下uC/OS-II在FL2440上的移植
[復(fù)制鏈接]
yanhong
yanhong
當(dāng)前離線
積分
54325
電梯直達(dá)
樓主
發(fā)表于 2010-11-18 13:04:39
|
只看該作者
|
倒序?yàn)g覽
|
閱讀模式
貿(mào)澤電子有獎(jiǎng)問答視頻,回答正確發(fā)放10元微信紅包
關(guān)鍵詞:
Keil
,
MDK
,
移植
關(guān)于uCOS-II的種種阿呆就不說了,很多初學(xué)者從此踏上操作系統(tǒng)之路
uCOS-II在ADS上的移植很常見,而在KEIL MDK下的移植卻不是很多,阿呆根據(jù)ADS下的移植范例,結(jié)合自
己最近使用KEIL MDK的稍許心得,記錄一下uCOS-II在KEIL MDK下的移植過程。
一:準(zhǔn)備源碼
在官網(wǎng)上下載了uCOS-II的源碼,好像似乎是2..91的了.
二:編寫OS移植文件
1.編寫OS_cpu_c.c
這個(gè)文件阿呆是在ADS下的移植范例里面copy的,直接使用就可以了
注:2.89開始添加了OS_TaskReturn(),它會(huì)調(diào)用OSTaskReturnHook(),如果copy的版本低于2.89則需要
自己添加一下。
2.編寫OS_cpu_a.s
這個(gè)文件也是阿呆在ADS下的一直范例里面copy的,同樣的S3C2440平臺(tái),這下函數(shù)一樣的,而KEIL MDK
與ADS相比,在語法上沒有什么特別的要求。
3.添加系統(tǒng)心跳定時(shí)器
阿呆使用沒有輸出引腳的Timer4作為系統(tǒng)心跳定時(shí)器,具體實(shí)現(xiàn)參看:OS_Timer4_c.c
三:修改啟動(dòng)代碼
1.如果直接將ADS下的啟動(dòng)代碼copy到MDK下,編譯會(huì)提示出錯(cuò),一般錯(cuò)誤是:.\OutPutFiles\uCOS-
II_Uart.axf: Error: L6238E: 2440_init.o(Init_2440) contains invalid call from '~PRES8 (The
user did not require code to preserve 8-byte aligment of 8-byte data objects)' function to
'REQ8 (Code was permitted to depend on the 8-byte aligment of 8-byte data items)' function
App_Main.
解決方法是在代碼段前部添加:PRESERVE8,如圖1
2.將IRQ中斷交給uC/OS-II管理
代碼如下:
;****************************************************
;將OS_CPU_IRQ_ISR地址裝入HandleIRQ中,IRQ中斷交給uCOS-II管理
;****************************************************
LDR R0,=HandleIRQ ;This routine is needed
LDR R1,=OS_CPU_IRQ_ISR ;if there isn't 'subs pc,lr,#4' at 0x18,
0x1c
STR R1,[r0]
即發(fā)生IRQ中斷時(shí)系統(tǒng)跳轉(zhuǎn)到OS_CPU_IRQ_ISR處執(zhí)行uC/OS-II中斷服務(wù)函數(shù),具體事件由它負(fù)責(zé)。
四:設(shè)置MDK編譯參數(shù)信息
1.選擇CPU:
2.填寫存儲(chǔ)器信息:
3.編寫scatter
如果不想自己編寫此文件,KEIL會(huì)自動(dòng)生成文件模板,選擇如下:
但是阿呆不推崇這中方法,這種方法讓人有種霧里看花的感覺,不明了
還是自己編寫吧:
設(shè)置如下:
Scatter文件內(nèi)容:
/*-------------------------------------------------------------
運(yùn)行域在SRAM中,可使用以下寫法,也可直接將WR,ZI段跟在ROM后面
-------------------------------------------------------------*/
LR_ROM1 0x30000000 0x01000000 { ; load region size_region
RO 0x30000000 0x01000000 { ; load address = execution address
2440_init.o (Init_2440, +First)
.ANY (+RO)
}
RW 0x31000000 0x01000000 { ; RW data
.ANY (+RW)
}
ZI +0 {
.ANY (+ZI)
}
}
很多同志會(huì)遇到.\OutPutFiles\uCOS-II_Uart.axf: Error: L6218E: Undefined symbol
Image$$RO$$Base (referred from 2440_init.o).
從ADS copy過來的和KEIL默認(rèn)的標(biāo)號是不一致的,修改scatter文件里面的ER_ROM1為RO標(biāo)號,RW_RAM1為
RW,以此類推即可。
阿呆安排運(yùn)行域地址從0x30000000-0x31000000,數(shù)據(jù)域地址:0x31000000-0x32000000
安排方式純屬個(gè)人愛好。
由于MDK默認(rèn)生成的輸出文件時(shí)HEX的,要使之生成BIN的需要添加一條命令:
如下:
在RUN #1,中添加:D:\ProgramFiles\KEIL\MDK\
ARM
\BIN40\fromelf.exe --bin -o
./OutPutfiles/uCOS-II_Uart.bin ./OutPutfiles/uCOS-II_Uart.axf
具體路徑需調(diào)整。
至此為止,uCOS-II的移植已經(jīng)完畢,阿呆沒有在uC/OS-II的具體細(xì)節(jié)上糾結(jié),而是將精力放在MDK環(huán)境
的使用上,簡單介紹了一下在KEIL MDK下編寫程序的基本步驟。
編譯之:
OK啦。
收藏
0
頂
0
踩
0
相關(guān)文章
•
如何快速、簡單地遷移Keil MDK工程項(xiàng)目到其他開發(fā)工具
•
【教程9】瘋殼·人形街舞機(jī)器人-整機(jī)代碼
•
迅為6818開發(fā)板-Qt4.7-4G_EC20的移植
•
迅為IMX6開發(fā)板-QT5.7移植使用文檔
•
從8位單片機(jī)移植到16位單片機(jī)和數(shù)字信號控制器的一些注意事項(xiàng)
•
MDK-ARM Version 5.26下載地址
•
最新版Keil MDK下載
•
對于C語言可移植性的一些思考
回復(fù)
舉報(bào)
youyou_zh
youyou_zh
當(dāng)前離線
積分
3811
沙發(fā)
發(fā)表于 2011-4-5 14:30:15
|
只看該作者
bucuo
回復(fù)
支持
反對
舉報(bào)
返回列表
高級模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登錄后才可以回帖
登錄
|
立即注冊
本版積分規(guī)則
發(fā)表回復(fù)
回帖后跳轉(zhuǎn)到最后一頁
關(guān)于我們
-
服務(wù)條款
-
使用指南
-
站點(diǎn)地圖
-
友情鏈接
-
聯(lián)系我們
電子工程網(wǎng)
© 版權(quán)所有
京ICP備16069177號
| 京公網(wǎng)安備11010502021702
快速回復(fù)
返回頂部
返回列表