
AUTOSAR
文章平均质量分 76
grey_csdn
这个作者很懒,什么都没留下…
展开
-
1285_把AUTOSAR函数以及变量等定义的宏用脚本展开以提高可读性
全部学习汇总: https://github.com/GreyZhang/hack_autosarAUTOSAR的代码去阅读的时候,习惯了非AUTOSAR代码风格的人可能会觉得不适应。其中很大一个原因可能是编译器部分要求的一部分抽象处理导致。比如,上面就是一部分定义的典型代表。其实,我觉得如果我们所用的代码阅读工具或者代码编写工具本身的语义分析很强或者很弱,这些都不是什么问题。如果强到了可以为我们自动处理全部,其实我们今天的问题就解决了。而语义分析弱的,甚至语法提示都不够的,可能会因此而获取更多的信息辅助代原创 2022-06-29 21:38:31 · 2013 阅读 · 0 评论 -
1110_AUTOSAR_SWS_ADCDriver_学习笔记2
AUTOSAR_SWS_ADCDriver_学习笔记2Grey全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!AUTOSAR_SWS_ADCDriver_学习笔记2摘录与批注ADC的状态机是针对于某一个组的而不是针对于一个模块的。每一个ADC模块支持一种或者多种功耗模式,全功耗模式应该是启动之后的默认模式。文件版本检查是兼容性检查的最基本操作。从这原创 2022-01-29 21:46:20 · 1154 阅读 · 0 评论 -
1108_AUTOSAR_SWS_ADCDriver_学习笔记1
AUTOSAR_SWS_ADCDriver_学习笔记1Grey全部学习汇总: https://github.com/GreyZhang/hack_autosarAUTOSAR_SWS_ADCDriver_学习笔记1摘录与批注首先了解一下SWS是啥意思,应该是软件详细说明的意思。这里有一个模块依赖的章节,可以参考这个梳理全部MCAL的依赖关系后续作为测试的依据。一个ADC组应该属于同一个硬件单元。通道组优先级的功能可以是软件方面实现的,也可以是硬件方面实现的。 这是原创 2022-01-29 20:48:37 · 1902 阅读 · 0 评论 -
1105_AUTOSAR_SWS_IOHardwareAbstraction_学习笔记3
AUTOSAR_SWS_IOHardwareAbstraction_学习笔记3Grey全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!AUTOSAR_SWS_IOHardwareAbstraction_学习笔记3摘录与批注软件组件的功能诊断是指可以通过DCM控制和读取每一个实现的ECU信号。通过DCM实现的诊断接口中集中诊断行为如下: 解锁信号,之后信号由E原创 2022-01-27 23:20:25 · 489 阅读 · 0 评论 -
1104_AUTOSAR_SWS_IOHardwareAbstraction_学习笔记2
AUTOSAR_SWS_IOHardwareAbstraction_学习笔记2Grey全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!AUTOSAR_SWS_IOHardwareAbstraction_学习笔记2摘录与批注ECU信号都有一个age属性,主要用来配置信号的有效期。 针对输入信号,如果age的数值为0代表信号必须从硬件直接读取。 针对输出信号,如果a原创 2022-01-27 23:05:45 · 734 阅读 · 0 评论 -
1103_AUTOSAR_SWS_IOHardwareAbstraction_学习笔记1
AUTOSAR_SWS_IOHardwareAbstraction_学习笔记1Grey全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!AUTOSAR_SWS_IOHardwareAbstraction_学习笔记1摘录与批注IO硬件抽象层并不是一个标准化的模块,而是为了能够对接其他模块而出现的。callback的功能是为了通知其他的模块。 callout则是为原创 2022-01-27 22:35:58 · 1095 阅读 · 0 评论 -
1102_AUTOSAR_SRS_SPIHandlerDriver_学习笔记
AUTOSAR_SRS_SPIHandlerDriver_学习笔记Grey全部学习汇总: https://github.com/GreyZhang/hack_autosarAUTOSAR_SRS_SPIHandlerDriver_学习笔记摘录与批注多次听到SPI异步传输,究竟是一个什么用法,这一次正好了解一下。这几个术语的理解跟我之前自己望文生义理解的还是有一点点差异。 通道:这是一个软件的概念而不是一个硬件的概念,从描述看,一个通道表征的是一组配置属性以及使用的buffer原创 2022-01-27 22:20:56 · 1091 阅读 · 0 评论 -
1101_AUTOSAR_SRS_SPALGeneral_学习笔记
AUTOSAR_SRS_SPALGeneral_学习笔记Grey全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!AUTOSAR_SRS_SPALGeneral_学习笔记摘录与批注首先明确一下SPAL的概念:标准外设抽象层。又出来一个系统驱动的概念,MCU的驱动以及GPT的驱动都在其中。 之前看到的文档说,其他没有说明的模块驱动属于MCU驱动,当时还以为Ram原创 2022-01-27 21:58:06 · 688 阅读 · 0 评论 -
1100_AUTOSAR_SRS_PWMDriver_学习笔记
AUTOSAR_SRS_PWMDriver_学习笔记Grey全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!AUTOSAR_SRS_PWMDriver_学习笔记摘录与批注看上去就是很普通的PW的功能设计。占空比的设置接口,已经固定了传入的数据类型。信号的每一个边沿都可以分配通知。 又提到了ADC触发。 或许,关于ADC触发的功能,PWM已经OCU就是原创 2022-01-26 21:44:01 · 670 阅读 · 0 评论 -
1099_AUTOSAR_SRS_PortDriver_学习笔记
AUTOSAR_SRS_PortDriver_学习笔记Grey全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!AUTOSAR_SRS_PortDriver_学习笔记摘录与批注各种管脚功能属性的配置选择,为ADC、PWM等各种功能提供支持。几种强制的功能中,初始值的处理之前我基本是忽略的,其他的基本都是用过的。 可以选择的功能之中,列出来的倒是基本全都用过了。原创 2022-01-26 21:31:21 · 443 阅读 · 0 评论 -
1095_AUTOSAR_SRS_OCUDriver_学习笔记
AUTOSAR_SRS_OCUDriver_学习笔记Grey全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!AUTOSAR_SRS_OCUDriver_学习笔记摘录与批注OCU,似乎还是第一次接触这个名字。 从描述看,可能是类似PWM输出?这个简单的初步印象是来自于计数器相关的描述。根据机理的描述,PWM应该可以理解为是OCU的一种。从这个角度来说,OCU可原创 2022-01-26 20:56:55 · 855 阅读 · 0 评论 -
1094_AUTOSAR_SRS_MCUDriver_学习笔记
AUTOSAR_SRS_MCUDriver_学习笔记Grey全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!AUTOSAR_SRS_MCUDriver_学习笔记摘录与批注MCU驱动主要处理其他模块不处理的功能,几个例子: 全局时钟 PLL以及时钟分配 RAM区的初始化 reset reset原因获知 以上几个功能,至少是我在不用AUTOSAR之前都在用的原创 2022-01-26 20:04:27 · 648 阅读 · 0 评论 -
1093_AUTOSAR_SRS_IOHWAbstraction_学习笔记
AUTOSAR_SRS_IOHWAbstraction_学习笔记Grey全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!AUTOSAR_SRS_IOHWAbstraction_学习笔记摘录与批注IO硬件抽象层往上层提供的是基于信号的接口。监控硬件失效并且设置状态。提供信号两个上升或者下降边沿信号之间的时间测量功能。与上一条相似,不过这一条强调的是输原创 2022-01-26 19:42:17 · 684 阅读 · 0 评论 -
1092_AUTOSAR_SRS_ICUDriver_学习笔记
AUTOSAR_SRS_ICUDriver_学习笔记Grey全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!AUTOSAR_SRS_ICUDriver_学习笔记摘录与批注HIS,之前接触了很多次了。今天查了一下,这个其实是来自于德语。应该是“制造商倡议软件”的意思?ICU模块提供的几个典型功能:周期以及高低时间的测量 边沿检查以及提示 边沿计数 边沿时原创 2022-01-25 23:08:39 · 1217 阅读 · 0 评论 -
1091_AUTOSAR_SRS_GPTDriver_学习笔记
AUTOSAR_SRS_GPTDriver_学习笔记Grey全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!AUTOSAR_SRS_GPTDriver_学习笔记摘录与批注GPT的几条功能如下:启动或者停止硬件定时器。 获取定时器的数值。 控制中断提示触发的时间。 控制唤醒中断触发的时间。疑问: STM的使用属于GPT吗?与OS相关的计数器是否在这个驱动的支原创 2022-01-25 21:56:18 · 1045 阅读 · 0 评论 -
1090_AUTOSAR_SRS_DIODriver_学习笔记
AUTOSAR_SRS_DIODriver_学习笔记Grey全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!AUTOSAR_SRS_DIODriver_学习笔记摘录与批注DIO设计没有异步,都是比较直接的处理,全都是同步的行为。 DIO中的几个概念也相对简单,具体如下:DIO通道:基本上对应的就是GPIO通道,MCU上的管脚。 DIO端口:可以用来同时操作的D原创 2022-01-25 21:31:12 · 791 阅读 · 0 评论 -
1089_AUTOSAR_SRS_ADCDriver_学习笔记2
AUTOSAR_SRS_ADCDriver_学习笔记2Grey全部学习汇总: https://github.com/GreyZhang/hack_autosarAUTOSAR_SRS_ADCDriver_学习笔记2摘录与批注应有启动或者停止通知功能的服务。 应有启动或者停止转换功能的服务。如果采集到的AD数值是有符号的,那么符号应该在返回值的最高位。或者,更确切说是把返回值的绝对值所需要的位数再加一个更高位作为符号位。 流式读取的处理方式类似队列,尤其是满了的时候。可以选择原创 2022-01-25 20:59:56 · 351 阅读 · 0 评论 -
1088_AUTOSAR_SRS_ADCDriver_学习笔记1
AUTOSAR_SRS_ADCDriver_学习笔记1Grey全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!AUTOSAR_SRS_ADCDriver_学习笔记1摘录与批注关于通道:一个通道会映射到一个MCU的ADC管脚,但是一个MCU的ADC管脚可能会被多个ADC通道映射。 ADC的通道组:使用同一个采样保持器、同一个转换器的通道集合,每一个组使用一个触发源。原创 2022-01-25 20:43:54 · 529 阅读 · 0 评论 -
1087_Software-Architecture_Libraries小结
Software-Architecture_Libraries小结Grey全部学习汇总: https://github.com/GreyZhang/hack_autosarSoftware-Architecture_Libraries小结摘录与批注本来想逐个库的文档详细看一下,后来看完了一个CRC和一个位操作,也正好是我熟悉的两个。其他的继续看的时候感觉意义不是很大,尤其是面向基础软件开发的技能增不上这几个库能够给出的帮助并不是很大。这样,接下来看看每一个库中都有什么功能,后续我自己ha原创 2022-01-25 20:16:27 · 471 阅读 · 0 评论 -
1086_AUTOSAR_SWS_BFXLibrary
AUTOSAR_SWS_BFXLibraryGrey全部学习汇总: https://github.com/GreyZhang/hack_autosarAUTOSAR_SWS_BFXLibrary摘录与批注这里解答了我之前的一个疑惑,关于库文件的开发看起来在AUTOSAR体系之内也是采用了相应的编码要求的。 库文件使用的数据类型也是AUTOSAR定义的标准类型。接口清单看过一两个接口之后,大部分的软件接口理解起来并不是很难。 如果要对这个模块做一个总结,查看这个文档还原创 2022-01-25 00:04:28 · 507 阅读 · 0 评论 -
1085_AUTOSAR_SRS_Libraries_学习笔记2
AUTOSAR_SRS_Libraries_学习笔记2Grey全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!AUTOSAR_SRS_Libraries_学习笔记2摘录与批注所有的库函数都应该是可以重入的。当且仅当AUTOSAR没有定义其需要的数据类型的时候,库可以定义自己的数据类型。接口可以传入结构体。 有这样的一个需求,是不是说明相关的函数标准化暂原创 2022-01-24 23:46:09 · 433 阅读 · 0 评论 -
1084_AUTOSAR_SRS_Libraries_学习笔记1
AUTOSAR_SRS_Libraries_学习笔记1Grey全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!AUTOSAR_SRS_Libraries_学习笔记1摘录与批注这是AUTOSAR中规定的一些库,从名称介绍看数学类的居多一些。但是除了CRC以及位操作之外,感觉对于相关功能的设计实现没有太多的认知概念。 每一个库还有一个说明文档。 这个文档最初是为了C原创 2022-01-24 23:16:17 · 565 阅读 · 0 评论 -
1081_AUTOSAR_SWS_PlatformTypes
AUTOSAR_SWS_PlatformTypesGrey全部学习汇总: https://github.com/GreyZhang/hack_autosarAUTOSAR_SWS_PlatformTypes摘录与批注这感觉是没有静态代码分析工具的支持下,这两类数据类型都不推荐使用?这个结构上的描述,与之前看过的文档是一致的,相关的内容可以直接跳过不看了。无论大端CPU还是小端CPU,累加器的MSB都是最左边的bit,因此可能会涉及到不同的指令。大小端数据的排布方式主原创 2022-01-23 17:57:08 · 462 阅读 · 0 评论 -
1080_AUTOSAR_SWS_MemoryMapping_学习笔记2
AUTOSAR_SWS_MemoryMapping_学习笔记2Grey全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!AUTOSAR_SWS_MemoryMapping_学习笔记2摘录与批注AUTOSAR对于分区文件使用方法的介绍,其实是一个很简单的处理机制:用完之后需要恢复一下。每一个callout函数都应该有自己独立的分区名称。这是一个使用的例子原创 2022-01-23 17:34:06 · 1152 阅读 · 0 评论 -
1079_AUTOSAR_SWS_MemoryMapping_学习笔记1
AUTOSAR_SWS_MemoryMapping_学习笔记1Grey全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!AUTOSAR_SWS_MemoryMapping_学习笔记1摘录与批注从简介看,跟我想要了解的分区问题很对症,这个文档讲解的就是AUTOSAR在这方面的实现机制。 存储分区可以解决不同类型混用带来的memory gap问题。 可以满足专门的原创 2022-01-23 17:05:02 · 1030 阅读 · 0 评论 -
1078_AUTOSAR_SWS_CompilerAbstraction_学习笔记2
AUTOSAR_SWS_CompilerAbstraction_学习笔记2Grey全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!AUTOSAR_SWS_CompilerAbstraction_学习笔记2摘录与批注基本可以得出一个结论,谁做集成谁提供memmap以及编译器和平台的抽象定义文件比较合适。AUTOMATIC以空的方式来提供,用于局部变量的定义。原创 2022-01-23 16:44:06 · 564 阅读 · 0 评论 -
1077_AUTOSAR_SWS_CompilerAbstraction_学习笔记1
AUTOSAR_SWS_CompilerAbstraction_学习笔记1Grey全部学习汇总: https://github.com/GreyZhang/hack_autosarAUTOSAR_SWS_CompilerAbstraction_学习笔记1摘录与批注编译器相关的专用定义在Compiler.h中使用宏进行了封装。 每一个独立的模块至少应该可以区分存储类和指针类,通过一个define来实现。 针对上面这条有一个疑问:什么是指针类? Compiler_Cfg.h允许根据原创 2022-01-23 16:12:53 · 784 阅读 · 1 评论 -
1076_AUTOSAR_SWS_StandardTypes
AUTOSAR_SWS_StandardTypesGrey全部学习汇总: https://github.com/GreyZhang/hack_autosarAUTOSAR_SWS_StandardTypes摘录与批注包含的相应的类型应该是不依赖于平台和编译器的。 突然觉得,这种设计为仿真提供了很大的便利!AUTOSAR只考虑了与遗留的ECU网络的兼容问题,但是没有考虑对遗留ECU软件架构的兼容。这里提出来的数据类型与遗留软件如果有冲突其实是可以理解的,也是也可以预知的。原创 2022-01-23 12:43:47 · 463 阅读 · 0 评论 -
1073_AUTOSAR_SWS_BSWGeneral_学习笔记2
AUTOSAR_SWS_BSWGeneral_学习笔记2Grey全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!AUTOSAR_SWS_BSWGeneral_学习笔记2摘录与批注涉及到平台变化,比如MCU以及编译器的变化,相关的变动内容应该在独立的文件中管理。初始化函数都有统一的格式,参数都一个配置的指针,返回值都是void。 初始化中的配置由EcuM或者B原创 2022-01-23 09:45:45 · 635 阅读 · 0 评论 -
1072_AUTOSAR_SWS_BSWGeneral_学习笔记1
AUTOSAR_SWS_BSWGeneral_学习笔记1Grey全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!AUTOSAR_SWS_BSWGeneral_学习笔记1摘录与批注源文件必须包含定义内容的声明文件,这样编译器可以检查定义与声明的一致性。每一个模块都有一个文件描述模块需要调度的接口以及数据结构。向Dem报错需要包含其头文件,头文件的名称固定了原创 2022-01-23 09:08:21 · 903 阅读 · 0 评论 -
1071_AUTOSAR_TR_BSWUMLModelModelingGuide_UML建模指南
AUTOSAR_TR_BSWUMLModelModelingGuide_UML建模指南Grey全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!AUTOSAR_TR_BSWUMLModelModelingGuide_UML建模指南摘录与批注这个指南看上去是有关于UML建模的。 疑问1:里面介绍的会是方法类介绍还是规范类介绍需要先打一个问号。 疑问2:如果我也想掌握原创 2022-01-22 18:52:15 · 642 阅读 · 0 评论 -
1070_AUTOSAR_TR_BSWModuleList_基础软件模块清单
Grey全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!AUTOSAR_TR_BSWModuleList_基础软件模块清单摘录与批注以上是AUTOSAR的基础软件模块清单。 内容其实没有什么需要分析梳理的,只是一些模块清单而已。如果查看参考文档,到时有一个文档的对应关系,其实按照关键词搜索本来也就容易。这是AUTOSAR的库的清单,后面几个其实还是需原创 2022-01-22 18:29:47 · 709 阅读 · 0 评论 -
1066_AUTOSAR_SRS_BSWGeneral_学习笔记3
AUTOSAR_SRS_BSWGeneral_学习笔记3Grey全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!AUTOSAR_SRS_BSWGeneral_学习笔记3摘录与批注数据类型定义文件有明确管理要求。 编译器相关的专用非标用语应该放在一个专门的文件组织管理。MCAL以上软件层代码应该不依赖于MCU和编译器。基础软件服务API使用统一的返回值类原创 2022-01-22 14:40:00 · 400 阅读 · 0 评论 -
1065_AUTOSAR_SRS_BSWGeneral_学习笔记2
AUTOSAR_SRS_BSWGeneral_学习笔记2Grey全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!AUTOSAR_SRS_BSWGeneral_学习笔记2摘录与批注BSW的main函数不允许进入等待状态。这部分不去做完整的文档引用截图了,大概的意思其实是可以理解到的。 如果BSW使用的都是诸如OS服务等标准化了的接口,那么软件的可移植性肯定会增原创 2022-01-22 12:04:07 · 596 阅读 · 0 评论 -
1064_AUTOSAR_SRS_BSWGeneral_学习笔记1
AUTOSAR_SRS_BSWGeneral_学习笔记1Grey全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!AUTOSAR_SRS_BSWGeneral_学习笔记1摘录与批注这几条需求提纲可以补充到基础软件设计说明书中。前面已经多次打交道的几个阶段的配置以及配置集合等,在这个最基本的基础软件通用需求中其实已经提出来了。在掌握信息的时候,其实这个文件原创 2022-01-22 10:11:59 · 752 阅读 · 0 评论 -
1063_AUTOSAR_EXP_LayeredSoftwareArchitecture_学习笔记6
AUTOSAR_EXP_LayeredSoftwareArchitecture_学习笔记6Grey全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!AUTOSAR_EXP_LayeredSoftwareArchitecture_学习笔记6摘录与批注车辆管理模式的理念分布式地向BSW模块发送请求,因此每一个OS-Application都应该至少有一个BSW的模式管理。原创 2022-01-21 23:13:16 · 487 阅读 · 0 评论 -
1062_AUTOSAR_EXP_LayeredSoftwareArchitecture_学习笔记5
AUTOSAR_EXP_LayeredSoftwareArchitecture_学习笔记5Grey全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!AUTOSAR_EXP_LayeredSoftwareArchitecture_学习笔记5摘录与批注这种通过数据流向以及数据对象和交互关系来确认或者设计接口的方式是值得参考的。几个配置阶段之前在其他文档中已经多次接触原创 2022-01-21 22:41:28 · 445 阅读 · 0 评论 -
1061_AUTOSAR_EXP_LayeredSoftwareArchitecture_学习笔记4
AUTOSAR_EXP_LayeredSoftwareArchitecture_学习笔记4Grey全部学习汇总: https://github.com/GreyZhang/hack_autosarAUTOSAR_EXP_LayeredSoftwareArchitecture_学习笔记4摘录与批注存储服务只有一个NVM Manager。 这样就有一个疑问了,RamTst难道只存在于MCAL之中?系统服务可能被所有层的软件全都用到,例如OS以及故障管理。调试过程中的错误全都原创 2022-01-21 22:16:00 · 908 阅读 · 0 评论 -
1060_AUTOSAR_EXP_LayeredSoftwareArchitecture_学习笔记3
AUTOSAR_EXP_LayeredSoftwareArchitecture_学习笔记2Grey全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!AUTOSAR_EXP_LayeredSoftwareArchitecture_学习笔记2摘录与批注通信服务隐藏了协议以及消息的属性,应用软件无需关注。CAN通信支持CAN 2.0以及CAN FD。通用网络管理原创 2022-01-21 21:44:46 · 898 阅读 · 0 评论 -
1059_AUTOSAR_EXP_LayeredSoftwareArchitecture_学习笔记2
AUTOSAR_EXP_LayeredSoftwareArchitecture_学习笔记2Grey全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!AUTOSAR_EXP_LayeredSoftwareArchitecture_学习笔记2摘录与批注AUTOSAR的服务分为积累:IO、存储、通信、系统。 这部分跟前面看到的服务层的细化分层其实是一致的。内部设备的原创 2022-01-21 00:54:25 · 770 阅读 · 0 评论