資料介紹
從單片機上知道,在上電的那一刻,MCU的程序指針會被初始化為上電復(fù)位時的地址,從那個地址處讀取將要執(zhí)行的指令,由此程序在 MCU上開始執(zhí)行(當(dāng)然在調(diào)用程序的 main之前,還有一系列其他的初始化要做,如堆棧的初始化,不過這些我們很少會去修改)。PC在上電時,和MCU差不多,不過讀取的是BIOS,有它完成了很多初始化操作,最后,調(diào)用系統(tǒng)的初始化函數(shù),將控制權(quán)交給了操作系統(tǒng),于是我們看到了Windows,Linux系統(tǒng)啟動了。
如果將操作系統(tǒng)看作是在處理器上跑的一個很大的裸機程序(就是直接在硬件上跑的程序,因為操作系統(tǒng)就是直接跑在CPU上的,這樣看待是可以的,不過這個裸機程序功能很多很強大),那么操作系統(tǒng)的啟動很像MCU程序的啟動。前者有一個很大的初始化程序完成很復(fù)雜的初始化,后者有一段不長的匯編代碼完成一些簡單的初始化。這一點看,它們在流程上是很相似的。
如果是系統(tǒng)上的程序啟動呢?它們是由系統(tǒng)來決定的。Linux上在shell下輸入。/p后,首先檢查是否是一個內(nèi)建的shell命令;如果不是,則shell假設(shè)它是一個可執(zhí)行文件(Linux上一般是elf格式),然后調(diào)用一些相關(guān)的函數(shù),將在硬盤上的p文件的內(nèi)容拷貝到內(nèi)存 (DDR RAM)中,并建立一個它的運行環(huán)境(當(dāng)然這里邊還有內(nèi)存映射、虛擬內(nèi)存、連接與加載等一些其它東西),準(zhǔn)備執(zhí)行。
由以上可知,單片機上的程序和平時在系統(tǒng)上運行的程序,在啟動時差異是很大的(如果將程序調(diào)用main以前的動作,都抽象為初始化的話,程序的啟動可以簡化為:建立運行環(huán)境+調(diào)用main函數(shù),這樣程序的執(zhí)行差異是不大的)。因為單片機上跑的程序(裸機程序)是和操作系統(tǒng)一樣跑在硬件上的,它們屬于一個層次的。過去之所以沒有區(qū)分出單片機上的程序和PC機上的程序的一些差異,就是沒有弄明白這一點。由此,以前的一些疑惑也就解開了。為什么在單片機上的程序不怎么使用malloc,而PC上經(jīng)常使用?因為單片機上沒有已經(jīng)寫好的內(nèi)存管理算法的代碼,而在PC上操作系統(tǒng)里運行的程序,libc已經(jīng)把這些都做了,只需要調(diào)用就可以了。如果在單片機上想用動態(tài)內(nèi)存,也可以,但是這些代碼要自己去實現(xiàn),并定義一個相應(yīng)的malloc,有時候一些公司會給提供一些庫函數(shù)可能會實現(xiàn)malloc,但是因為單片機上RAM內(nèi)存十分有限,如果不知道它的運行方式,估計會很危險。同樣,因為在PC的系統(tǒng)上運行的程序與裸機程序不同,裸機程序不會有動態(tài)鏈接,有的只是靜態(tài)鏈接。
- 為什么在單片機上的程序不怎么使用malloc,而PC上經(jīng)常使用?
- 實現(xiàn)PC機與單片機雙向通信的C語言程序設(shè)計實例免費下載 27次下載
- 使用51單片機實現(xiàn)PC串口通信程序和仿真免費下載 40次下載
- 使用Labview實現(xiàn)PC通信與單片機測控源程序的合集免費下載 24次下載
- 單片機與PC機串口通訊仿真的程序和電路圖免費下載 35次下載
- 如何使51單片機與PC進行串口通信詳細資料和程序免費下載
- 使用Visual Basic實現(xiàn)PC與多個單片機串口通信的資料和程序
- 單片機到PC機數(shù)據(jù)傳送實驗程序的資料免費下載 13次下載
- 單片機應(yīng)用程序綜合實例——單片機與接口技術(shù) 0次下載
- 單片機開發(fā)工具大全 2379次下載
- PC與單片機串口通信【多種任務(wù)程序集合】_程序案例 33次下載
- PC與單片機串口通信_labview程序案例 111次下載
- PC機與單片機串口通信程序設(shè)計.zip 0次下載
- PC機與單片機串口通信程序設(shè)計 0次下載
- 51單片機與PC串口通信程序 40次下載
- 單片機怎么寫入程序 829次閱讀
- 單片機里的程序是如何運行? 4548次閱讀
- 內(nèi)存管理模塊mem_malloc介紹及測試驗證實驗 2817次閱讀
- 單片機的主程序是如何執(zhí)行的 1w次閱讀
- 單片機實現(xiàn)多機通信的資料和程序 7856次閱讀
- 一個單片機與PC機通信的程序 5751次閱讀
- 基于RS485總線實現(xiàn)單片機與PC機的遠程控制設(shè)計 4648次閱讀
- 如何實現(xiàn)ATMEGA16單片機與PC機的通信 1498次閱讀
- 單片機與PC串口通信的程序及電路圖詳解 1.5w次閱讀
- 單片機延時程序基本知識匯總 2w次閱讀
- 怎么讀取單片機程序_單片機程序是如何執(zhí)行的_如何讀懂單片機程序 7.6w次閱讀
- STC單片機燒寫程序步驟說明 7.2w次閱讀
- 如何使用Keil3開發(fā)51單片機程序 7345次閱讀
- 單片機與程序設(shè)計(上) 3889次閱讀
- 單片機程序總跑飛?小技巧幫你忙 8629次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關(guān)電源基礎(chǔ)知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計與實現(xiàn)
- 0.61 MB | 2次下載 | 免費
- 651單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 751單片機大棚環(huán)境控制器仿真程序
- 1.10 MB | 2次下載 | 免費
- 8基于51單片機的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關(guān)電源設(shè)計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論