自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(82)
  • 收藏
  • 关注

原创 Bug目录

转为string 类型 即可;所以本意是想加入 "0"实际变成了 指针偏移;会一直匹配到\0为止 出现未知的错误;(ASCII 49)那就是。→ 直接飞出字符串范围。

2025-12-26 10:43:18 52

原创 汽车相关内容

钥匙转到 START 档,起动机直接从电瓶取电,开始带动发动机曲轴旋转。这时燃油喷射和点火系统开始工作,让发动机“燃烧起来”,最终发动机自己运转。电瓶电压瞬间下降(10~11V左右),因为起动机电流很大(几十安培)。:发动机自转,通常 600~1000 rpm(视车型而定)。:电瓶电压恢复 ~12V(发动机带动发电机充电后更高)。:准备启动,仪表灯亮,燃油泵自检,传感器初始化。,而是“起动状态”,完全靠起动机带动曲轴旋转。,发动机靠燃烧稳定运转,不再依赖起动机。:发动机曲轴是静止的,

2025-11-06 10:59:49 232

原创 UDS中时间参数相关

可以把这些时间参数想象成一场有序的对话发起请求:客户端发送首帧(FF),并启动N_Bs(等待对方说“请讲”)和N_Cs(等待对方完整回答)计时器。流量调控:服务器回复流控制帧(FC),其中包含STmin(“请以这个速度说”)和BS(“每次说这么多句”)。数据传输:客户端以 max(N_As, STmin)的间隔(“按我最快的能力或你要求的速度,取慢的那个”)连续发送CF。服务器则用N_Ar来监控每一句是否及时到达(“有没有卡壳?”)。流程重复。

2025-11-01 14:41:59 1064

原创 UDS网络层(ISO 15765-2)

首先呢UDS基于CAN总线(11898)其中它的在这里定义了数据链路层的数据;

2025-10-26 14:42:15 632

原创 CAN总线错误类别

位错误: 一般是发送方,有回读机制,当读到发送的与总线上回读的不一致就 有位错误,注意它的范围,这其中(不包仲裁,仲裁的不是位错误)ACK槽那位 为 1(隐形电平),没有设备应答,随后就发送6个隐性电平的错误帧;ACK槽那位 为 1(隐形电平),没有设备应答,随后就发送6个显性电平的错误帧;可以观测到 一帧发完有3位帧间隔,这是为过载帧准备的,若是有过载帧 ,则发送;设备处于被动错误状态,发送标准数据帧,检测到ACK错误。发生了错误那么,就会发送错误帧,数据就作废了;错误、格式错误、应答错误。

2025-10-22 22:52:30 312

原创 CAN总线: 仲裁

标准格式11位ID号和扩展格式29位ID号的高11位一样时,标准格式的优先级高于扩展格式(SRR必须始终为1,以保证此要求)如果是拓展数据帧,与标准遥控帧相比 RTR为1 与SRR相同 但是后面IDE为0 拓展的IDE为1,可以区分开。SRR为 1 RTR为 0 (之前好像有内容说SRR无意义,现在有意义了必须为1 为了仲裁)这里就可以看出为什么ID号小的,优先发送,id越小 1在越后边。数据帧和遥控帧ID号一样时,数据帧的优先级高于遥控帧。数据帧RTR为 0 遥控帧RTR为 1。

2025-10-21 23:34:42 353

原创 CAN总线: 位同步,接收方数据采样

内容参考江协科技;这里大致内容为:CAN通信当中接收方如何准确的收到数据。

2025-10-20 23:59:03 654

原创 CAN总线帧格式

内容参考江协科技;

2025-10-19 17:35:33 837

原创 CAN 总线物理层介绍

内容来自于江协科技;CAN主要是多个主控通信(汽车当中多个Ecu相互通信)这低速CAN 这里低速CAN的电压差都很大,因为电路传输当中有压降,所以把1与0的电压差加大了,这样如果有压降影响也可以明显看出来1与0的差异 这样就可以远距离传输了。下面是接收,上面发送,

2025-10-19 15:47:02 945

原创 c++some

LNK2019: 无法解析的外部符号 "public: void __cdecl CSpPublicInterfaces::AddActMenuItem(class std::basic_string<char,struct。这里显示返回值是void类型 是有可能编译器仍然使用旧的编译缓存,没有检测更改。即使修改了函数的返回类型,编译器可能没有重新编译相关的。有个问题是为什么这里要用指针 若是直接用对象的话 SonImpl这个类没有定义只有声明会报错。好处1.可以减少头文件改动。文件 重新生成项目。

2025-03-26 18:31:41 303

原创 work日记

1.重新学习了P处理 windows脚本语言 pushd %cd%...... 改变目前 popd回到当前目前。到时候自己修改p处理更加方便 能看懂脚本里边在干什么。工具链来为 iOS 设备编译 C++ 代码,2.项目是通过 ndk-build 根据。armeabi-v7a 32位。arm64-v8a 64位。

2025-03-25 20:53:51 241

原创 C++相关

3.回顾了虚函数,定义virtual 就是虚函数 一般是父类指针指向子类对象的时候显示多态,若不是指针则是静态绑定 为函数重写 出现 virtual funtion = 0;就是纯虚函数 有一个纯虚函数的类是抽象类,它不能被实例化(因为虚函数未实现 ) 若是父类是抽象类 那么子类得把所有的纯虚函数都实现 否则这个子类也变成抽象类。shared_ptr 的父类有两个指针 一个是自己的类型指针 还有一个引用计数指针 一般都是用unique_ptr没有管理共享所有权的开销。,而不会影响其他指向同一对象的。

2025-03-24 21:00:14 359

原创 小tips

公司tips

2024-10-25 14:55:13 148

原创 8 非静态数据成员默认初始化

1.不要使用括号()对非静态数据成员进行初始化,因为这样会造成解析问题,所以会编译错误。C++11标准提出了新的初始化方法,即在声明非静态数据成员的同时直接对其使用=或者{}2.不要用auto来声明和初始化非静态数据成员。

2024-09-30 22:15:00 288

原创 7.lambda表达式

有几天没写了 最近有点小忙 问题不大。

2024-09-27 21:00:00 578

原创 第6章 右值引用

常量左值引用可以绑定右值是一条非常棒的特性,但是它也存在一个很大的缺点——常量性。只有实际类型是一个非引用类型或者右值引用类型时,最后推导出来的才是一个右值引用。(A& & 变成 A&;对于这一点,常量左值引用的特性显得更加有趣,它除了能引用左值,还能够引用右值。但是,如果我们传递的是右值而没有使用完美转发,右值的状态会被“降级”成左值,这意味着。万能引用长的和右值引用一样 都是&& 若是有类型的推导就是万能引用 若是没有类型推导就是右值引用。所有右值引用折叠到右值引用上仍然是一个右值引用。

2024-09-22 16:00:00 671

原创 5函数返回类型后置(C++11)

【代码】5函数返回类型后置(C++11)

2024-09-21 20:00:00 268

原创 4decltype说明符

typeid返回的std::type_info删除了复制构造函数,若想保存std::type_info,只能获取其引用或者指针。虽然typeid可以获取类型信息并帮助我们判断类型之间的关系,但遗憾的是,它并不能像typeof那样在编译期就确定对象类型。typeid的返回值总是忽略类型的 cv 限定符,也就是typeid(const T)== typeid(T))。对象的引用,这就是所说的“返回值是一个左值”。由于返回的是引用,其生命周期与程序相同,因此其所引用的。这是在C++17中推出的。

2024-09-21 14:41:52 309

原创 三 auto占位符

1.当用一个auto关键字声明多个变量的时候,编译器遵从由左往右的推导规则,以最左边的表达式推断auto的具体类型int n = 5;// 这里auto被推导为 int 所以int m = 10;合理//编译失败,声明类型不统一5 : 8.0;// i的数据类型为double3.虽然C++11标准已经支持在声明成员变量时初始化(见第8章),但是auto却无法在这种情况下声明非静态成员变量auto i = 5;// 错误,无法编译通过//这个样子可以 但是i就是常量了C++17修改。

2024-09-20 23:00:00 450

原创 现代c++语言核心特性解析

C++核心特性读书笔记

2024-09-20 00:15:00 771

原创 C++相关

其中 capacity返回的是Vector的容量 若是加入的元素后超过这个容量 那么就会扩容 ( 这扩容好像是1.5倍还是2倍) 但是扩容操作是非常费时间的 一旦内存重新分配,vector元素相关的所有reference、pointer、iterator 都会失效。Vector的容量非常重要 它与大小有关的函数有 size(),empty(),max_size() capacity(),c.assign(beg,end)将区间[beg,end)内的元素赋值给c。

2024-09-19 11:44:41 1007

原创 Itme4 对象使用前进行初始化

这样是没有使用初始化列表 在调构造函数之前会对这个对象的成员进行默认的初始化,再到构造函数当中 去进行。在不同的文件中 在一个文件中使用另一个文件的局部静态变量 可能会未进行初始化。赋值, 所以这里是进行的赋值操作并不是初始化。局部静态对象的的初始化顺序。这可能是由于文件的位置不同。

2024-05-29 15:16:18 318

原创 Item 3 使用const

在一个函数声明,const 既可以用在函数的 返回值,也可以用在个别的参数,对于 成员函数,还可以用于整个函数。如char* txt=“hello";改变其hello的值 text指针的位置并未发生改变。为了防止这样的出现 (a*b) 若不是const (a * b = c)不会报错。特别的是 对于成员函数的整个const 代表 不修改该对象的任何成员变量。在函数的最后面加const 和不加const是两个函数 是重载的!定义const的函数 在no const中调用。

2024-05-28 16:55:11 319

原创 Effective C++ 不要滥用宏

对于 simple constants(简单常量),用 const objects(const 对象)或 enums(枚举)取代 #defines。宏是不可修改的 const char * Text = "hello";这只代表 "hello"不可改变 可以Text = “1111”;对于 function-like macros(类似函数的宏),用 inline functions(内联函数)取代 #defines。所以一般为 const char * const Text = "hello";

2024-05-28 15:46:12 284

原创 滴水逆向PE结构

PE

2024-03-22 17:27:45 452

原创 俄罗斯方块大概

整体逻辑 把地图作为二维数组 所有的操作都对这个二维数组进行。typedef struct block //方块的结构体。方块的坐标对应着地图的位置 在4*4的二维数组中显示出来。2.方块结构体 用来记录方块的信息。3.通用数组 方块的所有的类型。VS2022 C++控制台窗口。1. 整体是一个map数组。

2024-03-15 21:32:13 415

原创 汽车协议学习

小白第一次接触汽车诊断自己的一些理解 ,如果有啥不对的地方请您指出一下谢谢大佬!!

2024-03-09 14:32:38 4566 1

原创 滴水内存地址堆栈

两个十六进制数 刚好是一个字节刚好 DC这的一个字节数据为E4 一个内存地址 后面表示四个字节的数据 所以有八个十六进制的数。BASE是高地址 所以放入一个四字节后就 -4。

2024-01-13 17:20:14 444

原创 逆向7通用寄存器

MOV指令前后的容器宽度要一致 如ECX与EAX 都是32位 mov eax,0x111 可以少写后面补零多写的会移除 源操作数是后面的 目标操作数是前面的。32位和64位寻址宽度 是查找内存宽度的范围 每一个编号对应一个字节 即内存宽度。32位是4g 64位大的多。0x123456是临时数。

2024-01-10 20:41:13 859

原创 uds在软件架构上的分层

uds没有会话层 没有 6。

2024-01-09 21:50:30 540

原创 逆向数据宽度与符号

有符号与无符号是程序员定的 并不是开头是1就表示负数 0表示正数 得看有无符号。正数与负数的 刚好是半 所以 0 表示正数 1表示负数。双字 32bit 4字节。

2024-01-09 20:42:49 908

原创 OBD汽车

03 41 0D 5555 这是响应 三个有效字节 23表示回应的速度 换算为10进制为35km/h。02 01 0D 5555(随机值)这是请求 两个有效字节 01 OD(请求速度)OBD很多的定死了 Vme就很灵活 WWH 就是两个的结合。PID 可以自己定义一些 一个字节255个。诊断设备流程 ====》》》》相当于客户端与服务器。

2024-01-08 21:58:59 985

原创 滴水逆向1

十六进制的定义:由十六个符号组成,分别是0 1 2 3 4 5 6 7 8 9 A B C D E F。十进制的定义:由十个符号组成,分别是0 1 2 3 4 5 6 7 8 9 逢十进一。九进制的定义:由九个符号组成,分别是0 1 2 3 4 5 6 7 8 逢九进一。

2024-01-08 21:33:01 1052

原创 逆向P1P2总结

寻址宽度 以字节为单位 0xfffffff + 1 就是最大容量 转为十进制为 4294967296 / 1024 (k)/1024 (kb)/ 1024 (m) 4g。字节八位 word 16位 deword 32 位。为什么电脑有32位与64位之分。不建议看了太卡了 要有汇编基础。

2023-12-25 20:44:41 752

原创 203删除链表元素

【代码】203删除链表元素。

2023-12-24 21:59:14 383

原创 数组螺旋矩阵

输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]给定一个正整数 n,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。

2023-12-23 21:42:46 410

原创 滑动窗口双指针

类似窗口滑动 j代表的是窗口的结束位置 i表示开始位置。在while循环中是寻找最小数组的size。如果不存在符合条件的子数组,返回。找出该数组中满足其总和大于等于。

2023-12-20 19:49:59 421

原创 模板元编程

2023-12-20 16:19:26 385

原创 26避免万能引用的重载

2023-12-20 14:34:19 386

原创 emplace_back push_back

2023-12-20 11:21:12 422

空空如也

空空如也

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

TA关注的人

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