- 博客(155)
- 收藏
- 关注
原创 Boot_JumpToAppOrNot 跳转指令 解读
"str %1, [r0]\n" // Set VTOR = appBinStartAddr //appBinStartAddr将appbin start的地址负责到VTOR。"ldr r0, =0xE000ED08\n" // VTOR address 将r0寄存器的记录VTOR外设地址。"bx %0\n" //跳转到resetHandlerAddr函数。: "r0", "memory" //地址破坏列表。
2026-05-14 13:54:50
177
原创 crc32,md5,sha256,cmac 数据有效性函数讲解
处理数据块 :数据被分成512位的块进行处理,每个块又分为16个字的分组。利用非线性函数、模加、逻辑运算、条件函数和常数,经过四个循环的16次迭代处理,更新MD缓冲区的值。crc32是通过散列函数是一种从任意长度的数据中生成固定长度“指纹”(通常是较短的字节序列)的函数。添加长度值 :在填充后的数据后面附加一个64位的长度值,表示原始数据的长度。初始化MD缓冲区 :算法使用一个64位的缓冲区,即四个32位的字(A, B, C, D),初始化为特定的常数。// MD5算法的核心操作,分为四轮,每轮16步。
2026-05-14 11:08:11
324
原创 win10管理员权限运行cmd和powershell
cmd:window键+R,输入cmd,按下ctrl+shift+Enter。powershell:window键+X,按下A。
2026-05-13 09:10:08
10
原创 vscode 内嵌deepseek 指南
2.安装完成之后,去deepseek官网注册,生成 api key。1.选择安装扩展 DeepSeek for Copilot 安装。3.DeepSeek for Copilot 配置一些参数信息。
2026-05-11 14:27:41
17
原创 代码编写注意事项
1.通过地址偏移去映射函数注册,tFlashOperateAPI *o_pstNorFlashOperateAPI = (tFlashOperateAPI *)((unsipgned char *)o_pstFlashOperateAPI + size);如果o_pstNorFlashOperateAPI出现穿插其他的变量或者出现没对齐的问题,容易造成程序崩溃。2.调试状态机,状态切换的时候,发现异常的状态跳变的时候。currentFlashJob这个变量是不是被。
2026-05-11 09:20:19
11
原创 keil 工程 .gitignore配置文件
--- 编译临时文件 & 最终输出 (Build Artifacts & Outputs)---/RTE/ # 如果不提交RTE下的设备配置,请取消此行注释。# --- 如需保留链接脚本,请取消下一行注释(并确保脚本已加入版本控制)---# --- Keil 自动生成的文件夹 (Directories)---# --- 个人/环境配置 (User-specific)---# --- 其他杂项文件 (Miscellaneous)---
2026-04-30 08:31:45
36
原创 ota升级组件
1.fbl:主要是校验sbl的ValidateBinaryCRC 和 sbl包头信息的有效性:ValidateHeader,ValidateFirmwareType,然后进行跳转sbl。如果校验失败,则对app的ValidateHeader,ValidateFirmwareType,ValidateBinaryCRC 校验,如果多失败,说明程序多损坏,进行NVIC_SystemReset复位重启。2.sbl:sbl主要是对app进行升级处理,flashdrv,cantp, uds等数据的处理。
2026-04-28 09:02:18
26
原创 keil编译器不能首行对齐问题
它不仅能将光标定位到合适的位置,还能根据 C 语言的语法结构(如函数、循环、条件判断等)进行智能对齐。在窗口的 General Editor Settings。:这个选项会将光标对齐到上一行的起始位置,没有。打开 Keil 软件,在菜单栏点击。在弹出的窗口顶部,点击 Editor。区域,找到 Auto Indent。
2026-04-22 09:44:23
23
原创 多方协同保证:中断向量表“安家”0地址
程序运行后,用户可以通过修改VTOR的值来实现向量表的重定向(如IAP功能),这为设计提供了灵活性。这是开发者或芯片厂商为链接器提供的“装修图纸”,它明确要求将启动文件中定义好的。无论软件如何安排,最终的权威是芯片硬件设计。在Cortex-M3/M4/M7/M33等较新的内核中,还有一个。段放置在指定内存块的起始位置,这是确保其地址正确的最直接方式。段放置到指定的内存区域,并确保其位于该区域的起始位置。程序中最核心的角色是汇编编写的启动文件,它通过。段作为该区域的第一部分,保证它从地址。
2026-04-14 08:26:15
24
原创 keil工程创建
比如:STM32F103R8_Low目标,只用startup_stm32f10x_md.s,因此需要将startup_stm32f10x_hd.s排除(不包含)该目标。由于是同一个工程每个target包含的文件是一样的,在其中一个target里面添加删除源文件或者组,在其他的target里面的文件也会变化。上面说的,我们选择STM32F103R8_Low目标,需要将startup_stm32f10x_hd.s排除(不包含)该目标。,则包含的库文件组就不同,需要“不包含”其中一组,选择不编译该组可以把。
2026-04-09 09:05:05
179
原创 汇编指令汇总
1.movw, movt:低16位存储,高16位存储。3.push: 压栈,将sp指针偏移。2.sub : 数值相减。5,.ldr:寄存器加载。4.str:寄存器赋值。
2026-04-01 09:38:31
30
原创 keil安装更换keil的arm/segger
1.找到SEGGER\JLink\jlink,jLink_x64.dll, jLinkArm.dll替换keil\arm\segger。
2026-01-23 15:51:09
112
原创 TI 3107 驱动调试
由于spi驱动是全双工通讯,所以如果是阻塞式的发送,就必须是发送1byte接收1byte.如果对方不没有接收,容易造成tx fiffo满,busy的问题。如果没有接收到对端的数据。就会是rx fifo空。配置完成对应的io口,想要查看配置的信息对不对。可以查看对应外设的设备基地址寄存器。就可以发现配置信息对不对。如果出现虚焊或者焊接不好的问题。数据是发送不出去的。背景:基于TI 3107 开发一款nfc传感器,遇到一些开发问题汇总。
2025-12-18 17:45:50
241
转载 射频系统学习2——IQ信号与正交调制
(</span><span class="mord mathnormal">t</span><span class="mclose">)</span></span></span></span>
2025-11-13 20:40:13
62
转载 BLE 协议之 L2CAP
经过 Link Layer 的抽象之后,两个BLE设备之间可存在两条逻辑上的数据通道一条是无连接的广播通道,天高任鸟飞另一条是基于连接的数据通道,是一个点对点()的逻辑通道。广播通道暂且不提,这个数据通道(后面简称逻辑通道,只有一条,而要利用它传输数据的上层应用却不止一个(例如上图中的 ATT 和 SMP),怎么复用?所能传输的有效 payload 长度最大只有 251bytes,怎是否意味着上层应用每次只能传输少于这个长度的数据?(显然不能!
2025-10-30 13:54:37
85
转载 Bluetooth Core6.0中关于Channel Sounding设置初始化过程详细介绍
当BLE设备间完成连接后(Connection State),可以通过Channel Sounding (CS)获取双方的精确距离。换句话说,BLE的CS技术仅支持在连接态完成测距功能,而无法在非连接态实现上述功能。Channel Sounding设置初始化过程的示例Message Sequence Chartsr如下图所示。BLE设备实现CS功能,需要完成设置初始化以完成一些必要的配置以及获取一些必要的信息。
2025-10-23 09:57:25
157
转载 Bluetooth Core6.0中关于Channel Sounding设置初始化过程详细介绍
当BLE设备间完成连接后(Connection State),可以通过Channel Sounding (CS)获取双方的精确距离。换句话说,BLE的CS技术仅支持在连接态完成测距功能,而无法在非连接态实现上述功能。Channel Sounding设置初始化过程的示例Message Sequence Chartsr如下图所示。BLE设备实现CS功能,需要完成设置初始化以完成一些必要的配置以及获取一些必要的信息。
2025-10-23 08:21:26
132
原创 智商抽样
作者:Marc Lichtman 博士 - marc@pysdr.org在本章中,我们介绍了一个称为 IQ 抽样的概念,又名复数抽样或正交抽样。我们还涵盖奈奎斯特采样、复数、射频载波、下变频和功率谱密度。IQ 采样是 SDR 以及许多数字接收器(和发射器)执行的采样形式。这是常规数字采样(双关语)的稍微复杂一些版本,所以我们会慢慢来,通过一些练习,这个概念肯定会成功!在进入智商抽样之前,让我们先讨论一下抽样的实际含义。您可能在没有意识到的情况下遇到过用麦克风录制音频的采样。麦克风是一种将声波转换为电信号(电
2025-10-22 09:53:24
760
转载 看了还不懂系列之 I/Q信号 IQ 采样
进入数字时代后,在某一个时刻传输的只有一个信号频率,比如0,假设为900MHz,1假设为901MHz,一直这两个频率在变化而已,并且不可能同时出现。注意,通过上面分析,大家知道IQ信号应该是正弦波模拟信号,手机上的频率是66KHz,大家在布线的时候一定要保证IQ信号不被干扰,毕竟是模拟信号,不然相乘相加之后就有很多杂波产生了,这个就是杂散了。芯片,无一例外的用到了I/Q信号,就算是RFID芯片,内部也用到了I/Q信号,然而绝大部分射频人员,对于IQ的了解除了名字之外,基本上一无所知。
2025-10-22 09:32:15
149
转载 卡尔曼滤波(Kalman Filter)深入解析:从零开始彻底搞懂预测与修正(适合小白,无需数学基础,一步步深入讲解)
在昨天的文章中,我复盘了这些基本滤波方法。这些方法虽然简单易用,但在可能存在不足。它们有一个它的核心特点是:✅✅,使预测更加准确✅,比如等✅,即使数据被干扰,依然能估计出真实值在查看网上各种关于卡尔曼滤波的资料时,发现几乎都是通过数学模型带领大家了解学习,因此我在考虑如果通过简单直白的方式,让我同组并没有平差基础的学弟学妹了解卡尔曼滤波,所以下面我会用尽量简单、直白的话语和例子来解释和介绍卡尔曼滤波。卡尔曼滤波的思想其实很简单,就是。
2025-10-22 09:20:29
544
转载 Bluetooth Core 6.0中以Central设备发起Channel Sounding详细流程介绍
当BLE设备间完成连接后,由发起态进入连接态的设备被称为Central device,而由广播态进入连接态的设备被称为peripheral device。当双方设备按照Vol 6, Part D:6.34 Channel Sounding setup完成BLE CS的设置后,双方就可以发起CS测距过程。
2025-10-21 18:19:00
118
转载 蓝牙Channel Sounding信道探测 (五) — CS events
CS procedure的时长取决于交换预定数量的 CS steps所需的时间,CS steps定义为Initiator和Reflector设备之间的双向交互。每个CS step交互可能包含一个调制、一个调制tone,或两者兼有。Initiator首先发送,然后Reflector至少发送一次。如果使用多条天线路径,则tone可能在每个方向上发送多次。这些steps进一步聚合到一个相关的定时组,称为。这些subevents的定时起始于底层 LE piconet物理信道连接事件的anchor point。
2025-10-21 15:59:22
64
转载 蓝牙Channel Sounding信道探测 (二) — CS 概述
的生成信号频率不同。此处理所需的时间可能看起来很短暂且无关紧要,但以光速传播的无线电传输(在真空中)可以在一微秒内传播 300 米,因此飞行时间计算中的非常小的误差都会对计算出的距离产生非常大的影响。例如,在无钥匙进入系统中,如果恶意设备能够欺骗门锁,使其认为关联的受信任无线钥匙卡距离足够近,可以自动解锁门,那么未经授权的人员就有可能进入。),另一些攻击属于中间人 (MITM) 攻击,这类攻击会中继来自受信任设备的信号,通常会在此过程中操纵信号或其数字内容,导致受信任设备错误计算其与受信任设备之间的距离。
2025-10-21 15:54:07
325
转载 蓝牙Channel Sounding信道探测 (三) — CS procedure
CS 功能由链路层(LL)和专用空口协议组合而成,该协议可在两个设备之间通过多个射频信道建立紧密互通的射频信号交换。这种交互的过程称为 CS procedure。CS procedure分为Initiator procedure和reflector procedure。Peripheral 或 Central 均可以执行CS initiator procedure或CS reflector procedure。
2025-10-21 15:19:38
120
转载 蓝牙Channel Sounding信道探测 (四) — CS Steps
CS 定义了两个设备之间的一组互锁传输。发起 CS procedures的设备称为Initiator,响应这些procedures的设备称为Reflector。在 CS procedure中,应设置为 CS step 编号,该编号从零开始,并在该procedure中的每个后续step中递增 1,不管该step是否执行。CS step由调制数据包和调制 CS tone组合而成。CS steps有四种不同的模式。
2025-10-21 14:24:05
139
转载 TI-BLE 协议栈(CC2541)peripheral的执行流程分析
BLE 技术是 Bluetooth SIG 规定的一套, 在协议变成具体的代码之前, 都只存在文档中, TI、 Nordic、 CSR 等厂商, 根据 SIG 发布的 BLE 技术协议, 配合自身的芯片开发了一整套源码, 并且这套源码经过了 SIG 的测试, 服务 BLE 协议。这套源码就叫做协议栈, 协议栈是协议的实现。不同的芯片厂商都有各自的协议栈, 而这不同的协议栈, Bluetooth SIG 是不允许厂商开源。
2025-10-17 14:57:11
129
转载 CCS软件使用教程系列——宏定义使用方法
— 搜索 Predefined symbols,然后右侧新建一个预定义变量,在输入框中输入我们想要的平台,就能够选择这个宏定义拉,我们所有的定义都在这里更改,既不用更改源文件又很好找,是不是十分方便。通常是采用宏定义的方式来进行平台的选择。如下图所示,一般情况下,我们再这个文件中增加宏定义或者直接重写。我们尽量不要动SDK文件中的内容,这样很容易别人用或者自己过很长时间用的时候忘记导致出错且不好定位。以上两种方式都能实现我们想要平台的选择,但是破坏了文件的封装性,TI有很多硬件平台,底层和平台有关的。
2025-10-16 17:38:25
200
转载 解决ccs不能同时导入两个相同工程名的问题
再来用ccs,很不方便的一点就是他的工作空间,主要他这个工作空间不能导入相同工程名字的工程,今天就把从网上找到的方法记录下来。圈红色的地方就是导入ccs中的工程名,所以这里把这个名字改成你所在工作空间不同的名字就可以了。接下来直接project->import ccs projects就可以了。
2025-10-16 17:33:37
70
转载 一文理解蓝牙Core 6.0 channel sounding精确测距
在讨论Bluetooth LE 中的Bluetooth Channel Sounding 之前,本节将首先介绍该功能背后的一些基本理论。已经熟悉该主题的读者可跳至第 3 节Bluetooth Channel Sounding。Bluetooth Channel Sounding 为产品实现比以往更高精度的距离测量提供了可能。测量的精确度取决于环境条件以及应用层如何利用Bluetooth Channel Sounding 功能。
2025-10-13 09:05:57
389
原创 [原创] IDA Pro 9 安装和插件配置
2025.9.13文章更新如下:添加IDA Pro 9.2.250908安装配置教程优化IDAPython安装部分使用便携版python而非安装版精简插件安装部分分为核心插件和其他插件,核心插件推荐安装,其他插件根据个人需求安装总结IDA的优化设置可修改ida.cfg和注册表进行优化, 已集成到打包的IDA和初始化工具中优化初始化IDA工具执行3个操作: 指定IDAPython路径, 禁用IDA自动更新和IDA9新式快捷键, 创建桌面快捷方式提供打包好的IDA Pro 9.2.7z :文件链接: https
2025-09-23 10:16:08
4910
3
转载 分辨率1080P、2K、4K、8K的含义和区别
因此,1080p并不等于“1K”。而几乎所有的高清显示屏的纵横比都是1.78:1(即16×9,又名“宽屏”),这意味着其水平分辨率为1920像素(即1920×1080)。这正是造成当前人们对分辨率概念混乱的另一个原因,毕竟过去几十年在讨论电视分辨率时说的都是垂直分辨率,现在突然变成了意指水平分辨率的“4K”,大家便困惑了。720P,1080P等,表示的是“视频像素的总行数”,比如,720P表示视频有720行的像素,而1080P则表示视频总共有1080行像。2K,4K等,表示的是“视频像素的总列数”,如。
2025-09-22 13:50:23
3723
原创 Windows环境下ARM汇编练习环境的搭建(CodeWarrior for ARM Developer Suite)
可以看到蓝色光标向下移动了一条指令,同时pc寄存器的值也跟着发生了改变,刚才pc寄存器的值是0x8000,现在变成了0x8004,因为我们是ARM模式,每条指令32位,正好是4个字节,所以每执行完一条指令pc寄存器的值往前移动4个字节。本篇文章的目的是让ARM汇编初学者以一个比较简单的方式得到一个能够运行ARM汇编指令的环境,以协助理解学习ARM汇编,因为我最近刚学习ARM汇编,看了一堆语法但仍然是懵懵的,就很想有一个环境能够写一写代码执行一下看看效果。其它指令的理解请自行调试练习。
2025-09-20 11:44:07
515
转载 PWM模块原理及简单的设计思路
PWM可以算是数字电路中的“独臂”神通,“独臂” - 只需一根线;“神通” - 在很多关键的应用中起到栋梁的作用。PWM(脉宽调制 Pulse Width Modulation)从字面意思上讲它是一种“调制”方式,调制就意味着在某些载波信号上携带了某些的信息,通过解调的过程就可以得到其携带的信息,这些信息的属性由PWM的产生端定义,总之在这一根仅仅发生0、1交替变化的信号线上可以做出很多文章。
2025-09-12 11:48:11
184
转载 C语言笔记2之代码规范
尽量用大写字母开头,可加入 _st等样式标志;注意两种声明方式和定义方式1、typedef 声明方式手动初始化第0种,编译器默认初始化为0第一种:第二种第三种:尽量全部大写字母,可加入E开头样式;尽量加一个空枚举成员并赋值0(xxx_NULL = 0),枚举成员也要用全大写字母1、typedef 声明默认初始化手动初始化默认初始化手动初始化尽量用大写字母开头,可加入 U_等样式标志默认初始化第一种第二种第三种默认初始化第一种第二种第三种。
2025-09-09 21:45:03
121
打包脚本,仅供参考,尊重原创
2026-04-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅