資料介紹
從單片機上知道,在上電的那一刻,MCU的程序指針會被初始化為上電復位時的地址,從那個地址處讀取將要執行的指令,由此程序在 MCU上開始執行(當然在調用程序的 main之前,還有一系列其他的初始化要做,如堆棧的初始化,不過這些我們很少會去修改)。PC在上電時,和MCU差不多,不過讀取的是BIOS,有它完成了很多初始化操作,最后,調用系統的初始化函數,將控制權交給了操作系統,于是我們看到了Windows,Linux系統啟動了。
如果將操作系統看作是在處理器上跑的一個很大的裸機程序(就是直接在硬件上跑的程序,因為操作系統就是直接跑在CPU上的,這樣看待是可以的,不過這個裸機程序功能很多很強大),那么操作系統的啟動很像MCU程序的啟動。前者有一個很大的初始化程序完成很復雜的初始化,后者有一段不長的匯編代碼完成一些簡單的初始化。這一點看,它們在流程上是很相似的。
如果是系統上的程序啟動呢?它們是由系統來決定的。Linux上在shell下輸入。/p后,首先檢查是否是一個內建的shell命令;如果不是,則shell假設它是一個可執行文件(Linux上一般是elf格式),然后調用一些相關的函數,將在硬盤上的p文件的內容拷貝到內存 (DDR RAM)中,并建立一個它的運行環境(當然這里邊還有內存映射、虛擬內存、連接與加載等一些其它東西),準備執行。
由以上可知,單片機上的程序和平時在系統上運行的程序,在啟動時差異是很大的(如果將程序調用main以前的動作,都抽象為初始化的話,程序的啟動可以簡化為:建立運行環境+調用main函數,這樣程序的執行差異是不大的)。因為單片機上跑的程序(裸機程序)是和操作系統一樣跑在硬件上的,它們屬于一個層次的。過去之所以沒有區分出單片機上的程序和PC機上的程序的一些差異,就是沒有弄明白這一點。由此,以前的一些疑惑也就解開了。為什么在單片機上的程序不怎么使用malloc,而PC上經常使用?因為單片機上沒有已經寫好的內存管理算法的代碼,而在PC上操作系統里運行的程序,libc已經把這些都做了,只需要調用就可以了。如果在單片機上想用動態內存,也可以,但是這些代碼要自己去實現,并定義一個相應的malloc,有時候一些公司會給提供一些庫函數可能會實現malloc,但是因為單片機上RAM內存十分有限,如果不知道它的運行方式,估計會很危險。同樣,因為在PC的系統上運行的程序與裸機程序不同,裸機程序不會有動態鏈接,有的只是靜態鏈接。
- 為什么在單片機上的程序不怎么使用malloc,而PC上經常使用?
- 實現PC機與單片機雙向通信的C語言程序設計實例免費下載 25次下載
- 使用51單片機實現PC串口通信程序和仿真免費下載 40次下載
- 使用Labview實現PC通信與單片機測控源程序的合集免費下載 24次下載
- 單片機與PC機串口通訊仿真的程序和電路圖免費下載 35次下載
- 如何使51單片機與PC進行串口通信詳細資料和程序免費下載
- 使用Visual Basic實現PC與多個單片機串口通信的資料和程序
- 單片機到PC機數據傳送實驗程序的資料免費下載 13次下載
- 單片機應用程序綜合實例——單片機與接口技術 0次下載
- 單片機開發工具大全 2301次下載
- PC與單片機串口通信【多種任務程序集合】_程序案例 33次下載
- PC與單片機串口通信_labview程序案例 111次下載
- PC機與單片機串口通信程序設計.zip 0次下載
- PC機與單片機串口通信程序設計 0次下載
- 51單片機與PC串口通信程序 40次下載
- 單片機里的程序是如何運行? 3908次閱讀
- 內存管理模塊mem_malloc介紹及測試驗證實驗 2619次閱讀
- 單片機的主程序是如何執行的 1w次閱讀
- 單片機實現多機通信的資料和程序 7539次閱讀
- 一個單片機與PC機通信的程序 5523次閱讀
- 基于RS485總線實現單片機與PC機的遠程控制設計 4415次閱讀
- 如何實現ATMEGA16單片機與PC機的通信 1405次閱讀
- 單片機與PC串口通信的程序及電路圖詳解 1.5w次閱讀
- 單片機程序設計時如何進行優化詳細資料概述 4632次閱讀
- 單片機延時程序基本知識匯總 2w次閱讀
- 怎么讀取單片機程序_單片機程序是如何執行的_如何讀懂單片機程序 7.4w次閱讀
- STC單片機燒寫程序步驟說明 7.2w次閱讀
- 如何使用Keil3開發51單片機程序 7158次閱讀
- 單片機與程序設計(上) 3786次閱讀
- 單片機程序總跑飛?小技巧幫你忙 8538次閱讀
下載排行
本周
- 1SMD LED選型手冊 貼片燈珠
- 5.47 MB | 3次下載 | 免費
- 2加密芯片的一種破解方法和對應加密方案改進設計
- 0.29 MB | 1次下載 | 免費
- 3明緯S-50-24開關電源電路圖.pdf
- 0.10 MB | 1次下載 | 5 積分
- 4多功能MPU芯片GC9005數據手冊
- 2.67 MB | 1次下載 | 免費
- 5碳化硅逆變焊機基本產品介紹
- 7.35 MB | 1次下載 | 免費
- 6基本半導體產品在Sic逆變焊機中的應用
- 7.27 MB | 1次下載 | 免費
- 7基本半導體產品在125kW工商業儲能PCS中的應用
- 10.74 MB | 1次下載 | 免費
- 8MOSFET參數解讀
- 1.59 MB | 1次下載 | 2 積分
本月
- 1使用單片機實現七人表決器的程序和仿真資料免費下載
- 2.96 MB | 44次下載 | 免費
- 23314A函數發生器維修手冊
- 16.30 MB | 13次下載 | 免費
- 3TPS54202H降壓轉換器評估模塊用戶指南
- 1.02MB | 9次下載 | 免費
- 4美的電磁爐維修手冊大全
- 1.56 MB | 9次下載 | 5 積分
- 5STM32F101x8/STM32F101xB手冊
- 1.69 MB | 8次下載 | 1 積分
- 6使用TL431設計電源
- 0.67 MB | 7次下載 | 免費
- 7感應筆電路圖
- 0.06 MB | 7次下載 | 免費
- 8不對稱半橋(AHB)反激變換器的分析與設計
- 0.68 MB | 6次下載 | 1 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935119次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233084次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73807次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65987次下載 | 10 積分
評論
查看更多