国产在线综合网,天天插夜夜操,免费观看三级毛片,国产啪,美女视频美女视频美女视频,国产丝袜美腿美女视频,杨幂怼人视频

深圳市廣林實(shí)業(yè)有限公司

主營:深圳裝飾裝修材料銷售,深圳環(huán)保節(jié)能材料研發(fā),深圳機(jī)械設(shè)備出售

免費(fèi)店鋪在線升級(jí)

聯(lián)系方式
  • 公司: 深圳市廣林實(shí)業(yè)有限公司
  • 地址: 深圳市前海深港合作區(qū)前灣一路1號(hào)A棟201室
  • 聯(lián)系: 盧晨川
  • 手機(jī): 18695112246
  • 電話: 0755-85544695
  • 一鍵開店
產(chǎn)品分類

爍摯:這些單片機(jī)面試題你會(huì)做嗎?附帶解析

2019-06-06 02:51:36  2160 次瀏覽

目錄1、關(guān)于時(shí)鐘周期、機(jī)器周期和指令周期2、堆棧相關(guān)3、臨界區(qū)你應(yīng)該知道的一切

1、單片機(jī)的時(shí)鐘周期是什么?機(jī)器周期?指令周期?它們之間是什么關(guān)系?

2、堆棧的工作原理是什么,都有什么操作流程?

3、什么是臨界區(qū),臨界區(qū)有什么用處?

解析:

1、關(guān)于時(shí)鐘周期、機(jī)器周期和指令周期

時(shí)鐘周期也稱為振蕩周期,定義為時(shí)鐘脈沖的倒數(shù)(可以這樣來理解,時(shí)鐘周期就是單片機(jī)外接晶振的倒數(shù),例如12M的晶振,它的時(shí)間周期就是1/12 us),是計(jì)算機(jī)中基本的、小的時(shí)間單位。

在一個(gè)時(shí)鐘周期內(nèi),CPU僅完成一個(gè)基本的動(dòng)作。對(duì)于某種單片機(jī),若采用了1MHZ的時(shí)鐘頻率,則時(shí)鐘周期為1us;若采用4MHZ的時(shí)鐘頻率,則時(shí)鐘周期為250us。由于時(shí)鐘脈沖是計(jì)算機(jī)的基本工作脈沖,它控制著計(jì)算機(jī)的工作節(jié)奏(使計(jì)算機(jī)的每一步都統(tǒng)一到它的步調(diào)上來)。顯然,對(duì)同一種機(jī)型的計(jì)算機(jī),時(shí)鐘頻率越高,計(jì)算機(jī)的工作速度就越快。但是,由于不同的計(jì)算機(jī)硬件電路和器件的不完全相同,所以其所需要的時(shí)鐘周頻率范圍也不一定相同。我們學(xué)習(xí)的8051單片機(jī)的時(shí)鐘范圍是1.2MHz-12MHz。

在8051單片機(jī)中把一個(gè)時(shí)鐘周期定義為一個(gè)節(jié)拍(用P表示),二個(gè)節(jié)拍定義為一個(gè)狀態(tài)周期(用S表示)。

機(jī)器周期

在計(jì)算機(jī)中,為了便于管理,常把一條指令的執(zhí)行過程劃分為若干個(gè)階段,每一階段完成一項(xiàng)工作。例如,取指令、存儲(chǔ)器讀、存儲(chǔ)器寫等,這每一項(xiàng)工作稱為一個(gè)基本操作。完成一個(gè)基本操作所需要的時(shí)間稱為機(jī)器周期。一般情況下,一個(gè)機(jī)器周期由若干個(gè)S周期(狀態(tài)周期)組成。8051系列單片機(jī)的一個(gè)機(jī)器周期同6個(gè)S周期(狀態(tài)周期)組成。前面已說過一個(gè)時(shí)鐘周期定義為一個(gè)節(jié)拍(用P表示),二個(gè)節(jié)拍定義為一個(gè)狀態(tài)周期(用S表示),8051單片機(jī)的機(jī)器周期由6個(gè)狀態(tài)周期組成,也就是說一個(gè)機(jī)器周期=6個(gè)狀態(tài)周期=12個(gè)時(shí)鐘周期。

指令周期

指令周期是執(zhí)行一條指令所需要的時(shí)間,一般由若干個(gè)機(jī)器周期組成。指令不同,所需的機(jī)器周期數(shù)也不同。對(duì)于一些簡單的的單字節(jié)指令,在取指令周期中,指令取出到指令寄存器后,立即譯碼執(zhí)行,不再需要其它的機(jī)器周期。對(duì)于一些比較復(fù)雜的指令,例如轉(zhuǎn)移指令、乘法指令,則需要兩個(gè)或者兩個(gè)以上的機(jī)器周期。

通常含一個(gè)機(jī)器周期的指令稱為單周期指令,包含兩個(gè)機(jī)器周期的指令稱為雙周期指令。

2、堆棧相關(guān)

堆棧是內(nèi)存中一段連續(xù)的存儲(chǔ)區(qū)域,用來保存一些臨時(shí)的數(shù)據(jù),比如,可以保存中斷指令I(lǐng)NT中的標(biāo)志寄存器值、代碼段寄存器CS值、指令指針寄存器IP值;還可以用以RET指令從中可以得到返回的地址;堆棧還可以保存其他的數(shù)據(jù)等等。

在匯編語言中堆棧操作由PUSH、POP兩條指令來完成。它的操作數(shù)均為子類型[兩個(gè)字節(jié)]進(jìn)行操作。

程序內(nèi)存可以分為:堆區(qū)、棧區(qū)、全局區(qū)、程序代碼區(qū)、文字常亮區(qū)。在一個(gè)程序編譯完后,已經(jīng)為全局變量、靜態(tài)變量分配好內(nèi)存空間,所以在函數(shù)運(yùn)行的時(shí)候,程序內(nèi)存要為局部變量非配好??臻g,當(dāng)中斷來時(shí),也需要把函數(shù)指針入棧,用來保護(hù)當(dāng)前的情況(保護(hù)現(xiàn)場),以便于中斷處理完之后可以再回到之前的函數(shù)。

棧是從高到低的分配或者說先進(jìn)后出(就像子彈夾),堆是從低到高的分配(就是先到先買,后到后買)。在一般的交談中我們所說的堆棧默認(rèn)為棧(子彈夾)。然而,堆棧可以分為硬堆棧和軟堆棧,硬堆棧就是SP(stack pointer棧頂元素的下一個(gè)位置,所以數(shù)據(jù)入棧的時(shí)候,SP先加1,再壓入數(shù)據(jù),出棧時(shí),數(shù)據(jù)先出,然后SP再減1),軟堆棧就是在硬堆棧和全局變量區(qū)之間的空間。

3、臨界區(qū)你應(yīng)該知道的一切

1.臨界段代碼,也叫臨界區(qū),是指那些必須完整連續(xù)運(yùn)行,不可被打斷的代碼段。

2. 讀取或者修改變量(特別是用于任務(wù)間通信的全局變量)的代碼,一般來說這是常見的臨界代碼。

調(diào)用公共函數(shù)的代碼,特別是不可重入的函數(shù),如果多個(gè)任務(wù)都訪問這個(gè)函數(shù),結(jié)果是可想而知的??傊瑢?duì)于臨界段要做到執(zhí)行時(shí)間越短越好,否則會(huì)影響系統(tǒng)的實(shí)時(shí)性。

3.中斷處理程序和任務(wù)都會(huì)訪問的臨界段代碼,需要使用關(guān)中斷的方法加以保護(hù);僅由任務(wù)訪問的臨界段代碼,可以通過給調(diào)度器上鎖的方法來保護(hù)。

網(wǎng)友評(píng)論
0條評(píng)論 0人參與
最新評(píng)論
  • 暫無評(píng)論,沙發(fā)等著你!
百業(yè)店鋪 更多 >

特別提醒:本頁面所展現(xiàn)的公司、產(chǎn)品及其它相關(guān)信息,均由用戶自行發(fā)布。
購買相關(guān)產(chǎn)品時(shí)務(wù)必先行確認(rèn)商家資質(zhì)、產(chǎn)品質(zhì)量以及比較產(chǎn)品價(jià)格,慎重作出個(gè)人的獨(dú)立判斷,謹(jǐn)防欺詐行為。

回到頂部