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

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] 想要讀懂啟動(dòng)文件,需要一些基本的匯編基礎(chǔ)。 1 在匯編語(yǔ)言中,注釋是 ; 2匯編ARM指令DCDDCD ( DCDU )用于分配一片連續(xù)的字存儲(chǔ)單元并用指定的數(shù)據(jù)初始化。 語(yǔ)法格式: 標(biāo)號(hào) DCD (或 DCDU ) 表達(dá)式 DCD (或 DC

想要讀懂啟動(dòng)文件,需要一些基本的匯編基礎(chǔ)。

1 在匯編語(yǔ)言中,注釋是 ;

2匯編ARM指令DCD

DCD ( DCDU )用于分配一片連續(xù)的字存儲(chǔ)單元并用指定的數(shù)據(jù)初始化。

語(yǔ)法格式:
標(biāo)號(hào) DCD (或 DCDU ) 表達(dá)式

DCD (或 DCDU )偽指令用于分配一片連續(xù)的字存儲(chǔ)單元并用偽指令中指定的表達(dá)式初始化。其中,表達(dá)式可以

為程序標(biāo)號(hào)或數(shù)字表達(dá)式。 DCD 也可用 “ & ” 代替。

用 DCD 分配的字存儲(chǔ)單元是字對(duì)齊的,而用 DCDU 分配的字存儲(chǔ)單元并不嚴(yán)格字對(duì)齊。

使用示例:
DataTest DCD 4 , 5 , 6 ;分配一片連續(xù)的字存儲(chǔ)單元并初始化。

3 [weak] 的意思是該函數(shù)優(yōu)先級(jí)比較弱,如果其它地方定義了一個(gè)同名函數(shù),那么此處的這個(gè)函數(shù)就被取代了。


語(yǔ)法格式為 EXPORT 標(biāo)號(hào) {[WEAK]} 。EXPORT 可用GLOBAL代替。

4AREA指令的理解

AREA指令是一個(gè)偽指令,用于段定義。ARM匯編程序由段組成,段是相對(duì)獨(dú)立的指令或數(shù)據(jù)單位,每個(gè)段由AREA

偽指令定義,并定義段的屬性。


AREA參數(shù)說(shuō)明:


*STACK——AREA指令的一個(gè)參數(shù),定義段名稱(chēng)


*NOINIT——AREA指令的一個(gè)參數(shù),指定本數(shù)據(jù)段僅僅保留了內(nèi)在單元,而將句初始值寫(xiě)入內(nèi)存單元,此時(shí)內(nèi)存單元值初始化為0


*READWRITE——指定本段為可讀可寫(xiě),數(shù)據(jù)段默認(rèn)為READWRITE.


READWRITE(讀寫(xiě))、READONLY(只讀)


*ALIGN——也是一個(gè)偽指令,指定對(duì)齊方式。ALIGN n 指令的對(duì)齊值有兩種選擇:n或者2^n


例子:開(kāi)辟一個(gè)堆棧段,段名為STACK,定義為可讀可寫(xiě),將內(nèi)存單元初始化為0,對(duì)齊方式為8字節(jié)對(duì)齊。


AREA STACK,NOINIT,READWRITE,ALIGN=3


;********************(C)COPYRIGHT2011STMicroelectronics********************

;*FileName:startup_stm32f10x_hd.s

;*Author:MCDApplicationTeam

;*Version:V3.5.0

;*Date:11-March-2011

;*Description:STM32F10xHighDensityDevicesvectortableforMDK-ARM

;*toolchain.

;*Thismoduleperforms:

;*-SettheinitialSP

;*-SettheinitialPC==Reset_Handler

;*-SetthevectortableentrieswiththeexceptionsISRaddress

;*-Configuretheclocksystemandalsoconfiguretheexternal

;*SRAMmountedonSTM3210E-EVALboardtobeusedasdata

;*memory(optional,tobeenabledbyuser)

;*-Branchesto__mainintheClibrary(whicheventually

;*callsmain()).

;*AfterResettheCortexM3processorisinThreadmode,

;*priorityisPrivileged,andtheStackissettoMain.

;*<<>>

;*******************************************************************************

;THEPRESENTFIRMWAREWHICHISFORGUIDANCEONLYAIMSATPROVIDINGCUSTOMERS

;WITHCODINGINFORMATIONREGARDINGTHEIRPRODUCTSINORDERFORTHEMTOSAVETIME.

;ASARESULT,STMICROELECTRONICSSHALLNOTBEHELDLIABLEFORANYDIRECT,

;INDIRECTORCONSEQUENTIALDAMAGESWITHRESPECTTOANYCLAIMSARISINGFROMTHE

;CONTENTOFSUCHFIRMWAREAND/ORTHEUSEMADEBYCUSTOMERSOFTHECODING

;INFORMATIONCONTAINEDHEREININCONNECTIONWITHTHEIRPRODUCTS.

;*******************************************************************************

;Amountofmemory(inbytes)allocatedforStack

;Tailorthisvaluetoyourapplicationneeds

;StackConfiguration

;StackSize(inBytes)<0x0-0xFFFFFFFF:8>

;

Stack_SizeEQU0x00001000;定義棧大小為40960x1000=4096

AREASTACK,NOINIT,READWRITE,ALIGN=3

Stack_MemSPACEStack_Size

__initial_sp

;HeapConfiguration

;HeapSize(inBytes)<0x0-0xFFFFFFFF:8>

;

Heap_SizeEQU0x00001000;定義堆的空間為1024

AREAHEAP,NOINIT,READWRITE,ALIGN=3

__heap_base

Heap_MemSPACEHeap_Size

__heap_limit

PRESERVE8

THUMB

;VectorTableMappedtoAddress0atReset

AREARESET,DATA,READONLY

EXPORT__Vectors

EXPORT__Vectors_End

EXPORT__Vectors_Size

__VectorsDCD__initial_sp;TopofStack

DCDReset_Handler;ResetHandler

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