- 博客(61)
- 资源 (13)
- 问答 (2)
- 收藏
- 关注
原创 C语言switch-case中的变量声明对栈空间的影响及溢出风险分析
关键点结论栈空间分配编译器通常复用空间,占用量为单个case的最大值栈溢出风险在变量过大或系统栈较小时需警惕优化方案动态分配、缩小类型、编译器优化、调整系统配置最佳实践始终用{}隔离case作用域。避免在case中声明大数组。在嵌入式系统中优先使用静态内存池。
2025-03-21 17:18:51
550
原创 记一次生成core_dump文件的调查记录
在默认情况下,Linux 可能不生成 core dump 文件。ulimit -c如果返回值为 0,则表示禁用了 core dump。上述设置仅在当前的终端有效,如果新建终端或者关闭了此终端,需要重新配置。如果需要永久设置,可以把这条命令加入到 shell 的启动脚本(比如 ~/.bashrc)中。
2025-02-28 18:10:27
383
原创 什么是 MD5 加密
MD5(Message Digest Algorithm 5,消息摘要算法5)是一种广泛使用的哈希函数,用于生成固定长度(128位,16字节)的哈希值(也称为消息摘要)。它被设计为将任意长度的数据“压缩”成一个看似随机的哈希值。注意:MD5并非真正的“加密算法”,因为它是不可逆的,即无法通过数学方法从哈希值直接恢复原始数据。虽然MD5在某些场景(如文件校验)仍然有用,但由于其安全性问题,不再推荐用于需要高安全性的场景(如存储密码、数字签名)。现代应用更多使用SHA-256等更安全的哈希算法。
2024-11-28 19:18:30
1117
原创 爆改老旧笔记本---将笔记本改造为家用linux服务器
分区限制:最多支持4个主分区(或3个主分区加一个扩展分区,扩展分区可以包含多个逻辑分区)。存储容量限制:支持的最大硬盘容量为2TB(使用512字节扇区)。启动机制:通过存储在第一个扇区的引导代码加载操作系统。文件系统是操作系统用来组织、存储和管理数据的一种方法。它为数据在存储设备(如硬盘、SSD、U盘)上的存储和访问提供结构化的方式。本节以FAT32和NTFS为主,介绍文件系统的概念、特点以及应用场景。文件系统定义了如何在存储设备上组织文件和目录,并管理文件的元数据(如文件名、大小、权限等)。
2024-11-28 19:17:31
2310
原创 C语言学习--const修饰符的作用,如何强制修改const定义的对象内容
通过访问联合体的非 const 成员,我们可以绕过 const 修饰符,直接修改 const 数据。const 是 C 语言中的一个关键字,用于定义不可修改的变量。通过在变量声明中使用 const,可以指示编译器在代码中禁止对该变量进行修改,增加代码的安全性和可读性。start_ptr 是一个指针常量,表示指针本身不能修改,可以通过二级指针强制转换的方式,修改start_ptr的指向。在嵌入式编程中,寄存器通常是只读的,使用 const 修饰寄存器可以表明该寄存器值不会被程序更改,仅用于读取操作。
2024-11-08 18:04:27
1325
转载 网络技术---网络通信概述
随着信息技术的飞速发展,网络通信已经成为现代社会不可或缺的一部分。网络通信涉及多个层次的相互作用,以确保数据能够高效、准确地在不同设备和系统之间传输。本文将详细介绍网络通信的层次结构,OSI七层网络模型、TCP/IP五层模型,以及物理层、数据链路层、网络层、传输层和应用层的具体内容。物理层涉及到各种传输介质,如铜缆、光纤、无线信号等,以及相关的设备和技术。物理层处理的内容包括电压电平、传输速率、信号传输距离和传输介质选择。网络层的主要任务是为数据包选择最佳路径,确保其从源主机到达目的地。
2024-11-08 18:03:38
1339
原创 网络技术----wireshark抓包出现1500以上的大包原因分析
简单来说就是,原本由内核处理的拆包,交给了网卡来处理,而我们通过 tcpdump 抓包工具抓取的是从内核到网卡路径上的数据包,所以会存在上述问题,如果在交换机处抓包,那么对应的大小为MSS值或小于 MSS 值。具体取决于操作系统的网络堆栈和驱动程序的工作原理。接收过程:Wireshark通常捕获的是网卡传给操作系统的数据包,因此如果硬件支持并启用了LRO(Large Receive Offload)等技术,Wireshark可能捕获到的是网卡已经重组好的较大数据包,而非网络上实际传输的小分片。
2024-11-05 14:35:58
1583
原创 网络技术---MTU
MTU(Maximum Transmission Unit,最大传输单元)是网络中能够传输的单个数据包的最大字节数。如果MTU超过了发送/接收端所能接受的最大值,就会造成报文分片甚至丢弃,加重网络传输的负担。如果太小,那实际传送的数据量就会过小,影响传输效率。MTU的大小取决于物理网络的类型和配置,通常在以太网中默认的MTU值为1500字节,这意味着一个数据包的最大传输大小为1500字节,超出这个限制的数据需要分片传输。在以太网中,1500字节的MTU被广泛应用,是以太网的标准传输单元大小。
2024-11-05 14:10:19
1661
原创 Autosar学习----AUTOSAR_SWS_BSWGeneral(七)
命名约定,其中是模块缩写,是类型名称,采用驼峰命名法。示例示例类型包括和。基本AUTOSAR类型基本AUTOSAR类型不需要遵循上述命名约定。类型定义模板类型定义应包括以下信息:名称:类型的名称。类型:允许的条目,包括枚举、结构、指向类型的引用和AUTOSAR整数数据类型。范围:合法值的范围。描述:对该类型用途的非正式描述。常量:该类型的预定义名称(可选)。避免重复定义为避免在BSW模块和软件组件中重复和不一致的类型定义,公共数据类型应在RTE类型头文件中定义。
2024-09-25 16:19:12
994
原创 Autosar学习----AUTOSAR_SWS_BSWGeneral(八)
本节补充了相应BSW模块规范第10章的内容。AUTOSAR分层软件架构AUTOSAR ECU配置规范该文档详细描述了AUTOSAR的配置方法论和配置元模型。以下内容仅为该主题的简要概述,不能替代ECU配置规范文档。
2024-09-25 16:18:23
1324
原创 Autosar学习----AUTOSAR_SWS_BSWGeneral(六)
元数据的内容由 ECUC 描述中的全局 PDU 配置决定。该配置指定了元数据项的类型()、长度()和顺序(每个 PDU 都有一个产生(生产)模块和一个最终(消费)模块,以及可能的一系列中间(转发)模块。元数据的布局对于 PDU 是固定的,但不同模块只访问它们所知道的元数据项。
2024-09-19 11:20:47
423
原创 Autosar学习----AUTOSAR_SWS_BSWGeneral(五)
开发错误主要是指在软件开发过程中出现的软件缺陷。根据 SRS_BSW_00337 的详细规范,这些错误包括但不限于尝试使用未初始化的软件等。开发错误被报告给 BSW 模块 Det(默认错误追踪器),通过接口,这反映了此类错误的事件驱动特性。开发错误一旦发生,相应的错误监视器会立即发出信号。运行时错误被指定为系统性故障,这些故障不一定影响系统的整体行为。例如,错误的构建后配置或错误分配的 PDU-ID(协议数据单元标识符)是导致运行时错误的常见原因。
2024-09-19 11:16:30
1279
原创 对齐访问与非对齐访问
对齐访问(Aligned Access)指的是,数据存储在内存中时,其起始地址是该数据大小的倍数。现代计算机中,数据通常以字节(byte)为单位存储,而不同类型的数据(如整型、浮点型等)通常有不同的字节长度。对于某个数据类型,如果它的内存地址是其长度的整数倍,就称该数据是“对齐的”。例如,在32位系统中,假设我们有一个32位(4字节)的整数,那么它的起始地址如果是4的倍数(如0x0004、0x0008等),则该整数被认为是对齐的。对齐访问的主要优点在于,它能有效利用系统的内存总线和缓存,减少访问时间。
2024-09-14 17:12:50
2154
原创 Autosar学习----AUTOSAR_SWS_BSWGeneral(四)
7.1节为AUTOSAR BSW模块的实现提供了详细的指导,涵盖了编码标准、平台独立性、可配置性、共享代码和全局数据管理等方面。通过遵循这些规范,开发人员能够确保BSW模块在不同硬件和软件环境下保持一致性、可移植性和安全性。
2024-09-14 17:11:21
1212
原创 Autosar学习----AUTOSAR_SWS_BSWGeneral(二)
文档的前四章主要介绍了AUTOSAR基本软件(BSW)模块的背景、设计约定、约束和代码结构。首先,文档概述了BSW模块的设计目标,即通过模块化的架构来提高汽车电子控制单元(ECU)的开发效率、可重用性和跨平台灵活性。随后,文档规范了技术术语、符号和代码示例的格式,以确保读者在理解模块规范时的一致性。在第三部分中,文档详细讨论了BSW模块的约束与假设,特别是在硬件依赖、系统资源限制、实时性要求等方面,帮助开发人员在不同环境中设计适用的模块。
2024-09-13 09:56:23
690
原创 Autosar学习----AUTOSAR_SWS_BSWGeneral(三)
文档的第六部分详细说明了AUTOSAR基本软件(BSW)模块中需求的可追溯性要求。这些要求确保了BSW模块的实现能够被清晰地追溯到相应的需求,从而保证系统的完整性和一致性。需求可追溯性对于验证和确认系统是否符合既定需求至关重要。文档第六部分强调了需求可追溯性在AUTOSAR基本软件模块中的关键作用。通过清晰的需求引用和关联,以及对需求适用性的明确说明,BSW模块能够更好地实现开发与测试的一致性,确保系统的稳定性和可维护性。
2024-09-13 09:55:00
720
原创 Autosar学习----AUTOSAR_SWS_BSWGeneral(一)
通过使用vendorId、vendorApiInfix和apiServicePrefix,我们可以在大型汽车软件项目中有效地管理和区分不同供应商的API,实现模块的清晰结构和易于维护的代码库。这种命名规范有助于避免不同供应商之间的冲突,同时使接口更加明确和易于理解。
2024-08-29 17:07:38
1281
原创 车载SOA架构之三(SOA与模块化设计以及传统架构的关系)
SOA不仅仅是模块化设计的延伸,而是将系统功能通过独立的、标准化的服务形式进行组织,强调服务的可重用性、松耦合性和独立性。因此,SOA更关注系统的架构层次和服务间的交互方式,而模块化设计则更偏向于代码组织和实现细节。因此,SOA(服务导向架构)在现代汽车中更倾向于应用在不同ECU之间的通信和协作上。SOA的核心优势在于它能够通过标准化的服务接口,促进不同功能模块之间的互操作性和灵活协作。这种架构对于现代汽车,尤其是那些采用域集中式架构的车辆来说,具有极大的吸引力。
2024-08-28 10:24:03
1325
原创 车载SOA架构之二(SOA在车载操作系统中的逐步应用:起源、发展、效果及应用)
此时,部分高端车型开始引入具备SOA特性的车载操作系统,如大众集团的MIB(Modular Infotainment Platform)系统,采用了模块化和服务导向的设计思路,实现了娱乐系统、导航系统和通信模块的集成。随着车辆智能化程度的提高,尤其是自动驾驶技术的兴起,传统的架构难以应对复杂的功能需求和快速变化的市场需求。正是在这样的背景下,服务导向架构(SOA)逐渐引入车载操作系统,旨在通过标准化服务接口,将不同的功能模块抽象为可重用的服务,从而实现系统的松耦合和灵活扩展。
2024-08-28 10:22:10
1089
原创 车载SOA架构之一(SOA的起源、发展、效果及应用)
SOA能够支持多租户环境下的服务隔离和共享,提高资源利用率和服务的灵活性。例如,HR管理软件提供商通过SOA架构提供灵活的HR功能模块,如员工管理、薪酬管理和绩效考核等,企业客户可以根据自身需求定制和组合这些模块,形成自己的HR系统。例如,在银行业,实施SOA架构时,需要同时考虑现有核心银行系统的改造、服务的安全性、以及与外部支付网关的集成,这往往需要更高的技术投入和复杂的项目管理。未来,SOA架构将更加注重服务间通信的安全性和合规性,通过引入先进的加密技术和身份认证机制,提升系统的整体安全性。
2024-08-28 10:20:22
1801
原创 模块设计原则--抽象原则
模块设计中的抽象原则是指在设计模块时,将模块内部的具体实现细节隐藏起来,仅对外暴露出功能接口。这样做的好处是提高模块的可维护性、可扩展性和复用性。特别是在面对多个输出通道时,抽象原则显得尤为重要。对于一个具有多个输出通道的模块,例如需要输出到文件、网络、控制台等不同的设备或平台,直接在代码中处理这些输出会导致模块的耦合度高,难以维护。通过抽象原则,我们可以将这些不同的输出方式进行统一封装,提供一致的接口,让模块使用者无需关心具体的实现细节。
2024-08-27 16:31:24
762
原创 汽车电子中间件的关键技术
汽车电子中间件技术通过中间件架构设计、服务导向架构、通信协议与数据传输、安全性与加密技术、以及实时操作系统与调度算法等关键技术,确保了车载系统的高效、稳定和安全运行。随着汽车智能化和联网化的不断发展,这些技术在未来将扮演更加重要的角色,推动汽车电子系统的不断创新和进步。
2024-08-12 22:15:40
1215
原创 汽车电子中间件概述
汽车电子中间件是一个关键的软件层,位于汽车应用层和底层操作系统之间,起到了连接和协调不同电子控制单元(ECU)的作用。在汽车电子系统中,应用层和底层操作系统各有侧重,且各自的重要性不容忽视。
2024-08-07 09:55:57
1512
原创 原子操作好多问
四. 多核CPU的原子操作: 在多核CPU中,原子操作需要考虑多个核心同时访问共享资源的情况,需要使用特殊的机制来确保操作的原子性,如硬件支持的原子指令或锁机制。五. 硬件支持 & 多核原子操作: 多核CPU中的原子操作通常需要硬件支持,例如x86体系结构提供的原子操作指令,如lock前缀指令,用于确保操作的原子性。三. 单核CPU的原子操作: 在单核CPU中,原子操作通常是指在一个指令周期内可以完成的操作,不会被中断,例如赋值、递增、递减等操作。
2024-03-19 22:50:39
541
原创 医学图像融合------基于小波分解的CT图和MRI图高低频分解融合
首先将图像分别进行小波变换,即利用小波金字塔算法将空间域上已经配准止之后的两幅图像分别变换到小波域;其次,根据需要选择不同的融合规则,常见的图像融合方法有加权平均法、局部方差法、局部能量法、PCA方法等等。最后根据融合规则分别将不同金字塔的小波图像进行融合,再利用逆变换将其变换回空域即可实现CT图和MRI的图像融合。是现代医学中的图像信号融合中最为常见的一种融合模式。一层小波分解,低频采用邻域加权方差融合,高频采用基于局部梯度信息的融合算法。3、基于领域方差以及局部梯度方差的图像融合算法。
2023-05-20 19:22:32
2231
原创 HC(Histogram-based Contrast) 基于直方图对比度的显著性(算法原理与代码分析)
图像中像素的显著性值可以它和图像中其它像素的对比度来定义, 具体公式为:其中,为像素的颜色, n为图像中所有颜色的总数,为在图像I中出现的概率,为颜色在彩色空间Lab之间的距离.对于每个像素,使用上述公式就可以计算其显著性, 从而可以得到图像中目标的显著性.然而,上述公式存在一个问题: 对于三维颜色空间,例如RGB颜色空间, 8bit数据的颜色总数为 255x255x255=16581375, 计算量异常庞大,不适合实际应用.
2023-04-05 15:34:33
1606
原创 图像显著性目标检测
图像显著性检测(Saliency Detection,SD), 指通过智能算法模拟人的视觉系统特点,预测人类的视觉凝视点和眼动,提取图像中的显著区域(即人类感兴趣的区域),可以广泛用于目标识别、图像编辑以及图像检索等领域,是计算机视觉领域关键的图像分析技术。
2023-02-19 22:24:53
2966
原创 基于指纹识别技术的身份认证系统的设计与实现
具体任务:1)建立指纹识别的数学模型,能够区分不同人的指纹图像;2)编写数据库管理程序,能够保存指纹图像数据;3)编写仿真程序,能够根据事前提取的指纹图像识别个人身份。具体要求:1)使用指纹仪提取指纹,其图片的识别规格为256x256像素。2)建立个人信息数据库,保存指纹图像。并能查看样本图像。3)使用MATLAB编写仿真程序,指纹录入数据库,样本指纹与数据库指纹图像对比,输出识别结果。......
2022-06-15 15:09:20
634
原创 论文复现——Retinex-Based Signal Enhancement for Image Dark Regions
论文复现——Retinex-Based Signal Enhancement for Image Dark Regions
2022-06-15 13:54:14
495
原创 种子数量统计,四种方法,(面积、周长、数据处理1、数据处理2)
利用图像处理的额方法统计种子的个数 根据种子的特点,可以用的方法有:面积,周长。还有基于这两种方法的其他方案。
2022-06-15 11:03:56
1478
基于稀疏分解的图像压缩算法研究
2024-08-17
复合燕麦蛋白饮料加工综述
2024-08-17
全自动电池盖帽涂胶机设计
2024-08-17
本文主要编写了一套能够针对任意一幅图实现物体分割的程序
2024-08-17
图像处理之人脸定位提取
2024-08-17
本科毕设论文,广义逆矩阵及其应用,论文+代码,代码可直接运行
2024-08-17
本科毕设论文,图像处理之步态识别研究,代码在最后的附录中,可直接运行
2024-08-17
MATLAB图像处理与界面编程宝典系列文章学习代码,每一章都有标注,适合新手学习
2024-08-15
利用图像处理的额方法识别道路裂缝,其他类型的裂缝也能识别。处理方法包括中值滤波、均值滤波、二值化、判断提取缺陷、大小位置及方向等
2022-06-15
3-种子数量统计,四种方法,(面积、周长、数据处理1、数据处理2)
2022-06-15
对正余弦信号进行傅里叶变换,并与matlab自带的傅里叶变换方法对比,比较运行时间GUI
2022-06-14
neural-networks-and-deep-learning-master-python3.zip
2020-08-20
如何再GPU上运行py代码?
2020-07-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人