日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀] 單片機是沒有上操作系統(tǒng)的東西,在keil中編寫的代碼都是裸機代碼,深入編寫裸機代碼有助于了解硬件的特性。 若不是硬件特性已定的情況之下的其它流程都是代碼作祟。忽然想到來探探51單片機的執(zhí)行流程

單片機是沒有上操作系統(tǒng)的東西,在keil中編寫的代碼都是裸機代碼,深入編寫裸機代碼有助于了解硬件的特性。

若不是硬件特性已定的情況之下的其它流程都是代碼作祟。忽然想到來探探51單片機的執(zhí)行流程。這個念頭起源于最初見到每個51程序里面的主函數(shù)里面最終都掛一個while(1);語句。為何要加一句while死循環(huán)讓程序停留在main函數(shù)中呢。將while(1);語句去掉有什么影響么?


寫一個很簡單的程序試一下。

執(zhí)行以上程序,由P1端口控制的流水燈閃了一下。程序最終進入while(1);里糾纏去了,這個到好解釋。

現(xiàn)將while(1);語句屏蔽掉。我還以為程序不能被正確執(zhí)行了呢,因為退出了main主函數(shù),就像Render需要循環(huán)來實現(xiàn)一樣(盡管剛剛閃燈的程序不在循環(huán)之內(nèi),但我還是不由產(chǎn)生了這一錯覺)。程序執(zhí)行的結(jié)果是:流水燈不停的閃爍!

看到這個現(xiàn)象后的猜想及動作^-^:

(1) 這塊板壞了吧!(在帶操作系統(tǒng)如linux字符界面下運行一個不帶死循環(huán)的C語言文件完畢后就會返回到linux shell程序中)。趕緊換個板再測試一下,顯然還是一樣的結(jié)果。

(2) 單片機中將一直執(zhí)行main函數(shù)中的最后一個(些)語句?(基于帶OS平臺下運行標準C語言文件的經(jīng)驗,可從來沒有想過是main函數(shù)被多次調(diào)用或多次進入)

(3) 單片機內(nèi)將C語言指令取出來加載到單片機內(nèi),單片機內(nèi)自動生成一個主程序循環(huán)執(zhí)行C語言中main函數(shù)的內(nèi)容?(雖然很荒唐,還是想了)

(4) 趕快谷歌百度一下單片機的執(zhí)行流程(雖然在谷歌百度時以“51單片機程序執(zhí)行流程”搜索,沒有搜到相關(guān)內(nèi)容)。換樸實的搜索詞:“51單片機 main”。然后就出現(xiàn)跟我一樣帶有疑問的問題:為什么main函數(shù)中不加while(1);語句之后程序會反復執(zhí)行呢?回答的關(guān)鍵詞包括“程序跑飛、看門狗、復位”。

(5) 趁上嵌入式的機會將“51單片機程序執(zhí)行流程”搬出來并向老師講述了我所寫程序的得到的現(xiàn)象,包括我怎么驗證呀等等。

老師的回答:Keil C51程序自動加載了一個名為”STARTUP.A51”的文件,在這個文件里面進行了一系列的初始化操作后進入用戶編寫的C語言程序入口main函數(shù)中,main函數(shù)執(zhí)行完畢后,STARTUP.A51文件后有一句跳轉(zhuǎn)到程序入口main函數(shù)的語句,所以會再次進入C語言主程序main函數(shù)中執(zhí)行相關(guān)內(nèi)容。

然后我用keil軟件模擬了運行一下以上那一段代碼:

程序開始運行就在程序入口main函數(shù)的第一條語句之處,DISAssembly窗口是c語言代碼與匯編代碼相對應的窗口,前面是地址,后面的是C語言對應的匯編語句。下面的窗口是相應文件的運行代碼的位置,由黃色箭頭指向當前正要執(zhí)行的代碼。然后點擊單步運行工具條,指導跳出main函數(shù)為止,程序跳轉(zhuǎn)到STARTUP.A51中的以下代碼位置:

繼續(xù)點擊單步調(diào)試直到進入一個循環(huán)中:


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

8位單片機在嵌入式設(shè)計領(lǐng)域已經(jīng)成為半個多世紀以來的主流選擇。盡管嵌入式系統(tǒng)市場日益復雜,8位單片機依然不斷發(fā)展,積極應對新的挑戰(zhàn)和系統(tǒng)需求。如今,Microchip推出的8位PIC?和AVR?單片機系列,配備了先進的獨立...

關(guān)鍵字: 單片機 嵌入式 CPU

在嵌入式系統(tǒng)開發(fā)中,程序燒錄是連接軟件設(shè)計與硬件實現(xiàn)的關(guān)鍵環(huán)節(jié)。當前主流的單片機燒錄技術(shù)已形成ICP(在電路編程)、ISP(在系統(tǒng)編程)、IAP(在應用編程)三大技術(shù)體系,分別對應開發(fā)調(diào)試、量產(chǎn)燒錄、遠程升級等不同場景。...

關(guān)鍵字: 單片機 ISP ICP IAP 嵌入式系統(tǒng)開發(fā)

在嵌入式系統(tǒng)開發(fā)中,看門狗(Watchdog Timer, WDT)是保障系統(tǒng)可靠性的核心組件,其初始化時機的選擇直接影響系統(tǒng)抗干擾能力和穩(wěn)定性。本文從硬件架構(gòu)、軟件流程、安全規(guī)范三個維度,系統(tǒng)分析看門狗初始化的最佳實踐...

關(guān)鍵字: 單片機 看門狗 嵌入式系統(tǒng)

本文中,小編將對單片機予以介紹,如果你想對它的詳細情況有所認識,或者想要增進對它的了解程度,不妨請看以下內(nèi)容哦。

關(guān)鍵字: 單片機 開發(fā)板 Keil

在這篇文章中,小編將對PLC的相關(guān)內(nèi)容和情況加以介紹以幫助大家增進對它的了解程度,和小編一起來閱讀以下內(nèi)容吧。

關(guān)鍵字: PLC 模塊化 程序

隨著單片機系統(tǒng)越來越廣泛地應用于消費類電子、醫(yī)療、工業(yè)自動化、智能化儀器儀表、航空航天等各領(lǐng)域,單片機系統(tǒng)面臨著電磁干擾(EMI)日益嚴重的威脅。電磁兼容性(EMC)包含系統(tǒng)的發(fā)射和敏感度兩方面的問題。

關(guān)鍵字: 單片機 電磁兼容

以下內(nèi)容中,小編將對單片機的相關(guān)內(nèi)容進行著重介紹和闡述,希望本文能幫您增進對單片機的了解,和小編一起來看看吧。

關(guān)鍵字: 單片機 復位電路

在這篇文章中,小編將為大家?guī)韱纹瑱C的相關(guān)報道。如果你對本文即將要講解的內(nèi)容存在一定興趣,不妨繼續(xù)往下閱讀哦。

關(guān)鍵字: 單片機 異常復位

今天,小編將在這篇文章中為大家?guī)韱纹瑱C的有關(guān)報道,通過閱讀這篇文章,大家可以對它具備清晰的認識,主要內(nèi)容如下。

關(guān)鍵字: 單片機 仿真器

單片機將是下述內(nèi)容的主要介紹對象,通過這篇文章,小編希望大家可以對它的相關(guān)情況以及信息有所認識和了解,詳細內(nèi)容如下。

關(guān)鍵字: 單片機 中斷 boot
關(guān)閉