cuda7parallel
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
40、嵌入式 Linux 实时性能优化与测量
本文深入探讨了嵌入式Linux系统的实时性能优化技术与测量方法。涵盖了可抢占内核锁、PREEMPT_RT补丁应用、高分辨率定时器配置、避免页面错误、中断屏蔽等关键优化策略,并介绍了cyclictest和Ftrace等核心测量工具的使用方法。通过流程图和效果对比表格,系统化展示了优化流程与不同配置下的性能差异,同时指出了硬件兼容性、性能开销和代码优化等注意事项,最后展望了实时性能优化的未来发展趋势,为嵌入式开发者提供了全面的实时性调优指南。原创 2025-12-17 08:49:47 · 2 阅读 · 0 评论 -
39、Linux性能分析与实时编程全解析
本文深入解析了Linux系统下的性能分析工具与实时编程关键技术。从top、perf、strace到Ftrace、Valgrind等性能分析工具的使用场景与注意事项,全面覆盖系统级与应用级性能调优方法。在实时编程部分,详细阐述了软实时与硬实时任务的区别、调度策略、优先级反转、抢占延迟等核心概念,并介绍了PREEMPT_RT补丁、高分辨率定时器、线程化中断、内存锁定等提升系统确定性的关键技术。结合cyclictest和Ftrace进行调度延迟测量,为构建高效、可靠的Linux实时系统提供了完整的技术指南。原创 2025-12-16 13:36:09 · 1 阅读 · 0 评论 -
38、Linux 系统中的事件跟踪工具详解
本文深入介绍了Linux系统中的多种事件跟踪与性能分析工具,包括Ftrace、LTTng、Valgrind(Callgrind和Helgrind)以及strace。详细阐述了各工具的功能、使用方法、适用场景及配置要点,并通过对比表格和选择流程图帮助读者根据实际问题快速选定合适工具。结合综合案例分析和最佳实践建议,为Linux系统开发、调试与性能优化提供了全面的指导。原创 2025-12-15 12:34:35 · 3 阅读 · 0 评论 -
37、Linux系统性能分析工具指南
本文介绍了多种Linux系统性能分析工具,包括top、简易性能分析器、perf、OProfile和gprof,详细阐述了它们的使用方法、适用场景及配置要求。通过对比各工具的特点,并结合实际示例和流程图,帮助开发者快速定位系统瓶颈、分析应用程序热点并进行优化。同时强调了调试符号、采样频率和系统修改对性能测量的影响,为Linux系统性能调优提供了全面指南。原创 2025-12-14 12:14:34 · 1 阅读 · 0 评论 -
36、调试与性能分析指南
本文详细介绍了Linux内核调试与性能分析的实用方法和工具。内容涵盖使用GDB和kdb进行内核调试的完整流程,包括串口配置、断点设置、模块调试及Oops信息分析;同时深入讲解了多种性能分析工具的使用,如top、perf、Ftrace、LTTng、Valgrind和strace,并提供了针对不同场景的工具选择建议。通过实际操作示例和流程图,帮助开发者高效定位问题,优化系统性能。原创 2025-12-13 10:47:39 · 4 阅读 · 0 评论 -
35、GDB调试全解析:从基础命令到内核调试
本文全面解析了GDB调试工具的使用方法,涵盖从基础命令到高级应用场景。内容包括GDB命令文件配置、断点管理、程序执行控制、本地与远程调试、即时调试(attach)、fork与多线程调试策略、核心文件生成与分析、多种用户界面(TUI、DDD、Eclipse CDT)的使用,以及内核级调试工具kgdb的配置与操作。文章还详细介绍了在嵌入式开发环境如Buildroot和Yocto中如何集成GDB并进行高效调试,帮助开发者快速定位和解决复杂问题。原创 2025-12-12 11:38:07 · 3 阅读 · 0 评论 -
34、内存管理与GDB调试全解析
本文深入解析了Linux系统中的内存管理机制与GDB调试技术。涵盖内存过度提交策略、内存耗尽(OOM)问题及其应对方法,包括调整overcommit参数和控制OOM Killer行为。同时详细介绍了GDB调试的准备工作、本地与远程调试流程,重点讲解了使用gdbserver进行嵌入式调试的配置与操作,涉及Yocto Project和Buildroot环境下的设置方法。文章还提供了调试中常见问题的解决方案及完整调试流程图,帮助开发者高效定位和修复程序缺陷,提升系统稳定性与开发效率。原创 2025-12-11 12:06:07 · 1 阅读 · 0 评论 -
33、深入理解内存管理:交换、映射与泄漏检测
本文深入探讨了Linux系统中的内存管理机制,涵盖交换空间与zram压缩内存的使用、mmap映射内存的多种应用场景(包括私有内存、共享内存和设备内存访问),并详细分析了如何准确衡量应用程序的内存消耗。文章介绍了free、ps、top等基础工具,以及smem、ps_mem、procrank等更精确的内存统计工具,并重点讲解了mtrace和Valgrind在内存泄漏检测中的应用。通过流程图、对比表格和最佳实践,帮助开发者全面理解内存管理的核心概念,识别常见误区,提升系统性能与稳定性。原创 2025-12-10 12:04:53 · 2 阅读 · 0 评论 -
32、实时策略与内存管理全解析
本文深入解析了Linux系统中的实时调度策略与内存管理机制。内容涵盖实时策略类型(SCHED_FIFO和SCHED_RR)、优先级配置、CPU时间预留及看门狗防护;详细分析了内核与用户空间的内存布局、延迟分配机制、mmap映射、交换机制以及应用程序内存使用监控方法。同时介绍了如何识别内存泄漏、处理内存耗尽情况,并提供了多种实用工具如valgrind、mtrace和ps命令的使用示例,帮助开发者优化系统性能与稳定性。原创 2025-12-09 15:49:16 · 1 阅读 · 0 评论 -
31、多线程编程全解析
本文全面解析了多线程编程的核心概念与实践技术,涵盖线程的创建与终止、线程间通信、同步机制(如互斥锁和条件变量)、调度策略(包括SCHED_NORMAL、SCHED_BATCH、SCHED_IDLE及实时调度),并探讨了死锁、优先级反转等常见问题及其解决方案。文章还介绍了多线程程序的编译方法、性能优化建议、典型错误处理以及未来发展趋势,结合Android系统设计案例和mermaid流程图,帮助开发者深入理解如何构建高效、稳定的多线程应用程序。原创 2025-12-08 12:15:54 · 1 阅读 · 0 评论 -
30、Linux进程管理与进程间通信全解析
本文深入解析了Linux系统中的进程管理与进程间通信(IPC)机制。内容涵盖进程的创建、终止、运行不同程序的方法,详细介绍了基于消息的IPC(如Unix套接字、FIFOs、POSIX消息队列)和基于共享内存的IPC技术,并结合代码示例和实际应用场景进行说明。文章还分析了各类IPC方式的性能特点,提供了避免僵尸进程的最佳实践,并展望了未来发展趋势,帮助开发者更好地掌握Linux多进程编程的核心技术。原创 2025-12-07 09:22:24 · 1 阅读 · 0 评论 -
29、Linux 系统的电源管理与进程线程机制解析
本文深入解析了Linux系统的电源管理机制与进程线程模型。涵盖CPUIdle驱动、无滴答操作、外设运行时电源管理、系统睡眠状态(S0-S4)及唤醒事件处理,同时探讨了进程与线程的设计选择、资源隔离与共享差异,以及分时和实时调度策略。结合BeagleBone Black实例,展示了各项机制在实际中的应用,帮助开发者优化功耗与系统性能,适用于嵌入式系统开发与系统级调优。原创 2025-12-06 12:43:08 · 1 阅读 · 0 评论 -
28、嵌入式Linux的看门狗与电源管理
本文深入探讨了嵌入式Linux系统中的看门狗机制与电源管理策略。通过systemd实现服务级和系统级看门狗监控,确保系统稳定性;并详细介绍了CPU频率调节、空闲状态选择、外设关闭及系统睡眠等节能技术,结合BeagleBone Black实例进行功耗测量与优化,提供了从硬件到软件的综合电源管理方案,适用于电池供电或低功耗需求的嵌入式设备开发。原创 2025-12-05 12:07:25 · 1 阅读 · 0 评论 -
27、Linux系统初始化管理:从System V init到systemd
本文深入探讨了Linux系统初始化管理的演变,从传统的System V init到现代的systemd。详细解析了inittab配置、init.d脚本机制、运行级别控制以及如何添加自定义服务。随后介绍了systemd的核心概念,包括单元(unit)、服务(service)和目标(target),并对比了systemd在配置简化、依赖管理、并行启动等方面的优势。文章还涵盖了在Yocto Project和Buildroot中集成systemd的方法,并演示了如何创建和管理自定义systemd服务,全面展示了Li原创 2025-12-04 15:32:09 · 1 阅读 · 0 评论 -
26、Linux设备驱动与初始化程序详解
本文详细解析了Linux设备驱动的初始化机制,涵盖硬件配置发现、设备树与平台数据的使用、驱动与硬件的匹配过程,并深入介绍了内核启动后的init程序工作原理。对比了BusyBox init、System V init和systemd三种主流init系统的特点与适用场景,为嵌入式开发和系统构建提供了选型建议。通过流程图直观展示了init程序的启动流程,帮助读者全面理解Linux系统启动与设备驱动加载的核心机制。原创 2025-12-03 14:51:26 · 1 阅读 · 0 评论 -
25、嵌入式设备硬件控制与驱动开发全解析
本文深入解析了嵌入式设备中LED、I2C和SPI等硬件接口的控制方法,详细介绍了Linux内核设备驱动的编写、编译与加载流程。涵盖LED子系统配置、I2C/SPI用户空间工具使用、字符驱动接口设计(如sysfs、ioctl、mmap等),并通过实际案例分析和常见问题解决方案,帮助开发者掌握从硬件控制到驱动开发的核心技术。同时提供了模块化开发、编译及调试的完整实践指南,适用于BeagleBone Black等典型嵌入式平台。原创 2025-12-02 13:06:45 · 1 阅读 · 0 评论 -
24、深入了解Linux设备驱动与网络设备
本文深入探讨了Linux系统中的设备驱动与网络设备管理,涵盖网络设备的命名与访问机制、通过/proc和/sys文件系统查询驱动信息的方法、寻找合适设备驱动的途径,以及如何在用户空间利用sysfs接口控制GPIO等硬件。文章还提供了详细的代码示例和流程图,帮助开发者更好地理解和掌握Linux设备驱动的运行原理与实际操作,适用于嵌入式Linux开发与系统级调试场景。原创 2025-12-01 16:10:18 · 1 阅读 · 0 评论 -
23、使用Mender进行OTA更新及设备驱动接口详解
本文详细介绍了如何使用Mender进行嵌入式设备的OTA(Over The Air)更新,涵盖环境搭建、镜像构建、部署及Web界面操作流程,并深入解析了Linux系统中设备驱动的工作原理。内容包括字符设备、块设备和网络设备三类主要驱动的特性与应用,探讨了设备节点、主次编号、sysfs接口等核心概念,同时提供了用户空间和内核空间设备驱动的开发示例。此外,还介绍了硬件配置发现方法与常见工具,帮助开发者全面掌握嵌入式系统中软件更新与硬件资源管理的关键技术。原创 2025-11-30 16:34:44 · 1 阅读 · 0 评论 -
22、软件更新机制全解析:从理论到实践
本文深入解析了软件更新的三大核心机制:对称镜像更新、非对称镜像更新和原子文件更新,详细阐述了各自的工作原理、优缺点及适用场景。同时介绍了OTA更新的技术实现与安全要求,并通过Mender在Yocto项目中的实际操作示例,展示了本地更新的完整流程。文章还探讨了未来软件更新机制的发展趋势,包括更高效的算法、更强的安全性和智能化管理,为嵌入式设备和物联网系统的持续集成与远程维护提供了全面的技术参考。原创 2025-11-29 12:46:29 · 1 阅读 · 0 评论 -
21、嵌入式系统文件系统选择与软件更新全解析
本文深入解析了嵌入式系统中文件系统的选型策略,涵盖NOR、NAND和eMMC等存储类型的适用文件系统,并详细探讨了软件更新的必要性与实现方式。文章重点介绍了本地更新、远程更新和无线(OTA)更新的流程与优劣,结合Mender平台演示了实际操作步骤。同时,从健壮性、故障安全和安全性三个方面系统阐述了可靠更新机制的设计原则,包括A/B镜像更新、引导计数、看门狗和安全启动等关键技术,为物联网时代嵌入式设备的高效管理和持续维护提供了全面解决方案。原创 2025-11-28 13:27:37 · 1 阅读 · 0 评论 -
20、嵌入式系统文件系统全解析
本文深入解析了嵌入式系统中常用的多种文件系统,包括UBIFS、Ext4、F2FS、FAT系列、squashfs和tmpfs,详细介绍了它们的特性、适用场景、创建与挂载方法,并通过对比表格和决策流程图帮助开发者根据需求选择合适的文件系统。同时探讨了Flashbench工具使用、discard/TRIM功能优化、文件系统损坏处理及根文件系统只读化等关键技术,旨在提升嵌入式系统的性能、稳定性和数据安全性。原创 2025-11-27 12:23:20 · 0 阅读 · 0 评论 -
19、闪存存储系统:原理、文件系统及操作指南
本文深入探讨了闪存存储系统的原理、常用文件系统及其操作指南。详细介绍了mtdblock、MMC块驱动等关键设备驱动,分析了JFFS2、YAFFS2和UBIFS三种主流闪存文件系统的工作机制、性能特点及适用场景,并阐述了UBI在坏块管理和损耗均衡中的重要作用。文章还提供了各文件系统的创建、挂载与部署实例,对比了不同方案的优劣,并通过流程图辅助选择合适的文件系统,为嵌入式开发中闪存存储的设计与实现提供了全面指导。原创 2025-11-26 11:48:08 · 0 阅读 · 0 评论 -
18、闪存技术全解析:从NAND Flash到MTD设备
本文深入解析了NAND Flash存储技术的基本原理,涵盖SLC、MLC、TLC单元结构及其可靠性差异,并介绍了ECC纠错机制与OOB区域的使用。文章详细阐述了托管闪存如SD卡、eMMC、CF卡、USB闪存和UFS的技术特点及应用场景。进一步讲解了引导加载程序(如U-Boot)如何访问不同类型的闪存,以及Linux系统中MTD子系统的架构、分区方式和字符/块设备驱动。结合mtd-utils工具的使用示例,展示了闪存擦除、读写、坏块管理等操作。同时介绍了JFFS2、YAFFS2和UBI/UBIFS等专为闪存设原创 2025-11-25 12:53:31 · 0 阅读 · 0 评论 -
17、嵌入式系统开发:BitBake、存储策略与相关技术详解
本文深入探讨了嵌入式系统开发中的核心构建工具BitBake及其配方文件机制,涵盖.bb、.bbappend、.inc、.bbclass和.conf等元数据类型,并通过实例演示如何创建自定义软件包和镜像。文章还详细介绍了Yocto Project中的镜像定制方法、SDK生成流程以及许可证审核机制。在存储策略方面,系统分析了NOR、NAND和托管闪存(如eMMC、SD卡)的技术特点,对比了JFFS2、UBIFS、YAFFS、ext4、SquashFS等文件系统的适用场景,提出了针对不同需求的文件系统选择建议,包原创 2025-11-24 15:41:33 · 0 阅读 · 0 评论 -
16、嵌入式系统开发:Buildroot 与 Yocto Project 实践指南
本文介绍了在嵌入式系统开发中使用 Buildroot 和 Yocto Project 的实践方法。涵盖了在 Buildroot 中通过覆盖层或创建自定义包的方式集成程序,以及 Yocto Project 的安装、配置、构建流程和自定义镜像与包的创建。同时讲解了 Yocto 的层机制、工作流程及许可证合规性管理,帮助开发者高效构建定制化嵌入式 Linux 系统。原创 2025-11-23 10:49:53 · 0 阅读 · 0 评论 -
15、嵌入式Linux构建系统:Buildroot与Yocto Project详解
本文详细介绍了嵌入式Linux构建系统的挑战与解决方案,重点对比了Buildroot和Yocto Project两大主流构建系统。内容涵盖两者的发展历程、安装配置、构建流程、自定义BSP创建及实际运行测试,并分析了各自的优缺点和适用场景,帮助开发者根据项目需求选择合适的构建工具,提升开发效率与系统可维护性。原创 2025-11-22 13:23:36 · 0 阅读 · 0 评论 -
14、Linux系统配置与网络挂载全攻略
本文详细介绍了Linux系统配置与网络挂载的完整流程,涵盖用户账户添加、设备节点管理(devtmpfs/mdev/udev)、静态与动态网络配置、glibc网络组件设置、使用设备表创建ext2等文件系统映像,并深入讲解了通过NFS挂载根文件系统、TFTP加载内核以及在QEMU和BeagleBone Black上进行测试的方法。同时总结了常见问题如文件权限混乱、防火墙阻塞TFTP等注意事项,为嵌入式Linux开发提供了全面的实践指南。原创 2025-11-21 14:22:15 · 0 阅读 · 0 评论 -
13、Linux文件系统挂载与初始化全解析
本文深入解析了Linux文件系统的挂载机制与系统初始化全过程,涵盖mount命令使用、根文件系统传输方式(initramfs、磁盘镜像、NFS)、initramfs创建与启动流程、proc等伪文件系统挂载、内核模块安装、init程序配置、守护进程启动及用户账户安全管理。结合QEMU和BeagleBone Black实例,详细展示了嵌入式环境下的系统启动与优化策略,并提供常见问题解决方案与生产环境优化建议,适用于嵌入式开发与系统运维人员。原创 2025-11-20 16:55:13 · 0 阅读 · 0 评论 -
12、嵌入式系统根文件系统构建指南
本文详细介绍了嵌入式系统中根文件系统的构建过程,涵盖文件所有权与权限管理、核心程序(如init和shell)的选择与配置、BusyBox与ToyBox的对比及使用方法、共享库的复制与优化、符号表剥离以减小体积、设备节点的创建,以及proc和sysfs伪文件系统的功能与挂载。文章还提供了构建过程中的注意事项、工具与库的优缺点对比及优化建议,帮助开发者高效构建稳定、精简的根文件系统。原创 2025-11-19 14:43:50 · 0 阅读 · 0 评论 -
11、移植 Linux 到新开发板及构建根文件系统全解析
本文详细解析了将Linux系统移植到新开发板的全过程,涵盖设备树创建、板级兼容性设置及内核配置等内容。同时,全面介绍了构建嵌入式根文件系统的关键步骤,包括目录结构规划、必要组件添加、文件权限管理、init程序选择、用户账户配置、设备节点动态管理以及网络配置等,并提供了SD卡和NFS等多种根文件系统传输方式。通过本博文,开发者可掌握定制化嵌入式Linux系统的核心技术,为各类硬件平台搭建奠定基础。原创 2025-11-18 15:26:51 · 1 阅读 · 0 评论 -
10、Linux内核编译与启动全解析
本文深入解析了Linux内核的编译与启动全过程,涵盖内核模块的作用、Kbuild构建系统、内核映像生成、设备树编译、模块管理、清理操作及在BeagleBone Black和QEMU平台上的实际启动方法。详细分析了内核崩溃的常见原因,如无法挂载根文件系统,并介绍了早期用户空间的过渡机制。同时提供了内核命令行参数、日志级别控制、启动优化技巧等内容,辅以流程图和实战命令,帮助开发者系统掌握内核定制、调试与性能优化的关键技术。原创 2025-11-17 14:58:04 · 0 阅读 · 0 评论 -
9、Linux内核选择与构建全攻略
本文详细介绍了Linux内核的选择、获取、配置与构建全过程,涵盖内核开发周期、稳定与长期支持版本的区别、供应商支持、许可证说明及Kconfig配置机制。同时提供了内核构建流程图、常见问题解决方法、定制技巧和未来发展趋势,帮助开发者高效构建适合项目的Linux内核。原创 2025-11-16 14:23:35 · 0 阅读 · 0 评论 -
8、Linux 启动与内核配置全解析
本文深入解析了Linux系统的启动流程与内核配置,涵盖U-Boot和Barebox引导加载程序的使用与移植,详细介绍了从开发板初始化到内核启动的全过程。内容包括U-Boot脚本自动化、Falcon模式加速启动、内核选择与构建、设备树应用以及将Linux移植到新硬件的步骤与注意事项,适用于嵌入式开发者掌握系统底层启动机制。原创 2025-11-15 09:09:02 · 0 阅读 · 0 评论 -
7、嵌入式系统设备树与U-Boot使用指南
本文详细介绍了嵌入式系统中设备树与U-Boot的使用方法,涵盖设备树的分层结构与包含机制、DTC编译流程、U-Boot的获取、构建与安装步骤,以及镜像加载、环境变量配置和常见问题解决方法。通过BeagleBone Black实例演示了从源码编译到SD卡启动的完整流程,并分析了U-Boot命令行操作注意事项与镜像处理机制,为嵌入式开发者提供了系统性的实践指南。原创 2025-11-14 10:34:03 · 0 阅读 · 0 评论 -
6、深入了解嵌入式系统引导加载程序
本文深入探讨了嵌入式Linux系统中引导加载程序的核心作用与多阶段引导流程,详细解析了从上电复位到内核启动的全过程。内容涵盖传统NOR闪存引导、多阶段加载(ROM→SPL→TPL)、UEFI固件引导机制,以及设备树的工作原理和结构。同时介绍了U-Boot、Barebox等主流引导加载程序的特点与使用方法,并提供了定制化配置和烧录实例。文章旨在帮助开发者理解引导机制、选择合适的引导方案,并掌握关键调试与移植技能。原创 2025-11-13 09:37:57 · 0 阅读 · 0 评论 -
5、嵌入式开发中的库与交叉编译全解析
本文深入解析了嵌入式开发中的静态库与共享库原理及使用场景,详细介绍了交叉编译的流程与常见问题,涵盖从工具链构建、Autotools配置到SQLite实例编译的全过程。文章还探讨了包管理、版本控制机制(如soname)以及构建系统的选择建议,并强调使用Buildroot或Yocto等自动化工具提升开发效率的重要性,为嵌入式Linux系统开发提供了全面的技术指导。原创 2025-11-12 14:54:41 · 0 阅读 · 0 评论 -
4、嵌入式开发工具链的选择与构建指南
本文详细介绍了嵌入式开发中工具链的选择与构建方法,涵盖预构建工具链、自定义构建流程,并以crosstool-ng为例演示了为BeagleBone Black和QEMU目标构建交叉编译工具链的全过程。文章深入剖析了工具链组成、交叉编译器配置、sysroot结构、C库组件及静态与动态链接的区别,提供了配置最佳实践和常见问题解决方案,帮助开发者高效搭建可靠的嵌入式开发环境。原创 2025-11-11 11:36:59 · 0 阅读 · 0 评论 -
3、嵌入式开发中的QEMU与工具链详解
本文详细介绍了嵌入式Linux开发中QEMU模拟器的使用方法及其在开发测试中的作用,深入探讨了工具链的类型、构建依据及核心组件,包括Binutils、GCC和C库的选择策略。文章还分析了影响工具链选择的关键因素,如CPU架构、字节序、浮点支持和ABI,并结合实际应用场景给出了C库选型建议。最后展望了嵌入式开发未来趋势,强调了自动化构建工具与高效编译技术的重要性,为开发者提供了从理论到实践的全面指导。原创 2025-11-10 14:00:07 · 0 阅读 · 0 评论 -
2、嵌入式 Linux 开发全解析
本文全面解析了嵌入式Linux开发的关键方面,涵盖操作系统适用性、开源参与者、项目生命周期、四大核心要素(工具链、引导加载程序、内核、根文件系统)、开源许可证类型及其影响、硬件要求与选择考量,并结合BeagleBone Black和QEMU实例进行说明。同时探讨了开发中的风险管理、应用优势及未来趋势,如物联网、人工智能融合与安全性增强,为开发者提供系统性的指导与实践参考。原创 2025-11-09 16:39:02 · 0 阅读 · 0 评论 -
1、嵌入式 Linux 编程入门指南
本文是一份嵌入式Linux编程的入门指南,全面介绍了从开发环境搭建到系统部署与调试的完整流程。内容涵盖工具链构建、引导加载程序配置、内核选择与裁剪、根文件系统创建、软件更新策略、电源管理、多线程与内存管理等核心主题,并结合QEMU和BeagleBone Black等目标平台提供实践指导。文章还提供了C语言读取传感器数据的代码示例,常见问题解决方案以及使用GDB和Valgrind进行调试与性能优化的方法,帮助开发者掌握嵌入式Linux系统的开发技能,适用于物联网、工业控制及智能设备等领域。原创 2025-11-08 10:54:04 · 0 阅读 · 0 评论
分享