基於S3C44B0晶片的uClinux內核引導過程分析

2020-12-06 電子產品世界

前 言

本文引用地址:http://www.eepw.com.cn/article/171586.htm

隨著計算機硬體技術的不斷發展,功能強大、資源豐富的嵌入式晶片,成為研究人員開發專業應用領域產品的首選。三星公司生產的S3C44B0晶片,採用ARM7TDM I內核,具有功耗小、成本低的特點,是一款專門針對移動終端及PDA手持設備市場的產品。近幾年,源碼開放的L inux系統迅速發展,很快成為跨平臺作業系統中的佼佼者,並且出現了專門針對嵌入式系統的產品———uClinux。在S3C44B0晶片上移植 uClinux作業系統,能夠充分發揮該晶片系統資源豐富(相對單片機而言)的特點,開發出功能強大的應用產品。

嵌入式系統的啟動引導程序與硬體嚴格相關,對編寫人員的要求較高,而在移植uClinux後又大大增加了引導程序的複雜程度,因此這部分代碼往往是各個嵌入式產品開發廠商嚴格保密的部分。下面將以一款市場上成熟的基於S3C44B0晶片的嵌入式開發板為藍本,對引導uClinux內核過程進行分析

系統引導過程分析

嵌入式系統中uClinux內核的系統引導過程通常可以分為3個階段,即boot階段、系統初始化階段和uClinux內核引導階段。通常情況下boot階段和系統初始化階段的工作由一段被稱為bootloader的代碼完成,而內核引導則是由事先編譯好了的uClinux可執行鏡像來實現。

系統內存組織

由於嵌入式系統的硬體環境千差萬別,即使選用同一種型號的嵌入式晶片,其外圍設備也大不相同,特別是存儲設備的組織,將直接關係到引導程序的實現。對於 S3C44B0晶片,其生產廠家規定在系統加電自舉後,從0x00000000處開始執行(其他晶片如ARM9系列可以通過地址映射改變該地址) ,故此處通常安排的是Flash 地址空間,用於保存bootloader啟動代碼以及uClinux映象。對於S3C44B0 晶片, RAM 地址被固定在0x0c000000到0x0fffffff的64兆,開發人員可以根據自己的需要再組織RAM,如本開發板存儲器地址安排如下:

此外,考慮到Flash運行速度的問題,通常採取的做法是將系統初始化階段的代碼和uClinux內核鏡像拷貝到RAM中執行。下面將分3個階段分析系統引導過程。

boot階段

boot階段的主要工作是設置系統中斷向量、完成對CPU內部寄存器的初始化、系統RAM初始化、為運行C程序組織堆棧、拷貝初始化階段代碼到RAM、跳轉到C程序入口。該階段代碼直接在Flash中運行,為提高執行效率採用彙編語言編寫。

(1) 設置中斷向量。設置S3C44B0晶片的8種系統中斷的中斷向量地址(包括復位中斷、未定義指令中斷、軟體中斷、指令預取異常中斷、數據異常中斷、地址異常中斷、IRQ 中斷和F IQ 中斷) ,該地址空間從系統RAM的起始地址開始安排。通常情況下,在Flash的起始部分,存放的就是針對各中斷向量地址的無條件跳轉指令。

__entry :

B ResetHandler

/* for reset vector */

LDR PC, = 0x0c00000c

/* 0x0c00000: 未定義指令中斷向量地址*/

……

/* 中間省略類似跳轉*/

LDR PC, = 0x0c000024

/* 0x0c000024: F IQ中斷向量地址*/

(2) CPU內部寄存器初始化。通過配置CPU運行於SVC模式(採用改變CPSC寄存器中CPU運行模式位的方式來實現) ,並設置相關寄存器,以實現對基本硬體的初始化工作,包括關閉中斷、初始化CPU通用埠和設置CPU頻率等。進入SVC模式彙編代碼如下:

MRS a1, CPSR /* 保存當前狀態寄存器值*/

BICa1, a1, #MODE_MASK /* 清除運行模式位*/

ORR a1, a1, #SUP_MODE/* 設置為超級用戶模式*/

ORR a1, a1, #LOCKOUT /* 關閉F IQ和IRQ */

MSR CPSR_cxsf, a1 /* 保存到當前狀態寄存器*/

(3) 系統RAM初始化。初始化系統RAM的主要目的是為下面使用RAM空間的操作做好準備工作,如進行代碼拷貝及堆棧初始化等。這部分工作可以分為兩個步驟。首先,根據系統配置的存儲器特性,初始化相關存儲塊控制寄存器的值, 在S3C44B0 中存儲空間被分為BANK0到BANK7共8個塊,分別由BANKCON0到BANKCON7控制各塊存儲器的讀寫時鐘數和片選時鐘數等信號參數,對於採取不同存儲晶片的嵌入式系統,可以通過查閱晶片手冊來獲取該信息,並寫入相關寄存器。

LDR r0, = rBANKCON0

LDR r1, = 0x700

STR r1, [ r0 ]

/* 中間省略BANK1到BANK6*/

LDR r0, = rBANKCON7

LDR r1, = 0x18000

STR r1, [ r0 ]

LDR r0, = rREFRESH

LDR r1, = 0xac03e1

STR r1, [ r0 ]

LDR r0, = rBANKSIZE

LDR r1, = 0x16

STR r1, [ r0 ]


相關焦點

  • s3c6410中MFC的研究與應用
    前言本文引用地址:http://www.eepw.com.cn/article/127430.htm  s3c6410是三星電子(Samsung
  • ARM開發板上uClinux內核移植
    簡述:針對「如何在以S3C44B0X為核心的ARMSYS開發板上建立uClinux內核移植」的一個總結,其內容包括對Bootloader的功能分析和uClinux2.4.24發行版內核基礎上針對S3C44B0X
  • 基於S3C2440的能量色散X射線螢光光譜儀
    X射線螢光分析是一種快速、準確而又經濟的多元素分析方法[1]。EDXRF光譜儀利用X射線螢光對於不同元素具有不同能量的特點,依靠探測器實現對測試樣品中元素的定性、定量分析。隨著電子學技術、計算機科學技術以及半導體材料的發展,特別是嵌入式技術的應用,為X射線螢光光譜儀智能化、小型化及高性能提供了必要的硬體基礎。本文提出了基於S3C2440嵌入式處理器的可攜式EDXRF光譜儀的設計方案,用於分析檢測合金、礦石中的多種元素。
  • 基於S3C44B0的布拉格光纖光柵傳感信號處理系統的設計與實現
    布拉格光纖光柵傳感器的輸出是光信號,分析識 別這些光信號的波長,才能得到被測信號的物理量。工程上通過光纖法-柏分析器,將布拉格光纖光柵傳感器輸出的光信號解調為電信號,再由電路系統進行處理。因此,如何控制光纖法-柏分析器工作、準確分析解調信號是布拉格光纖光柵傳感信號處理系統的基本問題。
  • 基於netX90晶片實現PROFIBUS DP從站的開發
    基於其內部雙核的特性,可提供單晶片解決方案,也可以基於外部MCU作為通訊處理器。        1  netX90技術參數         ▪ 兩個ARM®Cortex®-M4高性能內核處理器,每個內核具有125 DMIPS,可分別處理通訊任務與應用程式設計       ▪ 優化的硬體設計,集成DC / DC轉換器、片上BOD和POR電路       ▪ 片載Flash
  • 在uClinux環境下實現虛擬區域網
    本文在對VLAN技術和μClinux作業系統分析的基礎上,給出在μClinux環境下VLAN的實現方式與過程。 關鍵詞:μClinux VLAN IEEE802.1q引言虛擬區域網VLAN(Virtual Local Area Network)是指在交換區域網的基礎上,採用網絡管理軟體構建的可跨越不同網段、不同網絡的端到端的邏輯網絡。
  • 基於netX90晶片實現EtherNet/IP從站的開發
    基於其內部雙核的特性,可提供單晶片解決方案,也可以基於外部MCU作為通訊處理器。        netX90 技術參數        ▪ 兩個ARM®Cortex®-M4高性能內核處理器,每個內核具有125 DMIPS,可分別處理通訊任務與應用程式設計        ▪ 優化的硬體設計,集成DC / DC轉換器、片上BOD和POR電路
  • 分析研究典型USB控制器晶片性能
    但由於USB是以主機為中心的分層的星狀總線拓撲結構,軟體比較複雜,對功率要求也比較高,所以在推出後的一段時期內,USB在基於PC的系統中得到了廣泛應用,而在嵌入式系統中應用不多。這種需求也促進了USB控制器晶片的研發,給開發者提供了越來越多的選擇。僅在最近兩年內,就有多種新型的USB控制器晶片推出。然而這又給選擇帶來了困難,不同的USB控制器晶片有不同的性能和特點,以下對一些典型的USB控制器晶片進行分析和比較,供選擇時決策參考。
  • UC/OS-II內核調度分析
    之所以使用實時內核可以大大簡化應用系統的設計,是因為實時內核允許將應用分成若干個任務,由實時內核來管理它們。內核本身也增加了應用程式的額外負荷,代碼空間增加ROM的用量,內核本身的數據結構增加了RAM的用量。但更主要的是,每個任務要有自己的棧空間,這一塊吃起內存來是相當厲害的。內核本身對CPU的佔用時間一般在2到5個百分點之間。
  • 基於SC6121晶片的足球機器人紅外線通信系統
    摘要:針對足球機器人的特點,提出一種基於SC6121晶片的紅外線通信系統設計方案,它比以往基於晶片M50462的紅外線通信系統有更多的優點。
  • 基於SNP晶片進行CNV分析中的基本知識點
    檢測CNV有多種技術手段,常見的有以下三種aCGH晶片SNP晶片NGS測序本文主要介紹SNP晶片檢測CNV的原理,本質是基於染色體區域內的SNP分型結果來判斷對應的拷貝數,示意圖如下SNP晶片的分型是通過比較A/B兩種allel對應的螢光信號強度的比值來確定的,同樣的,為了更好的描述CNV, 也定義了以下兩個統計值1.
  • 基於Zynq-7000面向小型微型自動化監測系統的BSP設計與實踐
    針對使用串行通信方式的工業監測設備,設計面向小型自動化監測系統的FPGA工程,並使用專門針對基於FPGA的片上系統而設計的PetaLinx工具構建嵌入式Linux系統。最後通過自行研製的基於Zynq XC7Z010系列型號晶片的硬體平臺驗證了BSP設計的正確性及穩定性。 0 引言 物聯網及嵌入式技術的發展推動了信息化與工業化的快速融合。
  • 光纖嵌入式微流控晶片製作過程
    微流控晶片(Microfluidic Chip)是一種將生物、化學、醫學分析過程的樣品製備、反應、分離、檢測和廢液回收等基本操作單元集成到一塊微米尺度的生化晶片上,從而自動完成分析全過程。片上實驗室在微流控晶片的檢測過程中,通常會先將樣品分成一個個液滴,如單細胞分析、數字聚合酶鏈反應(PCR)和酶演化等
  • 基於Icepak的放大器晶片熱設計與優化
    基於熱阻理論,在對放大器晶片等效熱阻做熱分析的基礎上,採用Icepak對影響晶片散熱的焊料層、墊盤、基板的材料和厚度進行優化,分析各個變量對晶片溫度造成的影響,最後給出了高可靠性的晶片熱設計結果。晶片中大量的半導體器件在工作時會產生大量的熱量。晶片如果在封裝過程中散熱效率達不到要求的話,積累的熱量會影響器件特性,甚至是毀壞器件造成電路失去功能。為了提高晶片的可靠性,必須進行熱分析與熱控制。Icepak作為一款專業的熱分析軟體,提供了系統級、板級到器件級不同類型的熱分析平臺,其求解過程基於fluent求解器,可以計算穩態和瞬態不同的過程。
  • 蘋果晶片為何能領先競爭對手?深度揭秘A13仿生晶片
    當桑塔納姆演講結束時,我們多數人可能只記得他當初給出的幾個數字,比如蘋果的新晶片包含85億個電晶體。圖1:蘋果最新款智慧型手機iPhone 11 Pro除此之外,A13仿生晶片還有6個CPU內核:其中兩個是在2.66 GHz頻率下運行的高性能內核(稱為Lightning),另外4個則是效率內核(稱為Thunder)。
  • 基於Cotex-M3內核的智能低壓斷路器控制器設計
    摘要:文章介紹了基於Cotex—M3內核的32位高性能微控制器在智能低壓斷路器控制器的硬體及軟體設計中的應用。本智能控制器硬體採用信號變換、波形變換法;軟體採用微分法。因此,本智能控制器軟體採用基於μC/OS—III內核的實時作業系統平臺,它是一個可擴展的、可固化的、搶佔式的實時內核,它管理的任務個數不限,其功能包括資源管理、事件同步、內部任務交流、運行時測量運行性能、直接發送信號量或消息給任務、任務能同時等待多個信號量或消息隊列等。
  • 基於Cortex-M3的TFT觸控螢幕在環境監控系統中的應用
    將ARM Cortex-M3內核和TFT觸控螢幕結合在一起,以環境監控系統為應用,對ARM公司的Cortex-M3內核進行了分析,並研究了Cortex-M3內核驅動TFT液晶屏幕的可行性。以基於第二代Cortex-M3內核的LPC1758為核心,以TFT觸控螢幕為顯示和控制單元,以2.4 GHz無線模塊為通信單元,合理移植μCOS-II系統,對環境參數進行監測和控制。
  • 基於CPLD晶片和C8051F020實現聲探測系統數字電路的設計
    基於CPLD晶片和C8051F020實現聲探測系統數字電路的設計 張德,侯志國,江 發表於 2021-01-12 09:46:30   作者:張德,侯志國,江麗,張向暉,羅曉松 被動聲源探測定位技術是一種利用聲學傳聲器陣列和電子裝置接收運動目標的輻射噪聲