自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 问答 (1)
  • 收藏
  • 关注

原创 NOMA学习

在发送端,对同一子信道上的不同用户采用功率复用技术进行发送,不同用户的信号功率按照相关的算法进行分配,这样到达接受端每个用户的信号功率都不一样,SIC接收机再根据不同用户信号功率大小按照一定的顺序进行干扰消除,实现正确解调,同时也达到了区分用户的目的。对于User2来说,收到叠加信号时,先进行均衡(即通过信道估计出h2,并对接收信号乘以h2的逆),先解调出User1的信号,随后重构出User1的信号,再从接收信号减去重构的User1信号,然后解调出User2的信号。,子信道之间是正交的。

2023-09-07 09:55:26 2265 1

转载 OFDM(这次必须记住!!!)

其中N为时域离散信号的点数,n为时域离散信号的编号(取值范围为0~N-1),m为频域信号的编号(取值范围为0~N-1),频域信号的点数也为N。这里其实有个隐含的条件,书中一般都没提到,就是作为承载信号的sin(t)和sin(2t),他们需要正交的话,其发送的时机是有严格限定的,即其0点的位置需要同步。在下面的图示中,在[0,2π]的时长内,采用最易懂的幅度调制方式传送信号:sin(t)传送信号a,因此发送a·sin(t),sin(2t)传送信号b,因此发送b·sin(2t)。将在下面的章节进行更多的描述。

2023-08-29 15:26:51 1714

原创 ZYNQ嵌入式学习(5)

不需要了解时序。UART是全双工异步收发的,没有时钟。UART的操作通过配置和模式寄存器控制。UART由独立的接受和发送路径构成。每个路径包含深度为64字节的FIFO。FIFO中断状态为支持轮询或中断方式。轮询方式:不停地读取寄存器看有没有数据。中断方式:只有当接收到串口数据后才打断主进程来接收数据。数据位宽:6/7/8bit停止位:1/1.5/2bit。

2023-03-08 09:15:44 851

原创 ZYNQ-嵌入式学习(4)

若某个引脚检测到中断,且同时这个引脚的中断未被屏蔽,则与门输出高电平,即输出一个中断到GIC,即向GIC发送一个IRQ中断请求。电平类型中断包括低电平触发(-)和高电平触发(+)。边沿类型中断包括上升沿极性(+)和下降沿极性(-)。GIC可接收PS和PL的IRQ,通过中断ID获知是谁发起的请求。INT_MASK寄存器表示MIO的哪个引脚的中断被屏蔽。INT_ANY寄存器针对边沿触发类型的中断。INT_TYPE寄存器表示中断类型。读INT_STAT可获知引脚当前中断状态,即是否有中断产生。

2023-02-13 08:49:29 486

原创 ZYNQ嵌入式学习(3)

EMIO是PS和PL之间的一个接口。EMIO是扩展的MIO,当PS的引脚不够用时,可以通过EMIO来进行扩展,从而使用PL的引脚。不是所有的PS外设都能通过EMIO连接到PL端。如SMC(静态存储器控制器)、Qaud-SPI、USB都不能通过EMIO连接到PL的引脚。

2023-02-12 17:09:39 433

原创 OLSR路由协议学习

优化链路状态路由(Optimized Link State Routing)协议,即OLSR 路由协议是一种平面拓扑的先验式路由协议(主动式路由协议)。节点通过周期性地与自己的邻居节点交换分组信息来完成链路感知和邻居侦测过程,进而建立起自己的拓扑结构。并通过接收拓扑控制分组获知全网的拓扑信息,以此为依据计算出一张从自身节点到达全网各个节点传输路径的路由表。当节点有通信需求时可以通过查询路由表获得所需的路由信息。通过HELLO分组的周期性交互,执行链路检测、邻居发现的功能;通过。

2022-12-23 10:27:58 3780 2

原创 ZYNQ嵌入式学习(2)

例如:要将pin20、25、30改为1(利用屏蔽高16位使用的MASK_DATA×MSW)通过GPIO外设控制PS端LED,通过UART外设打印串口信息,把DDR当作程序运行空间。方法二:利用屏蔽寄存器MASK_DATA_×_MSW/LSW对不需要修改的位进行屏蔽。每个GPIO引脚都可以配置为输入或输出,但Bank0[8:7]只能配置为输出。例如:利用DATA寄存器修改GPIO的输出引脚pin10。...

2022-08-10 08:43:10 279

原创 ZYNQ-嵌入式学习(1)

PS端502引脚只能连接到DDR存储器,剩余可用引脚仅有54个,但是由于外设众多,引脚不够用,因此要借助MIO模块实现引脚的多路复用。外设都通过MIO与外部引脚进行连接,MIO通过编程选择具体哪个外设连接引脚。GPIO的寄存器分为四组,每组称为一个bank,bank0和bank1通过MIO连接到PS的引脚,bank2和bank3通过EMIO连接到PL。(观测器件引脚高低电平,GPIO作为input,如把GPIO通过引脚接到按键上,按键按下后,GPIO可以观测到器件引脚电平)以及简单的。右边方框是器件引脚。.

2022-08-07 15:24:45 1587

原创 NS-2中无线节点的信号传输范围修改

  在NS2中,如果选择使用Propagation/TwoRayGround作为无线信号传输模式,则默认的无线节点的传输范围 transmission range (TX_range)为250m,载波侦听范围physical carrier sensing range (PCS_range)是550m。  通常,载波侦听范围是信号传输范围的2.2倍,如果自己设置的话最好也按照2.2倍来计算设置,比如说30m–>66m等等。  进入到…\ns-allinone-2.29\ns-2.29\tcl\.

2022-05-09 22:45:22 567

原创 蚁群算法研究、基础代码实现及在路由中的应用

蚁群算法研究、基础代码实现及其在路由中的应用前言为何选此题目多目标优化的概念算法原理数学模型算法代码MATLAB运行结果Python运行结果算法在路由中的应用前言为何选此题目笔者简单浏览了一篇关于资源受限无线传感器网络中的多约束路由问题的论文,文中提到,多约束路由问题常常用计算智能方法来解决。而计算智能方法包括神经网络、机器学习、遗传算法、模糊计算、蚁群算法、人工鱼群算法、粒子群算法、免疫算法、禁忌搜索、进化算法、启发式算法、模拟退火算法、混合智能算法等等。笔者本次选用常常在论文和本子中看到的蚁群算

2022-03-20 10:06:34 2296

原创 vmware16.1.2+ubuntu14.04+ns2.35安装

先上软件!!!链接: https://pan.baidu.com/s/1tyjbh6MyjMQdSEwVFPdO7A 提取码: z4cp 复制这段内容后打开百度网盘手机App,操作更方便哦–来自百度网盘超级会员v1的分享vmware16.1.2+ubuntu14.04安装完全参照https://blog.csdn.net/qq_34258344/article/details/101175849即可,此外,ubuntu14.04装机时应该断网,速度会快很多。你可能遇到的问题:密钥失效?百度你

2021-08-04 15:00:54 835

原创 python控制串口

获取电脑中所有的串口号的函数serial_com = serialPortFile.GetCom()# 获取并存储串口号到数组def GetCom(): port_list = list(serial.tools.list_ports.comports()) #通过serial.tools.list_ports.comports()获取所有的串口号之后进行了一步转换,存在一个数组中 #这样,传入serial中才能被识别 print(len(port_list)) .

2021-08-02 16:04:39 1054

原创 组合电路设计、时序电路设计

组合电路设计、时序电路设计组合电路设计数字编码器时序电路设计组合电路设计数字编码器8-3编码器:任何时刻只有一个输入有效。module code_8to3(F,I);output[2:0] F;input[7:0] I;reg[2:0] F;always@(I)case(I) 8'b00000001:F=3'b000; 8'b00000010:F=3'b001; 8'b00000100:F=3'b010; 8'b00001000:F=3'b011; 8'b0001000

2021-07-29 16:40:44 234

原创 Verilog语言设计思想和可综合特性

语言设计思想和可综合特性、组合电路设计Verilog语言设计思想和可综合特性Verilog HDL组合电路设计Verilog语言设计思想和可综合特性8bit计数器:module counter(count,clk,reset)output count;input clk,reset;reg[7:0] count;reg out;always @(posedge clk)if (!reset) count<=0;else if(count==8'b11111111) count&lt

2021-07-25 10:46:57 281

原创 Verilog结构化建模

将来自于不同设计组件的电路合在一起,组成一个更高级的电路。根据所调用子模块的不同抽象级别,可以将模块的结构描述方式分成如下三类:模块级建模:调用用户设计生成的低级子模块对硬件电路结构进行说明。模块由低级模块的实例组成门级建模:调用Verilog内部的基本门级元件对硬件电路结构进行说明。模块由基本门级元件的实例组成开关级建模:调用Verilog内部的基本开关元件对硬件电路的结构进行说明。模块由基本开关级元件的实例组成(Verilog区别于VHDL的重要特点)模块级建模模块调用方式modu.

2021-07-23 17:29:29 1134 1

原创 AODV路由算法

认识帧帧缩写含义RREQ路由请求帧RREP路由应答帧RERR路由错误帧HELLO活跃路由链路检测帧RREQ在两个节点之间的路由有效、通信正常的情况下,AODV路由协议不起作用。只有当源节点S需要向目的节点D发送数据包,但又没有D节点的路由入口时,才会发起路由请求,即发送广播帧RREQ。当RREQ在网络中传播时,中间节点会更新各自到源节点的路由,称之为反向路由。RREQ请求帧中包含源节点以前记录的到目的节点的序列号,但此序列号可能不是最新(最大)

2021-07-19 08:57:18 1544

原创 Verilog行为级建模

Verilog行为级建模过程语句initial语句always语句语句块begin-endfork-join硬件描述语言对于电路设计的语句中最主要的就是进行行为级建模。行为级建模归结起来只有三条语句:赋值语句、条件语句和循环语句。而循环语句不作为行为级建模的主要语句,因此主要只有赋值语句和条件表达式语句。 类别 语句 可综合性 过程语句 initial always √ 语句块

2021-07-18 15:54:59 774

原创 脉冲成形

脉冲成形就是通信原理中数字基带系统一章中介绍的无码间串扰传输特性的设计。在基带系统中,由于收发滤波器和信道特性不理想,导致了信号的码间串扰,即前面码元的时域波形出现很长的拖尾,蔓延到当前码元的抽样时刻,从而对当前码元的判决造成干扰。而如果能做到,在当前码元的抽样时刻,使得前面码元恰好为0,即可做到消除码间干扰。那么如何做到呢?这就要用到所谓脉冲成形技术。无码间串扰的条件:时域条件:转化为频域条件:若频域特性恰好是一个理想矩形低通滤波器,则可实现无码间串扰,这也就是脉冲成形的第一种技术:矩形.

2021-03-28 18:23:32 7908 1

原创 opnet(一)

opnet(一)三层网络层--网络节点层--设备进程层--协议网络编辑器建模流程常用功能网络中如何构建自定义模型节点属性配值三层网络层–网络规化部署网络拓扑结构提供网络编辑器:部署网络结构,无线建模时节点移动轨迹设置,节点属性设置等节点层–设备搭建节点协议栈(按照OSI,从物理层到应用层),实现网络设备的功能提供节点编辑器:搭建协议栈进程层–协议每一层的算法和协议,可以通过编辑进程状态转移图和进程代码来实现提供进程编辑器:绘制状态转移图,对不同状态转移图下调用的函数编写c语言代码网络编

2021-03-09 22:26:43 2776

原创 opnet和matlab的三种交互方式

二者差异opnet:做系统级仿真,更多面向于MAC层-应用层。处理最小单位是包段。matlab:偏向于物理层仿真,搭建从信源到信宿的传播链路,以及调制编码等。处理最小单位是比特。第一种:离线模式opnet中实现调制编码时,并不能实现真正的调制,而是采用调制曲线:采用的某种调制方式在某信噪比下对应的经验误比特率是多少,从而算出实际错误个数。而在matlab中可以用simulink搭建出实际的物理层链路。二者关联时,可以先用matlab搭建出物理层链路后,算出高斯信道/瑞利信道中某个信噪比下对应的误比

2021-02-19 10:44:15 1433

原创 Verilog数据流建模

数据流建模连续赋值语句目标类型显式连续赋值语句(建议使用)隐式连续赋值语句在电路设计过程中,Verilog HDL有三种设计方式:数据流建模、行为级建模、结构型建模。更多采用的是数据流建模和行为级建模。数据流建模就是:连续赋值语句+上一节讲的运算符连续赋值语句目标类型线网类型。标量类型,如 wire a,b;向量类型,如 wire [3:0] a,b;显式连续赋值语句(建议使用)信号定义和assign语句分成两条。<net_declaration><rang

2021-02-05 19:56:13 780

原创 Verilog运算符和表达式及模块

Verilog运算符和表达式及模块运算符和表达式算数操作符关系操作符相等关系操作符逻辑运算符按位操作符归约操作符移位操作符(不常用)条件运算符连接和复制运算符(可代替移位运算符)模块的基本概念运算符和表达式C语言中也有很多运算符,Verilog HDL中的运算符形式和C语言基本相同,但其作用却是非常重大的,代表着电路。算数操作符加、减法:都使用加法电路,减法就是加了一个负数乘法:直接用符号即可使用乘法电路除法、取模:EDA工具支持的不好,但是如果在其工艺库中有除法和取模运算电路就可以用符号

2021-02-04 20:02:16 1223

原创 网络层解析(一):网络层的设计问题

网络层的设计问题网络层的功能网络层的设计问题存储转发数据包交换提供给传输层的服务无连接服务的实现面向连接服务的实现虚电路与数据报网络的比较网络层的功能我们的上一个话题是数据链路层,大家都知道了,数据链路层处理的是一条线路上的问题,有些是点到点问题,有些是广播形式的竞争问题,它具有指定级别的可靠性,以太网和802.11就是链路层协议的例子。那么网络层是干啥的呢?网络层主要处理如何把多条链路结合到网络中,以及如何把网络与网络联结成互联网络,以便我们在两个相隔很远的计算机之间发送数据包。网络层的任务包括找到

2021-01-22 10:00:25 337

原创 多路访问协议(第n次学数据链路层,这次一定要理清!——数据链路层最全面有条理的解析(九))

多路访问协议ALOHA纯ALOHA分槽ALOHA载波侦听多路访问协议(CSMA)坚持/非坚持CSMA带冲突检测的CSMA(CSMA/CD)无冲突协议资源预留协议令牌传递二进制倒计数有限竞争协议自适应数遍历协议无线局域网协议ALOHA这个故事起源于夏威夷。当时的夏威夷还没有一个可运行的电话系统。夏威夷大学的研究员们试图把偏远岛屿上的用户都连接到檀香山的主计算机。使用电缆穿过海底显然不是好办法,于是他们找到了一种用于短程无线电通信的方法,使得所有用户终端共享同一个上行频率给中央计算机发送帧。他们的这个系统

2021-01-21 00:41:38 728 1

原创 如何最简单调整Markdown插入图片大小和居中

居中:在小括号里面的最后加上#pic_center即可居中:[xxxxxxx](https://xxxxxx#pic_center=250x)显示效果:调整大小:在小括号里面的最后加上要调整到的像素大小即可,如**=300x300**;如果要等比例缩放,即只输入宽或高即可,如** =250x*或* =x250:(注意等号前有空格)[xxxxxxx](https://xxxxxx#pic_center =250x)显示效果:...

2021-01-20 16:58:32 1197 1

原创 MAC层的信道分配问题(第n次学数据链路层,这次一定要理清!——数据链路层最全面有条理的解析(八))

MAC层的信道分配问题静态信道分配动态信道分配的假设静态信道分配多用户分配单个信道的传统做法:使用某种多路复用技术(如FDM)将信道容量拆开分给多个用户使用。某个用户都有各自的专用频段。如FM无线电广播。然而当发送方数量很多且不断变化,或流量呈现突发性特点时,可能出现大量的频谱资源被浪费或有用户因带宽不够再到拒绝的情况。静态FDM的性能之差可以通过排队理论计算看清楚:信道容量为C b/s,发送一帧所需要的平均时延为T s/帧,随机到达帧的平均到达率为λ 帧/s,帧长均值1/μ b/帧。每帧的平均发

2021-01-15 17:33:24 1023 2

原创 点对点协议与MAC层协议(第n次学数据链路层,这次一定要理清!——数据链路层最全面有条理的解析(七))

前面我们介绍的基本协议都属于点对点协议,解决了如何两台计算机在点对点链路上发送数据包的问题,而在广播网络中,关键问题是当多方竞争信道的使用权时如何确定谁可以使用信道。这个问题就要依赖介质访问子层(MAC子层)来解决,它主要处理如何让多个计算机共享一个传输信道。在LAN中,MAC子层显得尤为重要,特别是在WLAN中,因为无线本质上就是广播信道。所以在LAN中,数据链路层被分为两层:可以看到,MAC子层位于数据链路层底部,因此本应在学习点对点协议之前学习MAX层,但对我们来说,只有理解了两方参与的协议之

2021-01-15 10:47:44 586

原创 基本数据链路层协议(第n次学数据链路层,这次一定要理清!——数据链路层最全面有条理的解析(六))

数据链路层基本协议有关底层通信模型的基本假设三个单工协议乌托邦式单工协议无错信道上的单工停-等协议有错信道上的单工停-等协议滑动窗口协议(全双工)1位滑动窗口协议回退N协议选择重传协议有关底层通信模型的基本假设假设物理层、数据链路层和网络层都是独立的进程,他们通过来回传递消息进行通信。主机A希望用一个可靠的面向连接的服务向主机B发送一个长数据流,假设A的数据链路层请求数据时,网络层总能立即满足数据链路层的需求。假设主机不会崩溃。三个单工协议乌托邦式单工协议不考虑任何出错情况。数据

2021-01-14 19:30:29 1053 2

原创 数据链路层的流量控制(第n次学数据链路层,这次一定要理清!——数据链路层最全面有条理的解析(五))

数据链路层的流量控制为什么怎么做基于反馈的流量控制基于速率的流量控制为什么如果发送方贼强贼快,接收方接收速度很慢,那么发送来的数据可能会把接收方淹没,发送方手忙脚乱,只能丢弃一些帧。所以要进行流量控制。怎么做基于反馈的流量控制接收方给发送方反馈信息,告诉它现在可以发多少数据,或者告诉它自己情况怎么样。如果没有接收方的许可,发送方禁止继续发送帧。这种方法很常见。我们将在后面详细讨论这些细节。基于速率的流量控制利用内置机制,限制发送方的速率,而无需接收方的反馈,仅用于传输层。这儿就不讨论了。

2021-01-11 10:08:45 346

原创 数据链路层的差错控制(第n次学数据链路层,这次一定要理清!——数据链路层最全面有条理的解析(四))

数据链路层的差错控制适用服务可能的情况每一帧都到达有一帧丢了确认帧丢了适用服务之前,我们介绍了一般情况下数据链路层给网络层提供的三种服务,对于无确认的无连接服务,我们不管发出去的帧是否正确抵达目标主机,发送方只要把出境帧留存就可以了,但对于可靠的面向连接的服务,就需要采用差错控制手段,确保发出的每个帧都会被真正接收到并只接受一次。可能的情况每一帧都到达接收方发回一些特殊的控制帧,对所接收到的帧进行肯定(代表正确接收)或否定(代表出现错误需要重传)。有一帧丢了如果一个帧丢了,接收方是永远不会做出

2021-01-11 09:39:24 479

原创 数据链路层的成帧(第n次学数据链路层,这次一定要理清!——数据链路层最全面有条理的解析(三))

数据链路层的成帧成帧目的成帧方法字节计数法字节填充的标志字节法比特填充的标志比特法物理层编码违禁法成帧目的为了使接收方的数据链路层更容易的将物理层传来的原始比特流进行拆分,拆分为发送方的帧。应当做到:接收方容易发现新帧的开始,同时使用尽可能少的信道带宽。成帧方法字节计数法利用头部的一个字段来标识该帧中的字符数。问题:只要有一个头部错误,接收方就会失去同步。因此很少使用。字节填充的标志字节法让每一帧用某种特殊的字节作为开始和结束的标志。两个连续的FLAG代表一帧结束,下一帧开始。如果真正

2021-01-11 09:20:01 777

原创 数据链路层提供给网络层的服务(第n次学数据链路层,这次一定要理清!——数据链路层最全面有条理的解析(二))

数据链路层提供给网络层的服务服务核心三种一般服务无确认的无连接服务有确认的无连接服务有确认的有连接服务服务核心服务核心:将数据从源主机的网络层传输到目的主机的网络层。三种一般服务一般情况下提供的三种服务:无确认的无连接服务目标主机不对源主机发来的帧进行确认。无需事先建立连接。使用场合:错误率很低,差错控制可交由上层完成实时性要求大于准确性要求的实时通信,如语音传输有确认的无连接服务无需事先建立连接,但源主机发送的每一帧都要单独确认。若一个帧在指定时间间隔内没有收到目的主机发来

2021-01-10 18:40:32 2964

原创 数据链路层功能介绍(第n次学数据链路层,这次一定要理清!——数据链路层最全面有条理的解析(一))

数据链路层功能介绍物理层为数据链路层提供可靠的物理媒介服务,数据链路层为网络层提供将源自网络层来的数据可靠地传输到相邻节点的目标主机网络层的服务。为了达到上面的目的,数据链路层必须具有以下功能:将网络层的包封装为帧由于物理层进行的是比特流传输,无法进行差错控制等,所以保证可靠传输的措施必须在数据链路层实现,因此在数据链路层要实现成帧,即采用帧格式传输,且有相应的帧同步技术。差错控制为了控制帧在物理信道上的无差错传输,需要处理传输差错。流量控制数据链路层需要调节发送速率以使之与接收方相匹

2021-01-10 16:59:16 198 2

原创 巧得cos平方的均值——妙啊!

巧得cos平方的均值——妙啊!cos平方的平均值应该等于sin平方的平均值,而这两个相加=1,因此分别为1/2。

2020-11-08 12:28:16 5316 2

原创 Verilog语言要素 数据类型

Verilog语言要素 数据类型verilog的四种逻辑状态整数及其表示实数及其表示数据类型连线型寄存器型存储器型(RAM)抽象数据类型verilog的四种逻辑状态状态含义0低电平,逻辑01高电平,逻辑1x或X不确定或未知的逻辑状态z或Z高阻态其中X如:一个非门有两个输入时Z如:存储器的片选信号为未被选中时整数及其表示+/- <size>’<base_format><number>数制基数符号合法

2020-11-03 22:58:48 1124 1

转载 小数的二进制表示

【例】把(0.8125)转换为二进制小数。解:

2020-11-03 18:00:46 244 1

原创 区分verilog中的设计和验证语言

verilog中的设计和验证语言设计过程中--程序设计语言(可综合的语言)测试验证--验证语言(不可综合的语言)设计过程中–程序设计语言(可综合的语言)只有30%的代码可用于设计——可产生电路测试验证–验证语言(不可综合的语言)另外70%的代码——用于工程仿真,不可用于设计学习过程中,将设计和测试验证语言分开学习。...

2020-11-03 16:45:47 291

原创 Verilog语法规则

Verilog语法规则模块声明类参数定义信号类型多语句定义比较判断和分支判断任务定义连续赋值always模块赋值符号:=和<=(小等号)模块声明类module at7(<端口信号列表>...)<逻辑代码>endmoduleFPGA中常常定义各种模块,不同模块之间有接口,类似C语言中的不同函数,有不同的输入输出变量。参数定义parameter用于申明一些常量,便于模块的移植或升级时的修改。信号类型wire:不同寄存器之间的连线reg:一个寄存器,可以进行赋值

2020-10-28 15:11:22 1059

原创 FPGA基本概念

FPGA概念和性能FPGA(现场可编程逻辑阵列),是可反复编程的数字电路。ASIC是专用集成电路,一旦设定完成就无法更改功能和性能。FPGA适用于小批量、定制化、实时性要求高的应用。峰值性能:FPGA<GPU灵活性:FPGA>>GPU功耗:GPU>>FPGAFPGA设计语言Verilog与VHDLVHDL语法严谨Verilog语法相对自由,类似C语言FPGA厂商Intel和Xilinx...

2020-10-23 16:24:20 975

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除