1 C语言|堆栈与队列 - 嵌入式技术 - 德赢Vwin官网 网

德赢Vwin官网 App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

德赢Vwin官网 网>嵌入式技术>C语言|堆栈与队列

C语言|堆栈与队列

收藏

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论

查看更多

相关推荐

FIFO队列原理简述

FIFO是队列机制中最简单的,每个接口上只有一个FIFO队列,表面上看FIFO队列并没有提供什么QoS保证,甚至很多人认为FIFO严格意义上不算做一种队列技术,实则不然,FIFO是其它队列的基础
2022-07-10 09:22:001338

Linux下进程通讯消息队列

 MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是message 而已。MQ 是在消息的传输过程中保存消息的容器。多用于分布式系统之间
2022-08-19 19:56:171467

聊一聊消息队列技术选型的7种消息场景

我们在做消息队列的技术选型时,往往会结合业务场景进行考虑。今天来聊一聊消息队列可能会用到的 7 种消息场景。
2023-12-09 17:50:51880

C16x中的堆栈

80C166的基本设计故意偏向于允许像C这样的结构化语言比在较老的CPU上更高效地运行。 最有用的指令集功能之一是提供16个额外的堆栈指针。 这些是MOV[Ri+]的结果,mem指令非常适合创建本地
2023-09-04 07:05:45

C语言

C语言中“b=~b”是什么意思?
2020-10-24 11:45:20

C语言

小弟对编程很喜欢,知道对C语言的学习是很重要的,希望高手能提供点C语言提高类的资料,先谢谢了。
2013-10-28 17:25:13

C语言优先队列,代码问题

基于数组二叉堆实现的优先队,C语言实现(参考http://www.***51.net/article/41978.htm大神的代码)。在VC6.0上运行没问题,想移植到keil C中,可其中一个变量
2014-03-25 15:25:52

C语言单片机栈、堆、堆栈的区别是什么?

C语言单片机栈、堆、堆栈的区别是什么?
2021-10-13 08:09:36

C语言及ARM中堆栈指针SP设置的理解与总结(转载)

进线程的上下文。设置栈大小的一个原则是,保证栈不会下溢出到数据空间或程序空间.CPU在运行程序时,会自动的使用堆栈,所以堆栈指针SP就必须要在调用C程序前设定。CPU的内存RAM空间存放规律一般是分段
2018-01-26 17:11:03

C语言和汇编语言在开发单片机时各有哪些优缺点

使用的RISC架构的8bit MCU来说,其内部ROM、RAM、STACK等资源都有限,如果使用C语言编写,一条C语言指令编译后,会变成很多条机器码,很容易出现ROM空间不够、堆栈溢出等问题。而且一些单片机
2022-02-11 06:54:28

C语言和汇编语言的优缺点是什么?

什么是c语言?什么是汇编语言C语言和汇编语言的优缺点是什么?
2021-10-14 08:48:23

C语言真的这么难?其实上手很简单 精选资料分享

序言如果只是简单的写出一些循环语句、字符处理等操作,那只能叫你认识这个语言。真正的学会C语言,你要理解指针、内存、堆栈操作、链表操作,同时需要对操作系统有一定的理解,32位、64位操作系统
2021-07-22 06:37:11

C语言程序小知识点总结

C语言总结(stm32嵌入式开发)文章目录C语言总结(stm32嵌入式开发)c程序小知识点总结1.静态变量static与外部变量extern的使用2.函数封装后返回值的方法3.软件寄存器的封装4.
2021-11-05 07:45:52

c语言是什么?

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。学习C语言常用的学习
2022-03-09 13:58:00

堆栈管理相关资料下载

C语言嵌入式Linux编程第4期:堆栈管理 6年嵌入式开发经验,在多家半导体...
2021-12-15 07:46:19

FreeRTOS发送消息队列失败的解决办法?

的长度和深度如何确定,这些参数跟创建任务的时候的堆栈大小有没有什么关系。我也知道这些东西是根据实际工程需求确定,但是对新手来说很重要。言归正传,我的主要代码如下:队列发送任务如下
2020-06-14 09:01:06

HC08 C语言简介

HC08C的编译器已经对部分硬件资源进行了封装,如:堆栈、子程序的跳转、中断处理时现场的保护。C代码中的函数、控制语句在编译时都会被编译器编译成相应的汇编指令,这些语句生成的代码量也不尽相等。而且
2011-03-08 14:15:21

ucos移植中说C语言无法保证堆栈的结构是什么意思?

《ARM微控制器基础与实战》中在 ucos 移植中说 C 语言无法保证堆栈的结构,请问这是什么含义
2023-02-28 14:29:42

【单片机开发300问】单片机开发一定要会C语言吗?

移植。对于目前普遍使用的RISC架构的8bit MCU来说,其内部ROM、RAM、STACK等资源都有限,如果使用C语言编写,一条C语言指令编译后,会变成很多条机器码,很容易出现ROM空间不够、堆栈溢出
2011-11-16 16:45:23

【单片机开发300问】开发单片机时C语言和汇编语言哪个更好

部ROM、RAM、STACK等资源都有限,如果使用C语言编写,一条C语言指令编译后,会变成很多条机器码,很容易出现ROM空间不够、堆栈溢出等问题。而且一些单片机厂家也不一定能提供C编译器。而汇编语言
2011-11-16 11:59:31

为什么要使用消息队列?消息队列的优缺点

由于项目需要,在嵌入式操作系统的中间件设计中,采用了消息队列来作为各个模块之间的通信方式,同时允许用户层的不同用户来访问中间件的各个模块。 现在列出下面三个问题来加深对消息队列的理解,以便后续的架构
2021-12-22 06:28:22

为什么要学C语言?怎样去学C语言

为什么很多人学不会C语言?为什么要学C语言?怎样去学C语言
2021-11-11 07:16:32

了解一下RTOS消息队列的应用

容保持不变。这意味着队列不能传递指向堆栈变量的指针、可能被其它代码更改的全局变量等等。为了保存消息,可以定义一个从内存池获取的特定结构。发送消息的ISR或任务将从内存池中获取一个结构,填充该结构,并将指向
2023-06-12 14:17:55

什么是C语言

什么是C语言
2021-11-11 07:13:19

使用C语言的方式来点亮LED的问题

与上一次不同,本次使用C语言的方式来点亮LED,那么关键的问题来了,程序怎么跳到C语言的main函数的入口呢?即便程序跳到了main函数入口,我们通过c定义的变量存到哪里呢?这些内存该怎么分配呢
2021-12-15 07:29:19

关于C语言的基础知识

新属性,所以需要用汇编先构建一个C语言的环境。(比如不同类型的变量在内存中位置要设置好)。C语言常见元素类型:(全局变量、静态变量)(局部变量、函数形参)(常量)(代码)等。3.关于内存一般内存主要分为:堆区、栈区、静态区(全局区)、代码区、常量区这几个区域。(堆栈也可称为动态区) 二、关于S
2021-08-20 07:03:16

单片机C语言 堆栈问题

请问下 我用C语言做,怎么能产生两个堆栈呢?有木有人帮忙给下具体思路~
2013-10-29 14:15:51

在嵌入式处理器环境中为什么汇编语言不需要堆栈

在嵌入式处理器环境中,为何C语言(函数调用)需要堆栈,而汇编语言却不需要堆栈?据我所知,c语言最终也是被编译成了汇编,都是汇编,为何c语言生出来的就需要堆栈才能运行呢??
2020-03-20 04:35:43

多任务系统中的堆栈使用

在使用μC/OS的多任务应用程序中,main()启动后首先使用系统C栈,在OS启动后使用任务栈。基于μC/OS-II或μC/OS-III编写应用代码时,用户必须为每个任务声明一个堆栈,用于任务运行
2023-01-05 13:52:05

如何改进μC/OS-II内核的堆栈结构设计?

μC/OS-II的堆栈结构如何改进μC/OS-II内核的堆栈结构设计?
2021-04-27 07:09:57

如何评估C2000系列微控制器程序的堆栈使用情况

行时是否会出现致命且不易被发现的错误。本文将对C2000系列微控制器的栈 (亦习惯性的被称为堆栈,这里请注意堆与栈之间的区别)做简单的介绍,并提出四种方法来对应用程序运行所需的栈空间大小进行追踪或评估
2022-11-08 07:52:45

学习C语言的经验分享

怎么学C语言最快?大学生只会用C语言写简单的计算怎么办?
2021-11-02 08:31:01

寻找用VHDL语言编写的UDP IP堆栈

各位大家好,我正在寻找用VHDL语言编写的UDP / IP堆栈(我必须在Spartan-6 FPGA中实现它)。我正在寻找一个尽可能简单的功能:使用VHDL语言编写,而不是Verilog - 在
2019-08-06 02:37:22

嵌入式C语言应用工程中堆栈的相关资料分享

堆栈的定义和作用2. 嵌入式 C 语言应用工程的栈大小确定3. 嵌入式 C 语言应用工程的堆栈溢出定义、危害以及应对措施 概述与案例分析过去工作中,我经常遇到客户非...
2021-11-04 06:10:32

怎么修改C2000的堆栈大小

最近在做一个小的测试项目,需要动态分配内存的操作,从而涉及到了堆栈大小的设置的问题,程序调用如下:unsigned char *buf; buf=(unsigned char*)malloc(512
2018-11-16 14:16:43

怎么实现单片机队列C语言OLED示波器心率波形的显示?

怎么实现单片机队列C语言OLED示波器心率波形的显示?
2021-10-19 06:24:51

怎么将μC/OS-II移植到MOTOROLA MC68K系列CPU上

。8个通用数据寄存器可作为累加器使用,也可看成C语言中各种类型的变量;8个通用地址寄存器,可作为变址寄存器使用,也可看成C语言中的指针型变量。CPU32有独立的用户堆栈指针和系统堆栈指针,可区分程序区
2019-06-24 08:09:05

是什么原因导致USB主机堆栈挂起呢?

HAL 中的错误报告。在重负载下,由于 HAL 错误地清除了 IN 通道上的 EPDIR 标志,USB 主机堆栈可能会挂起。stm32f4xx_ll_usb.c,函数USB_HC_Halt,在请
2022-12-27 07:11:05

溢出队列缓冲区

我用和谐建立了CDC的USB堆栈。如果我慢慢地发送数据,效果会很好。我想尽可能快地发送数据。当这样做时,我溢出队列缓冲区。USB_DEVICE_CDC_Write函数返回以下错误,USB_DEVICE_CDC_RESULT_ERROR_TRANSFER_QUEUE_FULL。是否有指定或可接受的方法来监视当前队列级别并相应地节流数据,以便队列不会溢出?
2020-03-24 09:51:24

环形队列在串口数据接收中的使用

前言  书接上回,前文主要介绍了环形队列的实现原理以及C语言实现及测试过程,本文将回归到嵌入式平台的应用中,话不多说,淦,上干货!实验目的HAL库下串口的配置及使用环形队列在串口数据接收中的使用硬件
2021-12-06 06:27:05

计算机堆栈有哪些功能

在计算机领域,堆栈是一个不容忽视的概念,堆栈是两种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。在单片机应用中,堆栈是个特殊的存储区
2022-01-20 06:16:16

请教ucosiii例程中创建堆栈函数

)START_STK_SIZE, //任务堆栈大小(OS_MSG_QTY)0, //任务内部消息队列能够接收的最大消息数目,为0时禁止接收消息(OS_TICK)0,//当使能时间片轮转时的时间片长度,为0
2019-06-28 04:35:48

请问28335 C语言和汇编混合编程时从汇编返回C语言的方法是怎样的?

之前怎么将程序返回到C语言中去执行,用RET吗?编译器不认这个指令,用LRET返回到一个错误的地方,求教各位大神应该用那条指令返回呢?还有如果想用保存临时变量的方法,在汇编中怎么传递C语言中的临时变量呢?求教各位了,谢谢!
2018-06-14 02:13:11

MSP430 C语言编程的程序堆栈溢出分析

MSP430 C语言编程的程序堆栈溢出分析
2009-05-16 15:04:3540

栈和队列

栈和队列:1、栈和队列定义:限定仅只能在表尾端进行插入和删除的线性表。栈顶:表尾端被称之为栈顶。栈底:和表尾相对应的另一端,称之为栈底。时间有序表:LIFO 特征的线性
2009-08-13 13:50:050

HT MCU 软件堆栈的应用

HT MCU 软件堆栈的应用介绍:对于 Holtek 八位元单片机来说,堆栈资源往往是有限的。例如,HT48R10A-1 就只有两级堆栈。本文将介绍如何利用软件堆栈来解决这一问题。软件堆栈是用通
2010-03-26 08:33:3116

堆栈以及堆和栈的区别

堆栈堆栈是一个"后进先出"的主存区域,位于堆栈段中,使用SS段寄存器记录其段地址。它只有一个出入口,即当前栈顶,栈顶是地址较小 的一端(低端),它用堆栈指针寄存器
2010-06-30 11:06:131703

C语言描述第24集栈和队列2(P24)

C语言编程语言
电子学习发布于 2023-02-01 16:39:27

C语言描述第28集栈和队列6(上)(P28)

C语言编程语言
电子学习发布于 2023-02-01 16:51:59

C语言描述第30集栈和队列7(P30)

C语言编程语言
电子学习发布于 2023-02-01 16:57:59

C语言描述第26集栈和队列4(P26)

C语言编程语言
电子学习发布于 2023-02-01 17:10:14

堆栈指针sp的内容是什么

堆栈是一块保存数据的连续内存。一个名为堆栈指针(SP)的寄存器指向堆栈的顶部。 堆栈的底部在一个固定的地址。堆栈的大小在运行时由内核动态地调整。 CPU实现指令 PUSH和POP,向堆栈中添加
2017-11-13 09:04:0732880

堆栈溢出怎么解决方式

 堆栈是一个在计算机科学中经常使用的抽象数据类型。堆栈中的物体具有一个特性: 最后一个放入堆栈中的物体总是被最先拿出来, 这个特性通常称为后进先出(LIFO)队列堆栈中定义了一些操作。 两个最重
2017-11-28 11:16:5327359

片内RAM中堆栈的原理和作用解读

堆栈区由特殊功能寄存器堆栈指针SP管理 堆栈区可以安排在 RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,通常放在RAM区的靠后的位置。
2017-12-09 11:25:0613256

C语言及ARM中堆栈指针SP设置的理解与总结

开始将堆栈指针设置在内部RAM,是因为不是每个板上都有外部RAM,而且外部RAM的大小也不相同,而且如果是SDRAM,还需要初始化,在内部RAM开始运行的一般是一个小的引导程序,基本上不怎么使用堆栈,因此将堆栈设置在内部RAM,但这也就要去改引导程序不能随意使用大量局部变量。
2018-04-06 19:46:008828

C语言入门教程之堆栈的详细资料概述

本文档的主要内容详细介绍的是C语言入门教程之堆栈的详细资料概述。
2018-11-29 11:47:4811

Linux 多线程同步-消息队列

消息队列是消息的链表,存放在内核中并有消息队列标示符标示。  msgget用于创建一个新队列或打开一个现存的队列。msgsnd将新消息加入到消息队列中;每个消息包括一个long
2019-04-02 14:45:10569

Linux IPC POSIX 消息队列

模型:#include#include #include mq_open() //创建/获取消息队列fd mq_get() //设置/获取消息队列属性
2019-04-02 14:46:43469

单片机实现FIFO循环队列的代码和资料免费下载

和顺序栈相类似,在队列的顺序存储结构中,除了用一组地址连续的存储单元依次存放从队列头到队列尾的元素之外,尚需附设两个指针front和rear分别之时队列头元素和队列尾元素的位置。为了在C语言中描述
2019-09-19 17:19:002

堆栈在C语言中的定义是怎么样的

 在计机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到。但对于很多的初学着来说,堆栈是一个很模糊的概念。堆栈:一种数据结构、一个在程序运行时用于存放的地方,这可能是很多初学者
2019-08-16 17:32:000

51单片机等串口缓存队列的C语言程序说明

本文档的主要内容详细介绍的是51单片机等串口缓存队列的C语言程序说明资料免费下载。
2019-06-27 17:42:003

LT6804多节电池堆栈监控器的驱动代码C语言程序免费下载

本文档的主要内容详细介绍的是LT6804多节电池堆栈监控器的驱动代码C语言程序免费下载。
2019-05-28 08:00:0020

深入分析MCU堆栈的作用 以及该如何设置堆栈大小

深入分析MCU堆栈的作用,以及该如何设置堆栈大小
2020-03-01 14:13:394449

队列的概念

队列是一个线性的数据结构,并且这个数据结构只允许在一端进行插入,另一端进行删除,禁止直接访问除这两端以外的一切数据,且队列是一个先进先出的数据结构。
2020-10-30 11:39:292705

堆栈在C语言中的定义(单片机的中堆栈相当于栈)资料下载

德赢Vwin官网 网为你提供堆栈在C语言中的定义(单片机的中堆栈相当于栈)资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。
2021-04-16 08:45:2014

深度解析数据结构与算法篇之队列及环形队列的实现

01 — 队列简介 队列是种先进先出的数据结构,有个元素进入队列称为入对(enqueue),删除元素称为出队(dequeue),队列有对头(head)和对尾(tail),当有元素进入队列时就放在
2021-06-18 10:07:121608

TencentOS-tiny中环形队列的实现

1. 什么是队列队列(queue)是一种只能在一端插入元素、在另一端删除元素的数据结构,遵循「先入先出」(FIFO)的规则。 队列中有两个基本概念: 队头指针(可变):永远指向此队列的第一个数据元素
2021-10-08 16:30:451156

51单片机堆栈深入剖析

上的扩展,既有C语言的共性,又有它自己的特点。本文介绍的是Cx51程序设计时堆栈的计算方法。   1.堆栈的溢出问题。MCS51系列单片机将堆栈设置在片内RAM中,由于片内RAM资源有限,堆栈区的范围也是有限的。堆栈区留得太大,会减少其他数据的存放空间,留得太少则很容易溢出。所
2021-11-22 16:36:0416

FreeRTOS消息队列 & ESP32使用

FreeRTOS消息队列 & ESP32实战FreeRTOS消息队列FreeRTOS的消息队列和操作系统课中讲的消息队列大差不差,都是为了有序的、安全的在多任务间在发送信息。下面
2021-12-03 17:51:101

cubeMX+STM32+Freertos 读队列时阻塞

队列时阻塞本例内容是创建一个队列,由多个任务往队列中写数据,以及从队列中把数据读出。这个队列创建出来保存 uint16_t 型数据单元。往队列中写数据的任务没有设定阻塞超时时间,而读队列的任务设定
2021-12-09 15:21:2210

手把手教你c语言队列实现代码,通俗易懂超详细!

节是手把手教大家去写一个队列算法。那今天我把这节课的内容以文章的形式分享出来,方便大家灵活去学习。一、通过这篇文章你能掌握以下知识:掌握队列的原理和作用 掌握队列的设计思路 掌握队列代码编写 掌握队列在产品中的应用二、队列的原理和作用1.队列原理队列原理其实就像一个管道,如果我们
2022-01-13 13:14:200

简述Labview使用队列与栈的区别

简述Labview使用队列与栈的区别
2022-01-19 09:50:578

RTOS消息队列的多种用途

  消息队列可以以多种不同的方式使用。事实上,您可以编写可能只使用消息队列的相当复杂的应用程序。仅使用消息队列可以减少代码的大小(即占用空间),因为可以模拟许多其他服务(信号量、时间延迟和事件标志)。
2022-06-29 14:57:552000

队列Queue的常用方法有哪些

FIFO(先入先出)队列Queue,LIFO(后入先出)队列LifoQueue,和优先级队列PriorityQueue。
2022-08-19 10:24:244837

实现一个双端队列的步骤简析

队列是非常基础且重要的数据结构,双端队列属于队列的升级。很多的算法都是基于队列来实现,例如搜索中的bfs,图论中的spfa,计算几何中的melkman等。
2022-10-27 18:11:271029

SystemVerilog中的队列

队列是大小可变的有序集合,队列中元素必须是同一个类型的。队列支持对其所有元素的访问以及在队列的开始或结束处插入和删除。
2022-10-31 10:09:332940

什么是消息队列?消息队列中间件重要吗?

应用解耦:消息队列减少了服务之间的耦合性,不同的服务可以通过消息队列进行通信,而不用关心彼此的实现细节。
2022-11-07 14:55:24989

Free RTOS的信息队列

队列用于在任务之间以及任务与中断之间传递数据,可以在调度程序启动之前或之后创建队列
2023-02-10 16:01:53509

嵌入式环形队列和消息队列的实现

嵌入式环形队列和消息队列是实现数据缓存和通信的常见数据结构,广泛应用于嵌入式系统中的通信协议和领域。
2023-04-14 11:52:26974

嵌入式环形队列和消息队列是如何去实现的?

嵌入式环形队列和消息队列是实现数据缓存和通信的常见数据结构,广泛应用于嵌入式系统中的通信协议和领域。
2023-05-20 14:55:35630

利用C++提供的队列封装一个消息队列

最近的C++项目中,需要用到消息队列,但是C++中又没有原生的消息队列,就在网上找了一下相关资料,利用C++提供的队列,自己封装一个消息队列,以后的项目也可以复用。
2023-05-20 15:16:451012

RTOS消息队列的应用

基于RTOS的应用中,通常使用队列机制实现任务间的数据交互,一个应用程序可以有任意数量的消息队列,每个消息队列都有自己的用途。
2023-05-29 10:49:13385

FreeRTOS消息队列介绍

队列是为了任务与任务、任务与中断之间的通信而准备的,可以在任务与任务、任务与中断之间传递消息,队列中可以存储有限的、大小固定的数据项目。任务与任务、任务与中断之间要交流的数据保存在队列中,叫做队列
2023-07-06 16:58:45435

FreeRTOS消息队列结构体

有一个结构体用于描述队列,叫做 Queue_t,这个结构体在文件 queue.c 中定义。 3、队列创建 在使用队列之前必须先创建队列,有两种创建队列的方法,一种是静态的,使用函数
2023-07-06 17:03:39609

双端队列和C++ std::deque的用法说明

双端队列实际上是队列的一种变形,队列要求只能在队尾添加元素,在队头删除元素,而双端队列在队头和队尾都可以进行添加和删除元素的操作。
2023-07-18 17:43:34376

两个栈实现一个队列方法

栈和队列是比较基础的数据结构。无论在工作中,还是在面试中,栈和队列都用的比较多。在计算机的世界,你会看到队列和栈,无处不在。 栈:一个先进后出的数据结构 队列:一个先进先出的数据结构 栈和队列这两种
2023-10-08 15:54:07518

消息队列的发展历史

上一篇我们用一个秒杀案例探讨了我们为什么需要消息队列。今天我们来回顾一下消息队列的发展历史。
2023-10-30 10:49:25287

无锁队列的潜在优势

无锁队列 先大致介绍一下无锁队列。无锁队列的根本是CAS函数——CompareAndSwap,即比较并交换,函数功能可以用C++函数来说明: int compare_and_swap (int
2023-11-09 09:23:24223

无锁队列解决的问题

为什么需要无锁队列 无锁队列解决了什么问题?无锁队列解决了锁引起的问题。 cache失效 当CPU要访问主存的时候,这些数据首先要被copy到cache中,因为这些数据在不久的将来可能又会被处理器
2023-11-10 15:33:05208

裸机中环形队列与RTOS中消息队列有何区别呢?

“环形队列”和“消息队列”在嵌入式领域有应用非常广泛,相信有经验的嵌入式软件工程师对它们都不陌生。
2024-01-26 09:38:55197

已全部加载完成