wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4137|回復: 1
打印 上一主題 下一主題
收起左側

ARM mini2440裸奔 跑LCD手寫代碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:112317 發表于 2016-4-7 01:26 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
ARM裸奔跑代碼,LCD 實現手寫功能,(mini2440)裸奔又進了一步,更一步熟悉ARM體系結構
全部代碼下載: TOUCH----shouxie.rar (165.7 KB, 下載次數: 14)

部分源碼預覽:
  1. ;=========================================
  2. ; NAME: 2440INIT.S
  3. ; DESC: C start up codes
  4. ;       Configure memory, ISR ,stacks
  5. ;        Initialize C-variables
  6. ; HISTORY:
  7. ; 2002.02.25:kwtark: ver 0.0
  8. ; 2002.03.20:purnnamu: Add some functions for testing STOP,Sleep mode
  9. ; 2003.03.14:DonGo: Modified for 2440.
  10. ;=========================================

  11.         GET option.inc
  12.         GET memcfg.inc
  13.         GET 2440addr.inc

  14. BIT_SELFREFRESH EQU        (1<<22)

  15. ;Pre-defined constants
  16. USERMODE    EQU         0x10
  17. FIQMODE     EQU         0x11
  18. IRQMODE     EQU         0x12
  19. SVCMODE     EQU         0x13
  20. ABORTMODE   EQU         0x17
  21. UNDEFMODE   EQU         0x1b
  22. MODEMASK    EQU         0x1f
  23. NOINT       EQU         0xc0

  24. ;The location of stacks
  25. UserStack        EQU        (_STACK_BASEADDRESS-0x3800)        ;0x33ff4800 ~
  26. SVCStack        EQU        (_STACK_BASEADDRESS-0x2800)        ;0x33ff5800 ~
  27. UndefStack        EQU        (_STACK_BASEADDRESS-0x2400)        ;0x33ff5c00 ~
  28. AbortStack        EQU        (_STACK_BASEADDRESS-0x2000)        ;0x33ff6000 ~
  29. IRQStack        EQU        (_STACK_BASEADDRESS-0x1000)        ;0x33ff7000 ~
  30. FIQStack        EQU        (_STACK_BASEADDRESS-0x0)        ;0x33ff8000 ~

  31. ;Check if tasm.exe(armasm -16 ...@ADS 1.0) is used.
  32.         GBLL    THUMBCODE
  33.         [ {CONFIG} = 16
  34. THUMBCODE SETL  {TRUE}
  35.             CODE32
  36.                 |
  37. THUMBCODE SETL  {FALSE}
  38.     ]

  39.                 MACRO
  40.         MOV_PC_LR
  41.                 [ THUMBCODE
  42.             bx lr
  43.                 |
  44.             mov        pc,lr
  45.                 ]
  46.         MEND

  47.                 MACRO
  48.         MOVEQ_PC_LR
  49.                 [ THUMBCODE
  50.         bxeq lr
  51.                 |
  52.             moveq pc,lr
  53.                 ]
  54.         MEND

  55.                 MACRO
  56. $HandlerLabel HANDLER $HandleLabel

  57. $HandlerLabel
  58.         sub        sp,sp,#4        ;decrement sp(to store jump address)
  59.         stmfd        sp!,{r0}        ;PUSH the work register to stack(lr does not push because it return to original address)
  60.         ldr     r0,=$HandleLabel;load the address of HandleXXX to r0
  61.         ldr     r0,[r0]         ;load the contents(service routine start address) of HandleXXX
  62.         str     r0,[sp,#4]      ;store the contents(ISR) of HandleXXX to stack
  63.         ldmfd   sp!,{r0,pc}     ;POP the work register and pc(jump to ISR)
  64.         MEND

  65.         IMPORT  |Image$RO$Base|        ; Base of ROM code
  66.         IMPORT  |Image$RO$Limit|  ; End of ROM code (=start of ROM data)
  67.         IMPORT  |Image$RW$Base|   ; Base of RAM to initialise
  68.         IMPORT  |Image$ZI$Base|   ; Base and limit of area
  69.         IMPORT  |Image$ZI$Limit|  ; to zero initialise

  70.         IMPORT        MMU_SetAsyncBusMode
  71.         IMPORT        MMU_SetFastBusMode        ;

  72.         IMPORT  Main    ; The main entry of mon program

  73.         AREA    Init,CODE,READONLY

  74.         ENTRY
  75.        
  76.         EXPORT        __ENTRY
  77. __ENTRY
  78. ResetEntry
  79.         ;1)The code, which converts to Big-endian, should be in little endian code.
  80.         ;2)The following little endian code will be compiled in Big-Endian mode.
  81.         ;  The code byte order should be changed as the memory bus width.
  82.         ;3)The pseudo instruction,DCD can not be used here because the linker generates error.
  83.         ASSERT        :DEF:ENDIAN_CHANGE
  84.         [ ENDIAN_CHANGE
  85.             ASSERT  :DEF:ENTRY_BUS_WIDTH
  86.             [ ENTRY_BUS_WIDTH=32
  87.                 b        ChangeBigEndian            ;DCD 0xea000007
  88.             ]

  89.             [ ENTRY_BUS_WIDTH=16
  90.                 andeq        r14,r7,r0,lsl #20   ;DCD 0x0007ea00
  91.             ]

  92.             [ ENTRY_BUS_WIDTH=8
  93.                 streq        r0,[r0,-r10,ror #1] ;DCD 0x070000ea
  94.             ]
  95.         |
  96.             b        ResetHandler
  97.     ]
  98.         b        HandlerUndef        ;handler for Undefined mode
  99.         b        HandlerSWI        ;handler for SWI interrupt
  100.         b        HandlerPabort        ;handler for PAbort
  101.         b        HandlerDabort        ;handler for DAbort
  102.         b        .                ;reserved
  103.         b        HandlerIRQ        ;handler for IRQ interrupt
  104.         b        HandlerFIQ        ;handler for FIQ interrupt

  105. ;@0x20
  106.         b        EnterPWDN        ; Must be @0x20.
  107. ChangeBigEndian
  108. ;@0x24
  109.         [ ENTRY_BUS_WIDTH=32
  110.             DCD        0xee110f10        ;0xee110f10 => mrc p15,0,r0,c1,c0,0
  111.             DCD        0xe3800080        ;0xe3800080 => orr r0,r0,#0x80;  //Big-endian
  112.             DCD        0xee010f10        ;0xee010f10 => mcr p15,0,r0,c1,c0,0
  113.         ]
  114.         [ ENTRY_BUS_WIDTH=16
  115.             DCD 0x0f10ee11
  116.             DCD 0x0080e380
  117.             DCD 0x0f10ee01
  118.         ]
  119.         [ ENTRY_BUS_WIDTH=8
  120.             DCD 0x100f11ee
  121.             DCD 0x800080e3
  122.             DCD 0x100f01ee
  123.     ]
  124.         DCD 0xffffffff  ;swinv 0xffffff is similar with NOP and run well in both endian mode.
  125.         DCD 0xffffffff
  126.         DCD 0xffffffff
  127.         DCD 0xffffffff
  128.         DCD 0xffffffff
  129.         b ResetHandler
  130.        
  131. HandlerFIQ      HANDLER HandleFIQ
  132. HandlerIRQ      HANDLER HandleIRQ
  133. HandlerUndef    HANDLER HandleUndef
  134. HandlerSWI      HANDLER HandleSWI
  135. HandlerDabort   HANDLER HandleDabort
  136. HandlerPabort   HANDLER HandlePabort

  137. IsrIRQ
  138.         sub        sp,sp,#4       ;reserved for PC
  139.         stmfd        sp!,{r8-r9}

  140.         ldr        r9,=INTOFFSET
  141.         ldr        r9,[r9]
  142.         ldr        r8,=HandleEINT0
  143.         add        r8,r8,r9,lsl #2
  144.         ldr        r8,[r8]
  145.         str        r8,[sp,#8]
  146.         ldmfd        sp!,{r8-r9,pc}


  147.         LTORG

  148. ;=======
  149. ; ENTRY
  150. ;=======
  151. ResetHandler
  152.         ldr        r0,=WTCON       ;watch dog disable
  153.         ldr        r1,=0x0
  154.         str        r1,[r0]

  155.         ldr        r0,=INTMSK
  156.         ldr        r1,=0xffffffff  ;all interrupt disable
  157.         str        r1,[r0]

  158.         ldr        r0,=INTSUBMSK
  159.         ldr        r1,=0x7fff                ;all sub interrupt disable
  160.         str        r1,[r0]

  161.         [ {TRUE}
  162.         ;rGPFDAT = (rGPFDAT & ~(0xf<<4)) | ((~data & 0xf)<<4);
  163.         ; Led_Display
  164.         ldr        r0,=GPBCON
  165.         ldr        r1,=0x00555555
  166.         str        r1,[r0]
  167.         ldr        r0,=GPBDAT
  168.         ldr        r1,=0x07fe
  169.         str        r1,[r0]
  170.         ]

  171.         ;To reduce PLL lock time, adjust the LOCKTIME register.
  172.         ldr        r0,=LOCKTIME
  173.         ldr        r1,=0xffffff
  174.         str        r1,[r0]

  175.     [ PLL_ON_START
  176.         ; Added for confirm clock divide. for 2440.
  177.         ; Setting value Fclk:Hclk:Pclk
  178.         ldr        r0,=CLKDIVN
  179.         ldr        r1,=CLKDIV_VAL                ; 0=1:1:1, 1=1:1:2, 2=1:2:2, 3=1:2:4, 4=1:4:4, 5=1:4:8, 6=1:3:3, 7=1:3:6.
  180.         str        r1,[r0]
  181. ;        MMU_SetAsyncBusMode and MMU_SetFastBusMode over 4K, so do not call here
  182. ;        call it after copy
  183. ;        [ CLKDIV_VAL>1                 ; means Fclk:Hclk is not 1:1.
  184. ;        bl MMU_SetAsyncBusMode
  185. ;        |
  186. ;        bl MMU_SetFastBusMode        ; default value.
  187. ;        ]
  188.         ;program has not been copied, so use these directly
  189.         [ CLKDIV_VAL>1                 ; means Fclk:Hclk is not 1:1.
  190.         mrc p15,0,r0,c1,c0,0
  191.         orr r0,r0,#0xc0000000;R1_nF:OR:R1_iA
  192.         mcr p15,0,r0,c1,c0,0
  193.         |
  194.         mrc p15,0,r0,c1,c0,0
  195.         bic r0,r0,#0xc0000000;R1_iA:OR:R1_nF
  196.         mcr p15,0,r0,c1,c0,0
  197.         ]
  198.        
  199.         ;Configure UPLL
  200.         ldr        r0,=UPLLCON
  201.         ldr        r1,=((U_MDIV<<12)+(U_PDIV<<4)+U_SDIV)  
  202.         str        r1,[r0]
  203.         nop        ; Caution: After UPLL setting, at least 7-clocks delay must be inserted for setting hardware be completed.
  204.         nop
  205.         nop
  206.         nop
  207.         nop
  208.         nop
  209.         nop
  210.         ;Configure MPLL
  211.         ldr        r0,=MPLLCON
  212.         ldr        r1,=((M_MDIV<<12)+(M_PDIV<<4)+M_SDIV)  ;Fin=16.9344MHz
  213.         str        r1,[r0]
  214.     ]

  215.         ;Check if the boot is caused by the wake-up from SLEEP mode.
  216.         ldr        r1,=GSTATUS2
  217.         ldr        r0,[r1]
  218.         tst        r0,#0x2
  219.         ;In case of the wake-up from SLEEP mode, go to SLEEP_WAKEUP handler.
  220.         bne        WAKEUP_SLEEP

  221.         EXPORT StartPointAfterSleepWakeUp
  222. StartPointAfterSleepWakeUp

  223.         ;Set memory control registers
  224.         ;ldr        r0,=SMRDATA
  225.         adrl        r0, SMRDATA        ;be careful!
  226.         ldr        r1,=BWSCON        ;BWSCON Address
  227.         add        r2, r0, #52        ;End address of SMRDATA

  228. 0
  229.         ldr        r3, [r0], #4
  230.         str        r3, [r1], #4
  231.         cmp        r2, r0
  232.         bne        %B0

  233. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  234. ;;;;;;;;;;;;;       When EINT0 is pressed,  Clear SDRAM
  235. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  236. ; check if EIN0 button is pressed

  237.        ldr        r0,=GPFCON
  238.         ldr        r1,=0x0
  239.         str        r1,[r0]
  240.         ldr        r0,=GPFUP
  241.         ldr        r1,=0xff
  242.         str        r1,[r0]

  243.         ldr        r1,=GPFDAT
  244.         ldr        r0,[r1]
  245.        bic        r0,r0,#(0x1e<<1)  ; bit clear
  246.         tst        r0,#0x1
  247.         bne %F1
  248.        
  249.        

  250. ; Clear SDRAM Start
  251.   
  252.         ldr        r0,=GPFCON
  253.         ldr        r1,=0x55aa
  254.         str        r1,[r0]
  255. ;        ldr        r0,=GPFUP
  256. ;        ldr        r1,=0xff
  257. ;        str        r1,[r0]
  258.         ldr        r0,=GPFDAT
  259.         ldr        r1,=0x0
  260.         str        r1,[r0]        ;LED=****

  261.         mov r1,#0
  262.         mov r2,#0
  263.         mov r3,#0
  264.         mov r4,#0
  265.         mov r5,#0
  266.         mov r6,#0
  267.         mov r7,#0
  268.         mov r8,#0
  269.        
  270.         ldr        r9,=0x4000000   ;64MB
  271.         ldr        r0,=0x30000000
  272. 0       
  273.         stmia        r0!,{r1-r8}
  274.         subs        r9,r9,#32
  275.         bne        %B0

  276. ;Clear SDRAM End

  277. 1

  278.                 ;Initialize stacks
  279.         bl        InitStacks

  280. ;===========================================================
  281.        
  282.         ldr        r0, =BWSCON
  283.         ldr        r0, [r0]
  284.         ands        r0, r0, #6                ;OM[1:0] != 0, NOR FLash boot
  285.         bne        copy_proc_beg                ;do not read nand flash
  286.         adr        r0, ResetEntry                ;OM[1:0] == 0, NAND FLash boot
  287.         cmp        r0, #0                                ;if use Multi-ice,
  288.         bne        copy_proc_beg                ;do not read nand flash for boot
  289.         ;nop
  290. ;===========================================================
  291. nand_boot_beg
  292.         mov        r5, #NFCONF
  293.         ;set timing value
  294.         ldr        r0,        =(7<<12)|(7<<8)|(7<<4)
  295.         str        r0,        [r5]
  296.         ;enable control
  297.         ldr        r0, =(0<<13)|(0<<12)|(0<<10)|(0<<9)|(0<<8)|(1<<6)|(1<<5)|(1<<4)|(1<<1)|(1<<0)
  298.         str        r0, [r5, #4]
  299.        
  300.         bl        ReadNandID
  301.         mov        r6, #0
  302.         ldr        r0, =0xec73
  303.         cmp        r5,        r0
  304.         beq        %F1
  305.         ldr        r0, =0xec75
  306.         cmp        r5, r0
  307.         beq        %F1
  308.         mov        r6, #1
  309. 1       
  310.         bl        ReadNandStatus
  311.        
  312.         mov        r8, #0
  313.         ldr        r9, =ResetEntry
  314. 2       
  315.         ands        r0, r8, #0x1f
  316.         bne                %F3
  317.         mov                r0, r8
  318.         bl                CheckBadBlk
  319.         cmp                r0, #0
  320.         addne        r8, r8, #32
  321.         bne                %F4
  322. 3       
  323.         mov        r0, r8
  324.         mov        r1, r9
  325.         bl        ReadNandPage
  326.         add        r9, r9, #512
  327.         add        r8, r8, #1
  328. 4       
  329.         cmp        r8, #5120
  330.         bcc        %B2
  331.        
  332.         mov        r5, #NFCONF                        ;DsNandFlash
  333.         ldr        r0, [r5, #4]
  334.         bic r0, r0, #1
  335.         str        r0, [r5, #4]
  336.         ldr        pc, =copy_proc_beg
  337. ;===========================================================
  338. copy_proc_beg
  339.         adr        r0, ResetEntry
  340.         ldr        r2, BaseOfROM
  341.         cmp        r0, r2
  342.         ldreq        r0, TopOfROM
  343.         beq        InitRam       
  344.         ldr r3, TopOfROM
  345. 0       
  346.         ldmia        r0!, {r4-r7}
  347.         stmia        r2!, {r4-r7}
  348.         cmp        r2, r3
  349.         bcc        %B0
  350.        
  351.         sub        r2, r2, r3
  352.         sub        r0, r0, r2                               
  353.                
  354. InitRam       
  355.         ldr        r2, BaseOfBSS
  356.         ldr        r3, BaseOfZero       
  357. 0
  358.         cmp        r2, r3
  359.         ldrcc        r1, [r0], #4
  360.         strcc        r1, [r2], #4
  361.         bcc        %B0       

  362.         mov        r0,        #0
  363.         ldr        r3,        EndOfBSS
  364. 1       
  365.         cmp        r2,        r3
  366.         strcc        r0, [r2], #4
  367.         bcc        %B1
  368.        
  369.         ldr        pc, =%F2                ;goto compiler address
  370. 2
  371.        
  372. ;        [ CLKDIV_VAL>1                 ; means Fclk:Hclk is not 1:1.
  373. ;        bl        MMU_SetAsyncBusMode
  374. ;        |
  375. ;        bl MMU_SetFastBusMode        ; default value.
  376. ;        ]
  377.        
  378.         ;bl        Led_Test

  379. ;===========================================================
  380.           ; Setup IRQ handler
  381.         ldr        r0,=HandleIRQ       ;This routine is needed
  382.         ldr        r1,=IsrIRQ          ;if there is not 'subs pc,lr,#4' at 0x18, 0x1c
  383.         str        r1,[r0]

  384. ;        ;Copy and paste RW data/zero initialized data
  385. ;        ldr        r0, =|Image$RO$Limit| ; Get pointer to ROM data
  386. ;        ldr        r1, =|Image$RW$Base|  ; and RAM copy
  387. ;        ldr        r3, =|Image$ZI$Base|
  388. ;
  389. ;        ;Zero init base => top of initialised data
  390. ;        cmp        r0, r1      ; Check that they are different
  391. ;        beq        %F2
  392. ;1
  393. ;        cmp        r1, r3      ; Copy init data
  394. ;        ldrcc        r2, [r0], #4    ;--> LDRCC r2, [r0] + ADD r0, r0, #4
  395. ;        strcc        r2, [r1], #4    ;--> STRCC r2, [r1] + ADD r1, r1, #4
  396. ;        bcc        %B1
  397. ;2
  398. ;        ldr        r1, =|Image$ZI$Limit| ; Top of zero init segment
  399. ;        mov        r2, #0
  400. ;3
  401. ;        cmp        r3, r1      ; Zero init
  402. ;        strcc        r2, [r3], #4
  403. ;        bcc        %B3


  404.     [ :LNOT:THUMBCODE
  405.                 bl        Main        ;Do not use main() because ......
  406.                 ;ldr        pc, =Main        ;
  407.                 b        .
  408.     ]

  409.     [ THUMBCODE         ;for start-up code for Thumb mode
  410.                 orr        lr,pc,#1
  411.                 bx        lr
  412.                 CODE16
  413.                 bl        Main        ;Do not use main() because ......
  414.                 b        .
  415.                 CODE32
  416.     ]


  417. ;function initializing stacks
  418. InitStacks
  419.         ;Do not use DRAM,such as stmfd,ldmfd......
  420.         ;SVCstack is initialized before
  421.         ;Under toolkit ver 2.5, 'msr cpsr,r1' can be used instead of 'msr cpsr_cxsf,r1'
  422.         mrs        r0,cpsr
  423.         bic        r0,r0,#MODEMASK
  424.         orr        r1,r0,#UNDEFMODE|NOINT
  425.         msr        cpsr_cxsf,r1                ;UndefMode
  426.         ldr        sp,=UndefStack                ; UndefStack=0x33FF_5C00

  427.         orr        r1,r0,#ABORTMODE|NOINT
  428.         msr        cpsr_cxsf,r1                ;AbortMode
  429.         ldr        sp,=AbortStack                ; AbortStack=0x33FF_6000

  430.         orr        r1,r0,#IRQMODE|NOINT
  431.         msr        cpsr_cxsf,r1                ;IRQMode
  432.         ldr        sp,=IRQStack                ; IRQStack=0x33FF_7000

  433.         orr        r1,r0,#FIQMODE|NOINT
  434.         msr        cpsr_cxsf,r1                ;FIQMode
  435.         ldr        sp,=FIQStack                ; FIQStack=0x33FF_8000

  436.         bic        r0,r0,#MODEMASK|NOINT
  437.         orr        r1,r0,#SVCMODE
  438.         msr        cpsr_cxsf,r1                ;SVCMode
  439.         ldr        sp,=SVCStack                ; SVCStack=0x33FF_5800

  440.         ;USER mode has not be initialized.

  441.         mov        pc,lr
  442.         ;The LR register will not be valid if the current mode is not SVC mode.
  443.        
  444. ;===========================================================
  445. ReadNandID
  446.         mov      r7,#NFCONF
  447.         ldr      r0,[r7,#4]                ;NFChipEn();
  448.         bic      r0,r0,#2
  449.         str      r0,[r7,#4]
  450.         mov      r0,#0x90                ;WrNFCmd(RdIDCMD);
  451.         strb     r0,[r7,#8]
  452.         mov      r4,#0                        ;WrNFAddr(0);
  453.         strb     r4,[r7,#0xc]
  454. 1                                                        ;while(NFIsBusy());
  455.         ldr      r0,[r7,#0x20]
  456.         tst      r0,#1
  457.         beq      %B1
  458.         ldrb     r0,[r7,#0x10]        ;id  = RdNFDat()<<8;
  459.         mov      r0,r0,lsl #8
  460.         ldrb     r1,[r7,#0x10]        ;id |= RdNFDat();
  461.         orr      r5,r1,r0
  462.         ldr      r0,[r7,#4]                ;NFChipDs();
  463.         orr      r0,r0,#2
  464.         str      r0,[r7,#4]
  465.         mov                 pc,lr       
  466.        
  467. ReadNandStatus
  468.         mov                 r7,#NFCONF
  469.         ldr      r0,[r7,#4]                ;NFChipEn();
  470.         bic      r0,r0,#2
  471.         str      r0,[r7,#4]
  472.         mov      r0,#0x70                ;WrNFCmd(QUERYCMD);
  473.         strb     r0,[r7,#8]       
  474.         ldrb     r1,[r7,#0x10]        ;r1 = RdNFDat();
  475.         ldr      r0,[r7,#4]                ;NFChipDs();
  476.         orr      r0,r0,#2
  477.         str      r0,[r7,#4]
  478.         mov                 pc,lr

  479. WaitNandBusy
  480.         mov      r0,#0x70                ;WrNFCmd(QUERYCMD);
  481.         mov      r1,#NFCONF
  482.         strb     r0,[r1,#8]
  483. 1                                                        ;while(!(RdNFDat()&0x40));       
  484.         ldrb     r0,[r1,#0x10]
  485.         tst      r0,#0x40
  486.         beq                 %B1
  487.         mov      r0,#0                        ;WrNFCmd(READCMD0);
  488.         strb     r0,[r1,#8]
  489.         mov      pc,lr

  490. CheckBadBlk
  491.         mov                r7, lr
  492.         mov                r5, #NFCONF
  493.        
  494.         bic      r0,r0,#0x1f        ;addr &= ~0x1f;
  495.         ldr      r1,[r5,#4]                ;NFChipEn()
  496.         bic      r1,r1,#2
  497.         str      r1,[r5,#4]

  498.         mov      r1,#0x50                ;WrNFCmd(READCMD2)
  499.         strb     r1,[r5,#8]
  500.         mov      r1, #5;6                ;6->5
  501.         strb     r1,[r5,#0xc]        ;WrNFAddr(5);(6) 6->5
  502.         strb     r0,[r5,#0xc]        ;WrNFAddr(addr)
  503.         mov      r1,r0,lsr #8        ;WrNFAddr(addr>>8)
  504.         strb     r1,[r5,#0xc]
  505.         cmp      r6,#0                        ;if(NandAddr)               
  506.         movne    r0,r0,lsr #16        ;WrNFAddr(addr>>16)
  507.         strneb   r0,[r5,#0xc]
  508.        
  509. ;        bl                WaitNandBusy        ;WaitNFBusy()
  510.         ;do not use WaitNandBusy, after WaitNandBusy will read part A!
  511.         mov        r0, #100
  512. 1
  513.         subs        r0, r0, #1
  514.         bne        %B1
  515. 2
  516.         ldr        r0, [r5, #0x20]
  517.         tst        r0, #1
  518.         beq        %B2       

  519.         ldrb        r0, [r5,#0x10]        ;RdNFDat()
  520.         sub                r0, r0, #0xff
  521.        
  522.         mov      r1,#0                        ;WrNFCmd(READCMD0)
  523.         strb     r1,[r5,#8]
  524.        
  525.         ldr      r1,[r5,#4]                ;NFChipDs()
  526.         orr      r1,r1,#2
  527.         str      r1,[r5,#4]
  528.        
  529.         mov                pc, r7
  530.        
  531. ReadNandPage
  532.         mov                 r7,lr
  533.         mov      r4,r1
  534.         mov      r5,#NFCONF

  535.         ldr      r1,[r5,#4]                ;NFChipEn()
  536.         bic      r1,r1,#2
  537.         str      r1,[r5,#4]       

  538.         mov      r1,#0                        ;WrNFCmd(READCMD0)
  539.         strb     r1,[r5,#8]       
  540.         strb     r1,[r5,#0xc]        ;WrNFAddr(0)
  541.         strb     r0,[r5,#0xc]        ;WrNFAddr(addr)
  542.         mov      r1,r0,lsr #8        ;WrNFAddr(addr>>8)
  543.         strb     r1,[r5,#0xc]       
  544.         cmp      r6,#0                        ;if(NandAddr)               
  545.         movne    r0,r0,lsr #16        ;WrNFAddr(addr>>16)
  546.         strneb   r0,[r5,#0xc]
  547.        
  548.         ldr      r0,[r5,#4]                ;InitEcc()
  549.         orr      r0,r0,#0x10
  550.         str      r0,[r5,#4]
  551.        
  552.         bl       WaitNandBusy        ;WaitNFBusy()
  553.        
  554.         mov      r0,#0                        ;for(i=0; i<512; i++)
  555. 1
  556.         ldrb     r1,[r5,#0x10]        ;buf[i] = RdNFDat()
  557.         strb     r1,[r4,r0]
  558.         add      r0,r0,#1
  559.         bic      r0,r0,#0x10000
  560.         cmp      r0,#0x200
  561.         bcc      %B1
  562.        
  563.         ldr      r0,[r5,#4]                ;NFChipDs()
  564.         orr      r0,r0,#2
  565.         str      r0,[r5,#4]
  566.                
  567.         mov                 pc,r7


  568. ;===========================================================

  569.         LTORG

  570. ;GCS0->SST39VF1601
  571. ;GCS1->16c550
  572. ;GCS2->IDE
  573. ;GCS3->CS8900
  574. ;GCS4->DM9000
  575. ;GCS5->CF Card
  576. ;GCS6->SDRAM
  577. ;GCS7->unused

  578. SMRDATA DATA
  579. ; Memory configuration should be optimized for best performance
  580. ; The following parameter is not optimized.
  581. ; Memory access cycle parameter strategy
  582. ; 1) The memory settings is  safe parameters even at HCLK=75Mhz.
  583. ; 2) SDRAM refresh period is for HCLK<=75Mhz.

  584.         DCD (0+(B1_BWSCON<<4)+(B2_BWSCON<<8)+(B3_BWSCON<<12)+(B4_BWSCON<<16)+(B5_BWSCON<<20)+(B6_BWSCON<<24)+(B7_BWSCON<<28))
  585.         DCD ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC))   ;GCS0
  586.         DCD ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC))   ;GCS1
  587.         DCD ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC))   ;GCS2
  588.         DCD ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC))   ;GCS3
  589.         DCD ((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC))   ;GCS4
  590.         DCD ((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<8)+(B5_Tcoh<<6)+(B5_Tah<<4)+(B5_Tacp<<2)+(B5_PMC))   ;GCS5
  591.         DCD ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN))    ;GCS6
  592.         DCD ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN))    ;GCS7
  593.         DCD ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Tsrc<<18)+(Tchr<<16)+REFCNT)

  594.         DCD 0x32            ;SCLK power saving mode, BANKSIZE 128M/128M

  595.         DCD 0x30            ;MRSR6 CL=3clk
  596.         DCD 0x30            ;MRSR7 CL=3clk
  597.        
  598. BaseOfROM        DCD        |Image$RO$Base|
  599. TopOfROM        DCD        |Image$RO$Limit|
  600. BaseOfBSS        DCD        |Image$RW$Base|
  601. BaseOfZero        DCD        |Image$ZI$Base|
  602. EndOfBSS        DCD        |Image$ZI$Limit|

  603.         ALIGN
  604.        
  605. ;Function for entering power down mode
  606. ; 1. SDRAM should be in self-refresh mode.
  607. ; 2. All interrupt should be maksked for SDRAM/DRAM self-refresh.
  608. ; 3. LCD controller should be disabled for SDRAM/DRAM self-refresh.
  609. ; 4. The I-cache may have to be turned on.
  610. ; 5. The location of the following code may have not to be changed.

  611. ;void EnterPWDN(int CLKCON);
  612. EnterPWDN
  613.         mov r2,r0                ;r2=rCLKCON
  614.         tst r0,#0x8                ;SLEEP mode?
  615.         bne ENTER_SLEEP

  616. ENTER_STOP
  617.         ldr r0,=REFRESH
  618.         ldr r3,[r0]                ;r3=rREFRESH
  619.         mov r1, r3
  620.         orr r1, r1, #BIT_SELFREFRESH
  621.         str r1, [r0]                ;Enable SDRAM self-refresh

  622.         mov r1,#16                        ;wait until self-refresh is issued. may not be needed.
  623. 0        subs r1,r1,#1
  624.         bne %B0

  625.         ldr r0,=CLKCON                ;enter STOP mode.
  626.         str r2,[r0]

  627.         mov r1,#32
  628. 0        subs r1,r1,#1        ;1) wait until the STOP mode is in effect.
  629.         bne %B0                ;2) Or wait here until the CPU&Peripherals will be turned-off
  630.                         ;   Entering SLEEP mode, only the reset by wake-up is available.

  631.         ldr r0,=REFRESH ;exit from SDRAM self refresh mode.
  632.         str r3,[r0]

  633.         MOV_PC_LR

  634. ENTER_SLEEP
  635.         ;NOTE.
  636.         ;1) rGSTATUS3 should have the return address after wake-up from SLEEP mode.

  637.         ldr r0,=REFRESH
  638.         ldr r1,[r0]                ;r1=rREFRESH
  639.         orr r1, r1, #BIT_SELFREFRESH
  640.         str r1, [r0]                ;Enable SDRAM self-refresh

  641.         mov r1,#16                        ;Wait until self-refresh is issued,which may not be needed.
  642. 0        subs r1,r1,#1
  643.         bne %B0

  644.         ldr        r1,=MISCCR
  645.         ldr        r0,[r1]
  646.         orr        r0,r0,#(7<<17)  ;Set SCLK0=0, SCLK1=0, SCKE=0.
  647.         str        r0,[r1]

  648.         ldr r0,=CLKCON                ; Enter sleep mode
  649.         str r2,[r0]

  650.         b .                        ;CPU will die here.


  651. WAKEUP_SLEEP
  652.         ;Release SCLKn after wake-up from the SLEEP mode.
  653.         ldr        r1,=MISCCR
  654.         ldr        r0,[r1]
  655.         bic        r0,r0,#(7<<17)  ;SCLK0:0->SCLK, SCLK1:0->SCLK, SCKE:0->=SCKE.
  656.         str        r0,[r1]

  657.         ;Set memory control registers
  658.         ldr        r0,=SMRDATA        ;be careful!
  659.         ldr        r1,=BWSCON        ;BWSCON Address
  660.         add        r2, r0, #52        ;End address of SMRDATA
  661. 0
  662.         ldr        r3, [r0], #4
  663.         str        r3, [r1], #4
  664.         cmp        r2, r0
  665.         bne        %B0

  666.         mov r1,#256
  667. 0        subs r1,r1,#1        ;1) wait until the SelfRefresh is released.
  668.         bne %B0

  669.         ldr r1,=GSTATUS3         ;GSTATUS3 has the start address just after SLEEP wake-up
  670.         ldr r0,[r1]

  671.         mov pc,r0
  672.        
  673. ;=====================================================================
  674. ; Clock division test
  675. ; Assemble code, because VSYNC time is very short
  676. ;=====================================================================
  677.         EXPORT CLKDIV124
  678.         EXPORT CLKDIV144
  679.        
  680. CLKDIV124
  681.        
  682.         ldr     r0, = CLKDIVN
  683.         ldr     r1, = 0x3                ; 0x3 = 1:2:4
  684.         str     r1, [r0]
  685. ;        wait until clock is stable
  686.         nop
  687.         nop
  688.         nop
  689.         nop
  690.         nop

  691.         ldr     r0, = REFRESH
  692.         ldr     r1, [r0]
  693.         bic                r1, r1, #0xff
  694.         bic                r1, r1, #(0x7<<8)
  695.         orr                r1, r1, #0x470        ; REFCNT135
  696.         str     r1, [r0]
  697.         nop
  698.         nop
  699.         nop
  700.         nop
  701.         nop
  702.         mov     pc, lr

  703. CLKDIV144
  704.         ldr     r0, = CLKDIVN
  705.         ldr     r1, = 0x4                ; 0x4 = 1:4:4
  706.         str     r1, [r0]
  707. ;        wait until clock is stable
  708.         nop
  709.         nop
  710.         nop
  711.         nop
  712.         nop

  713.         ldr     r0, = REFRESH
  714.         ldr     r1, [r0]
  715.         bic                r1, r1, #0xff
  716.         bic                r1, r1, #(0x7<<8)
  717.         orr                r1, r1, #0x630        ; REFCNT675 - 1520
  718.         str     r1, [r0]
  719.         nop
  720.         nop
  721.         nop
  722.         nop
  723.         nop
  724.         mov     pc, lr


  725.         ALIGN

  726.         AREA RamData, DATA, READWRITE

  727.         ^   _ISR_STARTADDRESS                ; _ISR_STARTADDRESS=0x33FF_FF00
  728. HandleReset         #   4
  729. HandleUndef         #   4
  730. HandleSWI                #   4
  731. HandlePabort    #   4
  732. HandleDabort    #   4
  733. HandleReserved  #   4
  734. HandleIRQ                #   4
  735. HandleFIQ                #   4

  736. ;Do not use the label 'IntVectorTable',
  737. ;The value of IntVectorTable is different with the address you think it may be.
  738. ;IntVectorTable
  739. ;@0x33FF_FF20
  740. HandleEINT0                #   4
  741. HandleEINT1                #   4
  742. HandleEINT2                #   4
  743. HandleEINT3                #   4
  744. HandleEINT4_7        #   4
  745. HandleEINT8_23        #   4
  746. HandleCAM                #   4                ; Added for 2440.
  747. HandleBATFLT        #   4
  748. HandleTICK                #   4
  749. HandleWDT                #   4
  750. HandleTIMER0         #   4
  751. HandleTIMER1         #   4
  752. HandleTIMER2         #   4
  753. HandleTIMER3         #   4
  754. HandleTIMER4         #   4
  755. HandleUART2          #   4
  756. ;@0x33FF_FF60
  757. HandleLCD                 #   4
  758. HandleDMA0                #   4
  759. HandleDMA1                #   4
  760. HandleDMA2                #   4
  761. HandleDMA3                #   4
  762. HandleMMC                #   4
  763. HandleSPI0                #   4
  764. HandleUART1                #   4
  765. HandleNFCON                #   4                ; Added for 2440.
  766. HandleUSBD                #   4
  767. HandleUSBH                #   4
  768. HandleIIC                #   4
  769. HandleUART0         #   4
  770. HandleSPI1                 #   4
  771. HandleRTC                 #   4
  772. HandleADC                 #   4
  773. ;@0x33FF_FFA0
  774.         END
復制代碼



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:116389 發表于 2016-6-1 13:50 | 只看該作者
支持樓主,搶沙發,樓主棒棒噠
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
高清不卡在线观看| 亚洲精品久久7777| bt在线麻豆视频| 91久久国产综合| 动漫美女被爆操久久久| 在线观看一区二区精品视频| 一本色道久久综合| 在线观看操人| 亚洲男人的天堂成人| 日本少妇一级片| 久久精品最新地址| 国产精品久久久久一区二区三区| 欧美freesex8一10精品| 中文字字幕在线中文乱码电影| 久久免费视频精品| 91专区在线观看| 2021国产精品视频| 欧美日韩中文在线| 日韩精品午夜视频| av日韩在线免费观看| 欧美aaa大片| 性生活免费网站| 久久无码人妻精品一区二区三区 | 99免费精品在线| 精品中文在线| 蜜臀一区二区三区| 天天干视频在线| 国产肥白大熟妇bbbb视频| 亚洲不卡一卡2卡三卡4卡5卡精品| 国产一区二区三区久久精品 | 三级黄色的网站| 欧美精品二区三区| 少妇网站在线观看| 成人h视频在线观看| 国产亚洲精品美女| 亚洲午夜私人影院| 国产在线视视频有精品| 日本精品影院| 亚洲第一图区| 97操碰视频| 欧美日韩人妻精品一区二区三区| 日韩国产欧美亚洲| 97人人模人人爽人人喊38tv| 曰本色欧美视频在线| 一区二区三区四区精品在线视频| 国产精品一卡| 欧亚精品一区| 美女网站视频在线| 日本按摩中出| 久久99蜜桃精品久久久久小说| 日本最新中文字幕| 亚洲激情在线看| 亚洲欧美丝袜| 国产精品嫩草影院久久久| 日韩国产高清影视| 欧美aaaaa级| av午夜在线观看| 樱花草www在线观看| 国产欧美综合一区| 国产精品亚洲片夜色在线| 日韩久久午夜影院| 午夜精品久久久久久久久久久| 九九视频精品免费| 欧美一区2区| 日本美女久久| 国产大片在线免费观看| 又黄又湿又爽又免费又色| 天天爱天天做天天爽| 日本黄色动态图| 少妇性饥渴无码a区免费| 韩国成人动漫在线观看| 九九视频这里只有精品| 在线观看91av| 亚洲精品美腿丝袜| 国产一区在线精品| 欧美网站在线| 欧美xxxxx18| 国产麻豆a毛片| 奇米777在线视频| 日韩视频在线免费播放| 91精品国产自产在线| 国产一区二区黄| 欧美岛国在线观看| 91久久久免费一区二区| 国产女人aaa级久久久级| 蜜臀av一区二区三区| 亚洲视频电影在线| 日韩大片在线免费观看| 伊人久久大香伊蕉在人线观看热v 伊人久久大香线蕉综合影院首页 伊人久久大香 | 国产午夜无码视频在线观看| 国产又粗又长又黄的视频| 无尽裸体动漫2d在线观看| 国产aaa免费视频| 亚洲不卡一卡2卡三卡4卡5卡精品| 成人福利网站在线观看11| 97高清免费视频| 日韩在线观看成人| 亚洲乱码国产乱码精品精天堂| 91精品国产乱| 色丁香久综合在线久综合在线观看| 亚洲欧美自拍偷拍| 久久久精品蜜桃| 精品亚洲porn| 日韩高清国产一区在线| 亚洲黄网站黄| 在线播放精品| 伊人成人在线视频| 女人天堂亚洲aⅴ在线观看| 成人同人动漫免费观看| 欧美色就是色| 国产精品亚洲片在线播放| 麻豆精品av| 国产精品第一国产精品| 免费福利视频一区二区三区| 天堂电影一区| 亚洲国产福利| 日韩在线免费| 涩涩涩久久久成人精品| 99tv成人影院| 亚洲成av人片在线观看www| 3d动漫一区二区三区在线观看| 国产亚洲精品精品国产亚洲综合| 成人免费一区| 四虎精品在线观看| 中文字幕av一区二区三区四区| 日韩精品亚洲专区在线观看| 天天骑夜夜操| 成人h动漫在线| 国产二区三区四区| 视频一区二区三区在线看免费看| 亚洲裸体视频| 免费在线看黄| h网站久久久| 国产桃色电影在线播放| 亚洲线精品久久一区二区三区| 欧美一区二区三区久久综合| 国产xxxxxx久色视频在| 女生裸体无遮挡天堂网站免费| 男女羞羞视频教学| 中文字幕在线视频免费观看| 欧洲伦理片一区 二区 三区| 五月综合激情在线| 午夜在线免费视频| 大胆av不用播放器在线播放| 26uuu亚洲电影在线观看| 都市激情久久综合| 色噜噜一区二区三区| 成人免费一级视频| 亚洲欧美久久婷婷爱综合一区天堂 | 97视频在线观看播放| 亚洲国产成人一区| 亚洲欧美综合精品久久成人| 日韩视频在线免费观看| 97久久久免费福利网址| 成人黄色午夜影院| 亚洲精美视频| 日韩欧美xxxx| 丰满人妻一区二区三区免费视频棣| 极品人妻videosss人妻| 亚洲综合一二三| 国产伦精品一区二区三区免.费| 亚洲人的天堂男人爽爽爽| 999久久久免费精品国产牛牛| 成人免费xx| 日韩专区在线| jizz免费一区二区三区| 精品九九在线| 日韩国产精品久久久| 99re这里只有精品6| 亚洲午夜国产一区99re久久| 欧美高清dvd| 色青青草原桃花久久综合| 欧美日韩亚洲国产综合| 日韩女优av电影在线观看| 国产精品一久久香蕉国产线看观看| 国产黄视频在线| 国产一级生活片| 青青草.com| 性欧美18xxxhd| 精品成人在线| 亚洲成人tv网| 91国产中文字幕| 欧美牲交a欧美牲交| av黄色在线看| av电影资源| 91精品国产一区二区在线观看| 麻豆国产欧美日韩综合精品二区| 欧美三级电影精品| 亚洲一区二区自拍| 亚洲日本久久久| 亚洲欧洲成人在线| av片在线观看免费| 激情婷婷亚洲| 91久久精品网| 亚洲r级在线观看| 精品无码av一区二区三区| 亚洲老妇色熟女老太| yourporn在线观看视频| 五月天久久久| 偷拍一区二区三区| 国产精品羞羞答答| 亚洲无人区码一码二码三码| 亚洲色图图片专区| 波多野结衣中文在线| 性8sex亚洲区入口| 欧美日韩不卡一区二区| 丁香五月网久久综合| 黄色正能量网站| 91国在线产| 精品一区二区三区亚洲| 91网站最新网址| 久久不射电影网| 十八禁视频网站在线观看| 国产精品主播一区二区| 日本成人网址| 久久精品道一区二区三区| 欧美日韩精品是欧美日韩精品| 国产成人精品日本亚洲11| 亚洲精品一区二区三区影院忠贞| 一个人看的www免费观看视频| 日韩黄色在线| 国产精品色哟哟| 国产激情久久久| 亚洲欧美色图视频| 成年免费视频| 蜜桃精品噜噜噜成人av| 亚洲 欧美综合在线网络| 亚洲综合视频1区| 懂色av粉嫩av蜜臀av一区二区三区| 操女生的网站| 综合亚洲色图| 欧美综合亚洲图片综合区| 另类欧美小说| 99久久精品国产亚洲| 国产51人人成人人人人爽色哟哟| 一区二区三区精品视频在线观看| 精品国产髙清在线看国产毛片| 资源网第一页久久久| 在线观看中文字幕网站| 久久一卡二卡| 国产99久久久久久免费看农村| 久久成人精品电影| www.久久久精品| 亚洲精品一区中文字幕电影| 高清久久精品| 一级精品视频在线观看宜春院 | 日韩电视剧免费观看网站| 国产人妻人伦精品| 黄色aaa大片| 午夜精品久久久久久毛片| 中文字幕欧美一| 91超碰在线免费观看| 久久综合成人网| av在线免费一区| 国产一区二区剧情av在线| 欧美激情极品视频| 国产美女精品久久| 在线观看视频网站你懂得| 麻豆久久精品| 久久国产精品电影| av天堂一区二区| 黄色三级电影网| 亚洲精品欧美| 日韩一区二区三区国产| 中文字幕在线播放一区二区| www.操操| 日韩视频中文| 中文字幕日韩欧美精品在线观看| 五月婷婷六月丁香激情| 日本jizzjizz| 综合日韩在线| 亚洲视频一区二区| 国产伦精品一区二区三区88av| 成人网免费看| 日韩高清不卡一区二区三区| 久久欧美在线电影| japanese中文字幕| 国产乱子伦三级在线播放| 九色porny丨国产精品| 日本国产精品视频| 少妇人妻丰满做爰xxx| porn亚洲| 成人性生交大片| 国产福利视频一区二区| 91九色丨porny丨肉丝| av老司机免费在线| 久久夜色精品一区| 岛国视频一区免费观看| 中文字幕一区二区三区四区免费看| 欧洲成人一区| 婷婷激情综合网| 宅男噜噜99国产精品观看免费| 中文字幕你懂得| 欧美国产小视频| 色悠悠久久88| 老熟妇高潮一区二区三区| 色av手机在线| 亚洲成人福利片| 超碰成人免费在线| jiuse九色最新地址| 久久久人人人| 国产精品爱啪在线线免费观看| 国产超碰人人爽人人做人人爱| 户外露出一区二区三区| 色噜噜夜夜夜综合网| 国产又大又黄又粗的视频| 91麻豆福利| 国产99精品国产| 国精产品99永久一区一区| 男人天堂网站| 亚洲精品乱码久久久久久蜜桃麻豆| 久久久噜噜噜久久久| 国产成人在线视频观看| 麻豆精品一区| 精品一区二区电影| 五月天婷婷丁香网| 中文日产幕无线码一区二区| 在线观看亚洲一区| 免费高清视频在线观看| 国产主播福利在线| 综合久久给合久久狠狠狠97色| 超碰97在线看| 色偷偷亚洲第一成人综合网址| 国产伦精品一区二区三区免费 | 久久人人爽亚洲精品天堂| 九九九久久久久| 亚洲最大的免费视频网站| 亚洲精品wwww| 538精品在线观看| 欧美一区二区三区婷婷| 日韩av在线天堂网| 天天鲁一鲁摸一摸爽一爽| 91大神在线观看线路一区| 欧美精品一区二| 黄色精品视频在线观看| 亚洲人免费短视频| 日韩精品视频免费专区在线播放| 四虎884aa成人精品| 国产一区二区| 久久夜精品va视频免费观看| 久久久黄色大片| 成人激情免费视频| 91av在线免费观看| 精品区在线观看| 在线观看一区视频| 超碰国产精品久久国产精品99| 精品视频麻豆入口| 国产久卡久卡久卡久卡视频精品| 日韩av一区二区三区在线观看| 爱爱网站免费| 国产视频一区在线观看| 日本www在线视频| 高清av在线| 欧美性大战久久久| 免费看黄色av| 秋霞午夜一区二区三区视频| 日韩一级裸体免费视频| 99热在线只有精品| 香蕉亚洲视频| 日韩欧美一区二区视频在线播放 | 婷婷久久综合| 91麻豆国产语对白在线观看| 国产二级c片l毛片| 99久久精品免费| 精品www久久久久奶水| 成人短视频在线观看| 欧美一区二区三区在线观看| 欧美日韩在线观看免费| 国产91一区| 成人黄色免费网站在线观看| jiuse.com91视频| 国产香蕉久久精品综合网| 日韩欧美黄色大片| 第一av在线| 在线电影欧美日韩一区二区私密| 亚洲综合视频在线播放| 视频在线在亚洲| 777久久精品一区二区三区无码| 免费理论片在线观看播放老| 欧美年轻男男videosbes| 中文字幕影音先锋| 综合久久久久| 午夜久久资源| 风间由美一区| 日韩一级黄色大片| 五月婷婷六月婷婷| 亚洲在线国产日韩欧美| 91成人在线视频观看| 黄色成人在线| 亚洲美女福利视频网站| www.成人免费视频| 国产91在线看| av噜噜在线观看| 日韩国产大片| 国产精品视频成人| 任你操在线观看| 亚洲综合另类小说| 911国产在线| 正在播放日韩欧美一页| 视频在线精品一区|