久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

uTenux的移植方法(cortex M)

作者:未知   來源:Levi之家的空間   點(diǎn)擊數(shù):  更新時間:2014年08月16日   【字體:

uTenux現(xiàn)在已經(jīng)之類幾乎所有主流的cortex M的開發(fā)板,比如:ATMEL(愛特梅爾)、Cypress(賽普拉斯)、Freescale(飛思卡爾)、Infineon(英飛凌)、Nuvoton(新唐)、NXP(恩智浦)、SiliconLabs、Spansion、ST(意法半導(dǎo)體)、TI(德州儀器)。uTenux支持3個開發(fā)環(huán)境,IAR、Keil、uTstudio(悠龍開發(fā)套件)。正對個別開發(fā)板還進(jìn)行支持其特有的開發(fā)環(huán)境,比如Cypress的PSoC Creator,ATMEL的Studio由于不能創(chuàng)建組(虛目錄)暫時沒有支持等...

 

介紹一下uTenux在cortex M系列上的移植方法,簡單敘述一下在Coretex M系列之間怎么進(jìn)行移植。因為Cortex M系類具有統(tǒng)一的NVIC管理,統(tǒng)一的內(nèi)存劃分。所以這樣比較容易。

簡單通俗了說移植uTenux就是:

1.根據(jù)具體開發(fā)板的中斷數(shù)目修改啟動文件。

2.根據(jù)具體開發(fā)板的Flash和SRAM的大小修改鏈接腳本。

3.實現(xiàn)UART的收發(fā)函數(shù)(bsp)。

4.修改配置文件文件。

下圖紅色框內(nèi)是移植相關(guān)部分:

1.修改啟動文件startup.S:通過芯片手冊找到該芯片支持的中斷數(shù)目(不大于255),然后修改啟動文件中中斷向量號多刪少補(bǔ)到該芯片實際數(shù)目中斷數(shù)目減1。都寫成default_handler,因為uTenux支持動態(tài)修改定義向量表(M0除外,M0芯片假如用到了外設(shè)中斷,需要手動修改相應(yīng)default_handler為中斷函數(shù))。

2.修改鏈接腳本uTenux-flash:IAR鏈接腳本后綴名為icf、Keil鏈接腳本后綴名為sct、uTStudio鏈接腳本的后綴名為ld。通過查閱芯片手冊得到芯片的Flash和SRAM的大小。通過修改鏈接腳本來配置uTenux各個節(jié)的大小,F(xiàn)lash配置為實際的大小,SRAM分配給各個節(jié),注意不要超過SARM的實際大小就好。一般向量表配置大小為向量個數(shù)*4轉(zhuǎn)成16進(jìn)制;BSSDATA段一般分配7K左右(要是配置的系統(tǒng)對象多的話,需將其調(diào)大點(diǎn));用戶區(qū)一般分配4K;棧區(qū)分配0K,這個并不是說不使用棧空間,而是因為cortexM的棧時向下增長的,這樣的話就會占用的用戶區(qū)的一部分空間,幸好這個棧就是剛剛啟動的時候使用,當(dāng)uTenux內(nèi)核起來以后這部分空間就沒有用了,覆蓋了也沒有事;系統(tǒng)區(qū)是uTenux運(yùn)行時使用的空間比如任務(wù)棧空間,一般是將SRAM剩余的所有空間都分到這里。這個分配方法僅供參考,具體可以根據(jù)實際情況作調(diào)整,系統(tǒng)區(qū)分配的最大并不代表系統(tǒng)需要占很大的空間,只是為了寫應(yīng)用程序好擴(kuò)展而預(yù)留的。

3.實現(xiàn)bsp函數(shù),其實就是UART和看門狗,這些函數(shù)在tm_bsp.c中。這些其實不是uTenux運(yùn)行時必要的,實現(xiàn)它完全是為了打印一些提示信息,在實際應(yīng)用中,完全可以再配置文件中將TK_USE_MESSAGE選項關(guān)掉,不讓其輸出。在這個文件中如果該芯片沒有FPU完全可以將相關(guān)的代碼移除掉,也可以通過關(guān)掉配置文件中的使用FPU開關(guān)宏將其關(guān)掉。主要有初始化flash(很多芯片無需設(shè)置);初始化時鐘(uTenux默認(rèn)跑在最高頻);初始化看門狗(也就是將其關(guān)閉);初始化UART;然后將UART的收發(fā)函數(shù)體也實現(xiàn)了。具體怎么設(shè)置可以通過參考芯片生產(chǎn)商提供的官方例程中扒過來。這里用到了外設(shè)庫,所以這個也需要添加工程中。

4.修改配置文件tk_config_depend.h。這個文件使用來配置uTenux的,比如systick中斷頻率,系統(tǒng)對象的數(shù)目,是否使用FPU,是否開啟debug,和hook選項,是否打印信息等。在這里不用管那么多,只需要修改幾個地方就行,首先還是分配Flash和SRAM空間,一定要和鏈接腳本的配置相同哦,至于這里還需要配置一次,大概是為了uTenux在各個芯片上移植的方便性,和以后uTenux繼續(xù)劃分存儲空間的靈活性。TK_ROM_VECTOR_NUMBER和TK_RAM_VECTOR_NUMBER配置成該芯片實際的中斷向量的數(shù)目。其次修改時鐘KNL_CFG_TIMER_CLOCK為剛才bsp中所配置的頻率,單位為MHz。最后是錦上添花的操作,將KNL_CFG_BOOT_MESSAGE提示信息修改為所移植的開發(fā)板的名稱。

至此,修改代碼的部分大體上就完成了。

需要注意的是如果移植的是如果移植的芯片如果是M0的話,會報BSSDATA段空間不足的錯誤,此時建議將系統(tǒng)對象配置的少一點(diǎn)。畢竟M0的空間比較少。

 

以上修改都是針對代碼的,以下是針對工程的。

因為代碼改完了,如果對開發(fā)環(huán)境不熟悉的話編譯還是會有很多錯誤的。因為芯片變了可能使用的ARM指令集不一樣,使用的外設(shè)庫不一樣,編譯頭文件搜索路徑可能沒有修改正確,條件編譯宏可能沒有設(shè)正確。這些都是需要修改的。IAR和Keil相似,uTStudio使用的是GCC工具鏈配置需要配的地方比較多。如果有必要擇日再續(xù)一貼。

關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 成人免费精品视频 | 一区二区三区高清 | 日韩第一区| 久久久久国产一区二区三区四区 | 免费中文字幕日韩欧美 | 美女黄色在线观看 | 久久区二区 | 国产一区二区三区在线看 | 91精品久久久久久久久 | 成人性生交大片免费看r链接 | av网站免费在线观看 | 亚洲精色| 国产视频在线一区二区 | av一区二区三区四区 | 91精品无人区卡一卡二卡三 | 亚洲国产欧美一区 | 一区二区视频 | 亚洲电影一区二区三区 | 91久久精品国产91久久 | 高清免费在线 | 正在播放国产精品 | 91秦先生艺校小琴 | 91 中文字幕 | 在线视频一区二区 | 亚洲国产精品精华素 | 亚洲精品91| 成人av一区二区三区 | 成人一区av偷拍 | 国产欧美精品一区二区色综合朱莉 | 99国产精品99久久久久久粉嫩 | 国产欧美日韩精品一区二区三区 | 9久9久9久女女女九九九一九 | 亚洲激情视频在线 | 午夜视频免费在线观看 | 国产成人久久精品一区二区三区 | 国产精品久久毛片av大全日韩 | 影视先锋av资源噜噜 | 日本在线视频一区二区 | 亚洲一区中文字幕 | 四虎成人精品永久免费av九九 | 2一3sex性hd|