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

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

?? startup.s

?? 周立功MAGIC2410的UCOSII移植試驗3.2_蜂鳴器實驗
?? S
?? 第 1 頁 / 共 2 頁
字號:

IRQ_Handler
        SUB     LR, LR, #4                      ; 計算返回地址
        STMFD   SP!, {R0-R3, R12, LR}           ; 保存任務環境
        MRS     R3, SPSR                        ; 保存狀態
        STMFD   SP, {R3, SP, LR}^               ; 保存用戶狀態的R3,SP,LR,注意不能回寫
                                                ; 如果回寫的是用戶的SP,所以后面要調整SP
        LDR     R2,  =OSIntNesting              ; OSIntNesting++
        LDRB    R1, [R2]
        ADD     R1, R1, #1
        STRB    R1, [R2]

        SUB     SP, SP, #4*3
        
        MSR     CPSR_c, #(NoInt | SYS32Mode)    ; 切換到系統模式
        CMP     R1, #1
        LDREQ   SP, =StackUsr
        

        LDR     R0, =INTPND
        LDR     R1, [R0]                        ; 讀取INTPND的值

        ; 找出當前中斷號(INTPND)
        MOV     R0, #0       
FIND_NO 
        MOVS    R1, R1, LSR #1
        ADDNE   R0, R0, #1
        BNE     FIND_NO
FIND_END

        LDR     R1, =VICVectAddr 
        MOV     LR, PC                          ; 保存返回地址
        LDR     PC, [R1, R0, LSL #2]            ; 跳轉到相應中斷服務程序        

        MSR     CPSR_c, #(NoInt | SYS32Mode)    ; 切換到系統模式
        LDR     R2, =OsEnterSum                 ; OsEnterSum,使OSIntExit退出時中斷關閉
        MOV     R1, #1
        STR     R1, [R2]

        BL      OSIntExit

        LDR     R2, =OsEnterSum                 ; 因為中斷服務程序要退出,所以OsEnterSum=0
        MOV     R1, #0
        STR     R1, [R2]

        MSR     CPSR_c, #(NoInt | IRQ32Mode)    ; 切換回irq模式
        LDMFD   SP, {R3, SP, LR}^               ; 恢復用戶狀態的R3,SP,LR,注意不能回寫
                                                ; 如果回寫的是用戶的SP,所以后面要調整SP
        LDR     R0, =OSTCBHighRdy
        LDR     R0, [R0]
        LDR     R1, =OSTCBCur
        LDR     R1, [R1]
        CMP     R0, R1

        ADD     SP, SP, #4*3                    ; 
        MSR     SPSR_cxsf, R3
        LDMEQFD SP!, {R0-R3, R12, PC}^          ; 不進行任務切換
        LDR     PC, =OSIntCtxSw                 ; 進行任務切換


; 快速中斷
FIQ_Handler
        STMFD   SP!, {R0-R3, LR}        
        ; /* FIQ中斷處理 */        
        LDMFD   SP!, {R0-R3, LR}
        SUBS    PC,  LR,  #4                
                
        
        
;/*********************************************************************************************************
;** 函數名稱: Reset
;** 功能描述: 復位入口
;** 輸 入: 無
;** 輸 出: 無
;********************************************************************************************************/
ResetInit
        BL      InitStack               ; 初始化堆棧                                              
        BL      TargetInitReset         ; 針對目標板的系統初始化        
        BL      Remap                   ; 重映射操作
        B       __main                  ; 跳轉到c語言入口  


;/*********************************************************************************************************
;** 函數名稱: Remap
;** 功能描述: 重映射向量表操作。
;** 輸 入: 無
;** 輸 出: 無
;** 說明:將向量表復制到0x0000000地址,所以要求系統為NAND Flash啟動方式。
;**       占用R0--R9寄存器。
;********************************************************************************************************/ 
Remap
    IF :DEF: Release
        MOV     PC, LR
    ELSE        
        MOV     R0, #0x00000000
        LDR     R1, =Reset
        LDMIA   R1!, {R2-R9}
        STMIA   R0!, {R2-R9}
        LDMIA   R1!, {R2-R9}
        STMIA   R0!, {R2-R9}     
        MOV     PC, LR
    ENDIF       
 
;/*********************************************************************************************************
;** 函數名稱: TargetInitReset
;** 功能描述: 針對目標板的系統初始化,包括WDT、中斷、PLL、SDRAM控制器等等。
;** 輸 入: 無
;** 輸 出: 無
;** 說明:占用R0--R8寄存器
;********************************************************************************************************/ 
TargetInitReset
        LDR     R0, =WTCON                  ; 關閉WDT 
        LDR     R1, =0x0000         
        STR     R1,[R0]                     ; WTCON=0x0000

        LDR     R0, =INTMSK                 ; 禁止所有中斷 (中斷控制器)
        LDR     R1, =0xFFFFFFFF  
        STR     R1, [R0]                    ; INTMSK=0xFFFFFFFF

        LDR     R0, =INTSUBMSK
        LDR     R1, =0x07FF                 ; INTSUBMSK=0x07FF
        STR     R1, [R0]
        
        LDR     R0, =SRCPND                 ; 清除中斷標志 (add)
        LDR     R1, =0xFFFFFFFF
        STR     R1, [R0]
        
        LDR     R0, =INTPND      
        LDR     R1, =0xFFFFFFFF  
        STR     R1, [R0]
        
    IF :DEF: Release    
        ; 系統時鐘設置,啟用PLL
        LDR     R0, =LOCKTIME
        LDR     R1, =0x00FFFFFF             ; 鎖定時間設置U_LTIME=0xFFF,M_LTIME=0xFFF
        STR     R1, [R0]
        
        LDR     R0, =CLKDIVN     
        MOV     R1, #0x03                   ; HCLK=FCLK/2,PCLK=HCLK/2
        STR     R1, [R0]             
        
        MRC     p15, 0, R1, c1, c0, 0       ; (MMU設置) 讀控制寄存器 
        ORR     R1, R1, #0xC0000000   
        MRC     p15, 0, R1, c1, c0, 0    

        LDR     R0, =MPLLCON     
        LDR     R1, =MPLLCON_200            ; 設置CPU時鐘為200Mhz (FCLK)
        STR     R1, [R0]                             
            
        ; 總線設置,初始化SDRAM
        LDR     R0, =BUS_INIT
        LDR     R1, =BWSCON
        LDMIA   R0!, {R2-R8}
        STMIA   R1!, {R2-R8}
        LDMIA   R0!, {R2-R7}
        STMIA   R1!, {R2-R7}         
    ENDIF                                           
    
        MOV     PC, LR               ; 返回
        
; 總線配置數據表        
BUS_INIT    DCD (B7_BWCON<<28)|(B6_BWCON<<24)|(B5_BWCON<<20)|(B4_BWCON<<16) \
                              |(B3_BWCON<<12)|(B2_BWCON<<8)|(B1_BWCON<<4)   ; BWSCON  寄存器
            DCD (1<<13)|(1<<11)|(7<<8)|(1<<6)|(1<<4)|(1<<2)|(0<<0)          ; BANKCON0寄存器
            DCD (1<<13)|(1<<11)|(7<<8)|(1<<6)|(1<<4)|(1<<2)|(0<<0)          ; BANKCON1寄存器    
            DCD (1<<13)|(1<<11)|(7<<8)|(1<<6)|(1<<4)|(1<<2)|(0<<0)          ; BANKCON2寄存器
            DCD (1<<13)|(1<<11)|(7<<8)|(1<<6)|(1<<4)|(1<<2)|(0<<0)          ; BANKCON3寄存器
            DCD (1<<13)|(1<<11)|(7<<8)|(1<<6)|(1<<4)|(1<<2)|(0<<0)          ; BANKCON4寄存器
            DCD (1<<13)|(1<<11)|(7<<8)|(1<<6)|(1<<4)|(1<<2)|(0<<0)          ; BANKCON5寄存器
            DCD (3<<15)|(1<<2)|(1<<0)                                       ; BANKCON6寄存器(SDRAM)
            DCD (0<<15)|(1<<13)|(1<<11)|(7<<8)|(1<<6)|(1<<4)|(1<<2)|(0<<0)  ; BANKCON7寄存器(SRAM )
            DCD (1<<23)|(0<<22)|(0<<20)|(3<<18)|(1113)                      ; REFRESH 寄存器(SDRAM) ,period=15.6us, HCLK=60Mhz, (2048+1-15.6*60)
            DCD (1<<7)|(1<<5)|(1<<4)|(2<<0)                                 ; BANKSIZE寄存器(128MB)
            DCD (3<<4)                                                      ; MRSRB6  寄存器
            DCD (3<<4)                                                      ; MRSRB7  寄存器
               
               
;/*********************************************************************************************************
;** 函數名稱: InitStack
;** 功能描述: 初始化堆棧。最后返回時,處理器工作在系統模式。
;** 輸 入:   無
;** 輸 出:   無
;** 說  明:   由本文件開頭的USR_STACK_LEGTH、SVC_STACK_LEGTH等定義各工作模式的堆棧大小。
;********************************************************************************************************/
InitStack    
        MOV     R0, LR

;設置管理模式堆棧
        MSR     CPSR_c, #(Mode_SVC | I_BIT | F_BIT)     ; 0xd3
        LDR     SP, StackSvc
;設置中斷模式堆棧
        MSR     CPSR_c, #(Mode_IRQ | I_BIT | F_BIT)     ; 0xd2
        LDR     SP, StackIrq
;設置快速中斷模式堆棧
        MSR     CPSR_c, #(Mode_FIQ | I_BIT | F_BIT)     ; 0xd1
        LDR     SP, StackFiq
;設置中止模式堆棧
        MSR     CPSR_c, #(Mode_ABT | I_BIT | F_BIT)     ; 0xd7
        LDR     SP, StackAbt
;設置未定義模式堆棧
        MSR     CPSR_c, #(Mode_UND | I_BIT | F_BIT)     ; 0xdb
        LDR     SP, StackUnd
;設置系統模式堆棧
        MSR     CPSR_c, #(Mode_SYS | I_BIT | F_BIT)     ; 0xdf
        LDR     SP, =StackUsr

        MOV     PC, R0

StackSvc           DCD     SvcStackSpace + (SVC_STACK_LEGTH - 1)* 4
StackIrq           DCD     IrqStackSpace + (IRQ_STACK_LEGTH - 1)* 4
StackFiq           DCD     FiqStackSpace + (FIQ_STACK_LEGTH - 1)* 4
StackAbt           DCD     AbtStackSpace + (ABT_STACK_LEGTH - 1)* 4
StackUnd           DCD     UndtStackSpace + (UND_STACK_LEGTH - 1)* 4

    
;/*********************************************************************************************************
;** 函數名稱: __user_initial_stackheap 
;** 功能描述: 庫函數初始化堆和棧,不能刪除
;** 輸 入: 參考庫函數手冊
;** 輸 出: 參考庫函數手冊
;********************************************************************************************************/
__user_initial_stackheap    
    LDR   r0, =bottom_of_heap
    MOV   pc, lr

; /* 分配堆棧空間 */
        AREA    MyStacks, DATA, NOINIT, ALIGN=2
SvcStackSpace      SPACE   SVC_STACK_LEGTH * 4  ;管理模式堆棧空間
IrqStackSpace      SPACE   IRQ_STACK_LEGTH * 4  ;中斷模式堆棧空間
FiqStackSpace      SPACE   FIQ_STACK_LEGTH * 4  ;快速中斷模式堆棧空間
AbtStackSpace      SPACE   ABT_STACK_LEGTH * 4  ;中止義模式堆棧空間
UndtStackSpace     SPACE   UND_STACK_LEGTH * 4  ;未定義模式堆棧

; /* IRQ中斷向量地址表定義 */
VICVectAddr        SPACE   32*4  

        AREA    Heap, DATA, READWRITE
bottom_of_heap    SPACE   1

        AREA    Stacks, DATA, NOINIT
StackUsr
        END
;/*********************************************************************************************************
;**                            End Of File
;********************************************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美变态tickle挠乳网站| 欧美人伦禁忌dvd放荡欲情| 在线日韩国产精品| 久久久久久久久99精品| 肉色丝袜一区二区| 波多野结衣精品在线| 51精品秘密在线观看| 国产精品福利av| 国产在线视频一区二区| 91黄视频在线| 最好看的中文字幕久久| 激情综合亚洲精品| 91精品婷婷国产综合久久性色 | 天天综合色天天综合色h| 国产精一品亚洲二区在线视频| 欧美日韩成人激情| 亚洲视频一二三区| 成人的网站免费观看| 欧美成人一区二区三区在线观看| 亚洲一区二区欧美| 91老师片黄在线观看| 精品动漫一区二区三区在线观看| 天天影视色香欲综合网老头| 99re6这里只有精品视频在线观看| 国产亚洲精品超碰| 国产一区视频导航| 日韩美一区二区三区| 日韩激情一区二区| 欧美日韩大陆在线| 亚洲国产一区视频| 在线观看精品一区| 亚洲国产精品嫩草影院| 欧美色视频在线| 一区二区国产视频| 欧美亚洲高清一区| 亚洲一区免费视频| 欧美日韩国产电影| 午夜精品久久久久久久久| 在线不卡一区二区| 丝袜亚洲另类丝袜在线| 欧美日韩一级视频| 午夜精品久久久久久久蜜桃app| 欧美日本一区二区在线观看| 日本一道高清亚洲日美韩| 日韩一区二区三区三四区视频在线观看| 午夜av一区二区三区| 91精品在线免费| 精品午夜久久福利影院 | 91麻豆精品国产自产在线观看一区| 一区二区三区四区乱视频| 91精品久久久久久蜜臀| 日韩国产在线一| 日韩欧美精品在线视频| 国产成人在线视频网站| 亚洲精品视频免费看| 欧美巨大另类极品videosbest| 美女脱光内衣内裤视频久久影院| 久久噜噜亚洲综合| 91免费看`日韩一区二区| 日韩精品亚洲专区| 久久综合色播五月| 99久久夜色精品国产网站| 亚洲电影欧美电影有声小说| 久久久亚洲高清| 99re66热这里只有精品3直播 | 国产尤物一区二区| 自拍偷自拍亚洲精品播放| 欧美亚洲国产一卡| 国产一区欧美二区| 亚洲精品videosex极品| 精品人在线二区三区| 99久久精品免费看国产 | 一区二区三区蜜桃| 日韩欧美在线观看一区二区三区| 国产精品18久久久久久久网站| 亚洲美女免费视频| 久久亚洲春色中文字幕久久久| 91蝌蚪porny| 狠狠色2019综合网| 五月天网站亚洲| 国产精品久久久久三级| 91精品蜜臀在线一区尤物| 99久久综合国产精品| 日韩高清一区在线| 亚洲蜜桃精久久久久久久| 欧美α欧美αv大片| 欧美日韩国产影片| 99天天综合性| 国产综合色在线| 美国十次综合导航| 亚洲大片免费看| 亚洲精品成人悠悠色影视| 久久久国产精品午夜一区ai换脸| 欧美三级电影一区| 欧美日韩情趣电影| 国内久久精品视频| 男男成人高潮片免费网站| 亚洲综合一二区| 中文字幕欧美一| 亚洲国产成人私人影院tom| 精品国精品国产尤物美女| 欧美日韩国产a| 94-欧美-setu| 成人福利视频网站| 国产91在线看| 国产精品综合二区| 精品在线免费观看| 男女男精品视频| 久久精品国产久精国产| 日韩国产一区二| 日本免费在线视频不卡一不卡二| 亚洲综合色视频| 亚洲www啪成人一区二区麻豆| 亚洲欧美日韩系列| 一区二区三区精品在线| 亚洲精品日产精品乱码不卡| 亚洲精品videosex极品| 一区二区三区在线不卡| 一卡二卡三卡日韩欧美| 一个色在线综合| 亚洲第一av色| 日韩电影在线看| 蜜臀av性久久久久蜜臀aⅴ四虎| 日韩成人免费电影| 蜜桃一区二区三区在线| 人人精品人人爱| 国内一区二区在线| 成人av电影在线观看| 91美女片黄在线观看| 色8久久精品久久久久久蜜| 欧美精品一二三四| 日韩女同互慰一区二区| 精品成人在线观看| 中文一区二区完整视频在线观看| 国产午夜精品一区二区| 日韩一区欧美一区| 香蕉成人啪国产精品视频综合网| 日韩高清在线电影| 国产老女人精品毛片久久| 成人aaaa免费全部观看| 欧洲在线/亚洲| 日韩欧美亚洲一区二区| 国产欧美一区二区精品性色超碰 | 欧美国产日韩一二三区| 中文字幕一区不卡| 日韩不卡一区二区三区| 国产一区二区91| 91激情五月电影| 精品免费99久久| 亚洲日本在线天堂| 美腿丝袜亚洲一区| gogogo免费视频观看亚洲一| 欧美日韩国产在线播放网站| 久久精品亚洲乱码伦伦中文| 一区二区三区不卡在线观看 | 日韩电影在线免费看| 国产suv一区二区三区88区| 欧美亚洲动漫精品| 精品国产免费视频| 亚洲一区中文日韩| 国产盗摄精品一区二区三区在线 | 午夜视频一区在线观看| 国产一区二区中文字幕| 欧美亚洲图片小说| 欧美精品一区二区蜜臀亚洲| 亚洲精品高清在线| 国产成人免费在线观看| 欧美日韩视频在线一区二区| 中文字幕一区av| 国产一区二区三区四区五区入口 | 精品一区二区三区视频在线观看 | 99久久精品国产一区| 51精品视频一区二区三区| 亚洲人成在线观看一区二区| 久久精品久久综合| 欧美性猛交一区二区三区精品| 国产精品视频观看| 免费人成在线不卡| 欧美色手机在线观看| 亚洲欧美一区二区不卡| 国产精品一区二区视频| 日韩一区二区三区四区| 丝袜亚洲另类丝袜在线| 欧美亚洲综合网| 亚洲伦在线观看| 91在线视频免费91| 欧美激情中文字幕一区二区| 久久国产综合精品| 欧美一个色资源| 日韩综合小视频| 欧美日韩的一区二区| 亚洲成人资源在线| 欧美午夜片在线观看| 亚洲激情校园春色| 一本到不卡免费一区二区| 中文字幕一区av| 91美女在线观看| 亚洲男人的天堂网| 欧洲激情一区二区| 亚洲第一在线综合网站|