久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

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

编程问答

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)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    帮老师解开蕾丝奶罩吸乳网站 | 人人澡人人妻人人爽人人蜜桃 | 人妻少妇被猛烈进入中文字幕 | 精品久久久中文字幕人妻 | 欧美xxxxx精品 | 18禁黄网站男男禁片免费观看 | 久久综合九色综合97网 | 麻豆md0077饥渴少妇 | 亚洲国产精品成人久久蜜臀 | 欧美成人午夜精品久久久 | 久久精品中文字幕大胸 | 丰满少妇高潮惨叫视频 | 一区二区传媒有限公司 | 麻豆av传媒蜜桃天美传媒 | 狂野欧美性猛xxxx乱大交 | 牲欲强的熟妇农村老妇女 | 国产激情无码一区二区app | 国产又爽又猛又粗的视频a片 | 激情内射亚州一区二区三区爱妻 | 成人影院yy111111在线观看 | 又大又紧又粉嫩18p少妇 | 奇米影视888欧美在线观看 | 欧美熟妇另类久久久久久不卡 | 精品夜夜澡人妻无码av蜜桃 | 妺妺窝人体色www婷婷 | 亚洲国产成人av在线观看 | av无码久久久久不卡免费网站 | 久久99国产综合精品 | 午夜肉伦伦影院 | 亚洲爆乳大丰满无码专区 | 午夜精品久久久内射近拍高清 | 性色欲情网站iwww九文堂 | 俺去俺来也www色官网 | 麻豆国产97在线 | 欧洲 | 亚洲无人区午夜福利码高清完整版 | 四虎影视成人永久免费观看视频 | 国产成人一区二区三区别 | 在线精品亚洲一区二区 | 色一情一乱一伦 | 两性色午夜免费视频 | 亚洲中文字幕av在天堂 | 久9re热视频这里只有精品 | 成人无码视频免费播放 | 欧美人与动性行为视频 | 久久久久99精品国产片 | 老子影院午夜精品无码 | 性史性农村dvd毛片 | 大屁股大乳丰满人妻 | 好爽又高潮了毛片免费下载 | 日韩亚洲欧美精品综合 | 内射爽无广熟女亚洲 | 色婷婷综合中文久久一本 | 人人妻人人澡人人爽精品欧美 | 成人无码视频免费播放 | 青春草在线视频免费观看 | 国产亚洲精品久久久闺蜜 | 国产成人无码午夜视频在线观看 | 亚洲 欧美 激情 小说 另类 | 国产内射爽爽大片视频社区在线 | av在线亚洲欧洲日产一区二区 | 成人亚洲精品久久久久 | 欧美日韩一区二区三区自拍 | 国产一区二区三区影院 | 一个人看的www免费视频在线观看 | 国内丰满熟女出轨videos | 四虎影视成人永久免费观看视频 | 成人无码视频免费播放 | 两性色午夜免费视频 | 又大又硬又爽免费视频 | 伦伦影院午夜理论片 | 天天躁日日躁狠狠躁免费麻豆 | 人妻少妇精品无码专区动漫 | 老熟女乱子伦 | 国产内射老熟女aaaa | 白嫩日本少妇做爰 | 亚洲精品国产品国语在线观看 | 日本高清一区免费中文视频 | 久久国产自偷自偷免费一区调 | 精品无码国产一区二区三区av | 国内精品久久久久久中文字幕 | 狂野欧美激情性xxxx | 亚洲国产精品久久久久久 | 人人爽人人澡人人高潮 | 成人欧美一区二区三区黑人 | 色一情一乱一伦一区二区三欧美 | 嫩b人妻精品一区二区三区 | 亚洲国产精品美女久久久久 | 午夜福利一区二区三区在线观看 | 久久无码人妻影院 | 国产成人综合在线女婷五月99播放 | 国产精品18久久久久久麻辣 | 国产农村妇女高潮大叫 | 少妇厨房愉情理9仑片视频 | 一本大道久久东京热无码av | 成 人 免费观看网站 | 人妻无码久久精品人妻 | 欧美一区二区三区 | 亚洲日本在线电影 | 三级4级全黄60分钟 | 精品偷拍一区二区三区在线看 | 狠狠色丁香久久婷婷综合五月 | 老太婆性杂交欧美肥老太 | 黑人巨大精品欧美一区二区 | 成人精品视频一区二区三区尤物 | 在线成人www免费观看视频 | 精品久久久久香蕉网 | 国产乱码精品一品二品 | 一本久久伊人热热精品中文字幕 | 国产精品丝袜黑色高跟鞋 | 国产97人人超碰caoprom | 成年美女黄网站色大免费视频 | 国产人妻精品一区二区三区不卡 | 国产手机在线αⅴ片无码观看 | 中文字幕av日韩精品一区二区 | 少妇一晚三次一区二区三区 | 亚洲欧美国产精品久久 | 99精品国产综合久久久久五月天 | 精品国产一区二区三区av 性色 | 天天躁日日躁狠狠躁免费麻豆 | 久久久精品国产sm最大网站 | 久久精品人人做人人综合 | 日韩人妻少妇一区二区三区 | 骚片av蜜桃精品一区 | 内射老妇bbwx0c0ck | 国产熟女一区二区三区四区五区 | 国产超碰人人爽人人做人人添 | 97色伦图片97综合影院 | 亚洲欧洲日本无在线码 | 少妇无套内谢久久久久 | 日韩精品a片一区二区三区妖精 | 荫蒂添的好舒服视频囗交 | 免费中文字幕日韩欧美 | 性色av无码免费一区二区三区 | 正在播放老肥熟妇露脸 | 老司机亚洲精品影院 | 婷婷五月综合缴情在线视频 | 国产精品va在线观看无码 | 亚洲一区二区三区无码久久 | 黑人大群体交免费视频 | 在线欧美精品一区二区三区 | 精品无码一区二区三区的天堂 | 久久久久久av无码免费看大片 | 免费视频欧美无人区码 | 国产一区二区三区精品视频 | 人妻少妇精品无码专区二区 | 国产激情综合五月久久 | 久久久久国色av免费观看性色 | 亚洲精品久久久久中文第一幕 | 国产精品久免费的黄网站 | 亚洲欧美色中文字幕在线 | 久久久久久久人妻无码中文字幕爆 | 麻豆国产人妻欲求不满谁演的 | 久久国产精品萌白酱免费 | 少妇无套内谢久久久久 | 日韩少妇白浆无码系列 | 动漫av一区二区在线观看 | 精品人妻人人做人人爽 | 97精品国产97久久久久久免费 | 中文字幕+乱码+中文字幕一区 | 性色欲情网站iwww九文堂 | 自拍偷自拍亚洲精品10p | 人妻无码久久精品人妻 | 熟妇女人妻丰满少妇中文字幕 | 无码乱肉视频免费大全合集 | 久久久国产精品无码免费专区 | 无码av岛国片在线播放 | 欧美丰满熟妇xxxx性ppx人交 | 国产精品无码永久免费888 | 精品偷拍一区二区三区在线看 | 2019午夜福利不卡片在线 | 亚洲成av人片在线观看无码不卡 | 性色欲网站人妻丰满中文久久不卡 | 正在播放老肥熟妇露脸 | 久久无码人妻影院 | 俺去俺来也www色官网 | 欧美日韩一区二区免费视频 | 色五月五月丁香亚洲综合网 | 欧美 丝袜 自拍 制服 另类 | 真人与拘做受免费视频 | 国产乱人偷精品人妻a片 | 国内精品久久毛片一区二区 | 国产一精品一av一免费 | 国产无遮挡又黄又爽又色 | 强伦人妻一区二区三区视频18 | 人妻熟女一区 | 天天做天天爱天天爽综合网 | 99视频精品全部免费免费观看 | 国产欧美精品一区二区三区 | 亚洲男人av天堂午夜在 | 成人精品一区二区三区中文字幕 | 日本丰满护士爆乳xxxx | 久久综合久久自在自线精品自 | 国产精品久久久久无码av色戒 | 99精品无人区乱码1区2区3区 | 久久久精品人妻久久影视 | 大肉大捧一进一出视频出来呀 | 欧美丰满老熟妇xxxxx性 | 夜精品a片一区二区三区无码白浆 | 亚洲精品久久久久中文第一幕 | 亚洲 a v无 码免 费 成 人 a v | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 一区二区三区高清视频一 | 人人澡人人妻人人爽人人蜜桃 | 国产精品国产三级国产专播 | 久久精品国产亚洲精品 | 国产熟妇另类久久久久 | 国产av久久久久精东av | 99久久精品午夜一区二区 | 日韩欧美成人免费观看 | 麻豆精产国品 | 天天摸天天碰天天添 | 国产人妻精品一区二区三区不卡 | 波多野结衣 黑人 | 麻豆国产人妻欲求不满谁演的 | 夜精品a片一区二区三区无码白浆 | 久久 国产 尿 小便 嘘嘘 | 高清不卡一区二区三区 | 色综合久久久无码中文字幕 | 98国产精品综合一区二区三区 | 亚洲爆乳大丰满无码专区 | 久久久久久久久888 | 97精品人妻一区二区三区香蕉 | 欧美阿v高清资源不卡在线播放 | 国产在线无码精品电影网 | 亚洲国产欧美日韩精品一区二区三区 | 国产网红无码精品视频 | 亚洲国产精品无码一区二区三区 | 日韩无码专区 | 亚洲精品久久久久久一区二区 | 天海翼激烈高潮到腰振不止 | 久久精品国产一区二区三区肥胖 | 国产午夜福利亚洲第一 | 扒开双腿吃奶呻吟做受视频 | 亚洲日韩一区二区三区 | 久久99精品国产.久久久久 | 精品熟女少妇av免费观看 | 东京热无码av男人的天堂 | 亚洲毛片av日韩av无码 | 国内综合精品午夜久久资源 | 国产精品对白交换视频 | 亚洲无人区午夜福利码高清完整版 | 国产精品国产三级国产专播 | 色欲久久久天天天综合网精品 | 奇米影视888欧美在线观看 | 女人被男人爽到呻吟的视频 | 亚洲国产欧美国产综合一区 | 国产麻豆精品一区二区三区v视界 | 六月丁香婷婷色狠狠久久 | 国产无套粉嫩白浆在线 | 亚洲中文字幕久久无码 | 国产精品99爱免费视频 | 日本一区二区三区免费播放 | 色婷婷欧美在线播放内射 | 少妇厨房愉情理9仑片视频 | 国产午夜手机精彩视频 | 97精品人妻一区二区三区香蕉 | 九一九色国产 | 精品国产一区二区三区四区 | 国产免费久久精品国产传媒 | 性色欲网站人妻丰满中文久久不卡 | 久久天天躁狠狠躁夜夜免费观看 | 国产精品视频免费播放 | 欧美人与禽猛交狂配 | 窝窝午夜理论片影院 | 妺妺窝人体色www婷婷 | 东京热无码av男人的天堂 | 亚洲男人av天堂午夜在 | 亚洲理论电影在线观看 | 红桃av一区二区三区在线无码av | 久久天天躁狠狠躁夜夜免费观看 | 亚洲综合无码久久精品综合 | 亚洲中文无码av永久不收费 | 国产内射老熟女aaaa | 人妻无码久久精品人妻 | 国产精品第一国产精品 | 国产情侣作爱视频免费观看 | 国产又爽又黄又刺激的视频 | 成人免费视频一区二区 | 精品一二三区久久aaa片 | 天天摸天天碰天天添 | 色婷婷欧美在线播放内射 | 亚洲精品成a人在线观看 | 欧美老妇与禽交 | 亚洲精品久久久久久久久久久 | 无码人妻少妇伦在线电影 | 精品国产av色一区二区深夜久久 | 亚洲另类伦春色综合小说 | 国产亚洲精品久久久ai换 | 亚洲 a v无 码免 费 成 人 a v | 内射欧美老妇wbb | 日韩欧美中文字幕在线三区 | 三级4级全黄60分钟 | 久久久无码中文字幕久... | 国色天香社区在线视频 | 欧美日韩一区二区综合 | 久久午夜无码鲁丝片 | 国产精品亚洲а∨无码播放麻豆 | 久久精品成人欧美大片 | 自拍偷自拍亚洲精品被多人伦好爽 | 自拍偷自拍亚洲精品被多人伦好爽 | 97无码免费人妻超级碰碰夜夜 | 东京热男人av天堂 | 色综合久久88色综合天天 | 国产又粗又硬又大爽黄老大爷视 | 少妇激情av一区二区 | 巨爆乳无码视频在线观看 | 激情人妻另类人妻伦 | 97精品人妻一区二区三区香蕉 | 亚洲国产精品无码久久久久高潮 | 久久精品人妻少妇一区二区三区 | 国产成人午夜福利在线播放 | 欧美一区二区三区视频在线观看 | 蜜桃无码一区二区三区 | 性生交大片免费看l | 亚洲色成人中文字幕网站 | 美女极度色诱视频国产 | 亚洲成在人网站无码天堂 | 波多野结衣aⅴ在线 | 乱人伦人妻中文字幕无码 | 国产办公室秘书无码精品99 | 久久国内精品自在自线 | 国产人妻久久精品二区三区老狼 | 天天拍夜夜添久久精品大 | 麻豆蜜桃av蜜臀av色欲av | 中文无码伦av中文字幕 | 中国女人内谢69xxxx | 欧美野外疯狂做受xxxx高潮 | 亚洲精品一区二区三区在线观看 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 亚洲a无码综合a国产av中文 | 亲嘴扒胸摸屁股激烈网站 | 色欲av亚洲一区无码少妇 | 成人免费视频视频在线观看 免费 | 亚洲人成网站免费播放 | 国产午夜视频在线观看 | 乌克兰少妇性做爰 | 妺妺窝人体色www在线小说 | 无套内谢的新婚少妇国语播放 | 日产精品高潮呻吟av久久 | 麻豆国产97在线 | 欧洲 | 欧美亚洲日韩国产人成在线播放 | 欧美阿v高清资源不卡在线播放 | 无码播放一区二区三区 | 无码国产乱人伦偷精品视频 | 亚洲色大成网站www | 全黄性性激高免费视频 | 奇米影视7777久久精品人人爽 | av人摸人人人澡人人超碰下载 | 欧美黑人巨大xxxxx | 88国产精品欧美一区二区三区 | 夫妻免费无码v看片 | 久久久久av无码免费网 | 日本精品高清一区二区 | 精品偷拍一区二区三区在线看 | 国产人成高清在线视频99最全资源 | 久久久精品成人免费观看 | 国产熟妇高潮叫床视频播放 | 扒开双腿吃奶呻吟做受视频 | 中文无码成人免费视频在线观看 | 精品乱码久久久久久久 | 色婷婷欧美在线播放内射 | 在线视频网站www色 | 中文字幕无码免费久久9一区9 | 樱花草在线播放免费中文 | 欧洲vodafone精品性 | 亚洲成av人片天堂网无码】 | 丰满妇女强制高潮18xxxx | 麻豆国产人妻欲求不满谁演的 | 国产av无码专区亚洲a∨毛片 | 亚洲区欧美区综合区自拍区 | 国产免费观看黄av片 | 国产精品.xx视频.xxtv | 午夜男女很黄的视频 | 亚洲天堂2017无码 | 荫蒂被男人添的好舒服爽免费视频 | 国产亚洲日韩欧美另类第八页 | 亚洲成av人综合在线观看 | 欧美成人高清在线播放 | 国产精品毛多多水多 | 人妻无码αv中文字幕久久琪琪布 | 亚洲小说图区综合在线 | 国内精品九九久久久精品 | 乱人伦人妻中文字幕无码久久网 | 亚洲人成网站在线播放942 | 亚洲综合色区中文字幕 | 巨爆乳无码视频在线观看 | 2019午夜福利不卡片在线 | 亚洲s码欧洲m码国产av | 欧美精品一区二区精品久久 | 国产办公室秘书无码精品99 | 国产无遮挡又黄又爽又色 | 无码帝国www无码专区色综合 | 97无码免费人妻超级碰碰夜夜 | 国产av人人夜夜澡人人爽麻豆 | 久久久久亚洲精品男人的天堂 | 亚洲国产精品无码一区二区三区 | 日韩精品无码免费一区二区三区 | 欧美freesex黑人又粗又大 | 我要看www免费看插插视频 | 乱码午夜-极国产极内射 | 日日摸夜夜摸狠狠摸婷婷 | 久久精品中文字幕大胸 | 国产一精品一av一免费 | 图片区 小说区 区 亚洲五月 | 日日摸日日碰夜夜爽av | 任你躁国产自任一区二区三区 | 国产乱人无码伦av在线a | 久久天天躁夜夜躁狠狠 | 成年美女黄网站色大免费全看 | 国产高清av在线播放 | 激情五月综合色婷婷一区二区 | 中文字幕无线码 | 国产绳艺sm调教室论坛 | 丰满肥臀大屁股熟妇激情视频 | 欧美精品无码一区二区三区 | 国产成人无码av片在线观看不卡 | 伊在人天堂亚洲香蕉精品区 | 东京热无码av男人的天堂 | 久久精品中文字幕大胸 | 在线成人www免费观看视频 | 在线观看国产午夜福利片 | 精品日本一区二区三区在线观看 | 精品乱子伦一区二区三区 | 精品日本一区二区三区在线观看 | 国产亚洲精品久久久久久 | 国产猛烈高潮尖叫视频免费 | 天干天干啦夜天干天2017 | 一本久久a久久精品vr综合 | 99久久精品日本一区二区免费 | 久久无码中文字幕免费影院蜜桃 | 野外少妇愉情中文字幕 | 成人精品一区二区三区中文字幕 | 双乳奶水饱满少妇呻吟 | 久久久精品456亚洲影院 | 国产人妻精品午夜福利免费 | 扒开双腿疯狂进出爽爽爽视频 | 国产精品久久国产三级国 | 免费男性肉肉影院 | 亚洲 欧美 激情 小说 另类 | 99久久久无码国产精品免费 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 国内精品九九久久久精品 | 亚洲国产精品无码一区二区三区 | 国产午夜无码精品免费看 | 青草视频在线播放 | 日韩精品a片一区二区三区妖精 | 图片区 小说区 区 亚洲五月 | 午夜福利不卡在线视频 | 九九热爱视频精品 | 国内少妇偷人精品视频免费 | 精品aⅴ一区二区三区 | 麻豆果冻传媒2021精品传媒一区下载 | 久久亚洲日韩精品一区二区三区 | 欧美三级不卡在线观看 | 欧美老人巨大xxxx做受 | 亚洲精品国偷拍自产在线观看蜜桃 | 熟妇激情内射com | 久久国语露脸国产精品电影 | 国产无av码在线观看 | 亚洲成色在线综合网站 | www国产亚洲精品久久网站 | 国产精品久免费的黄网站 | 久久久久久久久蜜桃 | 曰本女人与公拘交酡免费视频 | 国产亚洲精品久久久久久国模美 | 免费网站看v片在线18禁无码 | 免费看男女做好爽好硬视频 | 伊人久久大香线蕉亚洲 | 麻豆av传媒蜜桃天美传媒 | 午夜性刺激在线视频免费 | 国产精品久久久久久亚洲毛片 | 高清不卡一区二区三区 | 欧美黑人乱大交 | 窝窝午夜理论片影院 | 久久久久久国产精品无码下载 | 亚洲综合色区中文字幕 | 欧洲精品码一区二区三区免费看 | 国产精品亚洲一区二区三区喷水 | 国产午夜福利亚洲第一 | 日本丰满熟妇videos | 亚洲自偷精品视频自拍 | 青青草原综合久久大伊人精品 | 久久综合九色综合97网 | 国产在线精品一区二区高清不卡 | 国内少妇偷人精品视频 | 午夜成人1000部免费视频 | 无码免费一区二区三区 | 色 综合 欧美 亚洲 国产 | 欧美成人高清在线播放 | 国产内射爽爽大片视频社区在线 | 亚洲成av人综合在线观看 | 欧美高清在线精品一区 | 国产激情精品一区二区三区 | 久久久久久久女国产乱让韩 | 无码av最新清无码专区吞精 | 国产成人综合在线女婷五月99播放 | 一个人看的视频www在线 | 大色综合色综合网站 | 蜜桃视频插满18在线观看 | 亚洲无人区一区二区三区 | 国产麻豆精品精东影业av网站 | 久久99国产综合精品 | 丰腴饱满的极品熟妇 | 又色又爽又黄的美女裸体网站 | 天海翼激烈高潮到腰振不止 | 一本久道高清无码视频 | 熟妇人妻激情偷爽文 | 台湾无码一区二区 | 亚洲中文字幕av在天堂 | 国产香蕉尹人视频在线 | 精品国产一区二区三区四区在线看 | 日本饥渴人妻欲求不满 | 久久精品中文字幕一区 | 亚洲 高清 成人 动漫 | 在线欧美精品一区二区三区 | 免费无码一区二区三区蜜桃大 | 97精品人妻一区二区三区香蕉 | 久久精品国产一区二区三区 | 99视频精品全部免费免费观看 | 久久zyz资源站无码中文动漫 | 精品亚洲韩国一区二区三区 | 成人免费视频视频在线观看 免费 | 成人试看120秒体验区 | 中文亚洲成a人片在线观看 | 波多野结衣aⅴ在线 | 国产色xx群视频射精 | 免费无码av一区二区 | 久久人人爽人人爽人人片av高清 | 久久综合久久自在自线精品自 | 六月丁香婷婷色狠狠久久 | 亚洲精品久久久久久久久久久 | 久久久成人毛片无码 | 在线精品国产一区二区三区 | 国语精品一区二区三区 | 国产精品无码mv在线观看 | 久在线观看福利视频 | 精品久久久久久人妻无码中文字幕 | 色老头在线一区二区三区 | 国产精品欧美成人 | 又湿又紧又大又爽a视频国产 | 88国产精品欧美一区二区三区 | 日韩在线不卡免费视频一区 | 亚洲国产精品一区二区美利坚 | 亚洲熟妇色xxxxx欧美老妇y | 日本一区二区三区免费高清 | 午夜福利试看120秒体验区 | www国产亚洲精品久久网站 | 国产精品二区一区二区aⅴ污介绍 | 欧美国产日韩亚洲中文 | 伊人久久大香线焦av综合影院 | 久久99精品久久久久久 | 欧美成人高清在线播放 | 一本一道久久综合久久 | 日韩成人一区二区三区在线观看 | 夜夜夜高潮夜夜爽夜夜爰爰 | 国产手机在线αⅴ片无码观看 | 2019午夜福利不卡片在线 | 欧美熟妇另类久久久久久多毛 | 午夜时刻免费入口 | 国产特级毛片aaaaaa高潮流水 | 亚洲欧洲日本综合aⅴ在线 | 国产欧美熟妇另类久久久 | 一本久道久久综合婷婷五月 | 国产性生大片免费观看性 | 亚洲国产精品一区二区第一页 | 丰满肥臀大屁股熟妇激情视频 | 中文字幕色婷婷在线视频 | 成人一区二区免费视频 | 女人和拘做爰正片视频 | 中文字幕人成乱码熟女app | 999久久久国产精品消防器材 | 亚洲一区二区观看播放 | 久青草影院在线观看国产 | 国产精品对白交换视频 | 亚洲成熟女人毛毛耸耸多 | 亚洲色偷偷男人的天堂 | 久久久久久久人妻无码中文字幕爆 | 久久久久久九九精品久 | 亚洲精品久久久久久一区二区 | 无码人中文字幕 | 成人免费视频视频在线观看 免费 | 国产明星裸体无码xxxx视频 | 国产精品亚洲五月天高清 | 亚洲综合精品香蕉久久网 | 精品亚洲韩国一区二区三区 | 中文字幕无码乱人伦 | 成人试看120秒体验区 | 双乳奶水饱满少妇呻吟 | 成熟妇人a片免费看网站 | 精品国产成人一区二区三区 | 亚洲 另类 在线 欧美 制服 | 亚洲精品国产a久久久久久 | 久久www免费人成人片 | 国产乱人偷精品人妻a片 | 综合人妻久久一区二区精品 | 国产午夜无码视频在线观看 | 亚洲熟女一区二区三区 | 国产一区二区三区影院 | av无码电影一区二区三区 | 999久久久国产精品消防器材 | 国产精品久久久久久亚洲影视内衣 | 国产综合久久久久鬼色 | 麻豆蜜桃av蜜臀av色欲av | 黑森林福利视频导航 | 青春草在线视频免费观看 | 成人精品视频一区二区三区尤物 | 久久99精品国产麻豆蜜芽 | 国产成人无码av在线影院 | 亚洲日韩乱码中文无码蜜桃臀网站 | 夜精品a片一区二区三区无码白浆 | 最新国产乱人伦偷精品免费网站 | 中文精品久久久久人妻不卡 | 九九综合va免费看 | 无码成人精品区在线观看 | 激情爆乳一区二区三区 | 在线观看国产午夜福利片 | 香港三级日本三级妇三级 | 色妞www精品免费视频 | 少妇厨房愉情理9仑片视频 | 中文字幕乱码亚洲无线三区 | 蜜桃无码一区二区三区 | 亚洲综合伊人久久大杳蕉 | 丝袜 中出 制服 人妻 美腿 | 日韩精品无码免费一区二区三区 | 国产精品无码久久av | 男人的天堂av网站 | 久久99精品国产麻豆蜜芽 | 粉嫩少妇内射浓精videos | 欧美自拍另类欧美综合图片区 | 正在播放东北夫妻内射 | 欧美一区二区三区 | 人人妻人人藻人人爽欧美一区 | 精品人妻人人做人人爽夜夜爽 | 又色又爽又黄的美女裸体网站 | 午夜福利不卡在线视频 | 蜜桃视频插满18在线观看 | 亚洲日韩中文字幕在线播放 | 九九久久精品国产免费看小说 | 国产激情综合五月久久 | 精品国产一区二区三区av 性色 | 国产熟女一区二区三区四区五区 | 国产精品资源一区二区 | 人人澡人人妻人人爽人人蜜桃 | 免费人成在线视频无码 | 九九久久精品国产免费看小说 | 国内精品人妻无码久久久影院蜜桃 | 欧美国产日产一区二区 | 中文字幕乱码人妻无码久久 | 国产真实乱对白精彩久久 | 亚洲精品国偷拍自产在线观看蜜桃 | 日本熟妇大屁股人妻 | 亚洲午夜久久久影院 | 久久久久久a亚洲欧洲av冫 | 久久午夜夜伦鲁鲁片无码免费 | 精品国产一区二区三区四区在线看 | 97夜夜澡人人爽人人喊中国片 | 久久午夜无码鲁丝片秋霞 | 少妇无码一区二区二三区 | 蜜臀aⅴ国产精品久久久国产老师 | 国产精品亚洲五月天高清 | 精品午夜福利在线观看 | 国产农村妇女高潮大叫 | 思思久久99热只有频精品66 | 99久久婷婷国产综合精品青草免费 | 色欲av亚洲一区无码少妇 | ass日本丰满熟妇pics | 欧美自拍另类欧美综合图片区 | 大肉大捧一进一出好爽视频 | 377p欧洲日本亚洲大胆 | 人妻有码中文字幕在线 | 亚无码乱人伦一区二区 | 夜夜夜高潮夜夜爽夜夜爰爰 | 性欧美疯狂xxxxbbbb | 欧美午夜特黄aaaaaa片 | 99久久精品无码一区二区毛片 | 久久精品人人做人人综合试看 | 精品久久久久久亚洲精品 | 亚洲阿v天堂在线 | 暴力强奷在线播放无码 | 久久人人爽人人爽人人片av高清 | 久久亚洲国产成人精品性色 | 99国产精品白浆在线观看免费 | 国产在线一区二区三区四区五区 | 性生交大片免费看l | 久久亚洲中文字幕无码 | 澳门永久av免费网站 | 色婷婷av一区二区三区之红樱桃 | 亚洲成a人片在线观看无码 | 欧美日韩一区二区免费视频 | 熟女少妇人妻中文字幕 | 久久久亚洲欧洲日产国码αv | 双乳奶水饱满少妇呻吟 | 色综合天天综合狠狠爱 | 成人片黄网站色大片免费观看 | 日韩视频 中文字幕 视频一区 | 久久午夜无码鲁丝片 | www一区二区www免费 | 老司机亚洲精品影院无码 | 无码人妻av免费一区二区三区 | 国产精品无码永久免费888 | 国产黄在线观看免费观看不卡 | 国语精品一区二区三区 | 亚洲区小说区激情区图片区 | 国精产品一区二区三区 | 成人无码视频在线观看网站 | 久久国产精品_国产精品 | 国产激情精品一区二区三区 | 婷婷丁香六月激情综合啪 | 亚洲中文字幕久久无码 | 国产熟女一区二区三区四区五区 | 熟女少妇人妻中文字幕 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 人人妻人人澡人人爽人人精品 | 中文字幕精品av一区二区五区 | 2020久久香蕉国产线看观看 | 99er热精品视频 | 玩弄人妻少妇500系列视频 | 久久亚洲精品中文字幕无男同 | 久久国产劲爆∧v内射 | 色婷婷综合激情综在线播放 | 久久久久久九九精品久 | 欧美xxxx黑人又粗又长 | 国产精品久免费的黄网站 | 性欧美videos高清精品 | 婷婷丁香六月激情综合啪 | 青青草原综合久久大伊人精品 | 国产超级va在线观看视频 | 国产小呦泬泬99精品 | 丰满护士巨好爽好大乳 | 精品成在人线av无码免费看 | 精品久久久无码中文字幕 | 日本一卡2卡3卡四卡精品网站 | 四虎国产精品一区二区 | 国产尤物精品视频 | 成人精品视频一区二区三区尤物 | 对白脏话肉麻粗话av | 内射爽无广熟女亚洲 | 久久午夜无码鲁丝片秋霞 | 亚洲精品一区国产 | 久久久久久国产精品无码下载 | 人妻尝试又大又粗久久 | 欧洲欧美人成视频在线 | 国产在线无码精品电影网 | 成人aaa片一区国产精品 | 中文字幕+乱码+中文字幕一区 | 日韩人妻无码中文字幕视频 | 国产精品美女久久久网av | 少妇无码一区二区二三区 | 大肉大捧一进一出视频出来呀 | 任你躁在线精品免费 | 亚洲国产精品久久久天堂 | 男女下面进入的视频免费午夜 | 综合激情五月综合激情五月激情1 | 人人爽人人澡人人人妻 | 国产成人午夜福利在线播放 | 国产内射老熟女aaaa | 在线 国产 欧美 亚洲 天堂 | 少妇性俱乐部纵欲狂欢电影 | 免费国产黄网站在线观看 | 装睡被陌生人摸出水好爽 | 国产成人无码一二三区视频 | 中文精品无码中文字幕无码专区 | 亚洲日本va午夜在线电影 | 天天爽夜夜爽夜夜爽 | 亚洲欧美精品aaaaaa片 | 欧美大屁股xxxxhd黑色 | 国产亚洲精品久久久久久久久动漫 | 在线欧美精品一区二区三区 | 在线观看欧美一区二区三区 | 亚洲一区二区三区在线观看网站 | 国产精品美女久久久 | 成人无码影片精品久久久 | 亚洲熟妇自偷自拍另类 | 99久久99久久免费精品蜜桃 | 麻豆人妻少妇精品无码专区 | 熟妇女人妻丰满少妇中文字幕 | 中文久久乱码一区二区 | 日韩精品一区二区av在线 | 麻豆国产人妻欲求不满 | 亚洲va欧美va天堂v国产综合 | 性史性农村dvd毛片 | 一本精品99久久精品77 | 人妻少妇精品无码专区动漫 | 中文字幕日韩精品一区二区三区 | 色综合天天综合狠狠爱 | 国产明星裸体无码xxxx视频 | 亚洲一区二区三区播放 | 色婷婷综合激情综在线播放 | 亚洲一区二区三区国产精华液 | 亚洲综合在线一区二区三区 | 亚洲人成网站免费播放 | 青青久在线视频免费观看 | av人摸人人人澡人人超碰下载 | 亚洲成在人网站无码天堂 | 欧美喷潮久久久xxxxx | 欧美大屁股xxxxhd黑色 | 偷窥日本少妇撒尿chinese | 欧美精品免费观看二区 | 人妻无码αv中文字幕久久琪琪布 | 网友自拍区视频精品 | 成人无码精品1区2区3区免费看 | 中文字幕av日韩精品一区二区 | 曰本女人与公拘交酡免费视频 | 狠狠噜狠狠狠狠丁香五月 | 色综合久久久久综合一本到桃花网 | 少妇无套内谢久久久久 | 白嫩日本少妇做爰 | 国产性生大片免费观看性 | 久久久久久av无码免费看大片 | 国产欧美亚洲精品a | 国产精品嫩草久久久久 | 麻豆国产丝袜白领秘书在线观看 | 人妻aⅴ无码一区二区三区 | 丰满人妻精品国产99aⅴ | 99久久人妻精品免费二区 | 色婷婷综合激情综在线播放 | 亚洲 欧美 激情 小说 另类 | 国产 精品 自在自线 | 一区二区传媒有限公司 | 日韩无码专区 | 奇米影视888欧美在线观看 | 日韩精品久久久肉伦网站 | 欧洲熟妇色 欧美 | 99国产精品白浆在线观看免费 | 55夜色66夜色国产精品视频 | 久久久亚洲欧洲日产国码αv | 国产成人久久精品流白浆 | 天堂亚洲2017在线观看 | 午夜精品久久久久久久 | 少妇性荡欲午夜性开放视频剧场 | 久久精品成人欧美大片 | 国产av人人夜夜澡人人爽麻豆 | 18无码粉嫩小泬无套在线观看 | 98国产精品综合一区二区三区 | 无码吃奶揉捏奶头高潮视频 | 性做久久久久久久久 | 奇米影视7777久久精品 | 国产两女互慰高潮视频在线观看 | 无码人妻av免费一区二区三区 | 天干天干啦夜天干天2017 | 国产凸凹视频一区二区 | 久久亚洲中文字幕无码 | 亚洲综合在线一区二区三区 | 亚洲爆乳大丰满无码专区 | 男女超爽视频免费播放 | 精品国偷自产在线视频 | 日韩无码专区 | 亚洲熟女一区二区三区 | 国产亚洲美女精品久久久2020 | 日韩精品无码一本二本三本色 | 亚洲一区二区三区香蕉 | 亚洲中文字幕乱码av波多ji | 国内揄拍国内精品人妻 | 国产成人无码区免费内射一片色欲 | 久久99精品久久久久婷婷 | 亚洲熟妇色xxxxx欧美老妇y | 精品欧洲av无码一区二区三区 | 99精品视频在线观看免费 | 波多野结衣一区二区三区av免费 | 无码毛片视频一区二区本码 | 丰满少妇熟乱xxxxx视频 | 内射巨臀欧美在线视频 | 一区二区传媒有限公司 | 成人试看120秒体验区 | 东京无码熟妇人妻av在线网址 | 思思久久99热只有频精品66 | 久久久www成人免费毛片 | 最近免费中文字幕中文高清百度 | 亚洲综合色区中文字幕 | 最新国产乱人伦偷精品免费网站 | 国产成人综合美国十次 | 76少妇精品导航 | 美女毛片一区二区三区四区 | 亚洲一区二区三区国产精华液 | 日本护士xxxxhd少妇 | 男女爱爱好爽视频免费看 | 久久综合狠狠综合久久综合88 | 鲁鲁鲁爽爽爽在线视频观看 | 天天拍夜夜添久久精品大 | 无码人妻精品一区二区三区下载 | 一本无码人妻在中文字幕免费 | 久久99精品久久久久久 | 午夜精品久久久内射近拍高清 | 国产精品久久国产精品99 | 高潮毛片无遮挡高清免费视频 | 国产人妻人伦精品1国产丝袜 | 欧美日韩久久久精品a片 | 最新国产乱人伦偷精品免费网站 | 国产成人无码专区 | 国产乱码精品一品二品 | 久久www免费人成人片 | 久久午夜无码鲁丝片午夜精品 | 狠狠色色综合网站 | 亚洲精品一区三区三区在线观看 | 夜夜躁日日躁狠狠久久av | 国产人妻久久精品二区三区老狼 | 久久精品人人做人人综合 | 午夜丰满少妇性开放视频 | 久久国产精品偷任你爽任你 | 亚洲精品国产品国语在线观看 | 日本精品高清一区二区 | 日韩人妻无码中文字幕视频 | 鲁鲁鲁爽爽爽在线视频观看 | 香蕉久久久久久av成人 | 亚洲精品国产品国语在线观看 | 精品一区二区三区无码免费视频 | 国产另类ts人妖一区二区 | 牲交欧美兽交欧美 | 国产欧美精品一区二区三区 | 天堂亚洲免费视频 | 中文字幕 人妻熟女 | 国产精品高潮呻吟av久久 | 蜜桃视频插满18在线观看 | 天天拍夜夜添久久精品大 | 一本久久伊人热热精品中文字幕 | 亚洲乱亚洲乱妇50p | 国产av一区二区精品久久凹凸 | 无码国产激情在线观看 | 欧美精品国产综合久久 | 亚洲小说春色综合另类 | 国产精品久久久久久久影院 | 亚洲人成无码网www | 欧美性生交xxxxx久久久 | 亚洲中文字幕在线观看 | 天天躁日日躁狠狠躁免费麻豆 | 亚洲精品一区二区三区在线 | 亚洲中文字幕无码中文字在线 | 国产精品久久久久久无码 | 国产精品久久久久7777 | 又大又黄又粗又爽的免费视频 | 国产精品久久久久久亚洲毛片 | 美女扒开屁股让男人桶 | 中文字幕无码免费久久99 | 亚洲の无码国产の无码影院 | 亚洲综合另类小说色区 | 欧美 丝袜 自拍 制服 另类 | 一个人看的www免费视频在线观看 | 欧美精品国产综合久久 | 亚洲精品一区二区三区大桥未久 | 久久99精品久久久久久 | 永久黄网站色视频免费直播 | 国产无套内射久久久国产 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 99久久99久久免费精品蜜桃 | 国产黄在线观看免费观看不卡 | 最近的中文字幕在线看视频 | 久精品国产欧美亚洲色aⅴ大片 | 国产精品久久福利网站 | 学生妹亚洲一区二区 | 国产 浪潮av性色四虎 | 亚洲第一无码av无码专区 | 色综合久久中文娱乐网 | 成熟女人特级毛片www免费 | 国产一区二区三区影院 | 午夜福利试看120秒体验区 | 青草视频在线播放 | 国产人妻精品一区二区三区不卡 | 亚洲欧美国产精品久久 | 装睡被陌生人摸出水好爽 | 一本久久伊人热热精品中文字幕 | 98国产精品综合一区二区三区 | 久久精品国产一区二区三区 | 久久精品国产一区二区三区 | 色偷偷人人澡人人爽人人模 | 欧洲熟妇精品视频 | 98国产精品综合一区二区三区 | 中国女人内谢69xxxxxa片 | 狠狠色噜噜狠狠狠狠7777米奇 | 高潮毛片无遮挡高清免费视频 | 久久99精品国产麻豆 | 99视频精品全部免费免费观看 | 日韩在线不卡免费视频一区 | 18禁黄网站男男禁片免费观看 | 在线亚洲高清揄拍自拍一品区 | 无码精品人妻一区二区三区av | 麻豆国产人妻欲求不满 | 国产精品久久久久影院嫩草 | www国产亚洲精品久久网站 | 国产人妻久久精品二区三区老狼 | 国产亚洲精品久久久久久国模美 | 99视频精品全部免费免费观看 | 国产成人无码av一区二区 | 久久无码人妻影院 | 亚洲日韩乱码中文无码蜜桃臀网站 | 欧美日本精品一区二区三区 | 久久久久久久女国产乱让韩 | 无人区乱码一区二区三区 | 久久久久久九九精品久 | 国产激情艳情在线看视频 | 4hu四虎永久在线观看 | 国产情侣作爱视频免费观看 | 国产偷国产偷精品高清尤物 | 亚洲男女内射在线播放 | 人人妻人人澡人人爽精品欧美 | 99久久亚洲精品无码毛片 | 国产乡下妇女做爰 | 久久无码人妻影院 | 日本熟妇人妻xxxxx人hd | 欧美一区二区三区视频在线观看 | 久久久精品人妻久久影视 | 欧美国产日韩久久mv | 成人性做爰aaa片免费看 | 波多野结衣 黑人 | 久久精品女人天堂av免费观看 | 2019午夜福利不卡片在线 | 亚洲人亚洲人成电影网站色 | 美女毛片一区二区三区四区 | 狠狠色噜噜狠狠狠7777奇米 | 在教室伦流澡到高潮hnp视频 | 日本欧美一区二区三区乱码 | 国产麻豆精品一区二区三区v视界 | 亚洲综合另类小说色区 | 久久精品人人做人人综合试看 | 十八禁视频网站在线观看 | а√天堂www在线天堂小说 | 亚洲小说春色综合另类 | 色窝窝无码一区二区三区色欲 | 人妻中文无码久热丝袜 | 3d动漫精品啪啪一区二区中 | 久激情内射婷内射蜜桃人妖 | 国产精品无套呻吟在线 | 亚洲国产午夜精品理论片 | 久久久亚洲欧洲日产国码αv | 成人无码视频在线观看网站 | 国产精品久久久午夜夜伦鲁鲁 | 欧美大屁股xxxxhd黑色 | 欧美精品免费观看二区 | 成人片黄网站色大片免费观看 | 久久伊人色av天堂九九小黄鸭 | 蜜桃视频插满18在线观看 | 亚洲娇小与黑人巨大交 | 久9re热视频这里只有精品 | 国产偷自视频区视频 | 国产高潮视频在线观看 | 激情爆乳一区二区三区 | 国产精品无码成人午夜电影 | 国产成人综合美国十次 | 精品久久久无码中文字幕 | 国产人妻精品一区二区三区不卡 | 国产又粗又硬又大爽黄老大爷视 | 久久久国产精品无码免费专区 | 欧美国产日韩亚洲中文 | 曰本女人与公拘交酡免费视频 | 波多野结衣一区二区三区av免费 | 国产亚洲精品久久久久久久 | 野狼第一精品社区 | 久久久久成人精品免费播放动漫 | 国产免费久久久久久无码 | 成人aaa片一区国产精品 | 国产亚洲精品久久久久久久久动漫 | 久久伊人色av天堂九九小黄鸭 | 99精品无人区乱码1区2区3区 | 丰满少妇熟乱xxxxx视频 | 夜精品a片一区二区三区无码白浆 | 色一情一乱一伦一视频免费看 | 妺妺窝人体色www婷婷 | 国产精品毛片一区二区 | 99麻豆久久久国产精品免费 | 国产精品永久免费视频 | 色婷婷欧美在线播放内射 | 日韩人妻无码中文字幕视频 | 亚洲成a人片在线观看日本 | 色婷婷综合中文久久一本 | 在线播放亚洲第一字幕 | 激情人妻另类人妻伦 | 日韩亚洲欧美精品综合 | 久9re热视频这里只有精品 | 国产无遮挡又黄又爽免费视频 | 亚洲成av人影院在线观看 | 97久久超碰中文字幕 | 永久免费精品精品永久-夜色 | 亚洲 欧美 激情 小说 另类 | 狠狠色丁香久久婷婷综合五月 | 国产特级毛片aaaaaaa高清 | 亚洲成在人网站无码天堂 | 日欧一片内射va在线影院 | 国产偷国产偷精品高清尤物 | 97无码免费人妻超级碰碰夜夜 | 国产精品国产自线拍免费软件 | 丝袜 中出 制服 人妻 美腿 | 成人欧美一区二区三区黑人免费 | 亚洲aⅴ无码成人网站国产app | 99久久久国产精品无码免费 | 一二三四社区在线中文视频 | 国模大胆一区二区三区 | 国产午夜亚洲精品不卡 | 在线观看欧美一区二区三区 | 亚洲色偷偷偷综合网 | 无套内射视频囯产 | 久久精品一区二区三区四区 | 性生交大片免费看女人按摩摩 | 色综合久久88色综合天天 | 国产婷婷色一区二区三区在线 | а√天堂www在线天堂小说 | 无码国产色欲xxxxx视频 | 草草网站影院白丝内射 | 成人无码精品1区2区3区免费看 | 午夜福利一区二区三区在线观看 | 国产成人无码一二三区视频 | 色婷婷综合激情综在线播放 | 无码人妻黑人中文字幕 | 国产成人一区二区三区别 | 国产亚洲人成a在线v网站 | 久久精品无码一区二区三区 | 亚洲色大成网站www国产 | 国产手机在线αⅴ片无码观看 | 又大又黄又粗又爽的免费视频 | 中文字幕 亚洲精品 第1页 | 中文字幕乱码人妻无码久久 | 色婷婷综合激情综在线播放 | 丰满人妻翻云覆雨呻吟视频 | 国产在线精品一区二区高清不卡 | 国产成人精品视频ⅴa片软件竹菊 | 亚洲精品一区二区三区在线观看 | 999久久久国产精品消防器材 | 丰满少妇女裸体bbw | 欧美日韩综合一区二区三区 | 亚洲自偷自偷在线制服 | 亚洲精品中文字幕乱码 | 亚洲第一网站男人都懂 | 久久久www成人免费毛片 | 亚洲日韩乱码中文无码蜜桃臀网站 | 波多野结衣高清一区二区三区 | 国产激情精品一区二区三区 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 特大黑人娇小亚洲女 | 西西人体www44rt大胆高清 | 免费人成在线视频无码 | 99国产欧美久久久精品 | 亚洲国产av美女网站 | 欧美成人高清在线播放 | 亚洲码国产精品高潮在线 | 伊人久久大香线蕉午夜 | 亚洲国产精品久久人人爱 | 免费看男女做好爽好硬视频 | 日本在线高清不卡免费播放 | 国产精品美女久久久久av爽李琼 | 暴力强奷在线播放无码 | 丝袜人妻一区二区三区 | 久久久久久九九精品久 | 中文字幕无码免费久久9一区9 | 青青青爽视频在线观看 | 亚洲s码欧洲m码国产av | 久久熟妇人妻午夜寂寞影院 | 水蜜桃色314在线观看 | 精品国产福利一区二区 | 夜夜夜高潮夜夜爽夜夜爰爰 | 99久久久国产精品无码免费 | 日本丰满熟妇videos | 97夜夜澡人人双人人人喊 | 人人妻人人澡人人爽精品欧美 | 狠狠色色综合网站 | 又大又紧又粉嫩18p少妇 | 亚洲s码欧洲m码国产av | 国产 精品 自在自线 | a片在线免费观看 | 精品国产乱码久久久久乱码 | 中文字幕av伊人av无码av | 国产网红无码精品视频 | 蜜臀av无码人妻精品 | 美女黄网站人色视频免费国产 | 青青久在线视频免费观看 | 国产精品毛多多水多 | 日日碰狠狠丁香久燥 | 久久久无码中文字幕久... | 内射巨臀欧美在线视频 | 亚洲娇小与黑人巨大交 | 国产成人一区二区三区别 | 伦伦影院午夜理论片 | 成人精品一区二区三区中文字幕 | 亚洲精品国偷拍自产在线麻豆 | 高清无码午夜福利视频 | 日本精品人妻无码免费大全 | 国产成人无码区免费内射一片色欲 | 高潮毛片无遮挡高清免费视频 | 又湿又紧又大又爽a视频国产 | 人妻少妇精品无码专区动漫 | 亚洲精品一区二区三区四区五区 | aⅴ在线视频男人的天堂 | 亚洲色无码一区二区三区 | 丰满人妻翻云覆雨呻吟视频 | 性欧美牲交xxxxx视频 | 在线观看免费人成视频 | 国产精品亚洲专区无码不卡 | 中文字幕无码视频专区 | 亚洲精品美女久久久久久久 | 久久综合九色综合97网 | 久久久成人毛片无码 | 又粗又大又硬毛片免费看 | 夜夜高潮次次欢爽av女 | 无码人妻丰满熟妇区毛片18 | 天天躁夜夜躁狠狠是什么心态 | 亚洲爆乳精品无码一区二区三区 | 熟妇人妻激情偷爽文 | 免费网站看v片在线18禁无码 | 麻豆国产人妻欲求不满谁演的 | 国产莉萝无码av在线播放 | 伊人久久婷婷五月综合97色 | 国产精品人人妻人人爽 | 亚洲自偷精品视频自拍 | 国产精品沙发午睡系列 | 波多野结衣高清一区二区三区 | 国产精品高潮呻吟av久久4虎 | 久久99久久99精品中文字幕 | 国产成人精品优优av | 西西人体www44rt大胆高清 | 国产精品亚洲一区二区三区喷水 | 男女下面进入的视频免费午夜 | 狠狠色丁香久久婷婷综合五月 | 国内丰满熟女出轨videos | 领导边摸边吃奶边做爽在线观看 | 欧美亚洲日韩国产人成在线播放 | 无码人妻黑人中文字幕 | 久久综合狠狠综合久久综合88 | 国产区女主播在线观看 | 狠狠亚洲超碰狼人久久 | 国产精品久久福利网站 | 国产精品va在线观看无码 | 亚洲精品午夜无码电影网 | 免费人成网站视频在线观看 | 色欲久久久天天天综合网精品 | 成人女人看片免费视频放人 | 成人精品天堂一区二区三区 | 久久人人爽人人爽人人片av高清 | 18黄暴禁片在线观看 | 国产成人精品久久亚洲高清不卡 | 激情内射亚州一区二区三区爱妻 | 少妇人妻av毛片在线看 | 丰满诱人的人妻3 | 欧美喷潮久久久xxxxx | 中文字幕无码视频专区 | 国产97色在线 | 免 | 久久久www成人免费毛片 | 啦啦啦www在线观看免费视频 | 欧美日韩久久久精品a片 | 成人无码精品一区二区三区 | 日本va欧美va欧美va精品 | 纯爱无遮挡h肉动漫在线播放 | 狠狠色噜噜狠狠狠狠7777米奇 | 人人爽人人爽人人片av亚洲 | 成人无码精品1区2区3区免费看 | 国产国语老龄妇女a片 | 色欲久久久天天天综合网精品 | 欧美激情内射喷水高潮 | 亲嘴扒胸摸屁股激烈网站 | 国产精品无码mv在线观看 | 色婷婷av一区二区三区之红樱桃 | 亚洲成a人片在线观看日本 | 亚洲 欧美 激情 小说 另类 | 精品国产一区二区三区四区在线看 | 亚洲国产欧美日韩精品一区二区三区 | 亚洲精品久久久久中文第一幕 | 国产九九九九九九九a片 | 久久精品国产精品国产精品污 | 国产深夜福利视频在线 | 欧美国产亚洲日韩在线二区 | 国产精品无码成人午夜电影 | 欧美真人作爱免费视频 | 久久99精品久久久久久 | 成人一在线视频日韩国产 | 亚洲精品午夜无码电影网 | 色一情一乱一伦一区二区三欧美 | 少妇无码吹潮 | 日本护士xxxxhd少妇 | 好屌草这里只有精品 | 久久精品人人做人人综合试看 | 九九热爱视频精品 | 亚洲一区av无码专区在线观看 | 久激情内射婷内射蜜桃人妖 | 国产人妻精品午夜福利免费 | 色综合久久网 | 中文字幕精品av一区二区五区 | 亚洲精品一区二区三区大桥未久 | 久久99精品国产.久久久久 | 欧美性猛交xxxx富婆 | 99久久99久久免费精品蜜桃 | 亚欧洲精品在线视频免费观看 | 久久久精品成人免费观看 | 亚洲成a人一区二区三区 | 日本va欧美va欧美va精品 | 蜜桃av抽搐高潮一区二区 | 3d动漫精品啪啪一区二区中 | 在线播放免费人成毛片乱码 | 成人精品视频一区二区三区尤物 | 色综合久久88色综合天天 | 国产婷婷色一区二区三区在线 | 久久99久久99精品中文字幕 | 精品国产一区二区三区四区在线看 | 久久人人爽人人爽人人片av高清 | yw尤物av无码国产在线观看 | 欧美xxxx黑人又粗又长 | 狂野欧美激情性xxxx | 国产精品毛多多水多 | 亚洲 另类 在线 欧美 制服 | 国产色在线 | 国产 | 成在人线av无码免费 | 无码国模国产在线观看 | 亚洲中文字幕无码中文字在线 | 一本色道婷婷久久欧美 | 亚洲人成网站免费播放 | 大地资源网第二页免费观看 | 亚洲精品国产精品乱码视色 | 日本乱人伦片中文三区 | 久久精品国产一区二区三区肥胖 | 亚洲人成网站免费播放 | 国产人妻久久精品二区三区老狼 | 久久久av男人的天堂 | 最近中文2019字幕第二页 | 精品午夜福利在线观看 | 欧美人与善在线com | 国产成人综合在线女婷五月99播放 | 成人欧美一区二区三区黑人免费 | 色综合久久中文娱乐网 | 国产精品久久精品三级 | 无码国产激情在线观看 | 日本精品人妻无码77777 天堂一区人妻无码 | 亚洲成av人在线观看网址 | 亚洲日本va午夜在线电影 | 日韩人妻无码一区二区三区久久99 | 97久久精品无码一区二区 | 正在播放东北夫妻内射 | 国产亚洲人成a在线v网站 | 无套内射视频囯产 | 国产三级久久久精品麻豆三级 | 亚洲呦女专区 | 精品国产成人一区二区三区 | 国产精品久免费的黄网站 | 亚洲精品国产第一综合99久久 | 亚洲人成影院在线无码按摩店 | 亲嘴扒胸摸屁股激烈网站 | av香港经典三级级 在线 | 伊人久久大香线蕉av一区二区 | 老司机亚洲精品影院 | 一区二区传媒有限公司 | 鲁大师影院在线观看 | 免费中文字幕日韩欧美 | 无码人妻丰满熟妇区五十路百度 | 午夜福利一区二区三区在线观看 | 无码播放一区二区三区 | 麻豆果冻传媒2021精品传媒一区下载 | 中文字幕 亚洲精品 第1页 | 久久午夜无码鲁丝片秋霞 | 久久aⅴ免费观看 | 熟女少妇在线视频播放 | 国产色精品久久人妻 | 国产成人一区二区三区别 | 国产午夜无码精品免费看 | 97精品国产97久久久久久免费 | 欧美国产亚洲日韩在线二区 | 撕开奶罩揉吮奶头视频 | 97久久精品无码一区二区 | 国产精品无码一区二区桃花视频 | 高潮毛片无遮挡高清免费视频 | 精品一二三区久久aaa片 | 国产福利视频一区二区 | 欧美老妇交乱视频在线观看 | 久久99精品久久久久久 | 日韩 欧美 动漫 国产 制服 | 狠狠色噜噜狠狠狠7777奇米 | 日本爽爽爽爽爽爽在线观看免 | 国内精品人妻无码久久久影院蜜桃 | 日韩精品a片一区二区三区妖精 | 色爱情人网站 | 国产精品鲁鲁鲁 | 在线a亚洲视频播放在线观看 | 又粗又大又硬又长又爽 | 国产亚洲人成a在线v网站 | 丰满少妇熟乱xxxxx视频 | 欧美高清在线精品一区 | 性生交片免费无码看人 | 成人aaa片一区国产精品 | 又大又硬又爽免费视频 | 日韩无码专区 | 久久久久99精品国产片 | 一本久久伊人热热精品中文字幕 | 粗大的内捧猛烈进出视频 | 亚洲小说图区综合在线 | 国产精品久免费的黄网站 | 国产无av码在线观看 | 免费观看黄网站 | 午夜理论片yy44880影院 | 国产乱人伦av在线无码 | 精品久久8x国产免费观看 | 在线精品亚洲一区二区 | 欧美 日韩 亚洲 在线 | 免费观看又污又黄的网站 | 无码人妻丰满熟妇区五十路百度 | 亚洲小说图区综合在线 | 无码吃奶揉捏奶头高潮视频 | 亚洲天堂2017无码 | 2020久久香蕉国产线看观看 | 久久午夜无码鲁丝片午夜精品 | 国产精品亚洲五月天高清 | 综合网日日天干夜夜久久 | 麻豆精品国产精华精华液好用吗 | 亚洲精品国产品国语在线观看 | 精品国产国产综合精品 | 日本一区二区三区免费高清 | 亚拍精品一区二区三区探花 | 中文字幕日韩精品一区二区三区 | 精品成人av一区二区三区 | 中文字幕av伊人av无码av | 青青久在线视频免费观看 | 无码国产色欲xxxxx视频 | 国产一区二区不卡老阿姨 | 欧美日韩综合一区二区三区 | 国产9 9在线 | 中文 | 性做久久久久久久久 | 国产精品久久久久影院嫩草 | 国产一区二区三区精品视频 | 久久久久免费看成人影片 | 强开小婷嫩苞又嫩又紧视频 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 伊在人天堂亚洲香蕉精品区 | 中文字幕无线码免费人妻 | 天天av天天av天天透 | 亚洲一区二区三区 | 波多野结衣一区二区三区av免费 | 疯狂三人交性欧美 | 国产精品高潮呻吟av久久 | 婷婷五月综合缴情在线视频 | 日本精品人妻无码免费大全 | 亚洲国产欧美国产综合一区 | 国产亚洲欧美在线专区 | 无码纯肉视频在线观看 | 国产成人无码av片在线观看不卡 | 中国女人内谢69xxxx | 久久99久久99精品中文字幕 | 精品久久久无码中文字幕 | 亚洲一区二区三区在线观看网站 | 国产三级久久久精品麻豆三级 | 动漫av网站免费观看 | 四虎永久在线精品免费网址 | 精品 日韩 国产 欧美 视频 | 狂野欧美激情性xxxx | 欧美 丝袜 自拍 制服 另类 | 欧美zoozzooz性欧美 | 少妇性俱乐部纵欲狂欢电影 | 中文字幕 人妻熟女 | 一本精品99久久精品77 | v一区无码内射国产 | 欧美日韩在线亚洲综合国产人 | 久久久成人毛片无码 | 久久午夜无码鲁丝片秋霞 | 内射欧美老妇wbb | 国产精品毛片一区二区 | 久久久久国色av免费观看性色 | 西西人体www44rt大胆高清 | 久久精品人人做人人综合试看 | 免费人成在线视频无码 | 精品久久久无码人妻字幂 | 午夜福利试看120秒体验区 | 人人妻人人澡人人爽欧美一区 | 中文字幕色婷婷在线视频 | 综合人妻久久一区二区精品 | 狠狠色丁香久久婷婷综合五月 | 久久这里只有精品视频9 | 亚洲狠狠色丁香婷婷综合 | 丰腴饱满的极品熟妇 | 欧美zoozzooz性欧美 | 中文字幕 人妻熟女 | 成人一在线视频日韩国产 | 久久99热只有频精品8 | 国产一区二区三区精品视频 | 中文字幕精品av一区二区五区 | 亚洲欧美综合区丁香五月小说 | 亚洲理论电影在线观看 | 欧美性黑人极品hd | 国产成人无码av一区二区 | 无码人妻黑人中文字幕 | 国产色xx群视频射精 | 动漫av网站免费观看 | 中文字幕日韩精品一区二区三区 | 无码福利日韩神码福利片 | а√资源新版在线天堂 | 成人精品一区二区三区中文字幕 | 亚洲人成无码网www | 欧美精品国产综合久久 | 国产婷婷色一区二区三区在线 | 国产黑色丝袜在线播放 | 老头边吃奶边弄进去呻吟 | 九九热爱视频精品 | 亚洲国产欧美国产综合一区 | 亚洲日韩一区二区三区 | 亚拍精品一区二区三区探花 | 俺去俺来也www色官网 | 少妇邻居内射在线 | 少妇无码一区二区二三区 | 久久亚洲日韩精品一区二区三区 | 久久午夜无码鲁丝片午夜精品 | 人人澡人人透人人爽 | 免费无码的av片在线观看 | 少妇愉情理伦片bd | yw尤物av无码国产在线观看 | 亚洲呦女专区 | 国产在线精品一区二区三区直播 | 色噜噜亚洲男人的天堂 | 伊人久久大香线焦av综合影院 | 亚洲欧美综合区丁香五月小说 | 欧洲美熟女乱又伦 | 亚洲综合久久一区二区 | 人人妻人人澡人人爽欧美一区九九 | 色一情一乱一伦一区二区三欧美 | 欧美黑人性暴力猛交喷水 | 久久久成人毛片无码 | 国产午夜精品一区二区三区嫩草 | 日韩人妻少妇一区二区三区 | 国产精品无码一区二区三区不卡 | 精品无码国产自产拍在线观看蜜 | 国语精品一区二区三区 | 久久视频在线观看精品 | 男女超爽视频免费播放 | 国产内射爽爽大片视频社区在线 | 蜜桃臀无码内射一区二区三区 | 正在播放老肥熟妇露脸 | 一本色道久久综合狠狠躁 | 四虎国产精品一区二区 | 国产精品久久久久无码av色戒 | 国产精品亚洲一区二区三区喷水 | 蜜桃无码一区二区三区 | 久久久久国色av免费观看性色 | 亚洲熟妇自偷自拍另类 | 国产舌乚八伦偷品w中 | 中文精品无码中文字幕无码专区 | 人妻有码中文字幕在线 | 精品一区二区三区波多野结衣 | 久久综合香蕉国产蜜臀av | 人妻人人添人妻人人爱 | 欧美日韩视频无码一区二区三 | 亚洲第一网站男人都懂 | 国产精品人妻一区二区三区四 | 国产精品无码久久av | 久在线观看福利视频 | √天堂资源地址中文在线 | 大屁股大乳丰满人妻 | 麻豆av传媒蜜桃天美传媒 | 牲交欧美兽交欧美 | 精品国偷自产在线 | 丝袜 中出 制服 人妻 美腿 | 欧美xxxx黑人又粗又长 | 99麻豆久久久国产精品免费 | 亚洲一区二区三区国产精华液 | 性色av无码免费一区二区三区 | 亚洲精品久久久久久久久久久 | 又湿又紧又大又爽a视频国产 | 久久精品女人天堂av免费观看 | 荫蒂添的好舒服视频囗交 | 波多野42部无码喷潮在线 | 成人片黄网站色大片免费观看 | 亚洲中文字幕无码中字 | 无码一区二区三区在线观看 | 午夜无码区在线观看 | 国产成人精品无码播放 | 精品欧洲av无码一区二区三区 | 国产一区二区三区日韩精品 | 国产激情无码一区二区app | 蜜臀aⅴ国产精品久久久国产老师 | 国产在线精品一区二区高清不卡 | 欧美野外疯狂做受xxxx高潮 | 无码吃奶揉捏奶头高潮视频 | 性色av无码免费一区二区三区 | 大乳丰满人妻中文字幕日本 | 无码人妻少妇伦在线电影 | 老太婆性杂交欧美肥老太 | 精品无码国产一区二区三区av | 高中生自慰www网站 | 人妻天天爽夜夜爽一区二区 | 日韩少妇白浆无码系列 | 性做久久久久久久免费看 | www国产亚洲精品久久网站 | 人人妻人人澡人人爽人人精品 | 国产精品亚洲专区无码不卡 | 国内精品久久久久久中文字幕 | 色欲久久久天天天综合网精品 | 骚片av蜜桃精品一区 | 妺妺窝人体色www婷婷 | 免费无码午夜福利片69 | yw尤物av无码国产在线观看 | 国产亚洲欧美在线专区 | 麻豆md0077饥渴少妇 | 人妻与老人中文字幕 | www国产亚洲精品久久网站 | 久在线观看福利视频 | 久久亚洲精品成人无码 | 国产成人综合在线女婷五月99播放 | 在线a亚洲视频播放在线观看 | 午夜熟女插插xx免费视频 | 国产亚洲视频中文字幕97精品 | 日韩欧美中文字幕在线三区 | 人人妻人人澡人人爽欧美精品 | 午夜福利一区二区三区在线观看 | 国产无套内射久久久国产 | 国产亲子乱弄免费视频 | 亚洲 高清 成人 动漫 | 色欲久久久天天天综合网精品 | 国产做国产爱免费视频 | 我要看www免费看插插视频 | 樱花草在线社区www | 国产精品va在线观看无码 | 亚洲国产精品成人久久蜜臀 | 色狠狠av一区二区三区 | 日本一区二区三区免费播放 | 久久久国产精品无码免费专区 | 老熟妇仑乱视频一区二区 | 人妻天天爽夜夜爽一区二区 | 亚洲欧美日韩成人高清在线一区 | 国产精品第一国产精品 | 色综合久久久无码网中文 | 亚洲熟妇色xxxxx欧美老妇 | 免费无码的av片在线观看 | 成人欧美一区二区三区黑人 | 国产精品久久久av久久久 | 久久亚洲精品成人无码 | 亚洲熟熟妇xxxx | 正在播放东北夫妻内射 | 日日碰狠狠躁久久躁蜜桃 | 亚洲熟妇色xxxxx欧美老妇 | 久久婷婷五月综合色国产香蕉 | 天天av天天av天天透 | 天天躁日日躁狠狠躁免费麻豆 | av在线亚洲欧洲日产一区二区 | 国产女主播喷水视频在线观看 | 亚洲色偷偷男人的天堂 | 麻豆md0077饥渴少妇 | 麻豆果冻传媒2021精品传媒一区下载 | 亚洲精品一区二区三区四区五区 | 国产真实夫妇视频 | 国产片av国语在线观看 | 国精品人妻无码一区二区三区蜜柚 | 久久午夜夜伦鲁鲁片无码免费 | 亚洲另类伦春色综合小说 | 99国产欧美久久久精品 | 亚洲а∨天堂久久精品2021 | 精品少妇爆乳无码av无码专区 | 丰满妇女强制高潮18xxxx | 女人被男人躁得好爽免费视频 | 国产精品久久久久久久影院 | 一区二区三区乱码在线 | 欧洲 | 强伦人妻一区二区三区视频18 | 亚洲熟女一区二区三区 | 内射欧美老妇wbb | 日韩欧美中文字幕公布 | 7777奇米四色成人眼影 | 亚洲欧美国产精品专区久久 | 亚洲国产综合无码一区 | 一本大道久久东京热无码av | 欧美xxxxx精品 | 四虎国产精品一区二区 | 国产内射老熟女aaaa | 中文字幕日韩精品一区二区三区 | 一本一道久久综合久久 | 国产亚洲精品久久久ai换 | 乌克兰少妇xxxx做受 | 国产在线一区二区三区四区五区 | 在线a亚洲视频播放在线观看 | 国精品人妻无码一区二区三区蜜柚 | 麻豆蜜桃av蜜臀av色欲av | 少妇高潮一区二区三区99 | 国产高清不卡无码视频 | 久久午夜夜伦鲁鲁片无码免费 | 性色欲网站人妻丰满中文久久不卡 | 国产精品人人妻人人爽 | av香港经典三级级 在线 | 成人性做爰aaa片免费看 | 免费中文字幕日韩欧美 | 扒开双腿吃奶呻吟做受视频 | 久久久中文久久久无码 | 国产免费观看黄av片 | 国产口爆吞精在线视频 | 麻豆av传媒蜜桃天美传媒 | 狠狠cao日日穞夜夜穞av | 亚洲aⅴ无码成人网站国产app | 久久综合久久自在自线精品自 | 久久综合久久自在自线精品自 | 疯狂三人交性欧美 | 人人妻人人澡人人爽欧美一区九九 |