自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(99)
  • 资源 (21)
  • 问答 (2)
  • 收藏
  • 关注

原创 从零设计车载 QNX 日志系统:采集、落盘、导出全链路实践

车机磁盘写满,系统直接死机。改个日志级别,得重启整个进程。想取日志?连 JTAG 吧。这是我接手项目时面对的现状——某 Tier1 供应商提供的日志模块,日志后端写死Slog2、存储策略僵硬、没有远程导出能力。我需要从零设计一个日志系统来替掉它。文中代码均为抽象后的 Demo,不涉及任何商业源码,已是个人专利。做车载基础设施,每个决策的权重和互联网完全不同。文件轮询比信号通知 low,但它不会丢消息。按时间删比 LRU 简单,但它在只写场景下效果一样且没有额外开销。

2026-06-24 14:41:31 287

原创 C++中unique_ptr包thread的正确用法与陷阱

副标题:拆解里的detach()、互斥锁和原子标志,顺便把坑写清楚。很多 C++ 文章会单独讲,也会单独讲。真正上线的代码往往不是两个知识点的并列,而是它们叠在一起:线程对象谁拥有、线程何时启动、谁负责退出、对象销毁时线程还在不在。本文拆一份真实工程里的。它负责从 QNX slog2 拉日志,后台线程调用,再把日志封装后交给回调。线程相关的核心就这几行,但已经足够把“智能指针管对象”和“线程管生命周期”这两件事拆开看。

2026-09-10 16:11:11 171

原创 2026.7.1 车型诊断问题处理

摘要:奇瑞车型台架诊断测试发现,诊断调查表未要求支持DID 0x5708,但ECU实际响应了正响应。分析表明,问题源于协议栈和业务层代码中均注册了该DID,导致与诊断调查表不一致。建议按标准处理原则修正:在协议栈配置(diag_il_cfg.c)和业务支持表(diagnosis.cpp)中移除0x5708的注册,使请求返回7F2231(requestOutOfRange)负响应,确保软件实现与诊断规范严格一致。修改后需验证相邻DID功能不受影响。

2026-07-01 15:27:53 214

原创 Leetocde 19. 删除链表的倒数第N个节点

【代码】Leetocde 19. 删除链表的倒数第N个节点。

2023-03-26 23:06:26 286

原创 每日一刷之leetcode 最长回文子串

每天刷1题, 纯属个人兴趣爱好。

2022-08-23 19:22:50 1191

原创 代码阅读工具推荐understand

Understand是一款定位于代码阅读的软件

2022-08-15 00:17:31 3584

原创 推荐vim插件tmux

tmux vim插件

2022-08-14 23:45:43 500

原创 shell脚本通过管道获取另一个设备的信息

代码】shell脚本通过管道获取另一个设备的信息。

2022-08-14 23:19:19 499

原创 代码整洁之原则

把精力放在学习基本思想上,而不是技术上,因为技术可能会过时,基本的思想不会过时。一种规则、信仰、指引你的观念,慢慢变成的习惯和风格,融入你的骨子里的东西。但是并不是不能改变的,后天学习阅读和实践中形成的。当然还有很多其他的原则,比如童子军原则、小心优化原则等,上面几个原则是平时常用的,实用为上。......

2022-08-13 16:28:07 301

原创 数据结构之反转链表

反转链表

2022-08-10 22:01:29 257

原创 智能座舱介绍

智能座舱介绍

2022-07-31 13:54:47 3031

原创 Linux 操作系统内核之进程

linux内核中进程描述符和进程状态

2022-07-27 11:58:26 568

转载 从开发小白到音视频专家

Android 音视频开发入门指南

2022-07-15 18:57:27 175

原创 opengl 着色器

opengl 着色器

2022-07-14 19:23:11 980

原创 链表中的节点每k个一组翻转

链表

2022-07-13 22:31:57 320

原创 实现二叉树先序,中序和后序遍历

实现二叉树先序,中序和后序遍历

2022-07-05 22:51:45 488

原创 Opengl画三角形

opengl

2022-07-04 23:42:25 1811

原创 每日一刷之大数加法

大数加法

2022-07-01 23:45:23 146

原创 买卖股票的最好时机(二)

买卖股票的最好时机(二)

2022-06-29 22:52:52 195

原创 接雨水问题

接雨水问题

2022-06-28 23:22:08 145

原创 连续子数组的最大和

连续子数组的最大和

2022-06-27 21:55:10 168

原创 BM2 链表内指定区间反转

链表内指定区间反转

2022-06-26 09:50:12 202

原创 BM98 螺旋矩阵

螺旋矩阵

2022-06-24 23:13:06 228

原创 BM97 旋转数组

旋转数组

2022-06-23 23:29:16 206

原创 BM57 岛屿数量

深度遍历思想

2022-06-08 17:48:09 186

原创 重建二叉树

学习目标:算法和数据结构之KMP算法想比较字符串BF算法,这种暴力算法,KMP算法高效的多学习内容:理解KMP算法,很多时候人们都是先把算法讲一遍再去跟你分析,也可以直接上code, 如果你从code中去看这个算法是怎么实现的。学习时间:提示:这里可以添加计划学习的时间例如:周一至周五晚上 7 点—晚上9点周六上午 9 点-上午 11 点周日下午 3 点-下午 6 点学习产出:提示:这里统计学习计划的总量例如: 技术笔记 2 遍 优快云 技术博客 3 篇 习的

2022-05-30 22:56:45 133

原创 二叉树中和为某一值的路径(一)

二叉树中和为某一值的路径(一):核心步骤:class Solution {public: /** * * @param root TreeNode类 * @param sum int整型 * @return bool布尔型 */ bool hasPathSum(TreeNode* root, int sum) { // write code here if (root == NULL)

2022-05-25 21:17:30 149

原创 BM50 两数之和

目标:实现方法:class Solution {public: /** * * @param numbers int整型vector * @param target int整型 * @return int整型vector */ vector<int> twoSum(vector<int>& numbers, int target) { // write code here

2022-05-22 16:22:26 183

原创 算法和数据结构之跳表

算法和数据结构之跳表文章目录算法和数据结构之跳表前言一、跳表是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:跳表这种数据结构对你来说,可能会比较陌生,因为一般的数据结构和算法书籍里都不怎么会讲。但是它确实是一种各方面性能都比较优秀的动态数据结构,可以支持快速地插入、删除、查找操作,写起来也不复杂,甚至可以替代红黑树(Red-black tree)。主要说下跳表的的时间复杂度、原理、用法一、跳表是什么?跳表:一个随机化的数据结构,可以被看做二叉树的

2022-05-20 20:52:42 361

原创 比较版本号

问题描述分析:采用双指针的方法,进行解析和比较,省去存储切分后的块的开销,复杂度分析:时间复杂度:O(max(m, n)),其中m, n分别为两个字符串长度。需要遍历到较长字符串的尽头空间复杂度:O(1),只用到了常数个变量解决方案:class Solution {public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 比较版本号 * @param version1 string字符

2022-05-18 16:15:31 202

原创 数组中的逆序对

目标:归并排序使用的就是分治思想。分治,顾名思义,就是分而治之,将一个大问题分解成小的子问题来解决。小的子问题解决了,大问题也就解决了。从我刚才的描述,你有没有感觉到,分治思想跟我们前面讲的递归思想很像。是的,分治算法一般都是用递归来实现的。分治是一种解决问题的处理思想,递归是一种编程技巧,这两者并不冲突。数组中的逆序对:步骤:class Solution {private: const int mod = 1000000007;public: void merge(vect

2022-05-18 16:04:29 147

原创 算法和数据结构之递归

算法和数据结构之递归主要说明是递归的理解和应用递归算法和数据结构之递归前言一、如何理解递归?二、什么情况下使用递归1.举个例子2.注意总结前言递归是一种应用非常广泛的算法(或者编程技巧)。之后我们要讲的很多数据结构和算法的编码实现都要用到递归,比如 DFS 深度优先搜索、前中后序二叉树遍历等等。所以,搞懂递归非常重要,否则,后面复杂一些的数据结构和算法学起来就会比较吃力。一、如何理解递归?递归是一种编程技巧,程序自己调用自己。二、什么情况下使用递归1.举个例子周末你带着女朋友去电影

2022-05-13 22:23:13 284

原创 BM8 链表中倒数最后k个结点

链表中倒数最后k个结点 -> 链表文章目录链表中倒数最后k个结点 -> 链表前言一、实现步骤1.双指针法结果前言一、实现步骤1.双指针法代码如下(示例):/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : val(x), next(nullptr) {} * }; */class Solution {public: /** * 代码中

2022-05-10 21:27:44 299

原创 删除链表的倒数第n个节点

学习目标:删除链表的倒数第n个节点实现方法:/** * struct ListNode { * int val; * struct ListNode *next; * }; */class Solution {public: /** * * @param head ListNode类 * @param n int整型 * @return ListNode类 */ ListNode* removeNthFromE

2022-05-10 21:08:55 386

原创 数据结构之队列

队列其实就是一句话:先进者先出文章目录队列前言一、队列是什么?二、队列使用1.数组队列2.链表队列3.循环队列总结前言队列是一种基础的线性表数据结构,在很多底层框架中都有应用,中间件和linux缓存,内存池等;一、队列是什么?队列这个概念非常好理解。你可以把它想象成排队买票,先来的先买,后来的人只能站末尾,不允许插队。先进者先出,这就是典型的“队列”。我们知道,栈只支持两个基本操作:入栈 push()和出栈 pop()。队列跟栈非常相似,支持的操作也很有限,最基本的操作也是两个:入队 en

2022-05-10 20:29:36 132

原创 Android 音视频开发之基础篇 自定义view绘制图片

Android 音视频开发上一篇文章:[SurfaceView绘制图片](https://blog.youkuaiyun.com/qq_34770510/article/details/123354585?spm=1001.2014.3001.5502)思维导图:文章目录Android 音视频开发自定义view绘制图片一、[如何通过自定义view绘制](https://www.jianshu.com/p/705a6cb6bfee)?二、实现过程1.配置图片和view控件2.编写code3. 效果显示:总结

2022-03-12 18:22:13 5923

原创 Android 音视频开发之基础篇 使用 SurfaceView绘制一张图片

Android 音视频开发上一篇文章:使用 imageview绘制一张图片任务一 SurfaceView绘制一张图片文章目录Android 音视频开发前言一、surfaceview是什么?二、使用步骤1.配置activity_main.xml2.编写code3.效果显示总结前言提示:SurfaceView:1 为什么要用surfaceview?一般UI是在应用程序的主线程中绘制,但是对一些游戏画面,或者摄像头,视频播放等,UI都比较复杂,要求能够进行高效的绘制,这时候就必须要给复杂而高效的

2022-03-08 16:57:47 7330

原创 Android 音视频开发之基础篇 使用 imageview绘制一张图片

Android 音视频开发 任务一 ImageView 绘制图片文章目录Android 音视频开发 任务一 ImageView 绘制图片前言一、配置activity_main.xml二、添加mipmap三、编写code四·、效果展示总结前言提示:使用imageview绘制图片随着抖音、直播等音视频技术的火爆发展,音视频开发展需求加大,但是熟悉音视频开发的程序员似乎并不多,博主也是刚刚因为工作任务调整,转向音视频方向,以此记录和分享。提示:以下是本篇文章正文内容,下面案例可供参考一、配置a

2022-03-07 20:34:13 5460

原创 设计模式 总

设计模式:设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。1995 年,GoF(Gang of Four,四人组/四人帮)合作出版《设计模式:可复用面向对象软件的基础》一书,共收录了 23 种设计模式,称「GoF设计模式」。具体内容:创建者模式:对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离。结构型模式:关注于对象的组成以及对象

2022-03-06 22:55:45 191

原创 leetcode 35

一 背景和上一篇https://blog.youkuaiyun.com/qq_34770510/article/details/123218468?spm=1001.2014.3001.5502是相似的,主要是练习数据结构 数组 二分查找。二 具体code:暴力解法:class Solution {public: int searchInsert(vector<int>& nums, int target) { for (int i = 0; i < n

2022-03-06 22:29:54 159

802.11协议总结

对《802.11无线网络权威指南》的学习总结

2017-03-10

一起写Makefile

一起写Makefile

2017-03-21

RT2870STA.dat

RT2870STA.dat

2017-04-07

mt7601Usta.ko

mt7601Usta.ko

2017-04-07

moodle的word模板

moodle 模板

2017-04-05

nrf58232芯片手册

2016-11-21

openwrt入门经典教程

openwrt入门经典教程

2017-06-29

moodle-latest-32.tgz

moodle 的最新安装包,3.2.2版本

2017-03-29

Linux设备驱动开发详解:基于最新的Linux 4.0内核

Linux设备驱动开发详解 基于最新的Linux 4.0内核

2017-03-21

u-boot-1.1.2.tar

U-boot源码

2017-06-23

vcredist_x64

vcredist_x64

2017-03-29

Hadoop第4版

Hadoop-The.Definitive.Guide_4.edition.pdf

2017-05-15

程序员面试宝典(PDF完整版)

程序员面试宝典(PDF完整版)

2017-03-21

wifi-usb使用报告

wifi-usb使用报告

2017-04-07

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

TA关注的人

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