- 博客(189)
- 资源 (14)
- 收藏
- 关注
原创 git 撤销某次提交的上交到远程服务器的commit提交,此提交后面的commit需要保留【deeepseek生成】
核心思路 使用 git rebase -i 重写提交历史,删除目标提交后强制推送到远程(需谨慎操作)。
2025-03-12 15:51:45
402
原创 arm内核寄存器错误定位技巧【持续更新】
CPSR:在ARM架构中,CPSR(Current Program Status Register) 的 模式位(Mode bits) 决定了处理器的当前运行模式。以下是关于CPSR模式和寄存器权限的详细说明:通用寄存器【ARMv7】:ARM处理器的通用寄存器(General-Purpose Registers,GPRs)是程序执行过程中最常用的寄存器,用于存储临时数据、地址和中间计算结果。通用寄存器(R0-R15)User模式:只能访问 R0-R14 和 PC(R15),无法直接访问 CPSR。
2025-03-12 15:50:21
1191
原创 DS32编译优化问题【deepseek的功劳】
在嵌入式开发中,优化选项 -O3 和 -Os 的行为差异可能导致代码出现不同表现。如果代码在 -O3 优化下运行正常,但在 -Os 优化下异常,通常与编译器的优化策略和代码本身的实现方式有关。例如:未初始化变量、数组越界、野指针、数据竞争等。现象:-Os 会删除它认为“无用”的代码(如未显式调用的函数、冗余操作),而 -O3 可能保留。现象:代码依赖特定时序(如硬件寄存器轮询)或内存访问顺序,-Os 的优化可能破坏这些依赖。进行简单的优化(如删除未使用的代码、合并常量),在代码大小和执行速度间平衡。
2025-02-28 20:49:43
812
1
原创 Vscode的通义灵码占用空间过大问题【.lingma】
最后排查发现是一个.lingma的文件夹问题,这个文件夹用了我居然差不多一百G的空间,windows+I 打开系统设置,搜索存储:打开存储设置。删除掉ai训练时产生的dbc文件就好了,C盘空间发现没装几个软件但是空间占用太离谱了,里面的.dbc文件删掉,空间立马出来了。
2025-02-26 21:41:06
583
原创 在s32ds for platform平台debug编译能正常编译,但是切换到release编译时报错
预定义宏 :在C/C++ Build > Settings > Tool Settings > Preprocessor中,查看是否Release定义了额外宏(如NDEBUG),可能影响条件编译。在S32DS for Platform中出现Release模式编译错误但Debug模式正常的问题,通常与编译配置差异或预处理宏相关。若项目复杂,逐步移除代码模块,定位引发错误的具体文件。查看编译器输出的具体错误位置(文件名和行号),检查该行及之前的代码是否存在语法问题,如缺少分号、括号不匹配或宏展开异常。
2025-02-21 19:54:12
358
原创 VSCode 中设置 Git 忽略仅因时间戳修改导致的文件变更【使用deepseek生成的一篇文章】
推荐方案 :优先通过 .gitattributes 自定义 Diff 规则,精准忽略时间戳行。临时方案 :对无需提交的文件使用 git update-index --skip-worktree。长期方案 :优化生成工具配置,避免无关时间戳变更。
2025-02-20 15:11:50
718
原创 freemaster出现错误:could not instantiate communication plugin object
当我使用这个工具进行设备设置时老是出现无法无法注册的情况并弹出弹框提示:could not instantiate communication plugin object,在freemaster的安装目录下找到D:\freemaster\FreeMASTER:register.bat。
2025-01-21 16:11:44
148
原创 can协议中的网络管理
网络管理最终要实现的是车上的ECU能够协同睡眠以及唤醒,也就是说网络管理最重要的一点是要保证车上的ECU能够协同唤醒和休眠。那么假如车上的ECU都处于睡眠模式,网络上都没有报文,你咋实现唤醒呢,其实,一般不会让所有的ECU都处于睡眠模式,这个时候可能会有极少的ECU处于工作状态,比如车上的BCM。也就是说有一些ECU是通过KL15直接唤醒的,而有些是通过CAN报文唤醒。当然或许后面会升级到更加节能的模块,可以不需要钥匙信号,这些模块在睡眠状态时,耗能非常少,因此可以一直处于可唤醒状态。
2024-12-11 21:53:15
1179
原创 candb++ canfd 报文信号报警告“Enter an integer between 1 and 64”问题
按照canfd的协议规定,最长可支持到64byte。这个配置的是512bit,刚好是64byte,但是candb++老是报警告:Enter an integer between 1 and 64。
2024-12-11 11:50:19
298
原创 关于S32DS平台使用pe仿真报错“An internal error occurred during: “Start GDB Semihosting Job“.
An internal error occurred during: "Start GDB Semihosting Job".
2024-10-22 11:21:21
485
1
原创 基于s32ds平台指定变量储存位置
打开ld文件配置一段ram空间定义一个变量并将变量指定在段中编译并查看map文件变量存储位置我们可以看到变量已经存放在我们指定的地址空间段了。自此结束。
2024-10-11 08:48:11
445
1
原创 canoe无法发出连续帧
请检查ECU回复流控帧与CANoe发出的首帧之间时间间隔是否大于N_Bs timeout,一般该参数值为1000ms,您可以查询cdd中具体定义数值,若大于此值则CANoe会因为超时而不发送后续连续帧。在一个工程中,我们既有can的报文又有canfd的报文,然后再诊断测试中发现,canoe在接收到流控帧的时候并没有转发相关的连续帧就停止服务。造成这种原因还有另外一个原因就是流控帧的回复速度问题,我设置了1秒,这里回复是在4ms左右,所以不是这个问题。frame types]选为[accept]
2024-09-20 14:30:08
870
原创 关于geny工程导入cdd之后莫名卡死的问题解决
问题是这样子的,拿了一个新的geny工程,需要更换cdd,结果发现一导入cdd文件就莫名卡死,现象是下面这样子的,排查以为是candelastudio的问题,但是我这边安装的是21版本的,能打开不卡死的同事安装的是20版本的,后面发现是另外一个插件的问题,直接转圈圈,任何提示都没有,最终通过安装这个插件解决。
2024-09-11 08:43:02
261
原创 EB Tresos 基于S32K3芯片 ICU模块实现gpio外部中断配置[后续更新实现icu模块的其他功能]
选择一个具有erq功能的引脚并配置为erq功能。环境:eb tresos 27.0.1。在这个模块中配置中断的开关以及中断句柄。配置中断产生方式以及回调函数。将中断对应的通道中断开启。
2024-07-27 13:55:33
761
2
原创 git实践汇总【配置+日常使用+问题解决】
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jItysh9p-1721871286097)(https://i-blog.csdnimg.cn/blog_migrate/b2bdd5d0cde34001573cb0c2a753764b.png)]使用命令:git commit --amend,进入命令模式,这是按 a或者i或者o进入编辑模式,我们修改好commit信息后按Esc健退出编辑模式,然后:wq保存我们编辑的信息。拉取完之后三件套:【确保当前代码最新状态】
2024-07-25 09:39:13
342
原创 iso 标准的canfd通信问题【基于S32K3系列芯片】
为了避免误解,CiA建议使用术语“ISO CAN FD”和“non-ISO CAN FD”。执行博世(BOSCH)原始CAN FD协议的产品应命名为“non-ISO CAN FD”,在这个过度阶段的产品主要目的是用于前期评估和开发,将来所有产品都将符合ISO标准。CAN-FD仅定义了数据帧,与传统CAN相比,取消了远程帧的支持。原因是在没有数据的情况下,远程帧没有必要改变数据段的比特率。通过配置之后canfd一直和canoe通信无法成功,直到canoe的设置变为non isocanfd之后可以通信,
2024-07-19 18:24:22
626
原创 s32k314【入门新手篇】-开发环境安装【ds32开发平台】
登录nxp官网下载:https://www.nxp.com/以上三步请先注册好并登录你的个人账号。点击一下软件运行,选择工作空间。然后输入关键字:S32 查看。弹出什么就安装什么就好了。
2024-06-04 20:44:14
934
原创 巧用断点设置查找bug【debug】
全速运行,可以看到当DelayTimer的值为20的时候,MCU停在了断点处,再 次全速运行,MCU将不会停下来。型,当代码运行到断点处,MCU不会Halt,可以通过Debugger Console查看。也可以在Outline,选中变量,然后鼠标右键,在弹出的菜单里选择Toggle。默认设置的断点,当代码运行到断点处MCU就会被挂起,从而停在断点处。是某个变量被设置为某个值,也可以是外设某个状态位置位,也可以是它们的。于软件庞大,调用关系复杂,变量多处访问,在调试这种问题是,通常做法是。
2024-04-20 15:42:53
671
原创 S32DS平台上使用DWT模块进行代码时间计算和利用脚本文件进行问题定位
DWT(Data Watchpoint And Trace Unit),是 ARM Cortex M 系列内核(ARMCortex-M V7(K1 M4F, K3, M7))提供的数据监测点和跟踪单元,以支持数据断点功能。。CYCCNT 是一个 32BIT 的 UP计数器,记录内核时钟的运行个数,内核时钟跳动一次,改计数器就加 1,对K3X4 内核时钟最高 160M,每个时钟节拍周期是 6.25ns,最长能记录 26.84S。
2024-04-19 17:29:35
789
原创 十大经典算法【C实现】
重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。算法实现:将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。为了使桶排序更加高效,我们需要做到这两点:在额外空间充足的情况下,尽量增大桶的数量,使用的映射函数能够将输入的 N 个数据均匀的分配到 K 个桶中……
2024-04-04 12:39:14
1051
原创 LIN协议的那些事【入门以及配置】
全称为Local Interconnect Network,是基于UART/SCI(通用异步收发器/串行接口)的低成本串行通讯协议,应用了单主机多从机的概念,总线电平一般为12V,传输速率最高限制为20kbps。由于物理层的限制,一个LIN网络最多可以连接16个节点,最长总线长度为40米。对于不需要像动力系统和底盘系统那样的速率和可靠性的传感器和执行器,即车身系统,可以采用LIN来构筑简单、低成本的局域网络,适用范围包括车窗、座椅、天窗、门锁、空调、照明等舒适性相关的领域。
2024-03-31 18:10:32
7696
2
原创 bootloader和app之间的注意问题以及调试技巧【基于s32ds】
stack:栈段,该地址空间的大小在C工程的链接文件中给出,CPU会自动保留该区域,不对其进行任何初始化,但在进入C语言main ()函数之前必须将.stack的起始地址 (stack的最小地址或者最高地址,也称为栈顶—stacktop,具体取决于该CPU架构的栈生长方式) 赋值给CPU的栈指针寄存器SP (stack pointer) ,该过程也被称为堆栈初始化;.heap:堆段,该地址空间的大小在C工程的链接文件中给出,CPU会自动保留该区域,并初始化用于堆管理的指针链表;
2024-03-30 23:26:14
1887
原创 keil uv5 map文件解析
map参考博客:https://www.csdn.net/tags/MtjaYgwsMTY2NzUtYmxvZwO0O0OO0O0O.html配置外部flash存储代码:https://strongerhuang.blog.csdn.net/article/details/51485903?spm=1001.2101.3001.6650.4&utm_medium=distribute.pc_relevant.none-task-blog-2defaultCTRLISTdefault-4.no_se
2024-02-29 16:47:32
434
原创 stm32cubemx下载、安装以及uart工程实战【最新版本傻瓜式教程】
点击 USART1,设置模式为 Asynchronous,无硬件流控制,参数为:115200,8 Bits,None,1;先选择自己所需要的包,然后再点击refresh ,再点击install。生成代码之前你可以在以下这个界面设置关于生成的编译链,生成的堆栈空间大小,以及项目位置等等。选择自己电脑对应环境的版本,我的是windows11,所以选择windows版本。没有登录账号的建议先注册登录再进行下载,这样省去后面认证的麻烦。修改包安装路径,因为我是安装在d盘,所以支持包我也安装在d盘。
2024-01-21 16:53:14
3579
2
原创 关于使用EB tresos出现无法激活的情况解决
我在安装eb studio时就是在激活方面有问题导致无法使用,下面讲解出现了什么问题以及我如何去解除的。EB安装完成时需要激活才能使用的,不然都打开或者建立不了工程,一直都是报的dns服务器错误,好的,那我改dns服务器地址。填写dns服务器地址,也可以换成别的,自己百度一下适合自己的。这是解决方案哈哈哈哈。
2023-12-09 16:09:07
3044
1
原创 利用python编写自动化格式文档并打包成exe
开发思路:读取配置文件信息,生成固定格式的文本文件,具体固定格式可根据自身需求生成。-D 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)ip名字加寄存器名字加bit位描述。-F 只生成一个exe格式的文件。选择一个配置文件,txt格式。生成文件格式 ,txt格式。-i 给应用程序添加图标。
2023-03-23 18:31:45
465
原创 M4FP 芯片 IAP程序和APP程序互相跳转
指用户程序在运行过程时能对用户Flash区域进行烧写,目的是为了用户可以方便地通过用户自己预留的通信接口,对用户产品中的固件程序进行更新升级。本方案中采用后台式DFU双区升级模式进行用户APP程序的升级。DFU(DeviceFirmwareUpdate)也就是设备固件升级的意思。判断为中断遗失,无法触发接收中断导致,在APP程序跳转时无清除中断标志,将跳转函数移出中断回调函数解决。1.IAP跳APP,app跳回IAP时出现串口中断无用?APP起始地址:0x44000。IAP起始地址:0x0。
2023-01-18 09:24:06
477
原创 巧用.bat批处理文件
批处理文件是无格式的文本文件,它包含一条或多条命令。在命令提示下输入批处理文件的名称,或者双击该批处理文件,系统就会调用cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。调用一条批处理命令,和直接执行命令效果一样,特殊情况下很有用,比如变量的多级嵌套,见教程后面。在批处理编程中,可以根据一定条件生成命令字符串,用call可以执行该字符串,见例子。CALL命令可以在批处理执行过程中调用另一个批处理,当另一个批处理执行完后,再继续执行原来的批处理 CALL command。= 不常用的参数界定符。..
2022-08-12 18:32:28
1770
原创 解决MDK5中warnning:61-D
warning: #61-D: integer operation result is out of range
2022-06-13 17:02:59
1564
1
ili9341背光pwm控制.rar
2020-09-28
字模版tftSTM32F103ZET6_Hardware_SPI.rar
2020-09-25
F103指南者版本.rar
2020-09-04
UartComdll.rar
2020-08-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人