<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[c++开发]]></description><link>https://blog.youkuaiyun.com/rwlsh</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; rwlsh]]></copyright><item><title><![CDATA[Com_SendSignal 返回 E_OK，报文就一定发出去了吗？]]></title><link>https://blog.youkuaiyun.com/rwlsh/article/details/168871248</link><guid>https://blog.youkuaiyun.com/rwlsh/article/details/168871248</guid><author>rwlsh</author><pubDate>Fri, 23 Oct 2026 13:15:23 +0800</pubDate><description><![CDATA[现象：调用Com_SendSignal返回E_OK，抓包无新报文。误判方向：认为E_OK即已发送。最终卡在CanIf_Transmit未被调用。排查耗时约2小时，通过在Com_MainFunctionTx中加日志确认主函数未执行，发现调度周期配置错误。]]></description><category></category></item><item><title><![CDATA[大Sector Flash芯片做EEPROM仿真，空间、安全、速度怎么兼得？]]></title><link>https://blog.youkuaiyun.com/rwlsh/article/details/168774672</link><guid>https://blog.youkuaiyun.com/rwlsh/article/details/168774672</guid><author>rwlsh</author><pubDate>Fri, 23 Oct 2026 09:56:33 +0800</pubDate><description><![CDATA[针对大Sector Flash存储关键数据时面临的“空间浪费、写入慢、改一个丢一片”难题，本文提出专利方案（CN121858038）：将Flash分为“实时区”与“备份区”两层，应用数据走快速的Fee实时区，关键数据则打包为带版本号和CRC32校验的QsBlock，于开机时统一备份至双冗余的FaFee备份区。通过分层解耦、整块写入、开机一致性检查与可配置备份开关，实现空间高效、读写迅速、断电不丢，破解大Sector Flash下的存储“不可能三角”。]]></description><category></category></item><item><title><![CDATA[NvM 升级后读出历史残留的数据？可能是你对“抗变“的理解错了]]></title><link>https://blog.youkuaiyun.com/rwlsh/article/details/168774584</link><guid>https://blog.youkuaiyun.com/rwlsh/article/details/168774584</guid><author>rwlsh</author><pubDate>Thu, 22 Oct 2026 22:33:30 +0800</pubDate><description><![CDATA[软件升级后，NvMBlock读取数据异常，即使勾选“抗变”仍可能读到旧值或默认值。原因在于：配置ID变更后，若块长度变化，且未擦除EEP，NvM会按长度匹配从EEP中读取历史数据，而非默认值或改版前值。抗变仅保证读取操作继续，不保证数据正确性。关键在升级前自查五项：配置ID是否自增、动态配置状态、抗变设置、EEP是否清空、RAM与NV长度是否一致。建议升级前擦除EEP或通过版本迁移保留数据，复杂项目可统一全局NvMLayout避免兼容问题。]]></description><category></category></item><item><title><![CDATA[这四个角色搞混一个，AUTOSAR 基本就白学了]]></title><link>https://blog.youkuaiyun.com/rwlsh/article/details/168774498</link><guid>https://blog.youkuaiyun.com/rwlsh/article/details/168774498</guid><author>rwlsh</author><pubDate>Thu, 22 Oct 2026 22:28:40 +0800</pubDate><description><![CDATA[本文以“寄信收信”类比AUTOSAR分层架构，生动解析ASW、RTE、BSW、MCAL等模块的职能与协作流程。通过一帧车速信号的传输路径，厘清应用层（SWC）、运行时环境（RTE）、基础软件（BSW）与微控制器抽象层（MCAL）的分工，强调分层设计的核心价值：换芯片、换总线、复用代码。同时区分Classic Platform（CP）与Adaptive Platform（AP）的并存关系，指出学习应先理解系统逻辑，而非死记缩写，避免被“背术语”劝退。]]></description><category></category></item><item><title><![CDATA[Autosar CAN报文周期抖动可能的原因分析+解决方法（总结）]]></title><link>https://blog.youkuaiyun.com/rwlsh/article/details/135008626</link><guid>https://blog.youkuaiyun.com/rwlsh/article/details/135008626</guid><author>rwlsh</author><pubDate>Fri, 15 Dec 2023 09:13:36 +0800</pubDate><description><![CDATA[在Autosar项目中我们经常会遇到各种CAN报文在CANOE上抓取的图形周期抖动，因此需要通过一些可能的原因分析解决报文周期不准的问题。那么下面就我根据实际项目中遇到的一些可能的原因做一些总结（后续持续完善）。]]></description><category></category></item><item><title><![CDATA[一张图看懂NvMDynamicConfiguration和NvMResistantToChangedSw对NvM数据变更的影响]]></title><link>https://blog.youkuaiyun.com/rwlsh/article/details/134986500</link><guid>https://blog.youkuaiyun.com/rwlsh/article/details/134986500</guid><author>rwlsh</author><pubDate>Thu, 14 Dec 2023 09:10:03 +0800</pubDate><description><![CDATA[如果说NvM中配置好的Block List在项目迭代过程中没有Block的增加或减少，没有Block数据长度的增加或减少，那么NvM的使用就不会有什么问题。但是如果Block List在某一天要增加一个Block，或者某个Block的数据长度要发生变更，那么一旦程序升级，之前存入EEPRAM中的数据就不能被正确读取。如果说要让上述配置生效，那么一旦NvM Block List中有配置发生了变更，Compiled Configuration ID的版本号就要配置自增，否则。中，即便是在配置变更的情况下。]]></description><category></category></item><item><title><![CDATA[Autosar Os降低CPU负载的方案总结]]></title><link>https://blog.youkuaiyun.com/rwlsh/article/details/134969750</link><guid>https://blog.youkuaiyun.com/rwlsh/article/details/134969750</guid><author>rwlsh</author><pubDate>Wed, 13 Dec 2023 13:47:59 +0800</pubDate><description><![CDATA[由于各个项目的实际场景不尽相同，可能需要有针对性的对症优化。如果你还有别的一些优化手段欢迎留言交流。]]></description><category></category></item><item><title><![CDATA[Autosar CP 操作系统详解]]></title><link>https://blog.youkuaiyun.com/rwlsh/article/details/134962963</link><guid>https://blog.youkuaiyun.com/rwlsh/article/details/134962963</guid><author>rwlsh</author><pubDate>Wed, 13 Dec 2023 09:45:58 +0800</pubDate><description><![CDATA[我们知道传统所说的“裸机编程”就是不带操作系统的编程，在系统需求相对比较简单的情况下使用裸机编程可以满足要求。在Main函数中，写一个大循环(While)，然后加一个定时器，分时间片的方式，定时去执行代码，就完成了简单的调度功能。但是随着系统需求越来越复杂，此时就需要用到模块化设计方法以及多任务编程思想，否则后期软件升级维护成本将会急剧增加。此时迫切需要一种机制来替我们完成各个任务之间的调度功能，使得开发人员能够更关注于应用软件的开发，提高软件开发效率，为此便应运而生！]]></description><category></category></item><item><title><![CDATA[基于SOME/IP的AP AUTOSAR实战步骤]]></title><link>https://blog.youkuaiyun.com/rwlsh/article/details/119910062</link><guid>https://blog.youkuaiyun.com/rwlsh/article/details/119910062</guid><author>rwlsh</author><pubDate>Wed, 25 Aug 2021 14:08:56 +0800</pubDate><description><![CDATA[一、方法论与Manifest

01

UML类图关系



由于我们将会大量参考AP AUTOSAR元模型，因此，我们先根据上期的内容简单回顾一下UML类图，UML共有6种类图关系：




			依赖（Dependency）
			
		
			使用" 虚线箭头 "表示
			
		
			
			
		


			关联（Association）
			
		
			使用" 实线箭头 "表示
			
		
			
			
		


			聚合（Aggregation）
			
		
			使用"实线空.]]></description><category></category></item><item><title><![CDATA[看板（Kanban）与Scrum区别]]></title><link>https://blog.youkuaiyun.com/rwlsh/article/details/118888730</link><guid>https://blog.youkuaiyun.com/rwlsh/article/details/118888730</guid><author>rwlsh</author><pubDate>Mon, 19 Jul 2021 09:52:23 +0800</pubDate><description><![CDATA[看板和scrum有许多不同之处，下面就列举一下看板和scrum的区别：

对比项
			scrum
			看板
		计划
			它有固定的计划，它专注于规划。它从sprint计划开始，以sprint审查结束。举行日常会议，以便团队了解后续步骤，优先事项以及之前步骤的经验。
			它没有固定的计划，也没有每日会议。在看板中，可以随时发生变化，即频繁发生变化。
		时间线
			在scrum中，处理具有固定时间持续时间的sprint意味着在一段固定时间之后，要向客户端提供一些东西。
			看板没有sprint的]]></description><category></category></item><item><title><![CDATA[DOORS入门教程系列：基本概念介绍（一）]]></title><link>https://blog.youkuaiyun.com/rwlsh/article/details/118488433</link><guid>https://blog.youkuaiyun.com/rwlsh/article/details/118488433</guid><author>rwlsh</author><pubDate>Mon, 05 Jul 2021 17:36:43 +0800</pubDate><description><![CDATA[从今天开始，我把DOORS的学习过程做个记录，方便其他朋友学习，也方便今后自己复习巩固。

首先介绍一下DOORS的背景和一些相关概念。

DOORS是一种跨平台的、企业级的需求管理工具，用于捕获、连接、跟踪、分析和管理各类信息，以确保项目符合所描述的需求和标准。系统工程师和管理人员常常借助DOORS来完成需求的管理过程。DOORS为满足业务需要的沟通提供了多种手段，使不同功能小组可以协同开发项目，使用户可以检验所构建系统是否正确及是否是以合适的方式构建的。DOORS在屏幕上提供的视图库提供了强大且易用的漫]]></description><category></category></item><item><title><![CDATA[TCP 的三次握手与四次挥手，详解]]></title><link>https://blog.youkuaiyun.com/rwlsh/article/details/82688363</link><guid>https://blog.youkuaiyun.com/rwlsh/article/details/82688363</guid><author>rwlsh</author><pubDate>Thu, 13 Sep 2018 15:08:56 +0800</pubDate><description><![CDATA[1、TCP 的三次握手过程分解：

      假设A是客户端，B是服务端。A首先向B发出连接请求报文段，这个时候首部中的同步位SYN=1，同时选择一个初始的序号x。此时报文段不能携带数据。此时A进入到SYN_SENT(同步已发送)状态。

      B受到连接请求报文，同意建立连接，向A发出确认。确认报文中，SYN和ACK都置1，确认号是x+1,与此同时，自己选择一个初始序号y,这个报文也不能...]]></description><category></category></item><item><title><![CDATA[bat替换文件中的字符串]]></title><link>https://blog.youkuaiyun.com/rwlsh/article/details/80575849</link><guid>https://blog.youkuaiyun.com/rwlsh/article/details/80575849</guid><author>rwlsh</author><pubDate>Tue, 05 Jun 2018 08:16:45 +0800</pubDate><description><![CDATA[@echo off

set strOld=-t 1
set /a cpu=%number_of_processors%-1
set strNew=-t %cpu%
set file=%~dp0start.bat

setlocal enabledelayedexpansion

for /f &quot;tokens=*&quot; %%j in (%file%) do (
	set &quot;tmp=%%j&quot;
	if n...]]></description><category></category></item><item><title><![CDATA[MFC子窗口全屏和还原实现]]></title><link>https://blog.youkuaiyun.com/rwlsh/article/details/80333476</link><guid>https://blog.youkuaiyun.com/rwlsh/article/details/80333476</guid><author>rwlsh</author><pubDate>Wed, 16 May 2018 10:34:34 +0800</pubDate><description><![CDATA[一、定义三个变量BOOL m_bFullSceen;//全屏标志
CWnd* m_pWndSave;//保存父窗口指针
WINDOWPLACEMENT m_wpmSave;//保存窗口位置信息二、变量初始化m_bFullSceen(FALSE)三、调用函数（鼠标双击窗口实现窗口全屏化）//ON_MESSAGE(UM_LBUTTON_DBLCLK, OnLButtonDblClk)
LRESULT ...]]></description><category></category></item><item><title><![CDATA[MFC在父对话框中嵌入子对话框]]></title><link>https://blog.youkuaiyun.com/rwlsh/article/details/80278160</link><guid>https://blog.youkuaiyun.com/rwlsh/article/details/80278160</guid><author>rwlsh</author><pubDate>Fri, 11 May 2018 10:42:16 +0800</pubDate><description><![CDATA[最近开发ActiveX，需要用到这个，特记录一下。（转载自：http://blog.sina.com.cn/s/blog_665b70ed0100hjc6.html）一、对话框中显示对话框的方法：1、首先创建要在对话框里显示的那个对话框，命名为：IDD_INNER。设置这个对话框的属性：1)、“Style”选择“Child”；中文版“样式”选择“下层”。2)、“Border”为“None”；中文版...]]></description><category></category></item><item><title><![CDATA[解决【关于javascript调用ocx控件时提示：对象不支持“setUrl”属性或方法】]]></title><link>https://blog.youkuaiyun.com/rwlsh/article/details/80252454</link><guid>https://blog.youkuaiyun.com/rwlsh/article/details/80252454</guid><author>rwlsh</author><pubDate>Wed, 09 May 2018 13:56:35 +0800</pubDate><description><![CDATA[因最近工作需要，要开发一款视频播放的ocx控件。但我是第一次开发ocx控件，遇到不少问题，走了不少弯路。现将所遇问题做个记录，方便后来人查看。问题描述：ocx控件中，添加一个名为“setUrl(BSTR url)”的ocx接口方法，以供浏览器js代码调用传值给ocx。然而在ie浏览器中调用ocx的setUrl方法时，提示：对象不支持“setUrl”属性或方法本以为修改ie浏览器的安全级别，将act...]]></description><category></category></item><item><title><![CDATA[获取指定日期前一天的日期]]></title><link>https://blog.youkuaiyun.com/rwlsh/article/details/80088687</link><guid>https://blog.youkuaiyun.com/rwlsh/article/details/80088687</guid><author>rwlsh</author><pubDate>Thu, 26 Apr 2018 09:05:56 +0800</pubDate><description><![CDATA[获取前一天的日期。代码中所用的另外两个，时间与时间戳互转的方法（NetTime2Stamp、Stamp2NetTime），请查看：https://download.youkuaiyun.com/download/rwlsh/10373238
//获取前一天的日期;
NetTime getLastDay(NetTime _today) {
	int64_t _todayStamp = NetTime2Stam]]></description><category></category></item></channel></rss>