版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第第頁(yè)單片機(jī)啟動(dòng)文件.s有什么作用?在我們使用keic51創(chuàng)建一個(gè)(51單片機(jī))項(xiàng)目時(shí),會(huì)有如下圖所示的提示:
(keil)創(chuàng)建新項(xiàng)目時(shí),提示是否添加啟動(dòng)文件
一般情況下,需要選擇“是”。當(dāng)然,也可以選擇不加。那么,這個(gè)啟動(dòng)文件的作用是什么?什么情況下需要加,什么情況下可以不加?
今天我們就來(lái)詳細(xì)了解一下這個(gè)啟動(dòng)文件的內(nèi)容,看明白這個(gè)內(nèi)容后,我們就會(huì)有種恍然大悟的感覺(jué):“哦,原來(lái)是這樣?。 ?/p>
啟動(dòng)代碼第一段
以下是啟動(dòng)代碼原文第一段:
$NOMOD51;;ThisfileispartoftheC51Com(pi)lerpackage;Copyright(c)1988-2023KeilElektronikGmbHandKeilSoftware,Inc.;Version8.01;;***>>***;;STARTUP.A51:Thiscodeisexecu(te)dafterprocessorreset.;;TotranslatethisfileuseA51withthefollowinginvoca(ti)on:;;A51STARTUP.A51;;TolinkthemodifiedSTARTUP.OBJfiletoyourapplicationusethefollowing;Lx51invocation:;;Lx51yourobjectfilelist,STARTUP.OBJcontrols;;;;User-definedPower-OnInitializationofMemory;;WiththefollowingEQUstatementstheinitializationofmemory;atprocessorreset(can)bedefined:;;IDATALEN:IDATAmemorysize;Note:Theabsolutestart-(ad)dressofIDATAmemoryisalways0;TheIDATAspaceoverlapsphysicallytheDATAandBITareas.IDATALENEQU80H;;XDATASTART:XDATAmemorystartaddress;TheabsolutestartaddressofXDATAmemoryXDATASTARTEQU0;;XDATALEN:XDATAmemorysize;ThelengthofXDATAmemoryinbytes.XDATALENEQU0;;PDATASTART:PDATAmemorystartaddress;TheabsolutestartaddressofPDATAmemoryPDATASTARTEQU0H;;PDATALEN:PDATAmemorysize;ThelengthofPDATAmemoryinbytes.PDATALENEQU0H;;
以下是啟動(dòng)代碼第一段的翻譯:
不使用預(yù)先定義的SFR。就是告訴(匯編)器不使用預(yù)定義的(寄存器)名,因?yàn)閰R編器內(nèi)部定義了51的寄存器名,但在實(shí)際使用時(shí)會(huì)用51的擴(kuò)展(芯片)例如52之類的,如果包含了52的頭文件就會(huì)出現(xiàn)重復(fù)定義所以要先聲明一下不適用匯編器內(nèi)部定義的寄存器名。
這個(gè)文件是C51編譯器包的一部分
版權(quán)所有(c)1988-2023KeilElektronikGmbH和KeilSoftware,Inc。
版本8.01
***>>***
STARTUP.A51里面的代碼在處理器復(fù)位后執(zhí)行。
用下面的命令行語(yǔ)句調(diào)用A51進(jìn)行編譯產(chǎn)生目標(biāo)文件,
A51STARTUP.A51
用下面的命令行語(yǔ)句調(diào)用BL51連接器把STARTUP.OBJ目標(biāo)文件連接到(程序代碼)中,
Lx51invocation:
Lx51調(diào)用
Lx51調(diào)用目標(biāo)文件列表,由STARTUP.OBJ目標(biāo)文件控制
用戶自定義上電后需要初始化的儲(chǔ)存區(qū)域(初始化(RAM)區(qū)的數(shù)據(jù))
在處理器復(fù)位時(shí)通過(guò)下列EQU偽指令來(lái)初始化內(nèi)存(RAM單元)
IDATALEN:IDATA存儲(chǔ)區(qū)的大小,可以根據(jù)自己的選擇修改
IDATA絕對(duì)的起始地址總是0
IDATA區(qū)涵蓋DATA和BIT區(qū)(DATA區(qū)(直接尋址區(qū))以及BIT區(qū)(位尋址區(qū))),;至少要保證與C51編譯器運(yùn)行庫(kù)有關(guān)的存儲(chǔ)器的空間進(jìn)行0初始化
XDATA存儲(chǔ)區(qū)的起始地址
XDATA內(nèi)存的絕對(duì)起始地址。
XDATA存儲(chǔ)器空間的絕對(duì)起始地址為0,
XDATA空間的大小
XDATA空間的長(zhǎng)度以字節(jié)為單位
說(shuō)明xdata的字節(jié)數(shù)清0,該值默認(rèn)為0
PDATA空間的大小
PDATA存儲(chǔ)器的空間的絕對(duì)起始地址
需用0進(jìn)行初始化的PDATA存儲(chǔ)器的空間字節(jié)數(shù)
在51系列中data、idata、xdata、pdata的區(qū)別:
data:固定指前面0x00-0x7f的128個(gè)RAM。
idata:固定指前面0x00-0xff的256個(gè)RAM,其中前128和data的128完全相同,只是因?yàn)樵L問(wèn)的方式不同。
xdata:外部擴(kuò)展RAM,一般指外部0x0000-0xffff空間。
pdata:外部擴(kuò)展RAM的低256個(gè)字節(jié)。
需用0進(jìn)行初始化的IDATA存儲(chǔ)器空間的字節(jié)數(shù),IDATALEN只是一個(gè)標(biāo)號(hào)(與IDATA不一樣哦),EQU只是做宏一樣的替換,類似于(C語(yǔ)言)中的#defineuint(unsignedint),以上的代碼使得程序以后在碰到IDATALEN時(shí)替換成80H。
IDATALEN可以定義為你自己喜歡的名字如MyDataLen等。之所以用IDATALEN,一是為了好記,二是為了表明和IDATA有關(guān)。
各種常數(shù)名及其含義
啟動(dòng)代碼第二段
我們繼續(xù)來(lái)看看51單片機(jī)的啟動(dòng)代碼里面都有哪些東西。
下面先列出51單片機(jī)啟動(dòng)代碼第二部分的原文:
;;;ReentrantStackInitialization;;ThefollowingEQUstatementsdefinethestackpointerforreentrant;functionsandinitializedit:;;StackSpaceforreentrantfunctionsintheSMALLmodel.;IBPSTACK:EnableSMALLmodelreentrantstack;StackspaceforreentrantfunctionsintheSMALLmodel.IBPSTACKEQU0;setto1ifsmallreentrantisused.;IBPSTACKTOP:EndaddressofSMALLmodelstack;Setthetopofthestacktothehighestlocation.IBPSTACKTOPEQU0xFF+1;default0FFH+1;;;StackSpaceforreentrantfunctionsintheLARGEmodel.;XBPSTACK:EnableLARGEmodelreentrantstack;StackspaceforreentrantfunctionsintheLARGEmodel.XBPSTACKEQU0;setto1iflargereentrantisused.;XBPSTACKTOP:EndaddressofLARGEmodelstack;Setthetopofthestacktothehighestlocation.XBPSTACKTOPEQU0xFFFF+1;default0FFFFH+1;;;StackSpaceforreentrantfunctionsintheCOMPACTmodel.;PBPSTACK:EnableCOMPACTmodelreentrantstack;StackspaceforreentrantfunctionsintheCOMPACTmodel.PBPSTACKEQU0;setto1ifcompactreentrantisused.;;PBPSTACKTOP:EndaddressofCOMPACTmodelstack;Setthetopofthestacktothehighestlocation.PBPSTACKTOPEQU0xFF+1;default0FFH+1;;
原文全是偽指令、宏定義這些東東,看起來(lái)確實(shí)很頭疼啊。我們簡(jiǎn)單的翻譯一下吧。
以下是第二段啟動(dòng)代碼翻譯:
再入函數(shù)模擬初始化;
以下用EQU指令定義了再入函數(shù)模擬堆棧指針的初始化;
使用SMALL存儲(chǔ)器模式時(shí)再入函數(shù)的堆??臻g;
IBPSTACKEQU0;使用SMALL存儲(chǔ)器模式再入函數(shù)時(shí)將其設(shè)置成1;
IBPSTACKTOPEQU0FFH+1;將堆棧頂設(shè)置為最高地址+1;
使用LARGE存儲(chǔ)器模式時(shí)再入函數(shù)的堆??臻g;
XBPSTACKEQU0;使用LARGE存儲(chǔ)器模式再入函數(shù)時(shí)將其設(shè)置成1;
XBPSTACKTOPEQU0FFFFH+1;將堆棧頂設(shè)置為最高地址+1;
使用COMPACT存儲(chǔ)器模式時(shí)再入函數(shù)的堆??臻g;
PBPSTACKEQU0;使用COMPACT存儲(chǔ)器模式再入函數(shù)時(shí)將其設(shè)置成1;
PBPSTACKTOPEQU0FFFFH+1;將堆棧頂設(shè)置為最高地址+1。
三種模式解析
這里提到了SMALL,LARGE,COMPACT三種模式。這三種模式究竟有什么含義呢?我們下面就來(lái)了解一下。
不同內(nèi)存模式下的堆棧。Keil編譯器中有三種模式設(shè)置。這是由51處理器繁多的尋址模式導(dǎo)致的,不同的尋址模式有不同的效率。
small模式:在small模式中,所有默認(rèn)變量均裝入(單片機(jī))內(nèi)部的RAM中,51單片機(jī)默認(rèn)內(nèi)部RAM只有128B;52單片機(jī)默認(rèn)256B。該模式下的優(yōu)點(diǎn)是訪問(wèn)速度快,缺點(diǎn)是空間有限。
compact模式:在compact模式中,所有默認(rèn)變量均位于單片機(jī)的256BRAM中
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《皮膚性病學(xué)濕疹》課件
- 行政后勤財(cái)務(wù)報(bào)銷審核
- 母親節(jié) 營(yíng)銷新視角
- 體育行業(yè)話務(wù)員工作總結(jié)
- 餐飲行業(yè)服務(wù)員的服務(wù)宗旨
- 體育場(chǎng)館的衛(wèi)生清潔
- 2023-2024年企業(yè)主要負(fù)責(zé)人安全培訓(xùn)考試題考題
- 2023-2024安全培訓(xùn)考試題及答案(新)
- 函授??飘厴I(yè)自我鑒定15篇
- 課題研究報(bào)告
- 《二十四節(jié)氣融入幼兒園教育活動(dòng)的個(gè)案研究》
- 麻醉與舒適醫(yī)療
- GB/T 44899-2024商品條碼散裝和大宗商品編碼與條碼表示
- 高考英語(yǔ)一輪復(fù)習(xí)知識(shí)清單(全國(guó)版)專題06 語(yǔ)法填空倒裝句100題(精練) 含答案及解析
- 侵入性器械(操作)相關(guān)感染防控制度的落實(shí)
- 土方開(kāi)挖及周邊環(huán)境保護(hù)方案
- 2024年安徽省公務(wù)員錄用考試《行測(cè)》試題及答案解析
- 2024年度危廢培訓(xùn)完整課件
- 福建師范大學(xué)《教育學(xué)(含教師職業(yè)道德)》2023-2024學(xué)年第一學(xué)期期末試卷
- 蘋(píng)果三星專利之爭(zhēng)
- 人教版2024-2025學(xué)年六年級(jí)數(shù)學(xué)上冊(cè)5.4 扇形的面積 同步練習(xí)(附答案解析)
評(píng)論
0/150
提交評(píng)論