3atv精品不卡视频,97人人超碰国产精品最新,中文字幕av一区二区三区人妻少妇,久久久精品波多野结衣,日韩一区二区三区精品

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ARM 之九 Cortex-M/R 内核启动过程 / 程序启动流程(基于ARMCC、Keil)

發(fā)布時間:2024/10/14 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ARM 之九 Cortex-M/R 内核启动过程 / 程序启动流程(基于ARMCC、Keil) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

內核規(guī)范

??ARM Cortex-M/R 內核的復位啟動過程也被稱為復位序列(Reset sequence)。ARM Cortex-M/R內核的復位啟動過程與其他大部分CPU不同,也與之前的ARM架構(ARM920T、ARM7TDMI等)不相同。大部分CPU復位后都是從 0x00000000 處取得第一條指令開始運行的,然而在ARM Cortex-M/R內核中并不是這樣的。其復位序列為:

  • 從地址 0x0000_0000 處取出 MSP 的初始值;
  • 從地址 0x0000_0004 處取出PC的初始值,然后從這個值對應的地址處取指。事實上,地址 0x00000004 開始存放的就是默認中斷向量表

    ARM Cortex-M/R 內核的中斷向量表布局情況如下圖所示:
  • 注意:中斷向量表的位置可以改變,此處是默認情況下的設置。

    ??在 ARM Cortex-M/R 內核中,發(fā)生異常后,并不是去執(zhí)行中斷向量表中對應位置處的代碼,而是將對應位置處的數(shù)據存入PC中,然后去此地址處進行取指。簡而言之,在ARM Cortex-M/R的中斷向量表中不應該放置跳轉指令,而是該放置 ISR 程序的入口地址。另外還有兩個細節(jié)問題需要注意:

  • 0x00000000 處存放的 MSP 初始值最低三位需要是 0;
  • 0x00000004 處存放的地址最低位必須是 1。
  • ??第一條是因為在ARM上編程,但凡涉及到調用,就需要遵循一套規(guī)約AAPCS ——《Procedure Call Standard for the ARM Architecture》。AAPCS 中對棧使用的約定是這樣的:

    5.2.1.1
    Universal stack constraints
    At all times the following basic constraints must hold:
    Stack-limit < SP <= stack-base. The stack pointer must lie within the extent of the stack.
    SP mod 4 = 0. The stack must at all times be aligned to a word boundary.
    5.2.1.2
    Stack constraints at a public interface
    The stack must also conform to the following constraint at a public interface:
    SP mod 8 = 0. The stack must be double-word aligned.

    簡而言之,規(guī)約規(guī)定棧任何時候都必須 4 字節(jié)對齊,在調用入口需8字節(jié)對齊,而且 SP 的最低兩位在硬件上就被置為 0 了。
    ??第二條與 ARM 模式與 Thumb 模式有關。ARM 中 PC 中的地址必須是 32 位對齊的,其最低兩位也被硬件上置 0 了,故寫入PC 中的數(shù)據最低兩位并不代表真實的取址地址。ARM中使用最低一位來判斷這條指令是 ARM 指令還是 Thumb 指令,若最低位為 0,代表 ARM 指令;若最低位為 1,代表 Thumb 指令。在 Cortex-M/R 內核中,并不支持 ARM 模式,若強行切換到 ARM 模式會引發(fā)一個 Hard Fault。

    啟動流程

    ??嵌入式應用程序在用戶定義的 main() 函數(shù)啟動之前需要初始化序列。 這稱為啟動代碼或啟動代碼。 ARM C 庫包含啟動應用程序所必需的預編譯和預組裝代碼段。鏈接應用程序時,鏈接器會根據應用程序從 C 庫中包含必要的代碼,以便為應用程序創(chuàng)建自定義啟動代碼。但需要注意的是,ARM 自己的編譯套件提供了如下三種庫:

    根據ARM官方的文檔說明,以下分析描述的啟動代碼適用于標準 ARM C 庫。 它不適用于 ARM C 微庫。 啟動流程同樣適用于 ARMv4T 及更高版本的架構。如下圖清晰的表示了程序啟動到用戶的main() 之前的流程:

    __main

    ??函數(shù)__main是C庫的入口點。 除非您更改它,否則__main是ARM鏈接器(armlink)在創(chuàng)建映像時使用的ELF映像的缺省入口點。 下圖顯示了C庫啟動期間__main調用的函數(shù)。

    __scatterload

    ??Application code and data can be in a root region or a non-root region. Root regions have the same load-time and execution-time addresses. Non-root regions have different load-time and execution-time addresses. The root region contains a region table output by the ARM linker.應用程序代碼和數(shù)據可以位于根區(qū)域或非根區(qū)域中。 根區(qū)域具有相同的加載時間和執(zhí)行時間地址。 非根區(qū)域具有不同的加載時間和執(zhí)行時間地址。 根區(qū)域包含ARM鏈接器輸出的區(qū)域表。
    ??The region table contains the addresses of the non-root code and data regions that require initialization. The region table also contains a function pointer that indicates what initialization is needed for the region, for example a copying, zeroing, or decompressing function. region表包含需要初始化的非根代碼和數(shù)據區(qū)域的地址。 區(qū)域表還包含一個函數(shù)指針,指示區(qū)域需要初始化,例如復制,歸零或解壓縮功能。
    __scatterload遍歷區(qū)域表并初始化各種執(zhí)行時區(qū)域。 功能如下:

    • Initializes the Zero Initialized (ZI) regions to zero
    • Copies or decompresses the non-root code and data region from their load-time locations to the execute-time regions.

    __main always calls this function during startup before calling __rt_entry .

    __rt_entry

    ??__main調用__rt_entry來初始化堆棧,堆和其他C庫子系統(tǒng)。__rt_entry調用各種初始化函數(shù),然后調用用戶級main()。以下列出了_rt_entry可以調用的函數(shù)。 這些函數(shù)按它們被調用的順序列出:

  • _platform_pre_stackheap_init
  • __user_setup_stackheap or setup the Stack Pointer (SP) by another method
  • _platform_post_stackheap_init
  • __rt_lib_init
  • _platform_post_lib_init
  • main()
  • exit()
  • platform *函數(shù)不是標準C庫的一部分。 如果你定義它們,則鏈接器會在__rt_entry中對它們進行調用。
    main()是用戶級應用程序的入口點。 寄存器r0和r1包含main()的參數(shù)。 如果main()返回,則將其返回值傳遞給exit()并退出應用程序。
    __rt_entry還負責設置堆棧和堆。 但是,設置堆棧和堆取決于用戶指定的方法。 可以通過以下任何方法設置堆棧和堆:

    • 調用__user_setup_stackheap。 這也獲得了堆使用的內存邊界(堆頂部和堆基)。
    • 使用符號__initial_sp的值加載 SP。
    • Using the top of the ARM_LIB_STACK or ARM_LIB_STACKHEAP region specified in the linker scatter file.

    ??__rt_entry and __rt_lib_init do not exist as complete functions in the C library. Small sections of these functions are present in several internal objects that are part of the C library. Not all of these code sections are useful for a given user application. The linker decides which subset of those code sections are needed for a given application, and includes just those sections in the startup code. The linker places these sections in the correct order to create custom __rt_entry and __rt_lib_init functions as required by the user application.__rt_entry和__rt_lib_init在C庫中不作為完整函數(shù)存在。這些函數(shù)的小部分存在于作為類庫一部分的幾個內部對象中。并非所有這些代碼段都對給定的用戶應用程序有用。鏈接器決定給定應用程序需要這些代碼段的哪個子集,并且只在啟動代碼中包含這些部分。鏈接器按照正確的順序放置這些部分,以便根據用戶應用程序的要求創(chuàng)建自定義的__rt_entry和__rt_lib_init函數(shù)。

    _platform_pre_stackheap_init

    ??The standard C library does not provide this function but you can define it if you require it. You can use this function to setup hardware for example. __rt_entry calls this function, if you define it, before the code that initializes the stack and heap. 標準C庫不提供此函數(shù),但您可以根據需要定義它。 例如,您可以使用此函數(shù)設置硬件。如果您定義了該函數(shù),那么`__rt_entry會在初始化堆棧和堆的代碼之前調用此函數(shù)。

    __user_setup_stackheap

    ??This function enables you to setup and return the location of the initial stack and heap. The C library does not provide this function but you can define it if you require it. __rt_entry calls this function if you define it or if you define the legacy function __user_initial_stackheap . If you define __user_initial_stackheap , then the C library provides a default __user_setup_stackheap as a wrapper around your __user_initial_stackheap function. 此函數(shù)使您可以設置并返回初始堆棧和堆的位置。C庫不提供此函數(shù),但您可以根據需要定義它。 如果你定義了該函數(shù)或者定義了老版本的函數(shù)__user_initial_stackheap,那么__rt_entry 會調用此函數(shù)。 如果定義了__user_initial_stackheap,則C庫提供默認的__user_setup_stackheap作為__user_initial_stackheap函數(shù)的包裝器。

    _platform_post_stackheap_init

    ??The C library does not provide this function but you can define it if you require it. You can use this function to setup hardware for example. __rt_entry calls this function, if you define it, after the code that initializes the stack and heap. C庫不提供此功能,但您可以根據需要定義它。 例如,您可以使用此功能設置硬件。 如果您定義了該函數(shù),那么__rt_entry會在初始化堆棧和堆的代碼之后調用此函數(shù)。

    __rt_lib_init

    ??This function initializes the various C library subsystems. It initializes the referenced library functions, initializes the locale and, if necessary, sets up argc and argv for main() . __rt_entry calls this function always during startup.此函數(shù)初始化各種C庫子系統(tǒng)。 它初始化引用的庫函數(shù),初始化語言環(huán)境,并在必要時為main()設置 argc 和 argv。 __rt_entry在啟動期間始終調用此函數(shù)。
    ??If you use the __user_setup_stackheap or __user_initial_stackheap functions to setup the stack pointer and heap, then the start and end address of the heap memory block are passed as arguments to __rt_lib_init in registers r0 and r1 respectively.如果使用了函數(shù)__user_setup_stackheap 或函數(shù) __user_initial_stackheap來設置堆棧指針和堆,那么堆內存塊的起始和結束地址將作為參數(shù)通過寄存器 r0 和 r1傳遞給__rt_lib_init。
    ??The function returns argc and argv in registers r0 and r1 respectively if the user-level main() requires them. 如果用戶級main()需要,該函數(shù)分別在寄存器 r0 和 r1 中返回argc和argv。

    The linker includes various initialization code sections from the internal object files to create a custom __rt_lib_int function. The linker places a function in __rt_lib_init only if it is needed by the application. This lists the functions that _rt_lib_init can call. The functions are listed in the order they get called:鏈接器包括內部對象文件中的各種初始化代碼部分,以創(chuàng)建自定義__rt_lib_int函數(shù)。 只有在應用程序需要時,鏈接器才會在__rt_lib_init中放置一個函數(shù)。 以下列出了_rt_lib_init可以調用的函數(shù)。 這些函數(shù)按它們被調用的順序列出:

  • _fp_init
  • _init_alloc
  • _rand_init
  • _get_lc_collate
  • _get_lc_ctype
  • _get_lc_monetary
  • _get_lc_numeric
  • _get_lc_time
  • _atexit_init
  • _signal_init
  • _fp_trap_init
  • _clock_init
  • _getenv_init
  • _initio
  • _ARM_get_argv
  • _alloca_initialize
  • _ARM_exceptions_init
  • _cpp_initialize__aeabi
  • 這里就不一一介紹各函數(shù)了,想進一步了解的去查看官方文檔即可!

    _platform_post_lib_init

    ??The C library does not provide this function but you can define it if you require it. You can use this function to setup hardware for example. __rt_entry calls this function, if you define it, after the call to __rt_lib_init and before the call to the user-level main() function. C庫不提供此功能,但您可以根據需要定義它。 例如,您可以使用此功能設置硬件。 如果定義了該函數(shù),那么__rt_entry在調用__rt_lib_init之后和調用用戶級main()函數(shù)之前,調用此函數(shù)。

    ARM 庫分析

    ??上面介紹了各函數(shù),這些函數(shù)全部位于 ARM 提供的 C 庫中。我們可以參看任意項目的map文件,來看看都用了哪些庫,如下:

    其中,左側的圖為 Image Symbol Table 部分;右側圖為 Image component sizes 部分。從中可以看到:

  • __main 位于 __main.o 中
  • __scatterload 位于 __scatter.o 中
  • 其他函數(shù)同理,這里暫不說明。在右側可以看到,對應的 C 庫文件為c_w.l和fz_wm.l 。我們可以在 ARM 編譯套件的目錄下找到這兩個文件,路徑如下圖所示:

    下面我們使用 ARM 編譯套件中相應的工具來看看具體文件。關于編譯套件的詳細使用說明可以參考博文《ARM 之 主流編譯器(armcc、iar、gcc for arm)詳細介紹》。具體使用的工具就是armar.exe,這是 ARM 的庫文件管理工具。

    D:\ARM\ARM_Compiler_5.06u4>armar --zt ./lib/armlib/c_w.lCode RO Data RW Data ZI Data Debug Object Name48 0 0 0 84 version.o58 0 0 0 68 __dczerorl.o90 0 0 0 68 __dczerorl2.o100 0 0 0 68 __dclz77c.o0 0 28 0 0 dc.o102 12 0 0 240 sys_io.o18 0 0 0 76 sys_tmpnam.o14 0 0 0 76 sys_wrch.o18 0 0 0 76 sys_system.o18 0 0 0 76 sys_remove.o32 0 0 0 80 sys_rename.o24 0 0 0 76 sys_command.o4 0 0 0 68 getenv.o32 0 4 0 84 sys_clock.o18 0 0 0 76 sys_time.o12 0 0 0 68 sys_exit.o8 0 0 96 68 libspace.o2 0 0 0 68 use_semi.o2 0 0 0 68 use_no_semi.o4 0 0 0 68 mutex_dummy.o2 0 0 0 68 use_no_semi_2.o0 0 0 0 0 indicate_semi.o48 0 0 0 80 sys_stackheap.o74 0 0 0 80 sys_stackheap_outer.o96 0 0 0 0 tempstk.o0 0 0 0 0 __rtentry.o32 40 0 0 0 __rtentry2.o4 8 0 0 0 __rtentry3.o6 8 0 0 0 __rtentry4.o8 24 0 0 0 __rtentry5.o8 24 0 0 0 __rtentry6.o............省略一大部分...........0 0 0 0 0 maybefptrapshutdown1.o0 0 0 0 0 maybefptrapshutdown2.o16 0 0 0 76 fptrapshutdown.o8 0 4 0 68 _signgam.o22 0 0 0 100 _rserrno.o18 0 0 0 76 isalnum.o18 0 0 0 76 isalpha.o18 0 0 0 76 iscntrl.o24 0 0 0 76 isdigit.o18 0 0 0 76 isgraph.o18 0 0 0 76 islower.o18 0 0 0 76 isprint.o18 0 0 0 76 ispunct.o18 0 0 0 76 isspace.o18 0 0 0 76 isupper.o22 0 0 0 76 isxdigit.o26 0 0 0 76 tolower.o30 0 0 0 76 toupper.o172 4490 0 0 164 wclass.o12 0 0 0 76 iswalnum.o12 0 0 0 76 iswalpha.o12 0 0 0 76 iswblank.o12 0 0 0 76 iswcntrl.o12 0 0 0 76 iswgraph.o12 0 0 0 76 iswprint.o12 0 0 0 76 iswpunct.o4 0 0 0 68 iswspace.o12 0 0 0 76 iswlower.o12 0 0 0 76 iswupper.o12 0 0 0 76 iswdigit.o12 0 0 0 76 iswxdigit.o148 888 0 0 152 towlower.o156 948 0 0 152 towupper.o356 0 0 0 92 wctype.o64 0 0 0 92 wctrans.o12 0 0 0 76 _iswspace.o86 0 0 0 136 _small_iswspace.o100 0 0 0 76 wclass_c.o10 0 0 0 68 towlower_c.o10 0 0 0 68 towupper_c.o32 0 0 0 76 isblank.o24 0 0 0 84 printf.o12 0 0 0 68 vprintf.o20 0 0 0 84 fprintf.o10 0 0 0 68 vfprintf.o44 0 0 0 84 sprintf.o36 0 0 0 76 vsprintf.o56 0 0 0 88 snprintf.o52 0 0 0 80 vsnprintf.o24 0 0 0 84 wprintf.o12 0 0 0 68 vwprintf.o20 0 0 0 84 fwprintf.o10 0 0 0 68 vfwprintf.o72 0 0 0 92 swprintf.o72 0 0 0 80 vswprintf.o54 0 0 0 92 asprintf.o56 0 0 0 96 vasprintf.o54 0 0 0 92 __ARM_asprintf.o56 0 0 0 96 __ARM_vasprintf.o56 0 0 0 88 __ARM_snprintf.o52 0 0 0 80 __ARM_vsnprintf.o24 0 0 0 84 _printf.o12 0 0 0 68 _vprintf.o20 0 0 0 84 _fprintf.o10 0 0 0 68 _vfprintf.o44 0 0 0 84 _sprintf.o36 0 0 0 76 _vsprintf.o56 0 0 0 88 _snprintf.o52 0 0 0 80 _vsnprintf.o24 0 0 0 84 _wprintf.o12 0 0 0 68 _vwprintf.o20 0 0 0 84 _fwprintf.o10 0 0 0 68 _vfwprintf.o72 0 0 0 92 _swprintf.o72 0 0 0 80 _vswprintf.o54 0 0 0 92 _asprintf.o56 0 0 0 96 _vasprintf.o54 0 0 0 92 ___ARM_asprintf.o56 0 0 0 96 ___ARM_vasprintf.o56 0 0 0 88 ___ARM_snprintf.o52 0 0 0 80 ___ARM_vsnprintf.o24 0 0 0 84 __0printf.o12 0 0 0 68 __0vprintf.o20 0 0 0 84 __0fprintf.o10 0 0 0 68 __0vfprintf.o44 0 0 0 84 __0sprintf.o36 0 0 0 76 __0vsprintf.o56 0 0 0 88 __0snprintf.o52 0 0 0 80 __0vsnprintf.o24 0 0 0 84 __0wprintf.o12 0 0 0 68 __0vwprintf.o20 0 0 0 84 __0fwprintf.o10 0 0 0 68 __0vfwprintf.o72 0 0 0 92 __0swprintf.o72 0 0 0 80 __0vswprintf.o54 0 0 0 92 __0asprintf.o56 0 0 0 96 __0vasprintf.o54 0 0 0 92 __0__ARM_asprintf.o56 0 0 0 96 __0__ARM_vasprintf.o56 0 0 0 88 __0__ARM_snprintf.o52 0 0 0 80 __0__ARM_vsnprintf.o24 0 0 0 84 c89printf.o12 0 0 0 68 c89vprintf.o20 0 0 0 84 c89fprintf.o10 0 0 0 68 c89vfprintf.o44 0 0 0 84 c89sprintf.o36 0 0 0 76 c89vsprintf.o56 0 0 0 88 c89snprintf.o52 0 0 0 80 c89vsnprintf.o24 0 0 0 84 c89wprintf.o12 0 0 0 68 c89vwprintf.o20 0 0 0 84 c89fwprintf.o10 0 0 0 68 c89vfwprintf.o72 0 0 0 92 c89swprintf.o72 0 0 0 80 c89vswprintf.o54 0 0 0 92 c89asprintf.o56 0 0 0 96 c89vasprintf.o54 0 0 0 92 c89__ARM_asprintf.o56 0 0 0 96 c89__ARM_vasprintf.o56 0 0 0 88 c89__ARM_snprintf.o52 0 0 0 80 c89__ARM_vsnprintf.o24 0 0 0 84 __2printf.o12 0 0 0 68 __2vprintf.o20 0 0 0 84 __2fprintf.o10 0 0 0 68 __2vfprintf.o44 0 0 0 84 __2sprintf.o36 0 0 0 76 __2vsprintf.o56 0 0 0 88 __2snprintf.o52 0 0 0 80 __2vsnprintf.o24 0 0 0 84 __2wprintf.o12 0 0 0 68 __2vwprintf.o20 0 0 0 84 __2fwprintf.o10 0 0 0 68 __2vfwprintf.o72 0 0 0 92 __2swprintf.o72 0 0 0 80 __2vswprintf.o54 0 0 0 92 __2asprintf.o56 0 0 0 96 __2vasprintf.o54 0 0 0 92 __2__ARM_asprintf.o56 0 0 0 96 __2__ARM_vasprintf.o56 0 0 0 88 __2__ARM_snprintf.o52 0 0 0 80 __2__ARM_vsnprintf.o24 0 0 0 84 __1printf.o12 0 0 0 68 __1vprintf.o20 0 0 0 84 __1fprintf.o10 0 0 0 68 __1vfprintf.o44 0 0 0 84 __1sprintf.o36 0 0 0 76 __1vsprintf.o56 0 0 0 88 __1snprintf.o52 0 0 0 80 __1vsnprintf.o24 0 0 0 84 __1wprintf.o12 0 0 0 68 __1vwprintf.o20 0 0 0 84 __1fwprintf.o10 0 0 0 68 __1vfwprintf.o72 0 0 0 92 __1swprintf.o72 0 0 0 80 __1vswprintf.o54 0 0 0 92 __1asprintf.o56 0 0 0 96 __1vasprintf.o54 0 0 0 92 __1__ARM_asprintf.o56 0 0 0 96 __1__ARM_vasprintf.o56 0 0 0 88 __1__ARM_snprintf.o52 0 0 0 80 __1__ARM_vsnprintf.o............省略一大部分...........104 0 0 0 84 __printf.o78 0 0 0 108 _printf_pad.o36 0 0 0 84 _printf_truncate.o82 0 0 0 80 _printf_str.o178 0 0 0 88 _printf_intcommon.o120 0 0 0 92 _printf_dec.o40 0 0 0 68 _printf_charcount.o1050 0 0 0 216 _printf_fp_dec.o764 38 0 0 100 _printf_fp_hex.o48 0 0 0 96 _printf_char_common.o10 0 0 0 68 _sputc.o16 0 0 0 68 _snputc.o128 0 0 0 84 _printf_fp_infnan.o40 0 0 0 84 __printf_nopercent.o44 0 0 0 108 _printf_char.o36 0 0 0 80 _printf_char_file.o64 0 0 0 84 _printf_char_file_locked.o188 8 0 0 92 _printf_wctomb.o144 8 0 0 88 _printf_mbtowc.o48 0 0 0 96 _printf_wchar_common.o16 0 0 0 68 _snputwc.o44 0 0 0 108 _printf_wchar.o86 0 0 0 80 _printf_wc.o36 0 0 0 80 _printf_wchar_file.o64 0 0 0 84 _printf_wchar_file_locked.o124 0 0 0 92 _printf_longlong_dec.o160 0 0 0 84 _printf_fp_infnan_snan.o84 0 0 0 80 _printf_oct_ll.o80 0 0 0 88 _printf_oct_int.o112 0 0 0 124 _printf_oct_int_ll.o92 40 0 0 88 _printf_hex_ll.o88 40 0 0 88 _printf_hex_int.o124 40 0 0 140 _printf_hex_int_ll.o84 40 0 0 88 _printf_hex_ptr.o124 40 0 0 144 _printf_hex_int_ptr.o120 40 0 0 124 _printf_hex_ll_ptr.o148 40 0 0 160 _printf_hex_int_ll_ptr.o148 17 0 0 84 __printf_flags.o184 0 0 0 84 __printf_ss.o236 17 0 0 88 __printf_flags_ss.o284 0 0 0 156 __printf_wp.o326 17 0 0 160 __printf_flags_wp.o366 0 0 0 156 __printf_ss_wp.o406 17 0 0 160 __printf_flags_ss_wp.o6 0 0 0 0 _printf_c.o6 0 0 0 0 _printf_s.o6 0 0 0 0 _printf_n.o6 0 0 0 0 _printf_x.o6 0 0 0 0 _printf_p.o6 0 0 0 0 _printf_o.o6 0 0 0 0 _printf_i.o6 0 0 0 0 _printf_d.o6 0 0 0 0 _printf_u.o6 0 0 0 0 _printf_f.o6 0 0 0 0 _printf_e.o6 0 0 0 0 _printf_g.o6 0 0 0 0 _printf_a.o0 0 0 0 0 _printf_percent.o4 0 0 0 0 _printf_percent_end.o6 0 0 0 0 _printf_lli.o6 0 0 0 0 _printf_lld.o6 0 0 0 0 _printf_llu.o10 0 0 0 0 _printf_ll.o10 0 0 0 0 _printf_l.o6 0 0 0 0 _printf_lc.o6 0 0 0 0 _printf_ls.o6 0 0 0 0 _printf_llo.o6 0 0 0 0 _printf_llx.o32 0 0 0 84 scanf.o24 0 0 0 84 fscanf.o60 0 0 0 84 sscanf.o24 0 0 0 80 vscanf.o16 0 0 0 80 vfscanf.o52 0 0 0 80 vsscanf.o60 0 0 0 84 swscanf.o52 0 0 0 80 vswscanf.o52 0 0 0 80 __ARM_vsscanf.o32 0 0 0 84 scanfn.o24 0 0 0 84 fscanfn.o60 0 0 0 84 sscanfn.o............省略一大部分...........16 0 0 0 80 vfwscanf.o28 0 0 0 68 _chval.o884 0 0 0 100 _scanf.o342 0 0 0 100 _scanf_longlong.o332 0 0 0 96 _scanf_int.o224 0 0 0 96 _scanf_str.o1202 0 0 0 216 scanf_fp.o0 0 0 0 0 scanf_nofp.o800 0 0 0 100 scanf_hexfp.o44 0 0 0 84 scanf_char.o64 0 0 0 84 _sgetc.o26 0 0 0 80 atoi.o26 0 0 0 80 atol.o26 0 0 0 80 atoll.o308 0 0 0 100 scanf_infnan.o24 0 0 0 68 scanf_char_file.o64 0 0 0 84 scanf_char_file_locked.o............省略一大部分...........8 0 0 0 68 feof.o8 0 0 0 68 ferror.o100 0 0 0 120 fflush.o26 0 0 0 136 fgetc.o32 0 0 0 80 fgetpos.o74 0 0 0 84 fgets.o570 0 0 0 132 filbuf.o470 0 0 0 88 flsbuf.o28 0 0 0 136 fputc.o34 0 0 0 80 fputs.o58 0 0 0 88 fread.o248 0 0 0 84 fseek.o40 0 0 0 80 fsetpos.o66 0 0 0 76 ftell.o50 0 0 0 84 fwrite.o4 0 0 0 68 getc.o12 0 0 0 68 getchar.o56 0 0 0 80 gets.o60 0 0 0 80 perror.o4 0 0 0 68 putc.o12 0 0 0 68 putchar.o44 0 0 0 84 puts.o22 0 0 0 80 rewind.o70 0 0 0 80 setvbuf.o240 0 0 0 156 stdio.o88 0 4 256 108 tmpnam.o72 0 0 0 68 ungetc.o78 0 0 0 112 __dup.o280 0 0 0 96 freadfast.o214 0 0 0 88 fread_bytes_avail.o26 0 0 0 76 fread_bytes_avail_replaced.o188 0 0 0 88 fwritefast.o0 0 4 0 0 streamlock.o312 0 0 0 112 initio.o236 0 0 0 128 fopen.o20 0 0 0 68 setbuf.o0 0 12 252 0 stdio_streams.o76 0 0 0 88 fclose.o56 0 0 0 80 flushlinebuffered.o102 0 0 0 96 fclose_tmpfile.o32 0 0 0 80 fgetc_locked.o36 0 0 0 80 fputc_locked.o32 0 0 0 80 ftell_locked.o52 0 0 0 80 fclose_locked.o36 0 0 0 80 ungetc_locked.o44 0 0 0 84 fseek_locked.o86 0 0 0 84 fgets_locked.o76 0 0 0 80 gets_locked.o54 0 0 0 80 fputs_locked.o64 0 0 0 80 puts_locked.o............省略一大部分...........16 0 0 42 68 locale.o114 0 0 0 76 _lconv.o16 0 0 48 76 localeconv.o36 0 0 0 76 aeabi_lconv.o16 0 0 56 76 aeabi_localeconv.o60 0 0 0 80 findlocale.o428 0 0 0 188 locale_r.o2 0 0 0 68 locale_8859.o16 0 0 88 136 mbdata.o68 0 0 0 84 mblen.o122 0 0 0 88 mbtowc.o56 0 0 0 80 wctomb.o80 0 0 0 88 mbstowcs.o100 0 0 0 92 wcstombs.o14 0 0 0 68 mbsinit.o36 0 0 0 88 mbrlen.o120 0 0 0 88 mbrtowc.o58 0 0 0 80 wcrtomb.o114 0 0 0 92 mbsrtowcs.o140 0 0 0 100 wcsrtombs.o40 0 0 0 80 btowc.o42 0 0 0 84 wctob.o............省略一大部分...........8 0 0 0 68 labs.o20 0 0 0 76 ldiv.o20 0 0 0 68 llabs.o24 0 0 0 80 lldiv.o20 0 0 0 68 imaxabs.o24 0 0 0 80 imaxdiv.o112 0 0 228 160 rand.o36 0 4 0 84 ANSI_rand.o120 0 0 0 92 rand_r.o28 0 0 0 84 ANSI_rand_r.o18 0 0 0 80 exit.o22 0 0 0 80 abort.o4 0 0 0 68 _Exit.o............省略一大部分...........20 0 0 0 68 strchr.o32 0 0 0 80 strcspn.o36 0 0 0 76 strncat.o30 0 0 0 76 strpbrk.o28 0 0 0 80 strspn.o36 0 0 0 80 strstr.o80 0 0 0 84 strxfrm.o184 0 0 0 84 strlcat.o142 0 0 0 84 strlcpy.o88 0 0 0 76 memcmp.o72 0 0 0 80 strcpy.o50 0 0 0 84 strncasecmp.o42 0 0 0 84 strcasecmp.o22 0 0 0 68 strrchr.o62 0 0 0 76 strlen.o18 0 0 0 68 wcscpy.o............省略一大部分...........8 0 0 0 76 memcpy.o8 0 0 0 76 memmove.o214 0 0 0 68 rt_memcpy.o202 0 0 0 68 rt_memmove.o100 0 0 0 80 rt_memcpy_w.o122 0 0 0 80 rt_memmove_w.o22 0 0 0 76 memset.o16 0 0 0 68 aeabi_memset.o16 0 0 0 68 aeabi_memset4.o18 0 0 0 68 rt_memset.o68 0 0 0 68 rt_memclr.o78 0 0 0 80 rt_memclr_w.o250 0 0 0 196 rt_neon_memcpy_w.o84 0 0 0 172 rt_neon_memclr_w.o128 0 0 0 172 rt_neon_memmove_w.o220 0 0 0 164 rt_neon_memcpy_ca8.o228 0 0 0 164 rt_neon_memcpy_ca9.o236 0 0 0 164 rt_neon_memmove_ca8.o236 0 0 0 164 rt_neon_memmove_ca9.o130 0 0 0 96 rt_memcpy_w_ca8.o118 0 0 0 96 rt_memcpy_w_qsp.o118 0 0 0 96 rt_memcpy_w_ca9.o216 0 0 0 96 rt_memcpy_w_ldrd.o118 0 0 0 192 rt_noneon_memcpy_w_ca9.o............省略一大部分...........14 0 0 0 80 ctime.o4 0 0 0 68 gmtime.o12 0 0 44 68 localtime.o428 0 0 0 116 mktime.o864 0 0 0 184 strftime.o0 12 0 0 0 _monlen.o0 0 0 0 0 asctime_r.o0 0 0 0 0 localtime_r.o104 0 0 0 88 asctime_internal.o184 0 0 0 80 localtime_internal.o............省略一大部分...........0 0 0 0 0 cpuinit.o264 0 0 0 96 _get_argv.o302 0 0 0 168 _get_argv_nomalloc.o4 0 0 0 84 _main.o320 0 0 0 152 _main_redirect.o2 0 0 0 68 _main_arg.o4 0 0 0 68 argv_veneer.o2 0 0 0 68 no_argv.o2 0 0 0 68 no_excepts.o2 0 0 0 68 no_errno.o2 0 0 0 68 use_snan.o2 0 0 0 0 libinit.o136 0 0 0 0 libinit2.o36 0 0 0 0 libinit3.o36 0 0 0 0 libinit4.o36 0 0 0 0 libinit5.o2 0 0 0 0 libshutdown.o28 0 0 0 0 libshutdown2.o8 0 0 0 68 __main.o52 0 0 0 68 __scatter.o76 0 0 0 68 __scatters.o26 0 0 0 68 __scatter_copy.o28 0 0 0 68 __scatter_zi.o32 0 0 0 272 irqnopfx.o314 0 0 0 92 bitcpy0.o322 0 0 0 92 bitcpy1.o362 0 0 0 92 bitcpy2.o608 0 0 0 100 bitcpy3.o468 0 0 0 92 bitmove0.o474 0 0 0 92 bitmove1.o508 0 0 0 92 bitmove2.o764 0 0 0 100 bitmove3.o............省略一大部分...........34 0 0 0 76 prim_new.o2 8 0 0 68 init.o36 8 0 0 80 init_aeabi.o44 8 0 0 76 arm_relocate.o36 8 0 0 80 preinit_aeabi.o4 0 0 0 68 _memcpy.o8 0 0 0 84 _urdwr4.o............省略一大部分...........112 0 0 0 104 fputwc.o36 0 0 0 80 fputws.o200 0 0 0 104 fgetwc.o82 0 0 0 84 fgetws.o4 0 0 0 68 getwc.o12 0 0 0 68 getwchar.o4 0 0 0 68 putwc.o12 0 0 0 68 putwchar.o108 0 0 0 68 ungetwc.o44 0 0 0 84 backspacewc.o44 0 0 0 68 fwide.o36 0 0 0 84 filbuf_fwide.o36 0 0 0 84 flsbuf_fwide.o36 0 0 0 80 fputwc_locked.o32 0 0 0 80 fgetwc_locked.o66 0 0 0 80 fwide_locked.o132 0 0 0 80 ungetwc_locked.o32 0 0 0 80 backspacewc_locked.o54 0 0 0 80 fputws_locked.o94 0 0 0 84 fgetws_locked.o73526 40563 112 1686 76484 TOTALENTRY at offset 1 in section !!!main of __main.o

    從中我們可以看到有__main.o等文件,接下來我們可以使用armar -x命令將c_w.l解壓出以上全部文件,然后使用fromelf來查看__main.o的詳細信息,這里就不一一嘗試了!

    啟動實例分析

    ??下面我們以STM32F407VG片子為例,看看其調試時的匯編代碼(Keil5中)。直接進調試模式,注意:最好將匯編窗口右鍵改為assembly mode。

    首先看看定義的中斷向量表部分,如下圖:

    其中,SystemInit為 ST 提供的時鐘初始化函數(shù)(如果使用了外部RAM,可能還包含外部RAM的配置)。接著,就會有如下匯編代碼(具體看里面的注釋即可):

    0x08000180 0243 DCW 0x0243 ; 小端模式,地址:0x08000243 0x08000182 0800 DCW 0x0800 0x08000184 0243 DCW 0x0243 ; 小端模式,地址:0x08000243 0x08000186 0800 DCW 0x0800 ; 從此往上即為中斷向量表,與開發(fā)環(huán)境的啟動文件中的中斷向量表相對應,32位地址,小端模式 ; 下面就是上文介紹的啟動流程:__main: 0x08000188 F000F802 BL.W __scatterload (0x08000190) ; 負責把RW/RO輸出段從裝載域地址復制到運行域地址,并完成了ZI運行域的初始化工作。 0x0800018C F000F83C BL.W __rt_entry (0x08000208) ; 負責初始化堆、棧,完成C庫函數(shù)的初始化。其會調用一系列初始化函數(shù),最后自動跳轉向main()函數(shù)。; 執(zhí)行完后,R10和R11就被賦給成了下面兩個值,Map文件中的symbol: ; Region$$Table$$Base 0x08000898 Number 0 anon$$obj.o(Region$$Table) ; Region$$Table$$Limit 0x080008b8 Number 0 anon$$obj.o(Region$$Table) ; !!!-----------注意:以下注釋中括號中的數(shù)據為我在調試時的值,自行調試時值可能有變化-----------!!! ; !!!-----------注意:以下注釋中非括號中的數(shù)據一般為左側地址或者立即數(shù)-----------!!!__scatterload: 0x08000190 A00A ADR r0,{pc}+0x2C ; 將基于PC相對偏移的地址值(0x080001BC)讀取到寄存器r0中。 0x08000192 E8900C00 LDM r0,{r10-r11} ; 將R0對應地址存放的的2個字copy到R10~R11中。即:r10 = 0x000006DC; r11 = 0x000006FC 0x08000196 4482 ADD r10,r10,r0 ; r10 = r10 + r0 = 0x000006DC + 0x080001BC = 0x08000898 0x08000198 4483 ADD r11,r11,r0 ; r11 = r11 + r0 = 0x000006FC + 0x080001BC = 0x080008B8 0x0800019A F1AA0701 SUB r7,r10,#0x01 ; r7 = r10 - 0x01 = 0x08000898 - 0x01 = 0x08000897__scatterload_null: 0x0800019E 45DA CMP r10,r11 ; 比較r10和r11。實際做r10-r11操作,根據結果修改CPSR中條件標志位的值 0x080001A0 D101 BNE 0x080001A6 ; Z 標志位不等于零時, 跳轉到0x080001A6 0x080001A2 F000F831 BL.W __rt_entry (0x08000208) ; 最后一步:在執(zhí)行完__scatterload_copy和__scatterload_zeroinit后,r10 == r11 ,上面的跳轉不成立,執(zhí)行該句 0x080001A6 F2AF0E09 ADR.W lr,{pc}-0x07 ; 將基于PC相對偏移的地址值(0x0800019F)讀取到寄存器lr中。lr = 0x0800019F 0x080001AA E8BA000F LDM r10!,{r0-r3} ; 將R10對應地址存放的的4個雙字copy到R0~R3中,!表示執(zhí)行語句后將地址賦值給r10。r10 = r10 + 4*4 = 0x08000898 + 0x10 = 0x080008A8. ; R0:表示的是程序加載視圖的RW區(qū)的起始地址(0x080008B8; R1:要復制到的運行域地址(RAM中0x20000000; R2:要復制的RW數(shù)據的個數(shù)(0x00000020; R3:是__scatterload_copy函數(shù)的起始地址0x080001C4 0x080001AE F0130F01 TST r3,#0x01 ; 0x080001B2 BF18 IT NE 0x080001B4 1AFB SUBNE r3,r7,r3 0x080001B6 F0430301 ORR r3,r3,#0x01 0x080001BA 4718 BX r3 ; 跳轉到r3,也就是__scatterload_copy函數(shù),開始復制數(shù)據 0x080001BC 06DC DCW 0x06DC 0x080001BE 0000 DCW 0x0000 0x080001C0 06FC DCW 0x06FC 0x080001C2 0000 DCW 0x0000__scatterload_copy: ; 該函數(shù)負責將鏡像中的RW數(shù)據復制到芯片的ARM中 0x080001C4 3A10 SUBS r2,r2,#0x10 ; 循環(huán):R2=R2-0x10,SUBS中S表示把進位結果寫入CPSR。 0x080001C6 BF24 ITT CS 0x080001C8 C878 LDMCS r0!,{r3-r6} 0x080001CA C178 STMCS r1!,{r3-r6} 0x080001CC D8FA BHI __scatterload_copy (0x080001C4) ; 循環(huán):條件成立跳轉到回去 0x080001CE 0752 LSLS r2,r2,#29 0x080001D0 BF24 ITT CS 0x080001D2 C830 LDMCS r0!,{r4-r5} 0x080001D4 C130 STMCS r1!,{r4-r5} 0x080001D6 BF44 ITT MI 0x080001D8 6804 LDRMI r4,[r0,#0x00] 0x080001DA 600C STRMI r4,[r1,#0x00] 0x080001DC 4770 BX lr ; 這里返回到lr = 0x0800019F,即在此調用__scatterload_null。會繼續(xù)將R10對應地址存放的的4個雙字copy到R0~R3中,但是,此時的R10由于之前的一次調用,其值已經增加; R0:是程序加載視圖的RW區(qū)的起始地址(0x080008D8 = 0x080008B8 + 0x20 上面執(zhí)行后面的部分); R1:是要輸出的執(zhí)行視圖的RW區(qū)的地址(RAM中 0x20000020; R2:要復制的RW數(shù)據的個數(shù)(0x00000660; R3:是__scatterload_zeroinit函數(shù)的起始地址0x080001E0; 接下來就會跳轉到__scatterload_zeroinit0x080001DE 0000 MOVS r0,r0__scatterload_zeroinit: 0x080001E0 2300 MOVS r3,#0x00 0x080001E2 2400 MOVS r4,#0x00 0x080001E4 2500 MOVS r5,#0x00 0x080001E6 2600 MOVS r6,#0x00 0x080001E8 3A10 SUBS r2,r2,#0x10 ; 循環(huán): 0x080001EA BF28 IT CS 0x080001EC C178 STMCS r1!,{r3-r6} 0x080001EE D8FB BHI 0x080001E8 ; 循環(huán):條件成立跳轉到回去 0x080001F0 0752 LSLS r2,r2,#29 0x080001F2 BF28 IT CS 0x080001F4 C130 STMCS r1!,{r4-r5} 0x080001F6 BF48 IT MI 0x080001F8 600B STRMI r3,[r1,#0x00] 0x080001FA 4770 BX lr ; 這里返回到lr = 0x0800019F,即在此調用__scatterload_null。這次回去后r10 == r11.回去后會跳轉到__rt_entry__rt_lib_init: 0x080001FC B51F PUSH {r0-r4,lr}__rt_lib_init_fp_1: 0x080001FE F000FB45 BL.W _fp_init (0x0800088C)__rt_lib_init_alloca_1: 0x08000202 BD1F POP {r0-r4,pc}__rt_lib_shutdown: 0x08000204 B510 PUSH {r4,lr}__rt_lib_shutdown_cpp_1: 0x08000206 BD10 POP {r4,pc}__rt_entry: ; 在執(zhí)行完__scatterload后,會緊接著執(zhí)行該函數(shù) 0x08000208 F000F831 BL.W __user_setup_stackheap (0x0800026E) ; 設置堆棧的函數(shù),該函數(shù)中會調用由用戶實現(xiàn)的__user_initial_stackheap函數(shù),如第二節(jié)的啟動文件中最后的代碼即為用戶實現(xiàn)的堆棧初始化該函數(shù) 0x0800020C 4611 MOV r1,r2__rt_entry_li: 0x0800020E F7FFFFF5 BL.W __rt_lib_init (0x080001FC) ; 初始化C庫__rt_entry_main: 0x08000212 F000FA3B BL.W main (0x0800068C) ; 跳轉到C的main函數(shù) 0x08000216 F000F84F BL.W exit (0x080002B8) ; 如果main返回,則執(zhí)行該函數(shù),結束程序運行__rt_exit: 0x0800021A B403 PUSH {r0-r1}__rt_exit_ls: 0x0800021C F7FFFFF2 BL.W __rt_lib_shutdown (0x08000204)__rt_exit_exit: 0x08000220 BC03 POP {r0-r1} 0x08000222 F000F857 BL.W _sys_exit (0x080002D4) 0x08000226 0000 MOVS r0,r0 0x08000226 0000 MOVS r0,r0 ; 此處往下,就是定義的各個中斷向量的實現(xiàn)代碼,第一個就是復位中斷,程序就是從復位中斷開始執(zhí)行的Reset_Handler: 0x08000228 4809 LDR r0,[pc,#36] ; @0x08000250 0x0800022A 4780 BLX r0 0x0800022C 4809 LDR r0,[pc,#36] ; @0x08000254 0x0800022E 4700 BX r0NMI_Handler: 0x08000230 E7FE B NMI_Handler (0x08000230)HardFault_Handler: 0x08000232 E7FE B HardFault_Handler (0x08000232)MemManage_Handler: 0x08000234 E7FE B MemManage_Handler (0x08000234)BusFault_Handler: 0x08000236 E7FE B BusFault_Handler (0x08000236)UsageFault_Handler: 0x08000238 E7FE B UsageFault_Handler (0x08000238)SVC_Handler: 0x0800023A E7FE B SVC_Handler (0x0800023A)DebugMon_Handler: 0x0800023C E7FE B DebugMon_Handler (0x0800023C)PendSV_Handler: 0x0800023E E7FE B PendSV_Handler (0x0800023E)SysTick_Handler: 0x08000240 E7FE B SysTick_Handler (0x08000240)Default_Handler: 0x08000242 E7FE B Default_Handler (0x08000242)__user_initial_stackheap: 0x08000244 4804 LDR r0,[pc,#16] ; @0x08000258 0x08000246 4905 LDR r1,[pc,#20] ; @0x0800025C 0x08000248 4A05 LDR r2,[pc,#20] ; @0x08000260 0x0800024A 4B06 LDR r3,[pc,#24] ; @0x08000264 0x0800024C 4770 BX lr 0x0800024E 0000 DCW 0x0000 0x08000250 0621 DCW 0x0621 0x08000252 0800 DCW 0x0800 0x08000254 0189 DCW 0x0189 0x08000256 0800 DCW 0x0800 0x08000258 0080 DCW 0x0080 0x0800025A 2000 DCW 0x2000 0x0800025C 0680 DCW 0x0680 0x0800025E 2000 DCW 0x2000 0x08000260 0280 DCW 0x0280 0x08000262 2000 DCW 0x2000 0x08000264 0280 DCW 0x0280 0x08000266 2000 DCW 0x2000__use_two_region_memory: 0x08000268 4770 BX lr__rt_heap_escrow$2region: 0x0800026A 4770 BX lr__rt_heap_expand$2region: 0x0800026C 4770 BX lr__user_setup_stackheap: 0x0800026E 4675 MOV r5,lr 0x08000270 F000F82C BL.W __user_libspace (0x080002CC) 0x08000274 46AE MOV lr,r5 0x08000276 0005 MOVS r5,r0 0x08000278 4669 MOV r1,sp 0x0800027A 4653 MOV r3,r10 0x0800027C F0200007 BIC r0,r0,#0x07 0x08000280 4685 MOV sp,r0 0x08000282 B018 ADD sp,sp,#0x60 0x08000284 B520 PUSH {r5,lr} 0x08000286 F7FFFFDD BL.W __user_initial_stackheap (0x08000244) 0x0800028A E8BD4020 POP {r5,lr} 0x0800028E F04F0600 MOV r6,#0x00 0x08000292 F04F0700 MOV r7,#0x00 0x08000296 F04F0800 MOV r8,#0x00 0x0800029A F04F0B00 MOV r11,#0x00 0x0800029E F0210107 BIC r1,r1,#0x07 0x080002A2 46AC MOV r12,r5 0x080002A4 E8AC09C0 STM r12!,{r6-r8,r11} 0x080002A8 E8AC09C0 STM r12!,{r6-r8,r11} 0x080002AC E8AC09C0 STM r12!,{r6-r8,r11} 0x080002B0 E8AC09C0 STM r12!,{r6-r8,r11} 0x080002B4 468D MOV sp,r1 0x080002B6 4770 BX lrexit: 0x080002B8 B510 PUSH {r4,lr} 0x080002BA 4604 MOV r4,r0 0x080002BC F3AF8000 NOP.W 0x080002C0 4620 MOV r0,r4 0x080002C2 E8BD4010 POP {r4,lr} 0x080002C6 F7FFBFA8 B.W __rt_exit (0x0800021A) 0x080002CA 0000 MOVS r0,r0__user_libspace: 0x080002CC 4800 LDR r0,[pc,#0] ; @0x080002D0 0x080002CE 4770 BX lr 0x080002D0 0020 DCW 0x0020 0x080002D2 2000 DCW 0x2000_sys_exit: 0x080002D4 4901 LDR r1,[pc,#4] ; @0x080002DC 0x080002D6 2018 MOVS r0,#0x18 0x080002D8 BEAB BKPT 0xAB 0x080002DA E7FE B 0x080002DA 0x080002DC 0026 DCW 0x0026 0x080002DE 0002 DCW 0x0002

    啟動文件

    ??目前,多數(shù) MCU 廠商都提供一個啟動文件。當然,編程者也可以自己編寫啟動文件,具體編寫要求ARM的網站上都有相關文檔進行說明。下面分析一下 STM32 啟動文件startup_stm32f407xx.s,具體看里面的注釋。

    ;******************** (C) COPYRIGHT 2017 STMicroelectronics ******************** ;* File Name : startup_stm32f407xx.s ;* Author : MCD Application Team ;* Version : V2.6.1 ;* Date : 14-February-2017 ;* Description : STM32F407xx devices vector table for MDK-ARM toolchain. ;* This module performs: ;* - Set the initial SP ;* - Set the initial PC == Reset_Handler ;* - Set the vector table entries with the exceptions ISR address ;* - Branches to __main in the C library (which eventually ;* calls main()). ;* After Reset the CortexM4 processor is in Thread mode, ;* priority is Privileged, and the Stack is set to Main. ;* <<< Use Configuration Wizard in Context Menu >>> ;******************************************************************************* ; ;* Redistribution and use in source and binary forms, with or without modification, ;* are permitted provided that the following conditions are met: ;* 1. Redistributions of source code must retain the above copyright notice, ;* this list of conditions and the following disclaimer. ;* 2. Redistributions in binary form must reproduce the above copyright notice, ;* this list of conditions and the following disclaimer in the documentation ;* and/or other materials provided with the distribution. ;* 3. Neither the name of STMicroelectronics nor the names of its contributors ;* may be used to endorse or promote products derived from this software ;* without specific prior written permission. ;* ;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ;* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ;* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ;* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS 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. ; ;*******************************************************************************; Amount of memory (in bytes) allocated for Stack ; Tailor this value to your application needs ; <h> Stack Configuration ; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> ; </h>Stack_Size EQU 0x0800 ; 定義棧大小; AREA 命令指示匯編器匯編一個新的代碼段或數(shù)據段。 AREA STACK, NOINIT, READWRITE, ALIGN=3 ; 代碼段名稱為STACK,未初始化,允許讀寫,8字節(jié)對齊 Stack_Mem SPACE Stack_Size ; 分配Stack_Size的棧空間,首地址賦給Stack_Mem __initial_sp ; 棧頂指針,全局變量; <h> Heap Configuration ; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> ; </h>Heap_Size EQU 0x200AREA HEAP, NOINIT, READWRITE, ALIGN=3 __heap_base ; 堆末底部地址 Heap_Mem SPACE Heap_Size __heap_limit ; 堆界限地址PRESERVE8 ; 指定當前文件保持堆棧八字節(jié)對齊THUMB ; Thumb命令模式; Vector Table Mapped to Address 0 at Reset ; 終端向量表 重啟時程序從這里運行,必須將該地址映射到0x00000000AREA RESET, DATA, READONLY ; 代碼段名稱為RESET,DATA類型,只讀EXPORT __Vectors ; 導出中斷向量表地址(供外部可以使用)EXPORT __Vectors_End ; 導出中斷向量表結束指針(供外部可以使用)EXPORT __Vectors_Size ; 中斷向量表大小(供外部可以使用) __Vectors DCD __initial_sp ; Top of StackDCD Reset_Handler ; Reset HandlerDCD NMI_Handler ; NMI HandlerDCD HardFault_Handler ; Hard Fault HandlerDCD MemManage_Handler ; MPU Fault HandlerDCD BusFault_Handler ; Bus Fault HandlerDCD UsageFault_Handler ; Usage Fault HandlerDCD 0 ; ReservedDCD 0 ; ReservedDCD 0 ; ReservedDCD 0 ; ReservedDCD SVC_Handler ; SVCall HandlerDCD DebugMon_Handler ; Debug Monitor HandlerDCD 0 ; ReservedDCD PendSV_Handler ; PendSV HandlerDCD SysTick_Handler ; SysTick Handler; External InterruptsDCD WWDG_IRQHandler ; Window WatchDog DCD PVD_IRQHandler ; PVD through EXTI Line detection DCD TAMP_STAMP_IRQHandler ; Tamper and TimeStamps through the EXTI line DCD RTC_WKUP_IRQHandler ; RTC Wakeup through the EXTI line DCD FLASH_IRQHandler ; FLASH DCD RCC_IRQHandler ; RCC DCD EXTI0_IRQHandler ; EXTI Line0 DCD EXTI1_IRQHandler ; EXTI Line1 DCD EXTI2_IRQHandler ; EXTI Line2 DCD EXTI3_IRQHandler ; EXTI Line3 DCD EXTI4_IRQHandler ; EXTI Line4 DCD DMA1_Stream0_IRQHandler ; DMA1 Stream 0 DCD DMA1_Stream1_IRQHandler ; DMA1 Stream 1 DCD DMA1_Stream2_IRQHandler ; DMA1 Stream 2 DCD DMA1_Stream3_IRQHandler ; DMA1 Stream 3 DCD DMA1_Stream4_IRQHandler ; DMA1 Stream 4 DCD DMA1_Stream5_IRQHandler ; DMA1 Stream 5 DCD DMA1_Stream6_IRQHandler ; DMA1 Stream 6 DCD ADC_IRQHandler ; ADC1, ADC2 and ADC3s DCD CAN1_TX_IRQHandler ; CAN1 TX DCD CAN1_RX0_IRQHandler ; CAN1 RX0 DCD CAN1_RX1_IRQHandler ; CAN1 RX1 DCD CAN1_SCE_IRQHandler ; CAN1 SCE DCD EXTI9_5_IRQHandler ; External Line[9:5]s DCD TIM1_BRK_TIM9_IRQHandler ; TIM1 Break and TIM9 DCD TIM1_UP_TIM10_IRQHandler ; TIM1 Update and TIM10 DCD TIM1_TRG_COM_TIM11_IRQHandler ; TIM1 Trigger and Commutation and TIM11DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare DCD TIM2_IRQHandler ; TIM2 DCD TIM3_IRQHandler ; TIM3 DCD TIM4_IRQHandler ; TIM4 DCD I2C1_EV_IRQHandler ; I2C1 Event DCD I2C1_ER_IRQHandler ; I2C1 Error DCD I2C2_EV_IRQHandler ; I2C2 Event DCD I2C2_ER_IRQHandler ; I2C2 Error DCD SPI1_IRQHandler ; SPI1 DCD SPI2_IRQHandler ; SPI2 DCD USART1_IRQHandler ; USART1 DCD USART2_IRQHandler ; USART2 DCD USART3_IRQHandler ; USART3 DCD EXTI15_10_IRQHandler ; External Line[15:10]s DCD RTC_Alarm_IRQHandler ; RTC Alarm (A and B) through EXTI Line DCD OTG_FS_WKUP_IRQHandler ; USB OTG FS Wakeup through EXTI line DCD TIM8_BRK_TIM12_IRQHandler ; TIM8 Break and TIM12 DCD TIM8_UP_TIM13_IRQHandler ; TIM8 Update and TIM13 DCD TIM8_TRG_COM_TIM14_IRQHandler ; TIM8 Trigger and Commutation and TIM14DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare DCD DMA1_Stream7_IRQHandler ; DMA1 Stream7 DCD FMC_IRQHandler ; FMC DCD SDIO_IRQHandler ; SDIO DCD TIM5_IRQHandler ; TIM5 DCD SPI3_IRQHandler ; SPI3 DCD UART4_IRQHandler ; UART4 DCD UART5_IRQHandler ; UART5 DCD TIM6_DAC_IRQHandler ; TIM6 and DAC1&2 underrun errors DCD TIM7_IRQHandler ; TIM7 DCD DMA2_Stream0_IRQHandler ; DMA2 Stream 0 DCD DMA2_Stream1_IRQHandler ; DMA2 Stream 1 DCD DMA2_Stream2_IRQHandler ; DMA2 Stream 2 DCD DMA2_Stream3_IRQHandler ; DMA2 Stream 3 DCD DMA2_Stream4_IRQHandler ; DMA2 Stream 4 DCD ETH_IRQHandler ; Ethernet DCD ETH_WKUP_IRQHandler ; Ethernet Wakeup through EXTI line DCD CAN2_TX_IRQHandler ; CAN2 TX DCD CAN2_RX0_IRQHandler ; CAN2 RX0 DCD CAN2_RX1_IRQHandler ; CAN2 RX1 DCD CAN2_SCE_IRQHandler ; CAN2 SCE DCD OTG_FS_IRQHandler ; USB OTG FS DCD DMA2_Stream5_IRQHandler ; DMA2 Stream 5 DCD DMA2_Stream6_IRQHandler ; DMA2 Stream 6 DCD DMA2_Stream7_IRQHandler ; DMA2 Stream 7 DCD USART6_IRQHandler ; USART6 DCD I2C3_EV_IRQHandler ; I2C3 event DCD I2C3_ER_IRQHandler ; I2C3 error DCD OTG_HS_EP1_OUT_IRQHandler ; USB OTG HS End Point 1 Out DCD OTG_HS_EP1_IN_IRQHandler ; USB OTG HS End Point 1 In DCD OTG_HS_WKUP_IRQHandler ; USB OTG HS Wakeup through EXTI DCD OTG_HS_IRQHandler ; USB OTG HS DCD DCMI_IRQHandler ; DCMI DCD 0 ; Reserved DCD HASH_RNG_IRQHandler ; Hash and RngDCD FPU_IRQHandler ; FPU__Vectors_End__Vectors_Size EQU __Vectors_End - __Vectors ; 計算中斷向量表的大小AREA |.text|, CODE, READONLY ; 代碼段,|.text| 用于表示由 C 編譯程序產生的代碼段,或用于以某種方式與 C 庫關聯(lián)的代碼段。 CODE類型,只讀 ; 以下開始定義各種中斷,第一個便是復位中斷,順序與上面的終端向量表一致! ; Reset handler Reset_Handler PROC ; 代碼開始,與ENDP成對出現(xiàn) EXPORT Reset_Handler [WEAK] ; 復位中斷,[WEAK]修飾代表其他文件有函數(shù)定義優(yōu)先調用IMPORT SystemInit ; 導入外部函數(shù)SystemInitIMPORT __main ; 導入外部函數(shù)__mainLDR R0, =SystemInitBLX R0 ; 無返回調用SystemInitLDR R0, =__mainBX R0 ; 有返回調用__mainENDP ; 代碼結束,與PROC成對出現(xiàn); Dummy Exception Handlers (infinite loops which can be modified)NMI_Handler PROCEXPORT NMI_Handler [WEAK]B .ENDP HardFault_Handler\PROCEXPORT HardFault_Handler [WEAK]B .ENDP MemManage_Handler\PROCEXPORT MemManage_Handler [WEAK]B .ENDP BusFault_Handler\PROCEXPORT BusFault_Handler [WEAK]B .ENDP UsageFault_Handler\PROCEXPORT UsageFault_Handler [WEAK]B .ENDP SVC_Handler PROCEXPORT SVC_Handler [WEAK]B .ENDP DebugMon_Handler\PROCEXPORT DebugMon_Handler [WEAK]B .ENDP PendSV_Handler PROCEXPORT PendSV_Handler [WEAK]B .ENDP SysTick_Handler PROCEXPORT SysTick_Handler [WEAK]B .ENDP ; 終端向量表的External Interrupts部分。 默認的外部中斷,通常有外部實現(xiàn)。先導出各種符號以供外部使用,然后時默認的定義 Default_Handler PROCEXPORT WWDG_IRQHandler [WEAK] EXPORT PVD_IRQHandler [WEAK] EXPORT TAMP_STAMP_IRQHandler [WEAK] EXPORT RTC_WKUP_IRQHandler [WEAK] EXPORT FLASH_IRQHandler [WEAK] EXPORT RCC_IRQHandler [WEAK] EXPORT EXTI0_IRQHandler [WEAK] EXPORT EXTI1_IRQHandler [WEAK] EXPORT EXTI2_IRQHandler [WEAK] EXPORT EXTI3_IRQHandler [WEAK] EXPORT EXTI4_IRQHandler [WEAK] EXPORT DMA1_Stream0_IRQHandler [WEAK] EXPORT DMA1_Stream1_IRQHandler [WEAK] EXPORT DMA1_Stream2_IRQHandler [WEAK] EXPORT DMA1_Stream3_IRQHandler [WEAK] EXPORT DMA1_Stream4_IRQHandler [WEAK] EXPORT DMA1_Stream5_IRQHandler [WEAK] EXPORT DMA1_Stream6_IRQHandler [WEAK] EXPORT ADC_IRQHandler [WEAK] EXPORT CAN1_TX_IRQHandler [WEAK] EXPORT CAN1_RX0_IRQHandler [WEAK] EXPORT CAN1_RX1_IRQHandler [WEAK] EXPORT CAN1_SCE_IRQHandler [WEAK] EXPORT EXTI9_5_IRQHandler [WEAK] EXPORT TIM1_BRK_TIM9_IRQHandler [WEAK] EXPORT TIM1_UP_TIM10_IRQHandler [WEAK] EXPORT TIM1_TRG_COM_TIM11_IRQHandler [WEAK] EXPORT TIM1_CC_IRQHandler [WEAK] EXPORT TIM2_IRQHandler [WEAK] EXPORT TIM3_IRQHandler [WEAK] EXPORT TIM4_IRQHandler [WEAK] EXPORT I2C1_EV_IRQHandler [WEAK] EXPORT I2C1_ER_IRQHandler [WEAK] EXPORT I2C2_EV_IRQHandler [WEAK] EXPORT I2C2_ER_IRQHandler [WEAK] EXPORT SPI1_IRQHandler [WEAK] EXPORT SPI2_IRQHandler [WEAK] EXPORT USART1_IRQHandler [WEAK] EXPORT USART2_IRQHandler [WEAK] EXPORT USART3_IRQHandler [WEAK] EXPORT EXTI15_10_IRQHandler [WEAK] EXPORT RTC_Alarm_IRQHandler [WEAK] EXPORT OTG_FS_WKUP_IRQHandler [WEAK] EXPORT TIM8_BRK_TIM12_IRQHandler [WEAK] EXPORT TIM8_UP_TIM13_IRQHandler [WEAK] EXPORT TIM8_TRG_COM_TIM14_IRQHandler [WEAK] EXPORT TIM8_CC_IRQHandler [WEAK] EXPORT DMA1_Stream7_IRQHandler [WEAK] EXPORT FMC_IRQHandler [WEAK] EXPORT SDIO_IRQHandler [WEAK] EXPORT TIM5_IRQHandler [WEAK] EXPORT SPI3_IRQHandler [WEAK] EXPORT UART4_IRQHandler [WEAK] EXPORT UART5_IRQHandler [WEAK] EXPORT TIM6_DAC_IRQHandler [WEAK] EXPORT TIM7_IRQHandler [WEAK] EXPORT DMA2_Stream0_IRQHandler [WEAK] EXPORT DMA2_Stream1_IRQHandler [WEAK] EXPORT DMA2_Stream2_IRQHandler [WEAK] EXPORT DMA2_Stream3_IRQHandler [WEAK] EXPORT DMA2_Stream4_IRQHandler [WEAK] EXPORT ETH_IRQHandler [WEAK] EXPORT ETH_WKUP_IRQHandler [WEAK] EXPORT CAN2_TX_IRQHandler [WEAK] EXPORT CAN2_RX0_IRQHandler [WEAK] EXPORT CAN2_RX1_IRQHandler [WEAK] EXPORT CAN2_SCE_IRQHandler [WEAK] EXPORT OTG_FS_IRQHandler [WEAK] EXPORT DMA2_Stream5_IRQHandler [WEAK] EXPORT DMA2_Stream6_IRQHandler [WEAK] EXPORT DMA2_Stream7_IRQHandler [WEAK] EXPORT USART6_IRQHandler [WEAK] EXPORT I2C3_EV_IRQHandler [WEAK] EXPORT I2C3_ER_IRQHandler [WEAK] EXPORT OTG_HS_EP1_OUT_IRQHandler [WEAK] EXPORT OTG_HS_EP1_IN_IRQHandler [WEAK] EXPORT OTG_HS_WKUP_IRQHandler [WEAK] EXPORT OTG_HS_IRQHandler [WEAK] EXPORT DCMI_IRQHandler [WEAK] EXPORT HASH_RNG_IRQHandler [WEAK]EXPORT FPU_IRQHandler [WEAK]WWDG_IRQHandler PVD_IRQHandler TAMP_STAMP_IRQHandler RTC_WKUP_IRQHandler FLASH_IRQHandler RCC_IRQHandler EXTI0_IRQHandler EXTI1_IRQHandler EXTI2_IRQHandler EXTI3_IRQHandler EXTI4_IRQHandler DMA1_Stream0_IRQHandler DMA1_Stream1_IRQHandler DMA1_Stream2_IRQHandler DMA1_Stream3_IRQHandler DMA1_Stream4_IRQHandler DMA1_Stream5_IRQHandler DMA1_Stream6_IRQHandler ADC_IRQHandler CAN1_TX_IRQHandler CAN1_RX0_IRQHandler CAN1_RX1_IRQHandler CAN1_SCE_IRQHandler EXTI9_5_IRQHandler TIM1_BRK_TIM9_IRQHandler TIM1_UP_TIM10_IRQHandler TIM1_TRG_COM_TIM11_IRQHandler TIM1_CC_IRQHandler TIM2_IRQHandler TIM3_IRQHandler TIM4_IRQHandler I2C1_EV_IRQHandler I2C1_ER_IRQHandler I2C2_EV_IRQHandler I2C2_ER_IRQHandler SPI1_IRQHandler SPI2_IRQHandler USART1_IRQHandler USART2_IRQHandler USART3_IRQHandler EXTI15_10_IRQHandler RTC_Alarm_IRQHandler OTG_FS_WKUP_IRQHandler TIM8_BRK_TIM12_IRQHandler TIM8_UP_TIM13_IRQHandler TIM8_TRG_COM_TIM14_IRQHandler TIM8_CC_IRQHandler DMA1_Stream7_IRQHandler FMC_IRQHandler SDIO_IRQHandler TIM5_IRQHandler SPI3_IRQHandler UART4_IRQHandler UART5_IRQHandler TIM6_DAC_IRQHandler TIM7_IRQHandler DMA2_Stream0_IRQHandler DMA2_Stream1_IRQHandler DMA2_Stream2_IRQHandler DMA2_Stream3_IRQHandler DMA2_Stream4_IRQHandler ETH_IRQHandler ETH_WKUP_IRQHandler CAN2_TX_IRQHandler CAN2_RX0_IRQHandler CAN2_RX1_IRQHandler CAN2_SCE_IRQHandler OTG_FS_IRQHandler DMA2_Stream5_IRQHandler DMA2_Stream6_IRQHandler DMA2_Stream7_IRQHandler USART6_IRQHandler I2C3_EV_IRQHandler I2C3_ER_IRQHandler OTG_HS_EP1_OUT_IRQHandler OTG_HS_EP1_IN_IRQHandler OTG_HS_WKUP_IRQHandler OTG_HS_IRQHandler DCMI_IRQHandler HASH_RNG_IRQHandler FPU_IRQHandler B .ENDPALIGN;******************************************************************************* ; User Stack and Heap initialization 編譯器預處理命令,主要是用來初始化用戶堆棧 ;*******************************************************************************IF :DEF:__MICROLIB ; "DEF"的用法為 :DEF:X 就是說X定義了則為真,否則為假。若定義了__MICROLIB,則將__initial_sp,__heap_base,__heap_limit亦即棧頂?shù)刂?#xff0c;堆始末地址賦予全局屬性,使外部程序可以使用。EXPORT __initial_spEXPORT __heap_baseEXPORT __heap_limitELSE ; 如果沒定義__MICROLIB,則使用默認的C運行時庫IMPORT __use_two_region_memory ; 用于指定存儲器模式為雙段模式,即一部分儲存區(qū)用于棧空間,其他的存儲區(qū)用于堆空間,堆區(qū)空間可以為0,但是,這樣就不能調用malloc()內存分配函數(shù);堆區(qū)空間也可以由存儲器分配,也可以從執(zhí)行環(huán)境中繼承。在匯編代碼中,通過 IMPORT __use_two_region_memory 表明使用雙段模式;在C語言中,通過 #pragma import(__use_two_region_memory)語句表明使用雙段模式。EXPORT __user_initial_stackheap__user_initial_stackheap ; 此處是初始化兩區(qū)的堆棧空間,堆是從由低到高的增長,棧是由高向低生長的,兩個是互相獨立的數(shù)據段,并不能交叉使用。LDR R0, = Heap_Mem ; 保存堆始地址LDR R1, =(Stack_Mem + Stack_Size) ; 保存棧的大小LDR R2, = (Heap_Mem + Heap_Size) ; 保存堆的大小LDR R3, = Stack_Mem ; 保存棧頂指針BX LRALIGN ; 填充字節(jié)使地址對齊ENDIFEND ; END 命令指示匯編器,已到達一個源文件的末尾。;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****

    參考

  • Developing Software for ARM Processors.pdf
  • ARM Compiler C Library Startup and Initialization.pdf
  • ARM C and C++ Libraries and Floating-Point Support.pdf
  • 與50位技術專家面對面20年技術見證,附贈技術全景圖

    總結

    以上是生活随笔為你收集整理的ARM 之九 Cortex-M/R 内核启动过程 / 程序启动流程(基于ARMCC、Keil)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    久久久久久久人妻无码中文字幕爆 | 久久精品国产一区二区三区 | 日日麻批免费40分钟无码 | 成人精品视频一区二区三区尤物 | 国产乱人偷精品人妻a片 | 日本大香伊一区二区三区 | 欧美性生交活xxxxxdddd | 在线成人www免费观看视频 | 在线看片无码永久免费视频 | 日韩人妻无码中文字幕视频 | 国产熟妇高潮叫床视频播放 | 国产成人精品久久亚洲高清不卡 | 欧美日韩在线亚洲综合国产人 | 成人影院yy111111在线观看 | 中文字幕人妻无码一夲道 | 国产成人无码专区 | 狠狠躁日日躁夜夜躁2020 | 强奷人妻日本中文字幕 | 精品久久久久久人妻无码中文字幕 | 中文字幕无码热在线视频 | 日欧一片内射va在线影院 | 成人免费视频视频在线观看 免费 | 亚洲s色大片在线观看 | 国产人成高清在线视频99最全资源 | 人人澡人人妻人人爽人人蜜桃 | 久久久久成人精品免费播放动漫 | 国产成人无码av在线影院 | 亚洲中文字幕在线观看 | 国产精品福利视频导航 | 国产精品福利视频导航 | 任你躁国产自任一区二区三区 | 欧美成人高清在线播放 | 波多野结衣av在线观看 | 欧美真人作爱免费视频 | 东京热一精品无码av | 日本一卡2卡3卡四卡精品网站 | 欧美日韩综合一区二区三区 | 无码帝国www无码专区色综合 | 国产高清不卡无码视频 | 中文字幕 亚洲精品 第1页 | 在线成人www免费观看视频 | 亚洲精品无码国产 | 东京一本一道一二三区 | 狠狠躁日日躁夜夜躁2020 | 99视频精品全部免费免费观看 | 国产农村乱对白刺激视频 | 人人爽人人爽人人片av亚洲 | 美女毛片一区二区三区四区 | 又紧又大又爽精品一区二区 | 国产精品久久久久久无码 | 国产精品99久久精品爆乳 | 激情人妻另类人妻伦 | аⅴ资源天堂资源库在线 | 日韩人妻系列无码专区 | 狠狠色噜噜狠狠狠7777奇米 | 女人被爽到呻吟gif动态图视看 | 日韩 欧美 动漫 国产 制服 | 国产女主播喷水视频在线观看 | 国产成人无码a区在线观看视频app | 欧美日韩在线亚洲综合国产人 | 成人亚洲精品久久久久软件 | 亚洲日韩av一区二区三区四区 | 国产av人人夜夜澡人人爽麻豆 | 少妇人妻偷人精品无码视频 | 日韩精品无码免费一区二区三区 | 国产人妻精品午夜福利免费 | 精品国产一区二区三区四区 | 强伦人妻一区二区三区视频18 | 精品国产aⅴ无码一区二区 | 欧美精品一区二区精品久久 | 99久久婷婷国产综合精品青草免费 | 久久99精品久久久久久 | 亚洲精品鲁一鲁一区二区三区 | 国产成人一区二区三区别 | 午夜精品一区二区三区的区别 | 色狠狠av一区二区三区 | 黑人粗大猛烈进出高潮视频 | 国产免费久久精品国产传媒 | 女人高潮内射99精品 | 骚片av蜜桃精品一区 | 小泽玛莉亚一区二区视频在线 | 国产精品美女久久久久av爽李琼 | 学生妹亚洲一区二区 | 日韩人妻系列无码专区 | 中文字幕无线码免费人妻 | 67194成是人免费无码 | 亚洲欧洲日本综合aⅴ在线 | 国产黄在线观看免费观看不卡 | 国产另类ts人妖一区二区 | 国产av一区二区三区最新精品 | 偷窥日本少妇撒尿chinese | 老太婆性杂交欧美肥老太 | 国产激情无码一区二区 | 玩弄少妇高潮ⅹxxxyw | 欧美人与禽zoz0性伦交 | 亚洲人成网站免费播放 | 成年美女黄网站色大免费视频 | 全球成人中文在线 | 亚洲欧美色中文字幕在线 | 强伦人妻一区二区三区视频18 | 精品国产aⅴ无码一区二区 | 人妻插b视频一区二区三区 | √天堂中文官网8在线 | 少妇人妻av毛片在线看 | 亚洲欧美中文字幕5发布 | 国产精品人人妻人人爽 | 麻豆国产丝袜白领秘书在线观看 | 全黄性性激高免费视频 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 爆乳一区二区三区无码 | av无码电影一区二区三区 | 性色欲情网站iwww九文堂 | 久久成人a毛片免费观看网站 | 国产精品对白交换视频 | 秋霞特色aa大片 | 欧美freesex黑人又粗又大 | 亚洲国产欧美日韩精品一区二区三区 | 国产精品亚洲五月天高清 | 日本精品少妇一区二区三区 | www国产亚洲精品久久网站 | 日韩亚洲欧美精品综合 | 曰本女人与公拘交酡免费视频 | 亚洲精品成人av在线 | av香港经典三级级 在线 | 高清国产亚洲精品自在久久 | 麻豆国产97在线 | 欧洲 | 国产精品人人爽人人做我的可爱 | 国产精品久久久久久无码 | 狠狠色噜噜狠狠狠7777奇米 | 亚洲精品美女久久久久久久 | 欧美人与物videos另类 | 国产亚洲人成在线播放 | 精品人妻人人做人人爽夜夜爽 | 欧美xxxx黑人又粗又长 | 少妇无码吹潮 | 扒开双腿疯狂进出爽爽爽视频 | 国产精品第一国产精品 | √天堂中文官网8在线 | 领导边摸边吃奶边做爽在线观看 | 无码人妻av免费一区二区三区 | 露脸叫床粗话东北少妇 | 国产精品久久久久9999小说 | 亚洲熟悉妇女xxx妇女av | 国产精品久久久久无码av色戒 | 国产午夜无码精品免费看 | 国产情侣作爱视频免费观看 | 中文字幕乱码人妻无码久久 | 夫妻免费无码v看片 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 色 综合 欧美 亚洲 国产 | 成人免费视频在线观看 | 蜜臀av无码人妻精品 | 国产在线一区二区三区四区五区 | 亚洲日本va中文字幕 | 大肉大捧一进一出好爽视频 | 香蕉久久久久久av成人 | 亚洲精品午夜无码电影网 | 正在播放老肥熟妇露脸 | 四十如虎的丰满熟妇啪啪 | 亚洲最大成人网站 | 中文字幕人妻丝袜二区 | 色一情一乱一伦一区二区三欧美 | 精品国精品国产自在久国产87 | 国产极品美女高潮无套在线观看 | 久久这里只有精品视频9 | 99久久精品无码一区二区毛片 | 人妻有码中文字幕在线 | 亚洲の无码国产の无码步美 | 亚洲 激情 小说 另类 欧美 | 玩弄少妇高潮ⅹxxxyw | 无码人妻出轨黑人中文字幕 | 乱人伦中文视频在线观看 | 人妻少妇精品久久 | 午夜无码人妻av大片色欲 | 特级做a爰片毛片免费69 | 久久久久成人片免费观看蜜芽 | 成人精品一区二区三区中文字幕 | 精品乱码久久久久久久 | 日本爽爽爽爽爽爽在线观看免 | 亚洲国产精品成人久久蜜臀 | 亚洲一区二区三区国产精华液 | 日韩亚洲欧美精品综合 | 国产精品香蕉在线观看 | 国产午夜精品一区二区三区嫩草 | 国产人妻人伦精品 | 综合网日日天干夜夜久久 | 精品国精品国产自在久国产87 | 无码人妻精品一区二区三区不卡 | 国产欧美精品一区二区三区 | 中文字幕乱码中文乱码51精品 | 久在线观看福利视频 | 在线精品亚洲一区二区 | 小泽玛莉亚一区二区视频在线 | 女人被爽到呻吟gif动态图视看 | 精品一二三区久久aaa片 | 亚洲精品无码国产 | 国产国产精品人在线视 | 亚洲爆乳无码专区 | 欧美成人午夜精品久久久 | 99久久久国产精品无码免费 | 精品偷拍一区二区三区在线看 | 亚洲爆乳精品无码一区二区三区 | 国产亚洲人成在线播放 | 夜夜躁日日躁狠狠久久av | 国产精品久久久久久亚洲影视内衣 | 欧美性猛交xxxx富婆 | 野外少妇愉情中文字幕 | 日韩人妻少妇一区二区三区 | 久久天天躁狠狠躁夜夜免费观看 | 中文亚洲成a人片在线观看 | 国内精品九九久久久精品 | √8天堂资源地址中文在线 | 狠狠色噜噜狠狠狠7777奇米 | 伊人色综合久久天天小片 | 2020久久香蕉国产线看观看 | 在线观看国产一区二区三区 | 久久亚洲国产成人精品性色 | 国产成人综合色在线观看网站 | 精品偷自拍另类在线观看 | 色情久久久av熟女人妻网站 | 亚洲乱亚洲乱妇50p | 人妻无码αv中文字幕久久琪琪布 | 内射老妇bbwx0c0ck | 亚洲码国产精品高潮在线 | 精品久久综合1区2区3区激情 | 精品无码国产自产拍在线观看蜜 | 国产精品久久久久影院嫩草 | 日韩欧美群交p片內射中文 | 国产精品99爱免费视频 | 亚洲国产精品毛片av不卡在线 | 77777熟女视频在线观看 а天堂中文在线官网 | 香港三级日本三级妇三级 | 无码av免费一区二区三区试看 | 精品人妻人人做人人爽夜夜爽 | 少妇无套内谢久久久久 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 亚洲精品鲁一鲁一区二区三区 | 国产精品久久久av久久久 | 沈阳熟女露脸对白视频 | 一本大道久久东京热无码av | 欧美 日韩 人妻 高清 中文 | 性做久久久久久久久 | 日本www一道久久久免费榴莲 | 在线播放亚洲第一字幕 | 亚洲小说春色综合另类 | 在线播放无码字幕亚洲 | 偷窥日本少妇撒尿chinese | 欧洲欧美人成视频在线 | 老太婆性杂交欧美肥老太 | 国产成人无码午夜视频在线观看 | 国产色视频一区二区三区 | 日产精品高潮呻吟av久久 | 中文字幕人妻丝袜二区 | 夜夜高潮次次欢爽av女 | 国产精品人人爽人人做我的可爱 | 国产精品无套呻吟在线 | 日日干夜夜干 | 激情人妻另类人妻伦 | 日本一卡二卡不卡视频查询 | 色婷婷综合中文久久一本 | 国产无遮挡吃胸膜奶免费看 | 激情五月综合色婷婷一区二区 | 国产精品美女久久久 | 亚洲精品成a人在线观看 | 亚洲熟妇色xxxxx欧美老妇y | 一本无码人妻在中文字幕免费 | 青草视频在线播放 | 天堂亚洲2017在线观看 | 中文精品久久久久人妻不卡 | 伊人久久大香线蕉av一区二区 | 无码人妻黑人中文字幕 | 国产免费久久久久久无码 | 国产黑色丝袜在线播放 | 久久久久久久女国产乱让韩 | 午夜丰满少妇性开放视频 | 少妇被粗大的猛进出69影院 | 国产无遮挡吃胸膜奶免费看 | 久久人人爽人人爽人人片ⅴ | 国产精品人妻一区二区三区四 | 强伦人妻一区二区三区视频18 | 香港三级日本三级妇三级 | 国产香蕉尹人综合在线观看 | 大色综合色综合网站 | 亚洲区小说区激情区图片区 | 国产深夜福利视频在线 | 婷婷色婷婷开心五月四房播播 | 精品久久综合1区2区3区激情 | 无码人妻黑人中文字幕 | 东京一本一道一二三区 | 久久无码中文字幕免费影院蜜桃 | 老太婆性杂交欧美肥老太 | 色欲久久久天天天综合网精品 | 99久久精品无码一区二区毛片 | 人妻无码αv中文字幕久久琪琪布 | 国产精品久久久午夜夜伦鲁鲁 | 亚洲精品国偷拍自产在线观看蜜桃 | 青春草在线视频免费观看 | 亚洲精品一区二区三区在线 | 亚洲人成无码网www | 久久综合给合久久狠狠狠97色 | 蜜桃无码一区二区三区 | 亚洲最大成人网站 | 性生交大片免费看l | 少妇被粗大的猛进出69影院 | 狂野欧美性猛xxxx乱大交 | 伊在人天堂亚洲香蕉精品区 | 扒开双腿吃奶呻吟做受视频 | 久久精品一区二区三区四区 | 天堂无码人妻精品一区二区三区 | 日产精品高潮呻吟av久久 | 成人免费视频在线观看 | a在线亚洲男人的天堂 | 少妇无码av无码专区在线观看 | 亚洲国产精品一区二区第一页 | 亚洲aⅴ无码成人网站国产app | 国产免费久久精品国产传媒 | 国产舌乚八伦偷品w中 | 欧美性生交xxxxx久久久 | 大地资源中文第3页 | 免费视频欧美无人区码 | 日日天日日夜日日摸 | 性欧美牲交xxxxx视频 | 久久天天躁狠狠躁夜夜免费观看 | 狠狠噜狠狠狠狠丁香五月 | 在教室伦流澡到高潮hnp视频 | 亚洲中文字幕成人无码 | 国产精品办公室沙发 | 人妻互换免费中文字幕 | 内射后入在线观看一区 | 狂野欧美性猛xxxx乱大交 | 国产无套内射久久久国产 | 欧美日韩视频无码一区二区三 | 久久99精品国产麻豆 | 小泽玛莉亚一区二区视频在线 | 国内少妇偷人精品视频免费 | 对白脏话肉麻粗话av | 天堂а√在线地址中文在线 | 鲁大师影院在线观看 | 中文精品久久久久人妻不卡 | 国产人妻精品一区二区三区不卡 | 日韩 欧美 动漫 国产 制服 | 亚洲成色在线综合网站 | 少妇人妻偷人精品无码视频 | 久久99精品久久久久婷婷 | 中文无码成人免费视频在线观看 | 丰满人妻翻云覆雨呻吟视频 | 欧美激情一区二区三区成人 | 精品无码国产一区二区三区av | 亚洲色欲色欲欲www在线 | 一本色道久久综合狠狠躁 | 4hu四虎永久在线观看 | 中文毛片无遮挡高清免费 | 天天爽夜夜爽夜夜爽 | 亚洲色大成网站www国产 | 少妇性l交大片 | 色偷偷人人澡人人爽人人模 | 国产偷自视频区视频 | 亚洲精品鲁一鲁一区二区三区 | 国产精品国产自线拍免费软件 | 亚洲va中文字幕无码久久不卡 | ass日本丰满熟妇pics | 波多野结衣av一区二区全免费观看 | 国产无av码在线观看 | 少妇久久久久久人妻无码 | 人人澡人人透人人爽 | 日日噜噜噜噜夜夜爽亚洲精品 | 蜜桃臀无码内射一区二区三区 | 999久久久国产精品消防器材 | 国产精品久久久午夜夜伦鲁鲁 | 亚洲国产成人a精品不卡在线 | 国产精品理论片在线观看 | 性色欲网站人妻丰满中文久久不卡 | 日韩精品无码一区二区中文字幕 | 国产两女互慰高潮视频在线观看 | 色一情一乱一伦 | a在线观看免费网站大全 | 日韩 欧美 动漫 国产 制服 | 无码国内精品人妻少妇 | 窝窝午夜理论片影院 | 亚洲国产成人av在线观看 | 精品国精品国产自在久国产87 | 成人精品一区二区三区中文字幕 | 亚洲国产精品无码一区二区三区 | 国产偷国产偷精品高清尤物 | 久久久久久久女国产乱让韩 | 永久免费观看国产裸体美女 | 天天爽夜夜爽夜夜爽 | 亚洲精品一区二区三区四区五区 | 久久久精品国产sm最大网站 | 99久久精品日本一区二区免费 | 未满小14洗澡无码视频网站 | 久久综合网欧美色妞网 | 大色综合色综合网站 | 国产精品久久国产三级国 | 成人毛片一区二区 | 男女超爽视频免费播放 | 天下第一社区视频www日本 | 牲欲强的熟妇农村老妇女 | 国产精品国产自线拍免费软件 | 亚洲码国产精品高潮在线 | 欧美放荡的少妇 | 未满成年国产在线观看 | 亚洲精品一区国产 | 国产亚洲精品久久久久久久久动漫 | 红桃av一区二区三区在线无码av | 国产人成高清在线视频99最全资源 | 大色综合色综合网站 | 精品无码av一区二区三区 | 国产精品亚洲五月天高清 | 亚洲中文字幕无码中文字在线 | 精品夜夜澡人妻无码av蜜桃 | 秋霞成人午夜鲁丝一区二区三区 | 麻豆蜜桃av蜜臀av色欲av | 少妇一晚三次一区二区三区 | 大地资源网第二页免费观看 | 亚洲精品成人福利网站 | 97精品国产97久久久久久免费 | 性色欲情网站iwww九文堂 | 日本大香伊一区二区三区 | 精品亚洲韩国一区二区三区 | 波多野结衣av在线观看 | 特黄特色大片免费播放器图片 | 国产免费观看黄av片 | 5858s亚洲色大成网站www | 亚洲综合在线一区二区三区 | 国产区女主播在线观看 | 成熟妇人a片免费看网站 | 亚洲精品一区二区三区四区五区 | 国内少妇偷人精品视频 | 男女爱爱好爽视频免费看 | 欧美日韩亚洲国产精品 | 日韩av无码中文无码电影 | 国产成人无码a区在线观看视频app | 国产精品久久久久影院嫩草 | 午夜性刺激在线视频免费 | 日日鲁鲁鲁夜夜爽爽狠狠 | 中文字幕乱码人妻二区三区 | 欧美午夜特黄aaaaaa片 | 午夜精品一区二区三区的区别 | 九月婷婷人人澡人人添人人爽 | 日韩人妻无码一区二区三区久久99 | 熟女少妇在线视频播放 | 人人妻人人藻人人爽欧美一区 | 人人澡人人妻人人爽人人蜜桃 | 又大又黄又粗又爽的免费视频 | 成 人 网 站国产免费观看 | 色综合久久久久综合一本到桃花网 | 婷婷丁香五月天综合东京热 | 国产亚洲精品久久久久久久 | 黑人粗大猛烈进出高潮视频 | 日日干夜夜干 | 国产精品对白交换视频 | 玩弄中年熟妇正在播放 | 国产明星裸体无码xxxx视频 | 水蜜桃av无码 | 色欲久久久天天天综合网精品 | 日日摸夜夜摸狠狠摸婷婷 | 5858s亚洲色大成网站www | 国产精品手机免费 | 性生交大片免费看女人按摩摩 | 在线欧美精品一区二区三区 | 国内老熟妇对白xxxxhd | 97夜夜澡人人爽人人喊中国片 | 乌克兰少妇xxxx做受 | 大屁股大乳丰满人妻 | 青青草原综合久久大伊人精品 | 国产极品美女高潮无套在线观看 | 无码人妻少妇伦在线电影 | 精品久久久无码中文字幕 | 天天爽夜夜爽夜夜爽 | 玩弄人妻少妇500系列视频 | 曰韩少妇内射免费播放 | 日日鲁鲁鲁夜夜爽爽狠狠 | 亚洲男人av香蕉爽爽爽爽 | 国产精品.xx视频.xxtv | aa片在线观看视频在线播放 | 夜先锋av资源网站 | 性欧美熟妇videofreesex | 国产97人人超碰caoprom | 一二三四社区在线中文视频 | 午夜无码区在线观看 | 成人欧美一区二区三区 | 国产无遮挡吃胸膜奶免费看 | 日韩精品成人一区二区三区 | 日韩人妻无码一区二区三区久久99 | 强开小婷嫩苞又嫩又紧视频 | 精品久久久无码人妻字幂 | 熟妇人妻中文av无码 | 国产成人无码av一区二区 | 极品尤物被啪到呻吟喷水 | 久久久久av无码免费网 | 日韩av无码一区二区三区 | 精品一区二区三区波多野结衣 | 免费播放一区二区三区 | 日本免费一区二区三区最新 | 亚洲综合精品香蕉久久网 | 中文字幕人妻无码一夲道 | 国产精品手机免费 | 亚欧洲精品在线视频免费观看 | 亚洲日本一区二区三区在线 | 亚洲国产精品久久人人爱 | 亚洲欧美日韩综合久久久 | 娇妻被黑人粗大高潮白浆 | 色婷婷av一区二区三区之红樱桃 | 永久黄网站色视频免费直播 | 老熟女重囗味hdxx69 | 国产乱人伦av在线无码 | 亚洲一区二区三区无码久久 | 女人被男人躁得好爽免费视频 | 国精品人妻无码一区二区三区蜜柚 | www国产精品内射老师 | 伊人久久婷婷五月综合97色 | 国产成人久久精品流白浆 | 免费观看的无遮挡av | 国产一区二区不卡老阿姨 | 超碰97人人射妻 | 国产精品a成v人在线播放 | 久久精品国产一区二区三区 | 97久久超碰中文字幕 | 亚洲va中文字幕无码久久不卡 | 国产亚洲tv在线观看 | 内射老妇bbwx0c0ck | 久久精品中文字幕大胸 | 丰满肥臀大屁股熟妇激情视频 | 一本色道婷婷久久欧美 | 蜜桃臀无码内射一区二区三区 | 少妇人妻av毛片在线看 | 欧美日韩人成综合在线播放 | 国产莉萝无码av在线播放 | 99久久无码一区人妻 | 狠狠综合久久久久综合网 | 成人精品天堂一区二区三区 | 亚洲国产精品一区二区美利坚 | 久精品国产欧美亚洲色aⅴ大片 | 成人精品一区二区三区中文字幕 | 国产在线aaa片一区二区99 | 亚洲色欲久久久综合网东京热 | 日本免费一区二区三区最新 | 国产激情无码一区二区 | 精品久久久久久亚洲精品 | 欧美日韩亚洲国产精品 | 国产成人无码av片在线观看不卡 | 亚洲熟妇自偷自拍另类 | 久久精品无码一区二区三区 | 日本精品人妻无码77777 天堂一区人妻无码 | 欧美三级a做爰在线观看 | 亚洲成a人一区二区三区 | 中文字幕+乱码+中文字幕一区 | 国产女主播喷水视频在线观看 | 成人无码视频在线观看网站 | 婷婷五月综合缴情在线视频 | 亚洲中文字幕成人无码 | 亚洲性无码av中文字幕 | 国产精品欧美成人 | 久久久久成人精品免费播放动漫 | 欧美怡红院免费全部视频 | 色情久久久av熟女人妻网站 | 人妻无码久久精品人妻 | 午夜熟女插插xx免费视频 | 亚洲人成人无码网www国产 | 精品人妻中文字幕有码在线 | 亚洲狠狠色丁香婷婷综合 | 大肉大捧一进一出视频出来呀 | 国产人妻精品一区二区三区不卡 | 性生交片免费无码看人 | 丰满少妇高潮惨叫视频 | 久久人人爽人人爽人人片ⅴ | 国产无套内射久久久国产 | 99精品久久毛片a片 | 又大又硬又黄的免费视频 | 国产高潮视频在线观看 | 中文字幕日产无线码一区 | 18禁黄网站男男禁片免费观看 | 久久亚洲a片com人成 | 亚洲精品国产精品乱码视色 | 亚洲色欲色欲欲www在线 | 99riav国产精品视频 | 波多野结衣av一区二区全免费观看 | 色诱久久久久综合网ywww | 欧美午夜特黄aaaaaa片 | 午夜丰满少妇性开放视频 | 亚洲成熟女人毛毛耸耸多 | 久久久久久国产精品无码下载 | 在线视频网站www色 | 窝窝午夜理论片影院 | 精品一二三区久久aaa片 | 国产人妖乱国产精品人妖 | 成 人 网 站国产免费观看 | 国产一区二区三区日韩精品 | 国产精品无套呻吟在线 | 99久久人妻精品免费二区 | 夜夜高潮次次欢爽av女 | 双乳奶水饱满少妇呻吟 | 亚洲成在人网站无码天堂 | 欧美三级a做爰在线观看 | 亚洲欧美综合区丁香五月小说 | 国产亚洲美女精品久久久2020 | 日本xxxx色视频在线观看免费 | 4hu四虎永久在线观看 | 日本乱人伦片中文三区 | 中文无码伦av中文字幕 | 国产人妻人伦精品1国产丝袜 | 76少妇精品导航 | 中文字幕无码日韩欧毛 | 无码人妻丰满熟妇区五十路百度 | 亚洲天堂2017无码 | 麻豆国产丝袜白领秘书在线观看 | 亲嘴扒胸摸屁股激烈网站 | 丰满人妻被黑人猛烈进入 | 久久综合激激的五月天 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 日韩成人一区二区三区在线观看 | 人人妻人人藻人人爽欧美一区 | 久久久久久久人妻无码中文字幕爆 | 久久人人97超碰a片精品 | 午夜精品一区二区三区的区别 | 日本在线高清不卡免费播放 | 亚洲日韩av一区二区三区中文 | 免费中文字幕日韩欧美 | ass日本丰满熟妇pics | 久久久久久国产精品无码下载 | 久久精品人妻少妇一区二区三区 | 免费观看的无遮挡av | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 国内精品人妻无码久久久影院蜜桃 | 18无码粉嫩小泬无套在线观看 | 天天摸天天透天天添 | 亚洲成色在线综合网站 | 亚洲无人区午夜福利码高清完整版 | aⅴ亚洲 日韩 色 图网站 播放 | 最新国产乱人伦偷精品免费网站 | 免费看男女做好爽好硬视频 | 四虎影视成人永久免费观看视频 | 综合网日日天干夜夜久久 | 中文字幕无码av激情不卡 | 香港三级日本三级妇三级 | 综合网日日天干夜夜久久 | 99er热精品视频 | 伊人久久大香线蕉亚洲 | 人妻尝试又大又粗久久 | 国产精品igao视频网 | 亚洲精品久久久久avwww潮水 | 最近的中文字幕在线看视频 | 亚洲国产成人a精品不卡在线 | 日韩av激情在线观看 | 麻豆成人精品国产免费 | 国产美女极度色诱视频www | 国产超级va在线观看视频 | 男人和女人高潮免费网站 | 久久久精品成人免费观看 | 亚洲男人av天堂午夜在 | 天干天干啦夜天干天2017 | 兔费看少妇性l交大片免费 | 亚洲va欧美va天堂v国产综合 | 国产情侣作爱视频免费观看 | 人人澡人人透人人爽 | 久久综合狠狠综合久久综合88 | 欧美日韩亚洲国产精品 | 东京热无码av男人的天堂 | 久久97精品久久久久久久不卡 | 无码精品人妻一区二区三区av | a在线亚洲男人的天堂 | 国精产品一区二区三区 | 高中生自慰www网站 | 中文精品无码中文字幕无码专区 | 国产一区二区三区日韩精品 | 国产色视频一区二区三区 | 久久久久久久女国产乱让韩 | 97人妻精品一区二区三区 | 亚洲欧洲中文日韩av乱码 | 亚洲色www成人永久网址 | 99久久人妻精品免费一区 | 亚洲精品无码国产 | av无码电影一区二区三区 | 免费网站看v片在线18禁无码 | 天天躁日日躁狠狠躁免费麻豆 | 55夜色66夜色国产精品视频 | 精品厕所偷拍各类美女tp嘘嘘 | 日韩在线不卡免费视频一区 | 国产超碰人人爽人人做人人添 | 99re在线播放 | 欧洲精品码一区二区三区免费看 | 撕开奶罩揉吮奶头视频 | 激情综合激情五月俺也去 | 中文字幕无码人妻少妇免费 | 亚洲熟熟妇xxxx | 中文字幕日韩精品一区二区三区 | 日日躁夜夜躁狠狠躁 | 精品夜夜澡人妻无码av蜜桃 | 又大又硬又黄的免费视频 | 丰满护士巨好爽好大乳 | 亚洲精品一区二区三区四区五区 | 国产在热线精品视频 | 激情内射亚州一区二区三区爱妻 | 少妇被黑人到高潮喷出白浆 | 少妇一晚三次一区二区三区 | 久久久精品国产sm最大网站 | 永久免费精品精品永久-夜色 | 久久综合九色综合欧美狠狠 | 亚洲一区二区三区含羞草 | 日韩人妻少妇一区二区三区 | 乌克兰少妇性做爰 | 日韩视频 中文字幕 视频一区 | 日本熟妇大屁股人妻 | 4hu四虎永久在线观看 | 国产人妻久久精品二区三区老狼 | 老熟女重囗味hdxx69 | 天天躁夜夜躁狠狠是什么心态 | 亚洲国产精品一区二区美利坚 | 高潮毛片无遮挡高清免费 | 无码人妻出轨黑人中文字幕 | 精品人妻中文字幕有码在线 | 精品国产aⅴ无码一区二区 | 国内综合精品午夜久久资源 | 亚洲区小说区激情区图片区 | 久久亚洲精品中文字幕无男同 | 欧美日韩亚洲国产精品 | 无码精品人妻一区二区三区av | 色偷偷人人澡人人爽人人模 | 98国产精品综合一区二区三区 | 亚洲成在人网站无码天堂 | 97精品人妻一区二区三区香蕉 | 国内精品久久久久久中文字幕 | 美女极度色诱视频国产 | 性做久久久久久久免费看 | 人人爽人人澡人人高潮 | 亚洲午夜无码久久 | 亚洲码国产精品高潮在线 | 18禁止看的免费污网站 | 乱人伦人妻中文字幕无码 | 一本无码人妻在中文字幕免费 | 99久久人妻精品免费一区 | 搡女人真爽免费视频大全 | 88国产精品欧美一区二区三区 | 少妇无码吹潮 | 国产精品香蕉在线观看 | 午夜精品久久久久久久久 | 亚洲乱亚洲乱妇50p | 天天av天天av天天透 | 伊人久久大香线蕉亚洲 | 色噜噜亚洲男人的天堂 | 精品乱码久久久久久久 | 国产精品久久久久7777 | 国产香蕉97碰碰久久人人 | 精品久久8x国产免费观看 | 精品国产一区av天美传媒 | 四虎影视成人永久免费观看视频 | 久久无码人妻影院 | 无码播放一区二区三区 | 欧美成人家庭影院 | 精品午夜福利在线观看 | 色妞www精品免费视频 | 亚洲另类伦春色综合小说 | 少妇一晚三次一区二区三区 | 日韩成人一区二区三区在线观看 | 亚洲精品国产品国语在线观看 | 亚洲精品久久久久久久久久久 | 丰满妇女强制高潮18xxxx | 色综合久久久无码网中文 | 免费网站看v片在线18禁无码 | 精品亚洲韩国一区二区三区 | 午夜精品久久久久久久 | 亚洲色大成网站www国产 | 日日天日日夜日日摸 | 精品亚洲韩国一区二区三区 | 99视频精品全部免费免费观看 | 亚洲gv猛男gv无码男同 | 亚洲国产av精品一区二区蜜芽 | 亚洲自偷自拍另类第1页 | 国产麻豆精品精东影业av网站 | 99久久人妻精品免费一区 | 亚洲人成影院在线无码按摩店 | 久久亚洲日韩精品一区二区三区 | 亚洲gv猛男gv无码男同 | 大地资源中文第3页 | 国产高清av在线播放 | 曰韩少妇内射免费播放 | 欧美日韩久久久精品a片 | 久久国产精品精品国产色婷婷 | 欧美激情综合亚洲一二区 | 狠狠色噜噜狠狠狠狠7777米奇 | 日本一区二区三区免费高清 | 无码毛片视频一区二区本码 | 亚洲日韩一区二区 | 97精品人妻一区二区三区香蕉 | 中文字幕乱码人妻二区三区 | 四虎国产精品免费久久 | 亚洲日本一区二区三区在线 | 少妇厨房愉情理9仑片视频 | 亚洲人亚洲人成电影网站色 | v一区无码内射国产 | 无码av岛国片在线播放 | 97无码免费人妻超级碰碰夜夜 | 国产精品久久久av久久久 | 51国偷自产一区二区三区 | 青春草在线视频免费观看 | 亚洲国产精品无码一区二区三区 | 男人的天堂2018无码 | 亚洲 日韩 欧美 成人 在线观看 | 欧美丰满熟妇xxxx性ppx人交 | 国产色xx群视频射精 | 扒开双腿疯狂进出爽爽爽视频 | 欧美 亚洲 国产 另类 | 乌克兰少妇xxxx做受 | 人人澡人摸人人添 | 人妻体内射精一区二区三四 | 乱人伦人妻中文字幕无码久久网 | 性欧美牲交xxxxx视频 | 97久久国产亚洲精品超碰热 | 国产成人精品久久亚洲高清不卡 | 国产精品香蕉在线观看 | 精品无码av一区二区三区 | 国产性生交xxxxx无码 | 精品欧美一区二区三区久久久 | 亚洲 欧美 激情 小说 另类 | 在线播放免费人成毛片乱码 | 国产精品办公室沙发 | 日本xxxx色视频在线观看免费 | 久久综合九色综合97网 | 国产成人无码一二三区视频 | 成年女人永久免费看片 | 中文字幕无码人妻少妇免费 | 国内精品人妻无码久久久影院蜜桃 | 永久黄网站色视频免费直播 | 国产人妻人伦精品1国产丝袜 | 西西人体www44rt大胆高清 | 亚洲国产午夜精品理论片 | 亚洲一区二区三区四区 | 玩弄人妻少妇500系列视频 | 国产区女主播在线观看 | 樱花草在线播放免费中文 | 国产免费观看黄av片 | 欧美日韩人成综合在线播放 | 偷窥日本少妇撒尿chinese | 九九在线中文字幕无码 | 亚洲 另类 在线 欧美 制服 | 人妻熟女一区 | 帮老师解开蕾丝奶罩吸乳网站 | 国产精品无码一区二区三区不卡 | 最近的中文字幕在线看视频 | 亚洲国产精品美女久久久久 | 亚洲一区二区三区 | 亚洲中文字幕无码中字 | 国产成人精品视频ⅴa片软件竹菊 | 蜜臀av无码人妻精品 | 亚洲中文字幕在线无码一区二区 | 在线天堂新版最新版在线8 | 国产成人精品无码播放 | 红桃av一区二区三区在线无码av | 亚洲日本va午夜在线电影 | 丰满少妇弄高潮了www | 精品久久久无码人妻字幂 | 西西人体www44rt大胆高清 | 精品国偷自产在线 | 国产片av国语在线观看 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 亚洲综合无码久久精品综合 | 无码人妻少妇伦在线电影 | 国产高清不卡无码视频 | 成人精品一区二区三区中文字幕 | 超碰97人人做人人爱少妇 | 女人和拘做爰正片视频 | 国产人妻大战黑人第1集 | 精品国产一区二区三区四区 | 亚洲欧洲日本综合aⅴ在线 | 大乳丰满人妻中文字幕日本 | 帮老师解开蕾丝奶罩吸乳网站 | 国产乱码精品一品二品 | 精品国产一区二区三区四区 | 中文字幕无线码免费人妻 | 亚洲狠狠色丁香婷婷综合 | 男女爱爱好爽视频免费看 | 亚洲精品欧美二区三区中文字幕 | 亚洲日韩av一区二区三区四区 | 国产免费久久久久久无码 | 在线a亚洲视频播放在线观看 | 少妇无套内谢久久久久 | 丝袜足控一区二区三区 | 我要看www免费看插插视频 | 波多野结衣高清一区二区三区 | 一本色道久久综合亚洲精品不卡 | 青草视频在线播放 | 亚洲中文字幕久久无码 | 国产偷抇久久精品a片69 | 国产片av国语在线观看 | 欧美激情一区二区三区成人 | 最近中文2019字幕第二页 | 成人三级无码视频在线观看 | 中文字幕人妻无码一区二区三区 | 色欲av亚洲一区无码少妇 | 亚洲日韩av一区二区三区中文 | 亚洲国产欧美在线成人 | 男女爱爱好爽视频免费看 | 男女作爱免费网站 | 国产精品毛多多水多 | 国产精品久久久久久久影院 | 少妇人妻大乳在线视频 | 日韩亚洲欧美精品综合 | 国产成人人人97超碰超爽8 | 装睡被陌生人摸出水好爽 | 99er热精品视频 | www一区二区www免费 | 内射巨臀欧美在线视频 | 亚洲精品成人av在线 | 爆乳一区二区三区无码 | 亚洲精品一区二区三区婷婷月 | 婷婷色婷婷开心五月四房播播 | 亚洲狠狠婷婷综合久久 | 日本大乳高潮视频在线观看 | 天天做天天爱天天爽综合网 | 精品久久久久久亚洲精品 | 亚洲国产精品无码一区二区三区 | 亚洲综合伊人久久大杳蕉 | 夜夜夜高潮夜夜爽夜夜爰爰 | 国产精品视频免费播放 | 动漫av网站免费观看 | 国内少妇偷人精品视频免费 | 国产两女互慰高潮视频在线观看 | 亚洲а∨天堂久久精品2021 | 99久久99久久免费精品蜜桃 | 久久 国产 尿 小便 嘘嘘 | 粉嫩少妇内射浓精videos | 欧美成人高清在线播放 | 国产精品爱久久久久久久 | 国产精品久久国产精品99 | 麻豆精产国品 | 久久久久亚洲精品中文字幕 | 熟妇人妻中文av无码 | 午夜无码区在线观看 | 国产精品a成v人在线播放 | 亚洲精品久久久久久一区二区 | 亚洲午夜久久久影院 | 丰满人妻翻云覆雨呻吟视频 | 九九久久精品国产免费看小说 | 亚洲の无码国产の无码影院 | 国产欧美精品一区二区三区 | 午夜福利试看120秒体验区 | 高清国产亚洲精品自在久久 | 亚洲s色大片在线观看 | 国产精品二区一区二区aⅴ污介绍 | 亚洲精品久久久久久久久久久 | 欧美老妇交乱视频在线观看 | 老熟妇仑乱视频一区二区 | 狠狠噜狠狠狠狠丁香五月 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 少妇久久久久久人妻无码 | 久久天天躁夜夜躁狠狠 | 久久99精品国产麻豆 | 午夜福利不卡在线视频 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 久久精品国产日本波多野结衣 | 亚洲国产高清在线观看视频 | 日日橹狠狠爱欧美视频 | 国产超级va在线观看视频 | 日韩精品无码一本二本三本色 | 亚洲精品久久久久久一区二区 | 欧美精品免费观看二区 | 久久熟妇人妻午夜寂寞影院 | 精品国产麻豆免费人成网站 | 人妻少妇被猛烈进入中文字幕 | 久青草影院在线观看国产 | 成人试看120秒体验区 | 国产suv精品一区二区五 | 男女爱爱好爽视频免费看 | 中文字幕无码日韩欧毛 | 性史性农村dvd毛片 | 色综合久久88色综合天天 | 牛和人交xxxx欧美 | 精品国产一区av天美传媒 | 成人欧美一区二区三区 | 99久久精品午夜一区二区 | 性啪啪chinese东北女人 | 国产亚洲精品精品国产亚洲综合 | 亚洲国产精品美女久久久久 | 国内精品九九久久久精品 | 中文字幕乱妇无码av在线 | 无码国内精品人妻少妇 | 亚洲天堂2017无码中文 | 一本色道久久综合亚洲精品不卡 | 国产成人无码a区在线观看视频app | 中国女人内谢69xxxxxa片 | 熟妇人妻激情偷爽文 | 精品夜夜澡人妻无码av蜜桃 | 欧美xxxx黑人又粗又长 | 麻豆果冻传媒2021精品传媒一区下载 | 国产av无码专区亚洲a∨毛片 | 任你躁国产自任一区二区三区 | 国产亚洲美女精品久久久2020 | 东京热男人av天堂 | 九一九色国产 | 大乳丰满人妻中文字幕日本 | 国色天香社区在线视频 | 日本一卡二卡不卡视频查询 | 成人aaa片一区国产精品 | 成在人线av无码免观看麻豆 | 国产香蕉尹人视频在线 | 国产精品无套呻吟在线 | 鲁鲁鲁爽爽爽在线视频观看 | 日本精品少妇一区二区三区 | 亚洲日韩av一区二区三区四区 | 装睡被陌生人摸出水好爽 | 强奷人妻日本中文字幕 | 性生交大片免费看女人按摩摩 | 18禁止看的免费污网站 | 国产成人一区二区三区在线观看 | 国产无av码在线观看 | 高潮毛片无遮挡高清免费 | 国产精品美女久久久网av | 漂亮人妻洗澡被公强 日日躁 | 亚洲а∨天堂久久精品2021 | 熟女体下毛毛黑森林 | 亚洲 a v无 码免 费 成 人 a v | 亚洲欧美日韩国产精品一区二区 | 久久无码中文字幕免费影院蜜桃 | 大地资源网第二页免费观看 | 国产精品无码成人午夜电影 | 日韩精品久久久肉伦网站 | 牲欲强的熟妇农村老妇女视频 | 人妻有码中文字幕在线 | 超碰97人人做人人爱少妇 | 日本丰满熟妇videos | 精品欧美一区二区三区久久久 | 欧美兽交xxxx×视频 | 亚洲日韩精品欧美一区二区 | 国产电影无码午夜在线播放 | 正在播放老肥熟妇露脸 | 伦伦影院午夜理论片 | 午夜福利一区二区三区在线观看 | 亚洲国产精品无码久久久久高潮 | 久久99热只有频精品8 | 99er热精品视频 | 色欲av亚洲一区无码少妇 | 婷婷丁香五月天综合东京热 | 最新国产麻豆aⅴ精品无码 | 久久久国产精品无码免费专区 | 亚洲中文字幕av在天堂 | 欧洲vodafone精品性 | 蜜桃无码一区二区三区 | 成年美女黄网站色大免费全看 | 久久久久久九九精品久 | 大屁股大乳丰满人妻 | 亚洲成av人在线观看网址 | 久久视频在线观看精品 | 性欧美牲交xxxxx视频 | 国产精品国产三级国产专播 | 日本一本二本三区免费 | 暴力强奷在线播放无码 | 99久久久无码国产精品免费 | 日本在线高清不卡免费播放 | 狠狠综合久久久久综合网 | 内射爽无广熟女亚洲 | 伊人色综合久久天天小片 | 小sao货水好多真紧h无码视频 | 无遮挡啪啪摇乳动态图 | 欧美日韩在线亚洲综合国产人 | 色婷婷av一区二区三区之红樱桃 | 久久综合激激的五月天 | 在线亚洲高清揄拍自拍一品区 | 岛国片人妻三上悠亚 | 成人精品视频一区二区三区尤物 | 亚洲国产精品无码久久久久高潮 | 水蜜桃亚洲一二三四在线 | 国产精品99久久精品爆乳 | 熟妇人妻激情偷爽文 | 欧美性生交活xxxxxdddd | 欧美国产日产一区二区 | 精品久久久无码人妻字幂 | 欧美丰满少妇xxxx性 | 亚洲a无码综合a国产av中文 | 成人亚洲精品久久久久 | 亚洲国产精品无码久久久久高潮 | 国产又爽又猛又粗的视频a片 | 未满小14洗澡无码视频网站 | 青青草原综合久久大伊人精品 | 亚洲熟妇自偷自拍另类 | 国产97人人超碰caoprom | 黑森林福利视频导航 | 男女作爱免费网站 | 中文字幕乱码中文乱码51精品 | 亚洲国产av美女网站 | 国产精品igao视频网 | 成人亚洲精品久久久久 | 欧美日韩人成综合在线播放 | 性开放的女人aaa片 | 国产亚洲精品精品国产亚洲综合 | 国产又粗又硬又大爽黄老大爷视 | 一本色道久久综合狠狠躁 | 丝袜足控一区二区三区 | 蜜臀av在线观看 在线欧美精品一区二区三区 | а√天堂www在线天堂小说 | 无码人中文字幕 | 无码福利日韩神码福利片 | 精品久久久无码中文字幕 | 国产97色在线 | 免 | 白嫩日本少妇做爰 | 精品久久久无码人妻字幂 | 日本熟妇乱子伦xxxx | 伊人久久大香线蕉亚洲 | 日韩av无码一区二区三区 | 午夜熟女插插xx免费视频 | 水蜜桃亚洲一二三四在线 | 极品尤物被啪到呻吟喷水 | 欧美成人免费全部网站 | 老子影院午夜精品无码 | 日本精品高清一区二区 | 精品夜夜澡人妻无码av蜜桃 | 国产欧美精品一区二区三区 | 亚洲区小说区激情区图片区 | 又大又黄又粗又爽的免费视频 | 人妻无码αv中文字幕久久琪琪布 | 亚洲一区二区观看播放 | 色综合久久久无码中文字幕 | 国产成人综合在线女婷五月99播放 | 久久国产自偷自偷免费一区调 | 国产精品99久久精品爆乳 | 99久久精品日本一区二区免费 | 麻豆国产丝袜白领秘书在线观看 | 亚洲の无码国产の无码步美 | 免费看男女做好爽好硬视频 | 夜精品a片一区二区三区无码白浆 | 久久国语露脸国产精品电影 | 国产成人人人97超碰超爽8 | 国产在线aaa片一区二区99 | 西西人体www44rt大胆高清 | 日韩欧美中文字幕公布 | 午夜熟女插插xx免费视频 | 日本丰满护士爆乳xxxx | 成人精品天堂一区二区三区 | 国内精品人妻无码久久久影院蜜桃 | 一本无码人妻在中文字幕免费 | 妺妺窝人体色www婷婷 | 国产色视频一区二区三区 | 亚洲精品成人av在线 | 亚洲爆乳大丰满无码专区 | 国产成人无码a区在线观看视频app | 亚洲一区二区三区四区 | 日日摸日日碰夜夜爽av | 在线欧美精品一区二区三区 | 最新国产乱人伦偷精品免费网站 | 久久久久久久人妻无码中文字幕爆 | 亚洲va中文字幕无码久久不卡 | 中文字幕人妻无码一区二区三区 | 中文字幕无码视频专区 | 久久亚洲精品成人无码 | 欧美 丝袜 自拍 制服 另类 | 国产情侣作爱视频免费观看 | 又色又爽又黄的美女裸体网站 | 国产精品沙发午睡系列 | 又色又爽又黄的美女裸体网站 | 午夜福利不卡在线视频 | 国产熟妇另类久久久久 | 亚洲国产成人av在线观看 | 免费无码肉片在线观看 | 鲁一鲁av2019在线 | 女人色极品影院 | 久久五月精品中文字幕 | 国产成人一区二区三区在线观看 | 中文字幕中文有码在线 | 国产69精品久久久久app下载 | 亚洲中文字幕无码一久久区 | 鲁大师影院在线观看 | 日本一卡2卡3卡四卡精品网站 | 最近免费中文字幕中文高清百度 | 国产尤物精品视频 | 精品欧洲av无码一区二区三区 | 久久久亚洲欧洲日产国码αv | 国产一区二区三区四区五区加勒比 | v一区无码内射国产 | 久久久久亚洲精品男人的天堂 | 黑人玩弄人妻中文在线 | 水蜜桃色314在线观看 | 久久99精品久久久久久 | 窝窝午夜理论片影院 | 婷婷五月综合缴情在线视频 | 熟妇人妻无乱码中文字幕 | 国产无遮挡又黄又爽免费视频 | 久久久精品成人免费观看 | 特黄特色大片免费播放器图片 | 亚洲人成无码网www | 男女性色大片免费网站 | 波多野结衣一区二区三区av免费 | 欧美亚洲日韩国产人成在线播放 | 成人综合网亚洲伊人 | 人人妻人人澡人人爽人人精品 | 国产精品丝袜黑色高跟鞋 | 精品乱子伦一区二区三区 | 国产9 9在线 | 中文 | 撕开奶罩揉吮奶头视频 | 久久久精品成人免费观看 | 麻豆蜜桃av蜜臀av色欲av | 国产亚洲精品久久久ai换 | 亚洲精品一区国产 | 狂野欧美性猛交免费视频 | 亚洲 日韩 欧美 成人 在线观看 | 极品尤物被啪到呻吟喷水 | 成年女人永久免费看片 | 精品国偷自产在线视频 | 亚洲国产精品美女久久久久 | 国产无av码在线观看 | 亚洲の无码国产の无码影院 | 成人亚洲精品久久久久软件 | 国产精品久久久久久久9999 | 欧美 日韩 亚洲 在线 | 狠狠色噜噜狠狠狠狠7777米奇 | 日日摸夜夜摸狠狠摸婷婷 | 久久久久成人精品免费播放动漫 | 玩弄中年熟妇正在播放 | 99麻豆久久久国产精品免费 | 久久国产精品萌白酱免费 | 国产精品久久久久久亚洲影视内衣 | 日韩精品无码免费一区二区三区 | 中文字幕人妻丝袜二区 | 人妻少妇精品久久 | 人妻尝试又大又粗久久 | 亚洲一区av无码专区在线观看 | 国产精品亚洲综合色区韩国 | 久久午夜夜伦鲁鲁片无码免费 | 成年美女黄网站色大免费全看 | 内射白嫩少妇超碰 | 久久久久av无码免费网 | 日本护士xxxxhd少妇 | 一个人免费观看的www视频 | 18精品久久久无码午夜福利 | 成人毛片一区二区 | 男女猛烈xx00免费视频试看 | 兔费看少妇性l交大片免费 | 人人妻人人澡人人爽精品欧美 | 人人妻人人藻人人爽欧美一区 | 国产97在线 | 亚洲 | 国产成人精品优优av | 久久伊人色av天堂九九小黄鸭 | 亚洲欧洲中文日韩av乱码 | 久久久久99精品成人片 | 永久免费观看美女裸体的网站 | 无码国产色欲xxxxx视频 | 国产无遮挡又黄又爽免费视频 | 久久人人爽人人爽人人片ⅴ | 人人妻人人澡人人爽精品欧美 | 亚洲色欲久久久综合网东京热 | 亚洲午夜福利在线观看 | 又粗又大又硬又长又爽 | 免费国产成人高清在线观看网站 | 午夜丰满少妇性开放视频 | 亚洲性无码av中文字幕 | 熟女俱乐部五十路六十路av | 亚洲色偷偷男人的天堂 | 97精品人妻一区二区三区香蕉 | 日本大乳高潮视频在线观看 | 老司机亚洲精品影院 | 国产99久久精品一区二区 | 日日天日日夜日日摸 | 无码精品国产va在线观看dvd | 成人毛片一区二区 | 国产激情一区二区三区 | 无套内谢的新婚少妇国语播放 | 永久免费观看国产裸体美女 | 精品国产麻豆免费人成网站 | 欧美成人午夜精品久久久 | 99久久99久久免费精品蜜桃 | www成人国产高清内射 | 久久99精品国产.久久久久 | 一本加勒比波多野结衣 | 红桃av一区二区三区在线无码av | 久久精品女人天堂av免费观看 | 日本免费一区二区三区最新 | 99久久精品午夜一区二区 | 俺去俺来也在线www色官网 | 亚洲国产午夜精品理论片 | 一本无码人妻在中文字幕免费 | 日本精品人妻无码77777 天堂一区人妻无码 | 久久人人爽人人人人片 | 国产精品亚洲综合色区韩国 | 无遮挡国产高潮视频免费观看 | 亚洲色成人中文字幕网站 | 午夜熟女插插xx免费视频 | 性欧美牲交在线视频 | 国产极品视觉盛宴 | 老司机亚洲精品影院 | 最新国产乱人伦偷精品免费网站 | 4hu四虎永久在线观看 | 色婷婷av一区二区三区之红樱桃 | 日本一区二区三区免费高清 | 精品欧美一区二区三区久久久 | 久久99国产综合精品 | 国产精品亚洲五月天高清 | 免费无码肉片在线观看 | 欧美乱妇无乱码大黄a片 | 国产精品久久久久久无码 | 蜜臀av在线播放 久久综合激激的五月天 | 少妇性俱乐部纵欲狂欢电影 | 亚洲色偷偷男人的天堂 | 免费人成在线观看网站 | 欧洲vodafone精品性 | 日韩欧美成人免费观看 | 午夜精品久久久内射近拍高清 | 大胆欧美熟妇xx | 亚洲国产成人av在线观看 | 精品国精品国产自在久国产87 | 国产莉萝无码av在线播放 | 国产欧美精品一区二区三区 | 中文字幕乱码人妻无码久久 | 欧洲美熟女乱又伦 | 国产高清av在线播放 | 人人妻人人澡人人爽人人精品浪潮 | 日韩成人一区二区三区在线观看 | 久久久精品成人免费观看 | 又粗又大又硬毛片免费看 | 亚洲精品午夜无码电影网 | 亚洲区小说区激情区图片区 | 久久婷婷五月综合色国产香蕉 | 亚洲一区二区三区 | 又大又硬又黄的免费视频 | 亚欧洲精品在线视频免费观看 | 亚洲无人区午夜福利码高清完整版 | 欧洲精品码一区二区三区免费看 | 嫩b人妻精品一区二区三区 | 无码人妻精品一区二区三区下载 | 波多野结衣乳巨码无在线观看 | 熟妇人妻无乱码中文字幕 | 亚洲精品综合一区二区三区在线 | 亚洲狠狠婷婷综合久久 | 亚洲天堂2017无码中文 | 嫩b人妻精品一区二区三区 | 一本加勒比波多野结衣 | 色综合视频一区二区三区 | 亚洲午夜无码久久 | 亚洲 高清 成人 动漫 | 亚洲人成网站在线播放942 | 亚洲精品国产精品乱码视色 | a国产一区二区免费入口 | 欧美日韩在线亚洲综合国产人 | а√资源新版在线天堂 | 国产激情无码一区二区app | 成人无码影片精品久久久 | 亚洲欧美精品aaaaaa片 | 精品无人国产偷自产在线 | 国产成人无码午夜视频在线观看 | 中文字幕精品av一区二区五区 | 亚洲爆乳精品无码一区二区三区 | 日产国产精品亚洲系列 | 日韩精品成人一区二区三区 | 亚洲精品国产精品乱码视色 | 亚洲春色在线视频 | 色欲综合久久中文字幕网 | 老太婆性杂交欧美肥老太 | 国产黑色丝袜在线播放 | 国产精品美女久久久久av爽李琼 | 日韩精品无码一本二本三本色 | 亚洲熟悉妇女xxx妇女av | 欧美精品国产综合久久 | 成熟人妻av无码专区 | 人妻插b视频一区二区三区 | 久热国产vs视频在线观看 | 久久五月精品中文字幕 | 18禁黄网站男男禁片免费观看 | 300部国产真实乱 | 水蜜桃色314在线观看 | 国产在线一区二区三区四区五区 | 麻豆国产人妻欲求不满谁演的 | 中文无码精品a∨在线观看不卡 | 亚洲欧美精品伊人久久 | 动漫av网站免费观看 | 图片小说视频一区二区 | 亚洲另类伦春色综合小说 | 国产偷抇久久精品a片69 | 纯爱无遮挡h肉动漫在线播放 | 1000部啪啪未满十八勿入下载 | 狠狠色噜噜狠狠狠7777奇米 | 精品久久久无码人妻字幂 | 亚洲s码欧洲m码国产av | 亚洲日本va中文字幕 | 精品国产青草久久久久福利 | 国产偷国产偷精品高清尤物 | 久久精品中文闷骚内射 | 蜜桃无码一区二区三区 | 久久无码人妻影院 | 亲嘴扒胸摸屁股激烈网站 | 亚洲七七久久桃花影院 | 免费乱码人妻系列无码专区 | 中文字幕无码日韩欧毛 | 97se亚洲精品一区 | 成人综合网亚洲伊人 | 国产麻豆精品一区二区三区v视界 | 日欧一片内射va在线影院 | 性色欲网站人妻丰满中文久久不卡 | 无码av中文字幕免费放 | 高潮毛片无遮挡高清免费视频 | 内射爽无广熟女亚洲 | 亚洲天堂2017无码中文 | 蜜臀aⅴ国产精品久久久国产老师 | 国产一区二区三区影院 | 蜜臀av无码人妻精品 | 亚洲伊人久久精品影院 | 国产亚洲美女精品久久久2020 | 丰满妇女强制高潮18xxxx | 欧美人与物videos另类 | 国产精品办公室沙发 | 中文字幕中文有码在线 | 伊在人天堂亚洲香蕉精品区 | 亚洲aⅴ无码成人网站国产app | 精品国产福利一区二区 | 国产精品久免费的黄网站 | 天天躁夜夜躁狠狠是什么心态 | 精品无码国产自产拍在线观看蜜 | 国产特级毛片aaaaaaa高清 | 欧美日韩亚洲国产精品 | 我要看www免费看插插视频 | 亚洲欧美中文字幕5发布 | 婷婷五月综合缴情在线视频 | av香港经典三级级 在线 | 九月婷婷人人澡人人添人人爽 | 少女韩国电视剧在线观看完整 | 国产精品资源一区二区 | 永久免费观看国产裸体美女 | 狠狠亚洲超碰狼人久久 | 国产精品久久久久久亚洲毛片 | 日本熟妇人妻xxxxx人hd | 天堂在线观看www | 国产免费久久久久久无码 | 高潮毛片无遮挡高清免费视频 | 国产精品沙发午睡系列 | 色综合天天综合狠狠爱 | 99久久久无码国产精品免费 | 精品国精品国产自在久国产87 | 久久久久久av无码免费看大片 | 久精品国产欧美亚洲色aⅴ大片 | 日日橹狠狠爱欧美视频 | 国产suv精品一区二区五 | 国产色精品久久人妻 | 曰本女人与公拘交酡免费视频 | yw尤物av无码国产在线观看 | 亚洲欧美中文字幕5发布 | 国产va免费精品观看 | 欧美人与牲动交xxxx | 少妇一晚三次一区二区三区 | 精品久久久无码中文字幕 | 午夜福利一区二区三区在线观看 | 精品人妻人人做人人爽夜夜爽 | 久久这里只有精品视频9 | 国内精品久久久久久中文字幕 | 国产一区二区不卡老阿姨 | 一个人看的www免费视频在线观看 | 人人超人人超碰超国产 | 性欧美疯狂xxxxbbbb | 精品欧洲av无码一区二区三区 | 国产人妻人伦精品1国产丝袜 | 装睡被陌生人摸出水好爽 | 国精产品一区二区三区 | 一本色道久久综合亚洲精品不卡 | 鲁一鲁av2019在线 | 性色欲网站人妻丰满中文久久不卡 | 乱码午夜-极国产极内射 | 正在播放老肥熟妇露脸 | 日日摸日日碰夜夜爽av | 97精品人妻一区二区三区香蕉 | 免费无码一区二区三区蜜桃大 | 无码av最新清无码专区吞精 | 欧美日韩一区二区三区自拍 | 久久综合色之久久综合 | 蜜桃av抽搐高潮一区二区 | 亚洲国产欧美国产综合一区 | 2020最新国产自产精品 | 国产成人无码a区在线观看视频app | 中文字幕久久久久人妻 | 国产绳艺sm调教室论坛 | 97夜夜澡人人双人人人喊 | 久久久久久亚洲精品a片成人 | av香港经典三级级 在线 | 免费无码一区二区三区蜜桃大 | 精品人妻中文字幕有码在线 | 熟妇女人妻丰满少妇中文字幕 | 久热国产vs视频在线观看 | 亚洲欧美综合区丁香五月小说 | 亚洲国产精品一区二区美利坚 | 久久亚洲a片com人成 | 成人精品视频一区二区三区尤物 | 娇妻被黑人粗大高潮白浆 | 欧美激情一区二区三区成人 | √8天堂资源地址中文在线 | 粉嫩少妇内射浓精videos | 蜜桃无码一区二区三区 | 国产高清不卡无码视频 | 欧美丰满熟妇xxxx | 日韩欧美群交p片內射中文 | av人摸人人人澡人人超碰下载 | 色综合久久88色综合天天 | 免费看男女做好爽好硬视频 | 女人被爽到呻吟gif动态图视看 | 国产97在线 | 亚洲 | 天天做天天爱天天爽综合网 | 国内老熟妇对白xxxxhd | 人人妻人人澡人人爽精品欧美 | 亚洲色成人中文字幕网站 | 久激情内射婷内射蜜桃人妖 | 免费无码av一区二区 | 国语精品一区二区三区 | 在线播放亚洲第一字幕 | 麻豆国产97在线 | 欧洲 | 久久综合色之久久综合 | 特级做a爰片毛片免费69 | 青草青草久热国产精品 | 亚洲综合精品香蕉久久网 | 国产无套粉嫩白浆在线 | 动漫av网站免费观看 | 国产国产精品人在线视 | 久久天天躁夜夜躁狠狠 | 香蕉久久久久久av成人 | 国产精品国产三级国产专播 | 欧美国产日韩亚洲中文 | 欧美成人高清在线播放 | 熟妇女人妻丰满少妇中文字幕 | 亚洲国产欧美日韩精品一区二区三区 | 曰韩无码二三区中文字幕 | 久久国语露脸国产精品电影 | 天堂久久天堂av色综合 | 国语自产偷拍精品视频偷 | 亚洲 激情 小说 另类 欧美 | 国产绳艺sm调教室论坛 | 漂亮人妻洗澡被公强 日日躁 | 东京热男人av天堂 | 超碰97人人射妻 | 午夜熟女插插xx免费视频 | 久久精品国产日本波多野结衣 | 亚洲一区二区三区无码久久 | 高清不卡一区二区三区 | 国产精品a成v人在线播放 | 日本在线高清不卡免费播放 | 国产精品嫩草久久久久 | 亚洲国产精品一区二区第一页 | 少妇激情av一区二区 | 国产99久久精品一区二区 | 国产乱人无码伦av在线a | 国产婷婷色一区二区三区在线 | 日韩人妻系列无码专区 | 久久精品国产日本波多野结衣 | 国产精品久久久久7777 | 粗大的内捧猛烈进出视频 | 色情久久久av熟女人妻网站 | 亚洲第一网站男人都懂 | 日韩视频 中文字幕 视频一区 | 大肉大捧一进一出视频出来呀 | 强奷人妻日本中文字幕 | 国产精品永久免费视频 | 蜜臀av无码人妻精品 | 亚欧洲精品在线视频免费观看 | 欧美午夜特黄aaaaaa片 | 国产亚洲精品久久久ai换 | 少妇被粗大的猛进出69影院 | 俄罗斯老熟妇色xxxx | 亚洲国产精品毛片av不卡在线 | 国产成人久久精品流白浆 | 99视频精品全部免费免费观看 | 我要看www免费看插插视频 | 99久久婷婷国产综合精品青草免费 | 1000部夫妻午夜免费 | 日韩少妇内射免费播放 | 精品无码成人片一区二区98 | 强辱丰满人妻hd中文字幕 | 亚洲国产日韩a在线播放 | 成人免费视频一区二区 | 国产激情艳情在线看视频 | 免费无码av一区二区 | 白嫩日本少妇做爰 | 俺去俺来也在线www色官网 | 日韩亚洲欧美精品综合 | 成熟人妻av无码专区 | 亚洲码国产精品高潮在线 | 人人爽人人澡人人人妻 | 国产一区二区三区四区五区加勒比 | 国产在线精品一区二区高清不卡 | 精品国产国产综合精品 | 免费中文字幕日韩欧美 | 国产精品亚洲а∨无码播放麻豆 | 国产精品高潮呻吟av久久4虎 | 亚洲精品一区二区三区大桥未久 | 久久精品人妻少妇一区二区三区 | 一二三四社区在线中文视频 | 最新版天堂资源中文官网 | 对白脏话肉麻粗话av | 午夜无码区在线观看 | 女人被爽到呻吟gif动态图视看 | 思思久久99热只有频精品66 | 国产精品.xx视频.xxtv | 久久久国产一区二区三区 | 永久黄网站色视频免费直播 | 久久久久国色av免费观看性色 | 亚洲性无码av中文字幕 | 高中生自慰www网站 | 黑人大群体交免费视频 | 高清国产亚洲精品自在久久 | 日本www一道久久久免费榴莲 | 国产人成高清在线视频99最全资源 | 性生交片免费无码看人 | 欧美一区二区三区视频在线观看 | 国产日产欧产精品精品app | 亚洲热妇无码av在线播放 | 国产肉丝袜在线观看 | 免费男性肉肉影院 | 精品熟女少妇av免费观看 | 2020久久超碰国产精品最新 | 人人妻人人澡人人爽人人精品浪潮 | 1000部啪啪未满十八勿入下载 | 久久国产自偷自偷免费一区调 | 人人妻人人澡人人爽欧美一区九九 | 福利一区二区三区视频在线观看 | 亚洲精品久久久久avwww潮水 | 国产性生交xxxxx无码 | 日产精品99久久久久久 | 中文字幕乱码人妻二区三区 | 亚洲精品成a人在线观看 | 日韩人妻少妇一区二区三区 | 国产麻豆精品一区二区三区v视界 | 麻豆精产国品 | 成人女人看片免费视频放人 | 精品人妻人人做人人爽夜夜爽 | 亚洲阿v天堂在线 | 激情五月综合色婷婷一区二区 | 在线欧美精品一区二区三区 | 成人免费视频视频在线观看 免费 | 人妻aⅴ无码一区二区三区 | 国产香蕉尹人综合在线观看 | 一本精品99久久精品77 | 亚洲精品国产精品乱码视色 | 欧美自拍另类欧美综合图片区 | 国产精品-区区久久久狼 | a国产一区二区免费入口 | 久久久国产一区二区三区 | 久在线观看福利视频 | 东北女人啪啪对白 | av无码电影一区二区三区 | 人人澡人人妻人人爽人人蜜桃 | 国产莉萝无码av在线播放 | 国产精品无套呻吟在线 | 我要看www免费看插插视频 | 国产精品-区区久久久狼 | 亚洲精品一区二区三区大桥未久 | 国产精品无码久久av | 人妻aⅴ无码一区二区三区 | 日本精品人妻无码免费大全 | av无码不卡在线观看免费 | 久久国语露脸国产精品电影 | 丰满肥臀大屁股熟妇激情视频 | 日本精品久久久久中文字幕 | 国产av一区二区精品久久凹凸 | 欧美日韩亚洲国产精品 | 欧美35页视频在线观看 | 少妇性俱乐部纵欲狂欢电影 | 国产人妻精品午夜福利免费 | 日本爽爽爽爽爽爽在线观看免 | 国产精品毛多多水多 | 亚洲色偷偷偷综合网 | 人妻夜夜爽天天爽三区 | 对白脏话肉麻粗话av | 在线a亚洲视频播放在线观看 | 狂野欧美激情性xxxx | 图片区 小说区 区 亚洲五月 | 国产国产精品人在线视 | 大肉大捧一进一出视频出来呀 | 亚洲中文字幕av在天堂 | 熟妇人妻无码xxx视频 | 男人的天堂av网站 | 99久久婷婷国产综合精品青草免费 | 亚洲国产日韩a在线播放 | 日本爽爽爽爽爽爽在线观看免 | 中文字幕无码人妻少妇免费 | 国产精品va在线播放 | 欧美高清在线精品一区 | 人妻尝试又大又粗久久 | 丁香啪啪综合成人亚洲 | 精品无码一区二区三区的天堂 | 一二三四社区在线中文视频 | 国产香蕉尹人视频在线 | 久久精品人人做人人综合试看 | 男女超爽视频免费播放 | 蜜桃无码一区二区三区 | 免费网站看v片在线18禁无码 |