在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > TQ2440啟動(dòng)代碼分析(二)

            TQ2440啟動(dòng)代碼分析(二)

            作者: 時(shí)間:2016-11-26 來(lái)源:網(wǎng)絡(luò) 收藏
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

            ;;;;;;;;;;;;; When EINT0 is pressed, Clear SDRAM

            本文引用地址:http://www.biyoush.com/article/201611/321667.htm

            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

            ; check if EIN0 button is pressed

            ;這一段檢測(cè)EINT0是否被按下,假如EINT0被按下,則清空SDRAM

            ldr r0,=GPFCON

            ldr r1,=0x0

            str r1,[r0]

            ldr r0,=GPFUP

            ldr r1,=0xff

            str r1,[r0]

            ;配置GPF

            ldr r1,=GPFDAT

            ldr r0,[r1]

            bic r0,r0,#(0x1e<<1) ; bit clear

            tst r0,#0x1

            bne %F1

            ; Clear SDRAM Start

            ldr r0,=GPFCON

            ldr r1,=0x55aa

            str r1,[r0]

            ; ldr r0,=GPFUP

            ; ldr r1,=0xff

            ; str r1,[r0]

            ldr r0,=GPFDAT

            ldr r1,=0x0

            str r1,[r0] ;LED=****

            mov r1,#0

            mov r2,#0

            mov r3,#0

            mov r4,#0

            mov r5,#0

            mov r6,#0

            mov r7,#0

            mov r8,#0

            ldr r9,=0x4000000 ;64MB

            ldr r0,=0x30000000

            0

            stmia r0!,{r1-r8}

            subs r9,r9,#32

            bne %B0

            ;以上這段清空SDRAM

            ;Clear SDRAM End

            1

            ;Initialize stacks

            bl InitStacks

            ;檢測(cè)引腳OM[1:0],如果OM[1:0]!=0,選擇從NOR Flash啟動(dòng),如果OM[1:0]==0,則表示從nand flash啟動(dòng)

            ;===========================================================

            ldr r0, =BWSCON

            ldr r0, [r0]

            ands r0, r0, #6 ;OM[1:0] != 0, NOR FLash boot

            bne copy_proc_beg ;do not read nand flash

            adr r0, ResetEntry ;OM[1:0] == 0, NAND FLash boot

            cmp r0, #0 ;if use Multi-ice,

            bne copy_proc_beg ;do not read nand flash for boot

            ;nop

            ;===========================================================

            nand_boot_beg

            [ {TRUE}

            bl RdNF2SDRAM

            ]

            ;nand flash啟動(dòng),拷貝程序到steppingstone區(qū)域

            ldr pc, =copy_proc_beg

            ;===========================================================

            copy_proc_beg;

            adr r0, ResetEntry

            ldr r2, BaseOfROM

            cmp r0, r2

            ldreq r0, TopOfROM

            beq InitRam

            ldr r3, TopOfROM

            0

            ldmia r0!, {r4-r7}

            stmia r2!, {r4-r7}

            cmp r2, r3

            bcc %B0

            sub r2, r2, r3

            sub r0, r0, r2

            InitRam

            ldr r2, BaseOfBSS

            ldr r3, BaseOfZero

            0

            cmp r2, r3

            ldrcc r1, [r0], #4

            strcc r1, [r2], #4

            bcc %B0

            mov r0, #0

            ldr r3, EndOfBSS

            1

            cmp r2, r3

            strcc r0, [r2], #4

            bcc %B1

            ldr pc, =%F2 ;goto compiler address

            2

            ; [ CLKDIV_VAL>1 ; means Fclk:Hclk is not 1:1.

            ; bl MMU_SetAsyncBusMode

            ; |

            ; bl MMU_SetFastBusMode ; default value.

            ; ]

            ;===========================================================

            ; Setup IRQ handler

            ldr r0,=HandleIRQ ;This routine is needed

            ldr r1,=IsrIRQ ;if there is not subs pc,lr,#4 at 0x18, 0x1c

            str r1,[r0]

            [ :LNOT:THUMBCODE

            bl Main ;Do not use main() because ......

            b .

            ]

            [ THUMBCODE ;for start-up code for Thumb mode

            orr lr,pc,#1

            bx lr

            CODE16

            bl Main ;Do not use main() because ......

            b .

            CODE32

            ]

            ;堆棧初始化的順序決定系統(tǒng)最后運(yùn)行在哪種處理器模式,最后初始化哪種模式的堆棧,系

            ;統(tǒng)就運(yùn)行在哪種模式。

            ;function initializing stacks

            InitStacks

            ;Do not use DRAM,such as stmfd,ldmfd......

            ;SVCstack is initialized before

            ;Under toolkit ver 2.5, msr cpsr,r1 can be used instead of msr cpsr_cxsf,r1

            mrs r0,cpsr

            bic r0,r0,#MODEMASK

            orr r1,r0,#UNDEFMODE|NOINT

            msr cpsr_cxsf,r1 ;UndefMode

            ldr sp,=UndefStack ; UndefStack=0x33FF_5C00


            上一頁(yè) 1 2 3 下一頁(yè)

            關(guān)鍵詞: TQ2440啟動(dòng)代

            評(píng)論


            技術(shù)專區(qū)

            關(guān)閉