亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cstartup.s79

?? atmel官方的at91sam7x256芯片在iar編譯環境下的全部演示代碼
?? S79
字號:
;-  ----------------------------------------------------------------------------
;-          ATMEL Microcontroller Software Support  -  ROUSSET  -
;-  ----------------------------------------------------------------------------
;-  DISCLAIMER:  THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
;-  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
;-  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
;-  DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
;-  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
;-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
;-  OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
;-  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
;-  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
;-  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
;-  ----------------------------------------------------------------------------
;- File source          : Cstartup.s79
;- Object               : Generic CStartup
;- 1.0 01/Sep/05 FBr    : Creation
;------------------------------------------------------------------------------

;------------------------------------------------------------------------------
; Include your AT91 Library files
;------------------------------------------------------------------------------
#include "include/AT91SAM7X256_inc.h"
;------------------------------------------------------------------------------

;------------------------------------------------------------------------------
; ?RESET
; Reset Vector.
; Normally, segment INTVEC is linked at address 0.
; For debugging purposes, INTVEC may be placed at other addresses.
; A debugger that honors the entry point will start the
; program in a normal way even if INTVEC is not at address 0.
;------------------------------------------------------------------------------

    PROGRAM	?RESET              ;- Begins a program module
    RSEG	INTRAMEND_REMAP     ;- Begins a relocatable segment
    RSEG	ICODE:CODE (2)      ;- Begins a relocatable segment : corresponding address is 32-bit aligned
    CODE32	                    ;- Always ARM mode after reset	
    ORG	0	                    ;- Sets the location counter: corresponds to the RESET vector address

;------------------------------------------------------------------------------
;- Exception vectors
;------------------------------------------------------------------------------
;- These vectors can be read at address 0 or at RAM address
;- They ABSOLUTELY requires to be in relative addresssing mode in order to
;- guarantee a valid jump. For the moment, all are just looping.
;- If an exception occurs before remap, this would result in an infinite loop.
;- To ensure if a exeption occurs before start application to infinite loop.
;------------------------------------------------------------------------------

reset
                B           InitReset           ; 0x00 Reset handler
undefvec:
                B           undefvec            ; 0x04 Undefined Instruction
swivec:
                B           swivec              ; 0x08 Software Interrupt
pabtvec:
                B           pabtvec             ; 0x0C Prefetch Abort
dabtvec:
                B           dabtvec             ; 0x10 Data Abort
rsvdvec:
                B           rsvdvec             ; 0x14 reserved
irqvec:
                B           IRQ_Handler_Entry   ; 0x18 IRQ
fiqvec:               				
                B           fiqvec              ; 0x1c FIQ

InitReset:

;------------------------------------------------------------------------------
;- Low level Init is performed in a C function: AT91F_LowLevelInit
;- Init Stack Pointer to a valid memory area before calling AT91F_LowLevelInit
;------------------------------------------------------------------------------

;- Retrieve end of RAM address
__iramend EQU SFB(INTRAMEND_REMAP)      ;- Segment begin

    EXTERN   AT91F_LowLevelInit
    ldr     r13,=__iramend              ;- Temporary stack in internal RAM for Low Level Init execution
    ldr	    r0,=AT91F_LowLevelInit
    mov     lr, pc
    bx	    r0                          ;- Branch on C function (with interworking)

;------------------------------------------------------------------------------
;- Top of Stack Definition
;------------------------------------------------------------------------------
;- Interrupt and Supervisor Stack are located at the top of internal memory in
;- order to speed the exception handling context saving and restoring.
;- ARM_MODE_SVC (Application, C) Stack is located at the top of the external memory.
;------------------------------------------------------------------------------

IRQ_STACK_SIZE          EQU     (3*8*4)     ; 3 words to be saved per interrupt priority level
ARM_MODE_IRQ            EQU     0x12
ARM_MODE_SVC            EQU     0x13
I_BIT                   EQU     0x80
F_BIT                   EQU     0x40

;------------------------------------------------------------------------------
;- Setup the stack for each mode
;------------------------------------------------------------------------------
    ldr     r0, =__iramend

;- Set up Interrupt Mode and set IRQ Mode Stack
    msr     CPSR_c, #ARM_MODE_IRQ | I_BIT | F_BIT
    mov     r13, r0                     ; Init stack IRQ
    sub     r0, r0, #IRQ_STACK_SIZE

;- Enable interrupt & Set up Supervisor Mode and set Supervisor Mode Stack
    msr     CPSR_c, #ARM_MODE_SVC | F_BIT
    mov     r13, r0

;------------------------------------------------------------------------------
; Initialize segments.
;------------------------------------------------------------------------------
; __segment_init is assumed to use
; instruction set and to be reachable by BL from the ICODE segment
; (it is safest to link them in segment ICODE).
;------------------------------------------------------------------------------
    EXTERN	__segment_init
    ldr	r0,=__segment_init
    mov     lr, pc
    bx	r0

;------------------------------------------------------------------------------
;- Branch on C code Main function (with interworking)
;------------------------------------------------------------------------------
    EXTERN	main
    PUBLIC	__main
?jump_to_main:
    ldr	lr,=?call_exit
    ldr	r0,=main
__main:
    bx	r0

;------------------------------------------------------------------------------
;- Loop for ever
;------------------------------------------------------------------------------
;- End of application. Normally, never occur.
;- Could jump on Software Reset ( B 0x0 ).
;------------------------------------------------------------------------------
?call_exit:
End
    b       End

;------------------------------------------------------------------------------
;- Manage exception: The exception must be ensure in ARM mode
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
;- Function             : IRQ_Handler_Entry
;- Treatments           : IRQ Controller Interrupt Handler.
;- Called Functions     : AIC_IVR[interrupt]
;------------------------------------------------------------------------------
IRQ_Handler_Entry:

;-------------------------
;- Manage Exception Entry
;-------------------------
;- Adjust and save LR_irq in IRQ stack
    sub         lr, lr, #4
    stmfd       sp!, {lr}

;- Save r0 and SPSR (need to be saved for nested interrupt)
    mrs         r14, SPSR
    stmfd       sp!, {r0,r14}

;- Write in the IVR to support Protect Mode
;- No effect in Normal Mode
;- De-assert the NIRQ and clear the source in Protect Mode
    ldr         r14, =AT91C_BASE_AIC
    ldr         r0 , [r14, #AIC_IVR]
    str         r14, [r14, #AIC_IVR]

;- Enable Interrupt and Switch in Supervisor Mode
    msr         CPSR_c, #ARM_MODE_SVC

;- Save scratch/used registers and LR in User Stack
    stmfd       sp!, { r1-r3, r12, r14}

;----------------------------------------------
;- Branch to the routine pointed by the AIC_IVR
;----------------------------------------------
    mov         r14, pc
    bx          r0

;----------------------------------------------
;- Manage Exception Exit
;----------------------------------------------
;- Restore scratch/used registers and LR from User Stack
    ldmia       sp!, { r1-r3, r12, r14}

;- Disable Interrupt and switch back in IRQ mode
    msr         CPSR_c, #I_BIT | ARM_MODE_IRQ

;- Mark the End of Interrupt on the AIC
    ldr         r14, =AT91C_BASE_AIC
    str         r14, [r14, #AIC_EOICR]

;- Restore SPSR_irq and r0 from IRQ stack
    ldmia       sp!, {r0,r14}
    msr         SPSR_cxsf, r14

;- Restore adjusted  LR_irq from IRQ stack directly in the PC
    ldmia       sp!, {pc}^

;------------------------------------------------------------------------------
;- Exception Vectors
;------------------------------------------------------------------------------
    PUBLIC    AT91F_Default_FIQ_handler
    PUBLIC    AT91F_Default_IRQ_handler
    PUBLIC    AT91F_Spurious_handler

    CODE32      ; Always ARM mode after exeption

AT91F_Default_FIQ_handler
    b         AT91F_Default_FIQ_handler

AT91F_Default_IRQ_handler
    b         AT91F_Default_IRQ_handler

AT91F_Spurious_handler
    b         AT91F_Spurious_handler

    ENDMOD      ;- Terminates the assembly of the current module
    END         ;- Terminates the assembly of the last module in a file

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品性做久久久久久| 国产91在线看| 国产最新精品精品你懂的| 欧美一区二区三区四区高清| 欧美影院一区二区| 色婷婷av一区二区三区之一色屋| 亚洲一区二区三区爽爽爽爽爽| 午夜日韩在线观看| 亚洲一区二区高清| 99久久久国产精品免费蜜臀| 1区2区3区国产精品| 国内欧美视频一区二区| 欧美大片在线观看一区| 夜夜精品视频一区二区| 国产一区不卡视频| 欧美一区二区在线观看| 久久精品国产亚洲a| 欧美日韩免费在线视频| 亚洲欧洲精品一区二区三区| 日本福利一区二区| 亚洲视频综合在线| 成人av在线电影| 久久影院视频免费| 日韩专区欧美专区| 欧美日韩一区视频| 国产一区二区三区久久悠悠色av| 国产精品天天看| 成人高清视频在线观看| 一区二区三区中文字幕精品精品 | 国产 欧美在线| 亚洲激情男女视频| 在线看国产一区二区| 国产精品美女久久久久久久久久久| av激情综合网| 国产精品传媒入口麻豆| 岛国精品在线播放| 亚洲国产精品精华液2区45| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲视频一区二区在线观看| 欧美高清激情brazzers| 日韩制服丝袜先锋影音| 国产片一区二区| 成人一区在线观看| 午夜精品久久久久久久久久| 国产欧美综合在线| 91精品国产麻豆国产自产在线| 6080午夜不卡| 国产高清在线观看免费不卡| 国产精品国产三级国产aⅴ原创 | 韩国女主播一区二区三区| 欧美色图免费看| 亚洲.国产.中文慕字在线| 欧美国产综合一区二区| 亚洲男同性恋视频| 亚洲人成精品久久久久久| 99精品国产99久久久久久白柏 | 色88888久久久久久影院野外| 美女视频网站久久| 国产亚洲精品福利| 成人av动漫在线| 久久不见久久见中文字幕免费| 亚洲日本va午夜在线电影| 久久久蜜桃精品| 欧美亚洲一区二区在线观看| 成人丝袜视频网| 国产福利精品一区| 久久 天天综合| 亚洲欧美另类图片小说| 久久精品免视看| xfplay精品久久| 精品欧美久久久| 成人av片在线观看| 国产福利一区二区三区视频在线| 国产九色sp调教91| 欧美va亚洲va| 国产成人精品亚洲777人妖 | 日本一区二区三区国色天香| 日韩一区二区电影网| 久久精品男人天堂av| 91麻豆高清视频| 在线国产电影不卡| 国产亲近乱来精品视频| 欧美剧情片在线观看| 色综合久久久网| 91精品国产一区二区| 99精品久久久久久| 国产午夜久久久久| 国内外成人在线视频| 欧美www视频| 亚洲va国产va欧美va观看| 欧美吻胸吃奶大尺度电影| 久久久久久久免费视频了| 亚洲成人三级小说| 午夜一区二区三区视频| 国产精品看片你懂得| 亚洲精品国产品国语在线app| 国产精品久久午夜| 一级做a爱片久久| 青青草国产精品97视觉盛宴| 国产精品中文有码| 欧美日韩高清一区二区| 亚洲欧美日韩在线| 一区二区三区日本| 午夜欧美2019年伦理| 日韩成人午夜精品| 中文在线一区二区| 亚洲欧美中日韩| 亚洲网友自拍偷拍| 国产精品美女久久久久av爽李琼| 国产精品三级av| 夜色激情一区二区| 麻豆精品国产传媒mv男同 | 成人高清视频免费观看| 色999日韩国产欧美一区二区| 欧美日韩你懂的| 久久亚洲精华国产精华液| 中文字幕一区二区视频| 午夜av一区二区| 国产精品资源在线观看| 色综合网色综合| 972aa.com艺术欧美| 色国产综合视频| 精品av久久707| 这里是久久伊人| 中文字幕av一区 二区| 亚洲一区二区在线免费观看视频 | 亚洲日本青草视频在线怡红院| 亚洲国产成人高清精品| 国产精品中文欧美| 欧美高清一级片在线| 日本一二三不卡| 美国毛片一区二区三区| 91天堂素人约啪| 精品久久久网站| 亚洲精品乱码久久久久久久久| 久久国产精品72免费观看| 日本道精品一区二区三区 | 99精品视频一区| 日韩免费观看高清完整版| 综合久久久久综合| 久草精品在线观看| 欧美日韩高清一区二区不卡| 国产精品短视频| 国产一区二区三区在线看麻豆| 欧美三区免费完整视频在线观看| 日本一区二区免费在线| 麻豆精品视频在线观看视频| 欧美在线看片a免费观看| 国产网红主播福利一区二区| 青草av.久久免费一区| 在线观看视频91| 中文字幕成人在线观看| 久久er精品视频| 欧美人伦禁忌dvd放荡欲情| 亚洲欧美日韩在线| 成人精品视频一区二区三区| 日韩女优制服丝袜电影| 午夜精品久久久久久不卡8050| av一区二区三区在线| 久久久久国产免费免费| 精品影视av免费| 精品久久久网站| 国内欧美视频一区二区| 欧美mv和日韩mv的网站| 日韩精品一卡二卡三卡四卡无卡| 色天天综合色天天久久| 亚洲视频一区在线观看| 99精品国产91久久久久久| 一区精品在线播放| gogo大胆日本视频一区| 国产精品家庭影院| 成人毛片老司机大片| 亚洲欧洲日本在线| 91网站最新地址| 一区二区三区.www| 欧美在线观看一区| 亚洲国产日韩一级| 欧美久久免费观看| 全国精品久久少妇| 日韩免费看的电影| 国产一区啦啦啦在线观看| 久久久www成人免费无遮挡大片| 国产美女久久久久| 中文字幕国产一区二区| 91日韩一区二区三区| 亚洲欧美日韩久久| 欧美性感一类影片在线播放| 丝袜亚洲另类欧美| 精品少妇一区二区三区在线视频| 国产在线国偷精品免费看| 中文字幕av在线一区二区三区| 99久免费精品视频在线观看| 一区二区三区四区五区视频在线观看| 在线免费观看日本一区| 日本怡春院一区二区| 国产午夜亚洲精品羞羞网站| 一本大道久久精品懂色aⅴ| 石原莉奈在线亚洲二区| 国产网红主播福利一区二区| 在线看国产日韩|