日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式硬件
[導讀]摘要:本文在分析實時嵌入式系統(tǒng)mc/os-ii和lpc2119芯片的基礎上,對mc/os-ii向處理器上移植前需要了解的知識和需要做的前期準備工作進行了分析和討論,最后給出了移植的具體

摘要:本文在分析實時嵌入式系統(tǒng)mc/os-ii和lpc2119芯片的基礎上,對mc/os-ii向處理器上移植前需要了解的知識和需要做的前期準備工作進行了分析和討論,最后給出了移植的具體工作。論文著重分析了mc/os-ii的移植。
  c/os-ii是一個完整的,可移植、可固化、可裁減的占先式實時多任務內(nèi)核,它功能強大,支持56個用戶任務,支持信號量、郵箱、消息隊列等多種常用的進程間通信機制。公開源代碼,程序可讀性強、移植性好,同時可免費獲得。

  lpc2119是由philips生產(chǎn)的一款32位arm7tdmi-s微處理器,其核心為高性能的32位risc體系結(jié)構(gòu),并具有高密度的16位指令集和極低的功耗。具有零等待128k字節(jié)的片內(nèi)flash,16k的sram,無需擴展存儲器,使系統(tǒng)更為簡單、可靠。


  本文主要討論?c/os-ii在lpc2119上的移植,同時對移植前需要掌握的基本知識進行了分析,特別是對與移植密切相關的三個文件進行了詳細分析,還對用到的芯片的重映射概念進行了詳細說明。lpc2119簡介

  lpc2119片上資源除了上面介紹的存儲器外,還有2個uart、高速i2c接口、2個spi接口、6路輸出的pwm單元、4路10位ad轉(zhuǎn)換器、2個32位定時器、2個can通道、實時時鐘及看門狗等,通過片內(nèi)pll可實現(xiàn)最大為60mhz的cpu操作頻率。

  由于下文啟動代碼的編寫要用到重映射(remap)的概念,lpc2119以及其它系列的芯片如at91等也都有重映射的功能,所以在此加以說明對其它arm芯片的學習具有借鑒作用。


  當系統(tǒng)上電后,程序?qū)⒆詣訌?地址處開始執(zhí)行,因此在系統(tǒng)的初始狀態(tài),要求0地址處的存儲器是非易性的rom或flash等。但是rom或flash的訪問速度相對較慢,每次中斷發(fā)生后,都要從讀取rom或flash上的向量表開始,影響了中斷響應速度。因此,lpc2119提供一種靈活的地址重映射方法,該方法可以將內(nèi)部ram的地址重新映射到0x0的位置。在系統(tǒng)執(zhí)行重映射命令之前,需要將flash中的中斷向量代碼拷貝到內(nèi)部ram中。這樣在重映射命令執(zhí)行之后相當于從內(nèi)部ram中0x0的位置找到中斷向量,而實際上是將ram的起始地址0x40000000映射為0x0了。這樣,中斷執(zhí)行時相當于在ram中找到對應中斷向量,實現(xiàn)異常處理調(diào)試。?c/os-ii的介紹

  ?c/os-ii實際上是一個嵌入式操作系統(tǒng)內(nèi)核,內(nèi)核提供的基本服務就是任務切換。在?c/os-ii中,為每個任務分配專門的堆??臻g。?c/os-ii進行任務切換的時候,會把當前任務的cpu寄存器放到此任務的堆棧中,然后再從另一個任務的堆棧中恢復原來的工作寄存器,繼續(xù)運行另一個任務。所以,寄存器的入棧和出棧是?c/os-ii多任務調(diào)度的基礎。

  與處理器相關的代碼只有三個文件,一般移植的時候只要修改這三個文件就可以了。編寫啟動代碼

  啟動代碼是芯片復位后進入c語言的main()函數(shù)前執(zhí)行的一段代碼,主要是為運行c語言程序提供基本運行環(huán)境,如初始化外圍部件、存儲器系統(tǒng)等。因此啟動代碼的功能有些類似pc機中的bios和vxworks中的bootloader。由于飛利浦未提供該芯片的啟動代碼,所以需要自己編寫啟動代碼。

  啟動代碼可以劃分為五個文件:startup.s、irq.s、stack.s、heap.s和target.c。startup.s包含了前面提到的異常向量表和系統(tǒng)初始化代碼,一般無需改動;irq.s包含中斷服務程序與c程序的接口代碼,可根據(jù)實際使用的中斷情況進行少量修改;stack.s和heap.s保存c語言使用的堆和棧的開始位置;target.c包含目標板特殊的代碼,包括異常處理程序和目標板初始化程序,可根據(jù)程序的需要修改。

  由于啟動代碼的編寫很長,而本文只是想指出編寫啟動代碼是移植前必須做的準備工作并對其進行簡要說明,因此在這里就不具體列出所有代碼(具體的啟動代碼見參考文獻[1]),而給出一個很重要的目標板初始化程序中的函數(shù)targetresetinit()的流程圖,從中可以看出在進入main()函數(shù)前對系統(tǒng)進行的基本初始化工作的具體步驟。移植

  有了上面的知識和編寫啟動代碼這項準備工作完成后,就可以進入具體移植階段了。主要完成以下工作:
① 為了增強代碼的可移植性,所有c文件添加頭文件includes.h。
② 用戶程序添加config.h。
③ 在文件os_cpu.h中需要添加或修改的主要代碼有:
? 定義不依賴于編譯器的數(shù)據(jù)類型:
typedef unsigned char?? int8u;
typedef unsigned short? int16u;
typedef unsigned int??? int32u;
typedef int32u?????? os_stk;

本站聲明: 本文章由作者或相關機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅(qū)動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅(qū)動性能的關鍵。

關鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質(zhì)量和效率直接關系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關鍵字: LED 驅(qū)動電源 開關電源

LED驅(qū)動電源是把電源供應轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅(qū)動電源
關閉