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

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

?? startup.s

?? S3C2410ARM處理器的uCos2移植實驗代碼
?? 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一区二区三区免费野_久草精品视频
欧美一区二区三区视频免费| 亚洲最大成人网4388xx| 蜜桃久久av一区| 日韩欧美在线一区二区三区| 日韩av中文在线观看| 欧美精品一区二区三区在线播放| 欧美aa在线视频| 久久丝袜美腿综合| 成人在线综合网| 日韩理论片中文av| 欧美日韩另类国产亚洲欧美一级| 日韩电影在线观看电影| 日韩欧美一二区| 国产东北露脸精品视频| 中文字幕一区二区三| 91成人在线观看喷潮| 蜜桃在线一区二区三区| 国产亚洲短视频| 91久久精品一区二区三| 日韩电影一区二区三区四区| 精品理论电影在线| 成人小视频在线| 亚洲国产日韩a在线播放| 欧美mv日韩mv国产网站| 欧美日韩一区二区欧美激情| 日本中文字幕一区二区有限公司| 精品999在线播放| 99精品久久只有精品| 午夜a成v人精品| 国产亚洲欧美一级| 在线观看av一区二区| 黄色小说综合网站| 亚洲免费视频中文字幕| 日韩视频免费观看高清完整版在线观看 | 狠狠色狠狠色综合| 亚洲人成人一区二区在线观看| 欧美日韩情趣电影| 欧美日本一区二区在线观看| 国产一区二区三区在线观看免费视频| 国产精品素人视频| 91精品国产麻豆国产自产在线 | 国产精品久久久久久久久动漫| 欧美日韩一区二区三区视频| 成人免费视频免费观看| 美女视频一区二区| 亚洲国产精品久久久男人的天堂| 国产视频一区不卡| 欧美一区三区二区| 欧美综合视频在线观看| 国产99精品视频| 蜜桃av噜噜一区二区三区小说| 亚洲色图欧洲色图婷婷| 欧美精品一区二区久久久| 欧美丝袜丝交足nylons图片| 国产毛片精品国产一区二区三区| 国产中文字幕精品| 亚洲美女屁股眼交3| 欧美第一区第二区| 91在线播放网址| 国产一区 二区| 精品在线观看视频| 美女脱光内衣内裤视频久久网站 | 日韩三级免费观看| 国产成人精品免费看| 日韩精品电影在线观看| 国产精品毛片久久久久久久 | 欧美不卡一区二区三区四区| 色哦色哦哦色天天综合| 国产美女一区二区三区| 奇米影视一区二区三区小说| 人人爽香蕉精品| 亚洲一二三区在线观看| 欧美激情一区二区三区| 久久中文字幕电影| 3d动漫精品啪啪| 91麻豆精东视频| 99精品视频在线播放观看| 大胆欧美人体老妇| 国产一区视频导航| 极品少妇xxxx精品少妇偷拍| 日日夜夜精品视频天天综合网| 中文字幕日韩精品一区| 欧美经典一区二区三区| 久久久综合激的五月天| 欧美成人a在线| 日韩欧美一级二级| 久久综合九色综合欧美98| 久久久久亚洲蜜桃| 国产精品短视频| 亚洲一区二区三区四区五区黄| 亚洲成在人线免费| 国产一区二区美女| 99九九99九九九视频精品| 一本一道综合狠狠老| 在线观看成人小视频| 欧美日韩视频第一区| 日韩限制级电影在线观看| 亚洲精品一线二线三线| 国产欧美一区视频| 亚洲美女免费视频| 青青草原综合久久大伊人精品 | 欧美日本国产视频| 91精品国产综合久久福利软件 | 国产乱码精品一区二区三| 粉嫩欧美一区二区三区高清影视| 99精品视频在线观看免费| 欧美三级午夜理伦三级中视频| 6080亚洲精品一区二区| 精品国产1区二区| 亚洲成av人片一区二区三区| 麻豆久久一区二区| 丁香六月综合激情| 欧美精品日韩精品| 久久中文娱乐网| 亚洲综合色网站| 国内偷窥港台综合视频在线播放| 99久久99久久免费精品蜜臀| 欧美日韩另类国产亚洲欧美一级| 2欧美一区二区三区在线观看视频| 中文字幕乱码亚洲精品一区| 亚洲成av人片一区二区梦乃 | 久久精品一区八戒影视| 亚洲丝袜自拍清纯另类| 精东粉嫩av免费一区二区三区| 99久久综合国产精品| 日韩视频一区二区| 亚洲午夜一区二区三区| 高清免费成人av| 欧美日本一区二区三区四区| 欧美r级电影在线观看| 午夜av区久久| 国产一区二区成人久久免费影院| av毛片久久久久**hd| 在线亚洲精品福利网址导航| 51精品久久久久久久蜜臀| 久久久久国产一区二区三区四区 | 日韩av成人高清| 成人天堂资源www在线| 欧美一区二区三区四区视频| ㊣最新国产の精品bt伙计久久| 免费成人美女在线观看.| 91在线视频播放| 国产偷国产偷精品高清尤物| 舔着乳尖日韩一区| 日本福利一区二区| 中文字幕在线观看一区| 国产一区二区三区在线观看精品 | 欧美精品日日鲁夜夜添| 国产精品欧美一区二区三区| 激情综合网av| 欧美日韩精品免费| 亚洲精品中文在线影院| 成人久久18免费网站麻豆| 久久在线观看免费| 久久综合综合久久综合| 欧美一区国产二区| 亚洲自拍另类综合| 97精品视频在线观看自产线路二| 欧美成人官网二区| 久久国产麻豆精品| 日韩美女天天操| 首页欧美精品中文字幕| 欧洲色大大久久| 亚洲视频小说图片| 成人app在线观看| 亚洲欧美综合另类在线卡通| 国产999精品久久久久久绿帽| 欧美色视频在线| 亚洲精品日日夜夜| jvid福利写真一区二区三区| 日本一区二区三区国色天香| 国产一区二区三区视频在线播放| 国产视频一区不卡| 亚洲精品免费在线观看| 91亚洲国产成人精品一区二区三| 中文字幕免费在线观看视频一区| 国产成人高清视频| 欧美激情中文字幕一区二区| 麻豆国产精品官网| 国产亚洲一本大道中文在线| 国产成人午夜片在线观看高清观看| 欧美成人性福生活免费看| 免费成人深夜小野草| 亚洲精品一区二区三区99| 国产一区二区在线电影| 国产精品伦一区| 91在线观看视频| 午夜视黄欧洲亚洲| 日韩精品影音先锋| 成人av免费观看| 亚洲一区二区在线播放相泽| www.爱久久.com| 亚洲色图欧洲色图| 884aa四虎影成人精品一区| 狠狠色丁香久久婷婷综合_中 | 国产成人精品免费网站| 国产色综合一区| 色狠狠色噜噜噜综合网| 日韩中文字幕91| 国产拍欧美日韩视频二区|