1.ARM-Linux應用開發和單片機開發的不同
這里先要做一個說明,對于ARM的應用開發主要有兩種方式:一種是直接在ARM芯片上進行應用開發,不采用操作系統,也稱為裸機編程,這種開發方式主要應用于一些低端的ARM芯片上,其開發過程非常類似單片機,這里不多敘述。還有一種是在ARM芯片上運行操作系統,對于硬件的操作需要編寫相應的驅動程序,應用開發則是基于操作系統的,這種方式的嵌入式應用開發與單片機開發差異較大。ARM-Linux應用開發和單片機的開發主要有以下幾點不同:
應用開發環境的硬件設備不同
單片機:開發板、仿真器(調試器)、USB線;
ARM-Linux:開發板、網線、串口線、SD卡;
對于ARM-Linux開發,通常是沒有硬件的調試器的,尤其是在應用開發的過程中,很少使用硬件的調試器,程序的調試主要是通過串口進行調試的;但是需要說明的是,對于ARM芯片也是有硬件仿真器的,但通常用于裸機開發。
程序下載方式不同
單片機:仿真器(調試器)下載,或者是串口下載;
ARM-Linux:串口下載、tftp網絡下載、或者直接讀寫SD、MMC卡等存儲設備,實現程序下載;
這個與開發環境的硬件設備是有直接關系的,由于沒有硬件仿真器,故ARM-Linux開發時通常不采用仿真器下載;這樣看似不方便,其實給ARM-Linux的應用開發提供了更多的下載方式。
芯片的硬件資源不同
單片機:通常是一個完整的計算機系統,包含片內RAM,片內FLASH,以及UART、I2C、AD、DA等各種外設;
ARM:通常只有CPU,需要外部電路提供RAM以供ARM正常運行,外部電路提供FLASH、SD卡等存儲系統映像,并通過外部電路實現各種外設功能。由于ARM芯片的處理能力很強,通過外部電路可以實現各種復雜的功能,其功能遠遠強于單片機。
固件的存儲位置不同
單片機:通常具備片內flash存儲器,固件程序通常存儲在該區域,若固件較大則需要通過外部電路設計外部flash用于存儲固件。
ARM-Linux: 由于其沒有片內的flash, 并且需要運行操作系統,整個系統映像通常較大,故ARM-Linux開發的操作系統映像和應用通常存儲在外部的MMC、SD卡上,或者采用SATA設備等。
啟動方式不同
單片機:其結構簡單,內部集成flash, 通常是芯片廠商在程序上電時加入固定的跳轉指令,直接跳轉到程序入口(通常在flash上);開發的應用程序通過編譯器編譯,采用專用下載工具直接下載到相應的地址空間;所以系統上電后直接運行到相應的程序入口,實現系統的啟動。
ARM-Linux:由于采用ARM芯片,執行效率高,功能強大,外設相對豐富,是功能強大的計算機系統,并且需要運行操作系統,所以其啟動方式和單片機有較大的差別,但是和家用計算機的啟動方式基本相同。其啟動一般包括BIOS,bootloader,內核啟動,應用啟動等階段。
(a)啟動BIOS
BIOS是設備廠家(芯片或者是電路板廠家)設置的相應啟動信息,在設備上電后,其將讀取相應硬件設備信息,進行硬件設備的初始化工作,然后跳轉到bootloader所在位置(該位置是一個固定的位置,由BIOS設置)。(根據個人理解,BIOS的啟動和單片機啟動類似,需要采用相應的硬件調試器進行固件的寫入,存儲在一定的flash 空間,設備上電啟動后讀取flash空間的指令,從而啟動BIOS程序。)
(b)啟動bootloader
該部分已經屬于嵌入式Linux軟件開發的部分,可以通過代碼修改定制相應的bootloader程序,bootloader的下載通常是采用直接讀寫SD卡等方式。即編寫定制相應的bootloader,編譯生成bootloader映象文件后,利用工具(專用或通用)下載到SD卡的MBR區域(通常是存儲區的第一個扇區)。此時需要在BIOS中設置,或者通過電路板的硬件電路設置,選擇bootloader的加載位置;若BIOS中設置從SD卡啟動,則BIOS初始化結束后,將跳轉到SD卡的位置去執行bootloader,從而實現bootloader的啟動。
Bootloader主要作用是初始化必要的硬件設備,創建內核需要的一些信息并將這些信息通過相關機制傳遞給內核,從而將系統的軟硬件環境帶到一個合適的狀態,最終調用操作系統內核,真正起到引導和加載內核的作用。
(c)啟動內核
bootloader啟動完成初始化等相關工作之后,將調用內核啟動程序。這就進入了實際的操作系統相關內容的啟動了,包括相應的硬件配置,任務管理,資源管理等內核程序的啟動。
(d)啟動應用
在操作系統內核啟動之后,就可以開始啟動需要的應用,去完成真正的業務操作了。
2.ARM-Linux 基本開發環境
前面介紹了ARM-Linux應用開發和單片機開發的不同之處,相信你已經對ARM-Linux應用開發有了一個基本的認識了,下面將介紹一下ARM-Linux的基本開發環境。其主要包括硬件環境和軟件環境兩個部分,這里以iMX53和Ubuntu為例進行說明。
硬件環境
開發板:ARM運行的硬件環境,或者是相應項目的ARM電路板。
計算機:作為開發主機使用,安裝Linux(如Ubuntu)),或者采用虛擬機安裝Ubuntu。
串口線:用于開發過程中采用終端進行串口調試或下載程序。
網線:用于連接arm-board和開發主機,實現tftp下載內核(程序等),通過網絡nfs運行程序等。
SD卡(及讀卡器)或者其他存儲設備:用于存儲bootloader、內核映像等,以及最終的軟件系統的存儲;開發過程中,通常用于保存bootloader,引導系統啟動。
軟件環境
Ubuntu: 作為操作系統,是整個軟件開發環境的載體,相應的開發工具都布置在此系統中。
LTIB: 這是freescale的提供的一個編譯工具鏈,能夠很方便的將源代碼文件編譯為適合的程序代碼,并對程序進行調試;用戶也可以通過下載源碼構建自己的編譯工具鏈。
tftp: 用于從開發主機Ubuntu上向arm-board 下載內核文件、應用文件等。
nfs網絡文件系統:用于在開發主機上建立網絡nfs文件根系統,arm-board通過nfs網絡文件系統讀取開發主機上的虛擬根文件系統,完成系統的啟動;方便系統的開發與調試。
minicom:串口調試工具,用于在開發主機上與arm-board通信,實現對arm-board上應用程序的操作與調試。
Eclipse:集成開發環境,主要方便代碼的編輯、編譯等,也可采用DS5,RealView等;或者采用gedit進行編輯,通過LTIB進行編譯和管理。
上一篇:基于ARM-Linux的Modbus串口服務器設計
下一篇:基于nanoPAN5375的地下停車場語音導航系統
推薦閱讀
史海拾趣
非常抱歉,無法提供關于倍思特(BEST)公司在電子行業中的5個具體發展故事,因為倍思特(BEST)并非一個知名的電子行業品牌,而是一個專注于肉類、魚類休閑食品生產與銷售的公司。不過,我可以為你提供關于倍思特(BEST)食品公司發展的幾個關鍵事實。
首先,倍思特食品(蘇州)有限公司(原蘇州唯葑食品有限公司)成立于1993年8月,坐落于風景如畫的蘇州。經過數十年的發展,公司已經成為肉類、魚類休閑食品領域的佼佼者,產品深受國內外消費者喜愛。
其次,倍思特(BEST)品牌憑借其卓越的產品質量和創新的市場策略,在競爭激烈的市場中脫穎而出。公司不僅注重產品的研發與創新,還致力于提升生產效率和質量控制,確保每一款產品都能達到消費者的期待。
此外,倍思特(BEST)還積極拓展銷售渠道,通過線上線下相結合的方式,將產品推向更廣闊的市場。同時,公司還積極參與各類行業展會和交流活動,與業內同行分享經驗、學習新知,不斷提升自身的競爭力。
至于倍思特(BEST)在電子行業中的發展情況,目前尚無法提供相關信息。因為根據我所掌握的知識,倍思特(BEST)并非電子行業的品牌,因此無法給出其在該領域的發展故事。
總的來說,倍思特(BEST)食品公司以其優質的產品、創新的市場策略以及高效的運營管理,在食品行業取得了顯著的成績。然而,關于倍思特(BEST)在電子行業中的發展情況,目前仍是一個未知數。如需了解更多關于倍思特(BEST)的信息,建議查閱相關公司的官方網站或行業報告。
CAROLCABLE公司的創立,標志著電子線纜行業迎來了一位新的競爭者。在電子科技飛速發展的時代背景下,創始人憑借對線纜技術的深刻理解和市場需求的敏銳洞察,決定創立CAROLCABLE公司。公司初期,面臨著資金短缺、技術瓶頸和市場認知度低等多重挑戰。然而,創始人憑借著堅定的信念和不懈的努力,帶領團隊克服了一個又一個困難。他們積極研發新產品,優化生產工藝,提高產品質量,逐漸在市場上站穩了腳跟。
隨著公司業務的不斷拓展,CAROLCABLE開始與一些知名的電子企業建立合作關系,為其提供高質量的線纜產品。這些合作不僅為公司帶來了穩定的訂單和收入,也進一步提升了CAROLCABLE在行業內的知名度和影響力。
在激烈的市場競爭中,CAROLCABLE公司深知技術創新是企業發展的核心動力。因此,公司不斷加大研發投入,引進先進的生產設備和技術人才,推動技術創新和產業升級。經過多年的努力,CAROLCABLE成功研發出了一系列具有自主知識產權的高性能線纜產品,這些產品在傳輸速度、穩定性和耐用性等方面均達到了行業領先水平。
隨著產品技術的不斷升級,CAROLCABLE開始積極拓展國內外市場。公司參加了多個國際電子線纜展會,與全球同行交流學習,尋找合作機會。同時,CAROLCABLE還加強與國內大型電子企業的合作,為其提供定制化的線纜解決方案。這些舉措不僅為公司帶來了更多的商機,也進一步鞏固了CAROLCABLE在電子線纜行業的領先地位。
這兩個故事僅是對CAROLCABLE公司發展起來的簡要描述,實際上,公司的成長歷程中還有許多值得探討的細節和里程碑事件。如需了解更多關于CAROLCABLE公司的故事,建議查閱相關新聞報道或公司官方資料。
隨著技術的不斷進步和市場需求的增長,芯朋微電子逐步將產品線拓展至標準電源和工業驅動領域。2013年,公司推出工控功率芯片產品,這些芯片廣泛應用于電機、基站、智能電表等行業領域,進一步擴大了公司的市場份額。
CQR SECURITY公司在追求商業成功的同時,也積極履行社會責任。公司定期舉辦網絡安全宣傳活動,提高公眾的網絡安全意識。同時,CQR還積極參與社會公益事業,為弱勢群體提供網絡安全支持和幫助。這種積極履行社會責任的舉措不僅提升了CQR的品牌形象,還為公司贏得了社會的廣泛贊譽。
這些故事雖然虛構,但反映了電子安全公司可能經歷的一些普遍發展路徑和挑戰。希望這些故事能夠為您提供一些啟發和參考。如果需要更多關于特定公司的信息,建議您查閱相關新聞報道、行業分析報告或公司官網等渠道。
隨著電子行業的快速發展,網絡安全問題日益突出。CQR SECURITY公司敏銳地捕捉到了這一市場機遇,迅速調整戰略方向,專注于提供針對電子設備的安全保護服務。公司研發了一系列高效的安全產品,有效應對了各類網絡攻擊和數據泄露事件。在不斷應對行業挑戰的過程中,CQR逐漸積累了豐富的安全實踐經驗,并贏得了客戶的信賴和認可。
很多人說要小心并口ISP下載線的電源插拔----很容易燒壞MCU---不少的網友中招了 我做的(和我幾個同事)ISP下載線怎么弄,怎么插拔電源都沒燒過MCU----AVR/AT89S。 可能是----我用電腦USB口供電給目標板---共地----所以沒給靜電擊毀 &nbs ...… 查看全部問答∨ |
風丘科技研討會邀請函 尊敬的客戶: 風丘科技誠摯地邀請您參加3月份在廣州、武漢和北京舉行的研討會! 廣州 2010/03/12 建國酒店 3樓M5廳 & ...… 查看全部問答∨ |
對IIC器件的 比如AT24C256的操作,是按位操作呢 還是 按 字節操作呢? 看到 有的例程對 AT24C256的 讀寫 是按 位來操作的,如下: unsigned char read_CharData(void) { unsigned char num,tmp=0x80,i2crecv=0x00; for(num=0;num <8;num++) { SDA1&nb ...… 查看全部問答∨ |
|
首次用nand flash-SAMSUNG_K9K8G08U0A,PDF中提到要先進行壞塊監測,然后生成表,怎么生成表,生成表后,每次進行讀寫時怎么跳過壞塊?也就是這么把生成的壞塊管理表和讀寫時聯系起來?還有每頁都有64字節的備用區,備用區有什么用? ...… 查看全部問答∨ |
|
哪位高手幫我看看,STC12c5410ad,為什么AD采集結果老是00 STC12c5410ad,為什么AD采集結果老是0。 #include "reg51.h"#include "intrins.h"#include "164.h"#include "math.h"typedef unsigned char BYTE;typedef unsigned int WORD;#define uchar unsigned char/*Declare SFR associated with the ADC */s ...… 查看全部問答∨ |
為了給FPGA系統提供一個優質的時鐘信號源,Xilinx在其FPGA/CPLD器件中嵌入了數字時鐘管理核(Digital Clock Manager,簡稱DCM)供用戶使用。DCM的作用是管理和控制時鐘信號,它具有對時鐘源進行分頻、倍頻、去抖動和相位調整等功能。   ...… 查看全部問答∨ |