《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 解決方案 > 飛思卡爾Kinetis L 匯編語言啟動文件startup_MK25Z4簡單分析

飛思卡爾Kinetis L 匯編語言啟動文件startup_MK25Z4簡單分析

2017-07-23
關鍵詞: 匯編語言

打開Freedom KL25的例程包,任意找一個code example,以lower_power_dma_uart_demo為例,分析一下啟動匯編文件的代碼。

代碼主要分三部分:堆棧等的配置、向量表、初始啟動跳轉。

1. 堆棧配置


; <h> Stack Configuration
;   <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>

Stack_Size      EQU     0x00000800

                AREA    STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem       SPACE   Stack_Size
__initial_sp    EQU     0x20002ff8


; <h> Heap Configuration
;   <o>  Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>

Heap_Size       EQU     0x00000000

                AREA    HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem        SPACE   Heap_Size
__heap_limit

注:AREA關鍵字的作用是告訴匯編器,該section是獨立的一段,應該重新開始解析。AREA后面的一系列表示該段的屬性。

SPACE關鍵字告訴其后的一段memory存儲空間,不被初始化為某些特定值,與FILL相對。

EQU可以理解為等于。

 

2. 向量表

; Vector Table Mapped to Address 0 at Reset

                AREA    RESET, DATA, READONLY
                EXPORT  __Vectors
                EXPORT  __Vectors_End
                EXPORT  __Vectors_Size

__Vectors       DCD     __initial_sp  ; Top of Stack
                DCD     Reset_Handler  ; Reset Handler
                DCD     NMI_Handler  ; NMI Handler
                DCD     HardFault_Handler  ; Hard Fault Handler
                DCD     0  ; Reserved
                DCD     0  ; Reserved
                DCD     0  ; Reserved
                DCD     0  ; Reserved
                DCD     0  ; Reserved
                DCD     0  ; Reserved
                DCD     0  ; Reserved
                DCD     SVC_Handler  ; SVCall Handler
                DCD     0  ; Reserved
                DCD     0  ; Reserved
                DCD     PendSV_Handler  ; PendSV Handler
                DCD     SysTick_Handler  ; SysTick Handler

                ; External Interrupts
                DCD     DMA0_IRQHandler  ; DMA channel 0 transfer complete interrupt
                DCD     DMA1_IRQHandler  ; DMA channel 1 transfer complete interrupt
                DCD     DMA2_IRQHandler  ; DMA channel 2 transfer complete interrupt
                DCD     DMA3_IRQHandler  ; DMA channel 3 transfer complete interrupt
                DCD     Reserved20_IRQHandler  ; Reserved interrupt 20
                DCD     FTFA_IRQHandler  ; FTFA interrupt
                DCD     LVD_LVW_IRQHandler  ; Low Voltage Detect, Low Voltage Warning
                DCD     LLW_IRQHandler  ; Low Leakage Wakeup
                DCD     I2C0_IRQHandler  ; I2C0 interrupt
                DCD     I2C1_IRQHandler  ; I2C0 interrupt 25
                DCD     SPI0_IRQHandler  ; SPI0 interrupt
                DCD     SPI1_IRQHandler  ; SPI1 interrupt
                DCD     UART0_IRQHandler  ; UART0 status/error interrupt
                DCD     UART1_IRQHandler  ; UART1 status/error interrupt
                DCD     UART2_IRQHandler  ; UART2 status/error interrupt
                DCD     ADC0_IRQHandler  ; ADC0 interrupt
                DCD     CMP0_IRQHandler  ; CMP0 interrupt
                DCD     TPM0_IRQHandler  ; TPM0 fault, overflow and channels interrupt
                DCD     TPM1_IRQHandler  ; TPM1 fault, overflow and channels interrupt
                DCD     TPM2_IRQHandler  ; TPM2 fault, overflow and channels interrupt
                DCD     RTC_IRQHandler  ; RTC interrupt
                DCD     RTC_Seconds_IRQHandler  ; RTC seconds interrupt
                DCD     PIT_IRQHandler  ; PIT timer interrupt
                DCD     Reserved39_IRQHandler  ; Reserved interrupt 39
                DCD     USB0_IRQHandler  ; USB0 interrupt
                DCD     DAC0_IRQHandler  ; DAC interrupt
                DCD     TSI0_IRQHandler  ; TSI0 interrupt
                DCD     MCG_IRQHandler  ; MCG interrupt
                DCD     LPTimer_IRQHandler  ; LPTimer interrupt
                DCD     Reserved45_IRQHandler  ; Reserved interrupt 45
                DCD     PORTA_IRQHandler  ; Port A interrupt
                DCD     PORTD_IRQHandler  ; Port D interrupt

向量表很長,此處只截取一部分,這些向量表中的向量的默認名字就在這里指定了。開發人員只需將中斷向量函數的具體功能實現即可。當然,有一些默認的dummy 異常handler已經有了,都是死循環:

; Dummy Exception Handlers (infinite loops which can be modified)

NMI_Handler     PROC
                EXPORT  NMI_Handler               [WEAK]
                B       .
                ENDP
HardFault_Handler\
                PROC
                EXPORT  HardFault_Handler         [WEAK]
                B       .
                ENDP
SVC_Handler     PROC
                EXPORT  SVC_Handler               [WEAK]
                B       .
                ENDP
PendSV_Handler  PROC
                EXPORT  PendSV_Handler            [WEAK]
                B       .
                ENDP
SysTick_Handler PROC
                EXPORT  SysTick_Handler           [WEAK]
                B       .
                ENDP

3. 啟動代碼

啟動代碼就放在Reset復位向量里面,因為Reset向量是MCU啟動時候第一個進入到PC寄存器并開始執行的地方。

; Reset Handler

Reset_Handler   PROC
                EXPORT  Reset_Handler             [WEAK]
                IMPORT  SystemInit
                IMPORT  __main
                LDR     R0, =SystemInit
                BLX     R0
                LDR     R0, =__main
                BX      R0
                ENDP

啟動代碼首先將SystemInit的地址load到R0寄存器中,然后使用BLX跳轉指令跳到SystemInit函數開始處去執行,執行完畢以后再執行main函數的執行。

接下去需要找SystemInit的代碼查看。


本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久综合99re88久久爱| 欧美激情在线| 亚洲精品国产品国语在线app| 亚洲欧美电影在线观看| 亚洲三级性片| 亚洲国产精品一区二区www在线 | 一本色道久久精品| 99国产精品99久久久久久粉嫩| 亚洲区国产区| 亚洲精品免费一区二区三区| 亚洲清纯自拍| aⅴ色国产欧美| 亚洲视频一二三| 亚洲一区精彩视频| 亚洲欧美伊人| 欧美一区二区女人| 西西人体一区二区| 久久超碰97人人做人人爱| 久久精品夜夜夜夜久久| 亚洲激情在线观看| 亚洲人体大胆视频| 日韩午夜av| 亚洲一二三区在线观看| 亚洲在线观看免费视频| 小黄鸭精品密入口导航| 久久精品久久99精品久久| 久久久另类综合| 美女成人午夜| 欧美日韩高清在线播放| 国产精品二区三区四区| 国产精品一二一区| 黄色在线一区| 亚洲日本va午夜在线电影| 日韩网站在线| 午夜国产精品影院在线观看| 亚欧成人在线| 亚洲美女av网站| 亚洲——在线| 久久午夜精品一区二区| 欧美福利小视频| 欧美日韩中文字幕在线| 国产精品亚洲综合色区韩国| 国模私拍一区二区三区| 91久久久亚洲精品| 国产精品99久久99久久久二8 | 在线视频日本亚洲性| 午夜精品福利一区二区三区av| 欧美一区中文字幕| 美女爽到呻吟久久久久| 欧美日韩蜜桃| 国产亚洲精品久久久久婷婷瑜伽| 在线免费精品视频| 中文国产亚洲喷潮| 久久精品日产第一区二区三区| 亚洲毛片在线| 欧美自拍偷拍午夜视频| 欧美高清在线精品一区| 国产精品你懂的在线欣赏| 黄色一区二区三区四区| 99re6热在线精品视频播放速度| 亚洲免费视频一区二区| 亚洲激情另类| 午夜精品久久久久久久久久久| 玖玖玖免费嫩草在线影院一区| 欧美四级电影网站| 怡红院精品视频在线观看极品| 夜夜嗨av一区二区三区免费区| 欧美一区二区三区四区在线| 一本高清dvd不卡在线观看| 欧美在线网址| 欧美日韩免费观看中文| 娇妻被交换粗又大又硬视频欧美| 亚洲少妇在线| 亚洲欧洲综合另类| 欧美一区二区三区免费在线看| 免费观看亚洲视频大全| 国产精品一区免费观看| 亚洲人成网站影音先锋播放| 欧美专区亚洲专区| 亚洲欧美不卡| 欧美精品在线播放| 狠狠色2019综合网| 亚洲欧美一区二区精品久久久| 亚洲精品字幕| 久久久噜噜噜久久中文字免| 国产精品第一区| 亚洲国产精品嫩草影院| 欧美有码视频| 香蕉久久夜色精品国产| 欧美日韩成人在线播放| 在线观看一区二区精品视频| 亚洲欧美国产毛片在线| 亚洲视频播放| 在线观看一区| 亚洲欧美日韩网| 亚洲午夜激情网页| 欧美区二区三区| 在线观看亚洲视频啊啊啊啊| 欧美一区二视频| 午夜亚洲影视| 国产精品二区二区三区| 日韩视频一区二区三区| 日韩视频在线一区二区| 美日韩在线观看| 一区二区三区在线视频播放| 性娇小13――14欧美| 午夜精品影院| 国产精品第一区| 夜夜嗨av一区二区三区四季av| 99视频日韩| 欧美激情在线免费观看| 亚洲第一页自拍| 亚洲国产精品一区二区三区| 久久久亚洲影院你懂的| 国产一区二区精品久久99| 午夜国产精品视频免费体验区| 午夜精品美女自拍福到在线| 国产精品多人| 亚洲小说欧美另类社区| 亚洲免费小视频| 国产精品亚洲аv天堂网| 亚洲一区二区在线免费观看视频 | 久久亚洲私人国产精品va媚药 | 国外成人在线视频| 欧美在线一二三四区| 久久久成人精品| 国内精品久久久久影院色| 久久国产乱子精品免费女| 久久一综合视频| 亚洲国产精品黑人久久久| 亚洲精品在线观看免费| 欧美电影免费| 最新中文字幕亚洲| 一本色道久久综合亚洲91| 欧美日韩视频一区二区三区| 99在线观看免费视频精品观看| 亚洲综合色丁香婷婷六月图片| 国产精品久久久久久久久免费 | 亚洲伊人一本大道中文字幕| 性18欧美另类| 国产一区二区高清| 亚洲国产精品一区二区第一页| 欧美电影在线观看完整版| 亚洲区欧美区| 亚洲欧美成人在线| 国产视频一区在线| 久久激情视频久久| 欧美大胆a视频| 9久re热视频在线精品| 性做久久久久久免费观看欧美| 国产亚洲女人久久久久毛片| 亚洲全部视频| 欧美色欧美亚洲另类二区| 亚洲一区二区在线免费观看视频| 欧美一区二区性| 很黄很黄激情成人| 99re视频这里只有精品| 国产精品分类| 欧美有码视频| 欧美日韩国产免费| 亚洲欧美成人综合| 欧美不卡三区| 亚洲视频精品| 久久久久天天天天| 亚洲精品乱码久久久久久黑人 | 亚洲国产日韩欧美在线动漫| 亚洲天堂免费观看| 国产午夜精品一区二区三区视频| 亚洲国产高清自拍| 欧美日韩在线播放一区二区| 亚洲综合999| 欧美大尺度在线| 亚洲综合99| 欧美激情按摩在线| 亚洲一区www| 免费观看久久久4p| 亚洲一级特黄| 欧美成人一区二区| 亚洲免费一在线| 欧美激情区在线播放| 亚洲欧美在线免费观看| 欧美激情一区二区三区在线| 午夜精品www| 欧美日韩精品久久| 久久爱另类一区二区小说| 欧美三日本三级少妇三99| 亚洲国产视频一区二区| 国产精品免费观看视频| 亚洲精品一区二区在线观看| 国产日韩精品视频一区| 一区二区激情| 激情小说另类小说亚洲欧美| 亚洲主播在线| 亚洲日本欧美日韩高观看| 久久精品一区二区| 亚洲先锋成人| 欧美揉bbbbb揉bbbbb| 最新国产成人av网站网址麻豆 | 亚洲午夜精品17c| 在线免费观看一区二区三区|