嵌入式作業系統移植實例:使用ADS移植uC/OS-II

2020-12-05 OFweek維科網

  選擇開發工具在嵌入式系統設計中,開發工具的選取是一個重要的考慮因素,通常這是與開發項目的需求和應用背景相關。一般嵌入式開發工具包含用於目標系統的交叉編譯器、連接器、調試器以及輔助處理用的二進位文件分析工具等。

  目前可以用來編譯連結產生 ARM 處理器執行代碼的開發工具主要有如下幾類:1. ARM 公司提供的 ARM Developer Suite 集成開發環境主要工具有 armasm、armcc、armlink、fromelf 等。

  2. GNU 組織提供的 tool chain for arm主要工具有 arm-elf-gcc、arm-elf-gdb、arm-elf-objcopy 等3. Microsoft公司提供的 eMbedded Visual Tools主要工具有 clarm、clthumb、c2_arm、link、lib等這裡我們選用 ARM 公司提供的 ADS 下的工具集來編譯我們的程序和連結目標代碼並最終生成可執行的二進位映像。這裡介紹一下主要會用到的一些工具:armasm.exe : 彙編文件編譯器armcc.exe : C 文件編譯器armlink.exe : 目標文件連接器fromelf.exe : 用於將 axf 或者 elf 格式轉換成其他格式的文件,例如二進位映像。

  armprof.exe : 對調試過程中生成的 profiling 記錄文件做分析用的工具軟體啟動代碼由於板子的 0x0 地址處是 32M 的Flash ROM,因此在板子加電後,會從 Flash 中順序執行啟動代碼。為了能使得mC/OS-II 運行,啟動代碼需要完成如下工作:1. 設置 異常向量表,即在 0x0-0x1c 位置放置7條跳轉指令(其中 0x14 為空)

  2.分別實現每種異常的處理程序,其中包括 Reset_Handler、Undefined_Handler、SWI_Handler、Prefetch_Handler、Abort_Handler、IRQ_Handler、FIQ_Handler. 3. 程序從 Reset_Handler 進入後,需要首先進行相關硬體的初始化操作,例如 初始化SDRAM、CPU speed、Interrupt Controller、UART、timer 等。

  4. 建立每種異常狀態下的系統堆棧,為了簡單起見可以只在 svc 態 和 irq 態下建立堆棧:setup_svc_stack,setup_irq_stack. 5. 強制 arm 處理器狀態轉換為 svc 管理態。

  6. 跳轉到mC/OS-II 代碼的 main 入口,實際上是編譯連結後產生的 __main 入口。

  時鐘與中斷處理時鐘控制邏輯在圖1中,有4種和系統時鐘相關寄存器,它們的含義如下:● OSCR: 一個自動遞增計數的 32 位計數器。

  ● OSMR3-0: 4 個 32 位的匹配寄存器,當 OSCR 的值匹配時產生中斷。

  ● OSSR: 狀態寄存器,當 OSCR 和 OSMR 匹配時,會對 OSSR 做標誌。

  ● OIER: 使能寄存器,表示當匹配發生時,允許在 OSSR 設置一個標識位。

  OSCR 在自動累加的過程中,與OSMR裡面設定的那些匹配寄存器進行匹配,發現有匹配的事件時,就會對 OSSR 中的相應位置設一個標誌位「1」,表示OSCR與對應的OSMR 發生了匹配。當然這個匹配發生的前提是發生匹配的那個OSMR在OIER中的相應位被使能,否則OSMR中的設置將不起作用。

相關焦點

  • uC/OS-II在EP7312上的移植
    關鍵詞:嵌入式作業系統 μC/OS-II EP7312引 言  隨著Internet和後PC時代的到來,嵌入式系統的應用愈來愈廣泛,嵌入式產品在人們的生活中無處不在。今天,嵌入式系統帶來的工業年產值已超過1萬億美元,已經在IT產業中佔有很大的比重。
  • ARM微處理器的uC/OS的移植設計
    1內核的移植μC/OS-II的移植只需要修改與處理器相關的代碼就可以了。具體有如下內容:(1)os_cpu.h中需要設置一個常量來標識堆棧增長方向;(2)os_cpu.h中需要聲明幾個用於開關中斷和任務切換的宏;(3)os_cpu.h中需要針對具體處理器的字長重新定義一系列數據類型;(4)os_cpu_a.asm需要改寫4個彙編語言的函數;(5)os_cpu_c.c需要用c語言編寫6個簡單函數;
  • 嵌入式實時作業系統 μC/OS-II 在S12單片機上的移植
    1 引言在採用前後臺系統軟體設計模式的嵌入式系統中,主程序是一個無限循環,單任務順序執行,通過設置一個或多個中斷來處理異步事件。這種系統對於簡單的應用是可以的,但對於實時性要求比較高的、處理任務較多的應用,就會暴露出實時性差、系統可靠性低、穩定性差等缺點。
  • 提高uc/os-ii系統安全性與穩定性
    而μC/OS-II官網提供的基於Cortex-M3內核移植的μC/OS-II作業系統,一直運行在特權級下,用戶程序也可以訪問作業系統的變量和常量,導致系統的安全性與穩定性變得更差。1 開發壞境與Cortex-M3內核簡介使用IAR 5.30開發環境,移植μC/OS-II 2.86到Cortex-M3內核上,選用配置了MPU的LPC1786處理器作為硬體實驗平臺。
  • 如何在MIPS平臺上使用Yocto設備定製的嵌入式系統Linux
    如何在MIPS平臺上使用Yocto設備定製的嵌入式系統Linux 佚名 發表於 2017-05-09 15:41:03 Wi - Fi路由器、數位相機和電視有一些共同點,而這些共同點無形中帶來了一些優勢。
  • 從RTOS到Linux的應用移植
    過去大多數嵌入式處理器沒有內存管理單元,因此RTOS是單地址空間模式,即它們的物理地址和邏輯地址都是一樣的。然而目前大多數的中高端處理器配備了MMU(內存管理單元)。在MMU的支持下,Linux採用虛擬內存管理,將地址空間分為物理地址和虛擬地址,因此系統操作硬體時要進行地址映射。  根據兩類系統的體系結構,RTOS移植到Linux的基本框架如圖1所示。
  • 基於MySQL資料庫應用開發實現嵌入式數控系統的設計
    如果採用直接將數據存放在一個表或字符數組中,數據的修改與維護會相當困難、繁雜,這與數控系統對數據操作要求簡單方便與快捷相悖,因此這種組織管理方式不能滿足數控系統的要求。目前數控加工系統普遍採用的文本文件格式存儲管理數據的方式也存在著實時操作性較差和磁碟空間浪費嚴重的缺點,而實時性和存儲空間兩個要素對於高性能嵌入式數控系統來說卻是至關重要的。
  • 基於Android的嵌入式Web伺服器設計
    而且,由於Android VM的原因,不能直接使用.class文件,需要轉換為.dex文件,這些內容將在下文詳細介紹。2 系統設計 在嵌入式系統中,主控制晶片的選擇對於整個系統性能和良好運行有著至關重要的影響,在選擇主控晶片的過程中,需綜合考慮晶片自身的性能、兼容性、價格以及後續的升級等因素。綜合考慮以上因素,本文設計的家庭網關採用了Cortex—A8處理器作為硬體平臺。
  • 淺談嵌入式在地鐵雜散電流監測裝置的設計
    ucosII 是源碼公開的實時嵌入式作業系統,採用優先級調度算法完成任務間的調度,並支持搶佔式調度。ucosII具有可裁減的體系結構,μC/OS-II是一種可移植的,可植入ROM的,可裁剪的,搶佔式的,實時多任務作業系統內核。它被廣泛應用於微處理器、微控制器和數位訊號處理器。
  • 智能硬體風口 廣東新支點推嵌入式作業系統
    無論是物聯網還是智能硬體應用,都是建立在龐大的嵌入式系統生態之上。嵌入式作業系統隨嵌入式計算機一起深埋於各種設備中,用戶無法直觀上感知作業系統的存在,也無法直接進行安裝和維護,只能靠設備的運行表徵來間接感受它的存在。
  • 使用混合域示波器查找無線嵌入式系統中的噪聲來源
    但是,新增的無線技術進一步提高了嵌入式系統的複雜程度,設計人員在跟蹤噪聲來源方面面臨著更大的障礙。我們必須面對這個現實,即無線技術無處不在。據估算,目前使用的無線設備已經超過10億臺,30%的嵌入式設計現在包括無線功能,而且這一數字每天都在持續增長。  在嵌入式系統中增加無線功能時,在集成中一般會遇到許多問題。對電池供電系統,一般使用開關穩壓器,以最低的成本實現最高的實用效率。
  • UC/OS-II內核調度分析
    內核概述:本文引用地址:http://www.eepw.com.cn/article/149123.htm多任務系統中,內核負責管理各個任務,或者說為每個任務分配CPU時間,並且負責任務之間的通訊。內核提供的基本服務是任務切換。
  • 哪些人不能骨髓移植?白血病移植能活多久?
    核心提示:骨髓移植是指將他人的骨髓移植到患者的體內,並使其生長繁殖,重建免疫和造血功能的一種治療方法。骨髓移植是當今治療白血病、再障等嚴重血液病的比較有效的治療方案,因為一旦骨髓移植不成功,患者幾乎失去了其他的治療機會。下面來看哪些人不能骨髓移植,如果白血病患者進行了骨髓移植,他們又能夠活多久。
  • 計算機四級嵌入式系統開發工程師模擬試題(1)
    4、嵌入式系統總是要用戶對變量或寄存器進行位操作,給定一個整型變量a,寫兩段代碼,第一個設置a 的bit 3,第二個清除a 的bit 3,在以上操作中,要保持其他位不變。     5、嵌入式系統經常具有要求程式設計師去訪問某特定的內存位置的特點,在某工程中,要去設置一絕對地址為0x67a9的整型變量的值為0xaa66。
  • 全球首例使用他人的誘導性多功能幹細胞移植手術完成
    醫學界首次成功將來自捐贈者的iPS細胞轉化為視網膜細胞,並移植到患者體內。取自不同背景捐贈者的iPS細胞庫能讓幹細胞移植操作更為便捷,同時還能削減成本。iPS細胞是通過移出個體身上(比如皮膚中)的成熟細胞、將它們重編程回胚胎狀態製備的。在這之後,它們可被誘導成為用於治療特定疾病的細胞類型。
  • 臍帶血移植的優勢
    通過電視劇、報紙等各種媒體渠道,大家大概都了解如果得了血液病,是需要骨髓移植的。事實上,這類治療移植的是造血幹細胞。
  • 中國器官移植髮展基金會:死刑犯器官不能被任意剝奪
    24日,在浙江省紅十字會的見證下,浙江大學醫學院附屬第一醫院OPO(器官獲取組織)完成了小奧器官的捐獻與獲取,並通過中國人體器官分配與共享計算機系統,匹配移植給浙大一院和無錫市一院的四個病人。之後,小奧的兩個腎、一個肝和一對肺,挽救了四位垂危中國公民的生命。截至發稿時,四位受捐者狀況良好。27日,中國器官捐獻與移植委員會主任委員黃潔夫,經外交部轉遞了一封給法國駐華大使的致謝函,盛讚小奧家人的義舉。
  • PCBA與嵌入式開發
    基於PCBA板的嵌入式系統的開發嵌入式系統的開發分為嵌入式軟體開發和嵌入式硬體開發,PCBA正是嵌入式硬體開發的基礎。什麼是嵌入式系統(1) 嵌入式系統的基本介紹嵌入式系統應定義為:嵌入到對象體系中的專用計算機系統。嵌入性、專用性與計算機系統是嵌入式系統的三個基本要素。嵌入式開發就是指在嵌入式作業系統下進行開發,一般常用的系統有ucos,linux,android等。
  • Stem Cell Reports:幹細胞移植可治療II型糖尿病
    2015年3月22日訊 /生物谷BIOON/ --近日,來自加拿大的科學家在國際期刊Stem Cell Reports在線發表了他們的最新研究成果,他們發現胰腺前體細胞移植對於II型糖尿病治療具有良好效果,與糖尿病治療藥物聯合使用,治療效果更加明顯,這項研究表明基於幹細胞技術的治療方法或許是治療II型糖尿病的一種可行方法。
  • 【連載】嵌入式Linux開發教程:Linux內核
    幾乎所有的嵌入式和實時系統都採用微內核,如VxWorks、uC/OS-II、PSOS等。2. 可移植性強。Linux極具伸縮性,內核可以任意裁剪,可以大至幾十或者上百兆,可以小至幾百K,運行的設備從超級計算機、大型伺服器到小型嵌入式系統、掌上行動裝置或者嵌入式模塊,都可以運行;4. 模塊化。Linux內核採用模塊化設計,很多功能模塊都可以編譯為模塊,可以在內核運行中動態加載/卸載而無需重啟系統;5. 網絡支持完善。