自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

天使之翼

一个技术男的书房

  • 博客(632)
  • 资源 (12)
  • 问答 (1)
  • 收藏
  • 关注

原创 C/C++ 编译四阶段全流程拆解

本文以真实 gcc/g++ 13.3.0 环境,完整实测 C/C++ 编译四阶段(预编译→编译→汇编→链接),从84行源码逐级生成可执行文件,所有字节、地址、符号均来自 readelf/nm/map 实测输出,无任何估算。通过四个项目(单/多文件C/C++)验证段分布、符号解析与重定位机制,揭示编译链中各环节的实质行为,附完整源码与命令清单,可直接复现。

2026-10-08 00:01:46 412

原创 RK4(四阶龙格-库塔):公式逐项推导 + 12 组实测实验 + 深度学习/智能驾驶三大落地场景

目录一切数值积分的起点是常微分方程(ODE)的初值问题:dydt=f(t,y),y(t0)=y0\frac{dy}{dt} = f(t, y), \qquad y(t_0) = y_0dtdy​=f(t,y),y(t0​)=y0​符号说明:ttt 是自变量(通常是时间);yyy 是状态(可以是标量、向量、矩阵、张量);fff 是"右端函数",给出任意时刻任意状态下的变化率(斜率);y0y_0y0​ 是初始条件(初始点)。绝大多数实际问题的 fff 太复杂,没有解析解 → 只能数值积分:把时间切成步长 hhh

2026-09-30 20:42:09 443 1

原创 一文搞懂 Token化、Embedding 与位置编码

本文系统解析文本进入Transformer前的三大核心步骤:Token化(基于Qwen3-BBPE,支持中英文/代码/emoji,实测压缩率1.5–5.8)、Embedding(查表与one-hot矩阵乘等价,误差0)、位置编码(正弦/可学习/RoPE对比,实验验证RoPE内积仅依赖相对位置,偏差4.77e-7)。通过7组PyTorch实验(RTX 5070 Ti实测)证实:无位置编码时模型对词序完全无感(误差1.19e-7),且嵌入层梯度仅更新使用到的词向量。附完整可运行代码与选型避坑清单,全面揭示从文本

2026-09-29 00:21:21 367

原创 深度学习归一化 fully 指南:BN/LN/IN/GN/RMSNorm 公式推导 + PyTorch 实验全验证(附完整可运行代码)

本文系统解析深度学习五大归一化方法:BatchNorm、LayerNorm、InstanceNorm、GroupNorm 与 RMSNorm,从公式推导到 PyTorch 实现,结合6组实测实验(RTX 5070 Ti)验证其性能差异。核心结论:五者本质区别仅在于统计维度;BN收敛快但对batch size敏感,LN适用于Transformer且稳定,RMSNorm比LN快8%~14%,而GroupNorm在小批量下表现稳健。附完整可运行代码,提供选型决策树与7条实战避坑建议,助高效落地。

2026-09-26 22:43:57 347

原创 激活函数(Activation Functions)详解

本文系统详解常用激活函数:从非线性必要性出发,阐明激活函数在深度学习中的核心作用——引入非线性、压缩值域、实现门控。逐个解析 Sigmoid、tanh、ReLU、LeakyReLU、ELU、GELU、SiLU、Softmax 的公式、导数推导(含逐步演算)、特性与应用场景,并提供 PyTorch 实现代码及逐行注释,辅以图形对比。强调好激活函数应满足非线性、梯度稳定、零中心、计算高效等标准,最后给出选型指南与统一梯度验证代码,助力模型设计与调试。

2026-09-21 00:42:42 278

原创 反向传播(Backpropagation)详解

反向传播是深度学习的核心算法,通过一次前向传播与一次反向传播,高效计算损失对所有参数的梯度 $\nabla_\theta \mathcal{L}$。其本质是链式法则在计算图上的记忆化实现,采用反向模式自动微分,仅需 $2$ 倍前向时间即可完成千万级参数的梯度计算,远优于数值差分的 $2P$ 次前向。核心思想为:从输出层出发,逐层递推误差项 $\boldsymbol{\delta}^{(l)} = (W^{(l+1)})^\top \boldsymbol{\delta}^{(l+1)} \odot \sigm

2026-09-21 00:22:17 199

原创 深度学习常用公式手册

本文整理深度学习核心公式,涵盖激活函数(Sigmoid、tanh、ReLU及其变体)、归一化(BatchNorm)、损失函数、优化器、正则化、卷积池化、序列模型与注意力、强化学习及生成模型等章节。每条公式附符号说明、应用场景、PyTorch实现与图形示意,强调数值稳定性(如binary_cross_entropy_with_logits)与实践要点(如BN训练/推理模式切换),提供公式与API速查支持,适用于快速查阅与工程实现。

2026-09-18 22:59:54 163

原创 深度学习符号速查表

本文为深度学习符号速查表,涵盖希腊字母、线性代数、微积分、概率统计、神经网络、损失函数、优化器与强化学习核心符号,每项附读音、含义、公式及应用场景,并在每章末提供 ⚡ PyTorch 实战 小节,实现符号到代码的直观映射,如 α 对应 lr,∇ 对应 backward(),σ 对应 torch.sigmoid,助读者快速掌握理论与实践的桥梁。

2026-09-17 21:43:26 237

原创 Renesas RH850-U2A STC Instructions

摘要:本文详细介绍了Renesas RH850-U2处理器中的STC(Store Conditional)指令集,包括STC.B(字节)、STC.H(半字)和STC.W(字)三种指令。这些指令仅在与指定地址存在链接时才能成功执行,实现原子化的读-修改-写操作。执行结果通过检查寄存器reg3的值(1表示成功,0表示失败)确认。STC指令通常与对应的LDL指令(LDL.BU、LDL.HU、LDL.W)配对使用,确保多核系统中内存更新的准确性。每种指令格式包含操作码、执行流程和功能说明,适用于不同数据宽度的存储需

2026-01-19 23:30:01 697 1

原创 Renesas RH850-U2 LDL Instructions

Renesas RH850-U2 LDL指令摘要:LDL指令组(LDL.BU、LDL.HU、LDL.W)用于实现多核系统中的原子读写操作。这些指令从内存读取数据(字节/半字/字)到寄存器并建立地址链接,必须与对应的STC指令配对使用。执行时若链接保持则STC成功并清除链接,否则STC失败。LDL.BU读取字节后零扩展,LDL.HU读取半字后零扩展,LDL.W直接读取字数据。所有指令都会设置LLbit标志,支持精确的内存更新。

2026-01-18 23:31:47 615 1

原创 Renesas RH850-U2 TRAP指令介绍

本文介绍了Renesas RH850-U2微控制器中的TRAP指令系统,主要包括FETRAP和TRAP两种指令。FETRAP是FE级陷阱指令,会保存返回地址和PSW状态到FEPC和FEPSW寄存器,存储异常原因码到FEIC,并更新PSW状态后跳转到异常处理程序。TRAP指令功能类似,但使用EIPC、EIPSW和EIIC寄存器。两种指令都通过向量号(vvvv/vvvvv)确定异常原因码和处理程序偏移地址,但FETRAP禁止使用0H向量。文中详细说明了两种指令的格式、操作码和具体功能,并附有向量号与异常原因码的

2026-01-18 23:07:11 758

原创 Renesas RH850-U2A中断系统介绍-3

摘要:本文介绍了Renesas RH850-U2A的中断系统寄存器功能,主要包括ISPR(中断服务优先级寄存器)、IMSR(中断掩码状态寄存器)、ICSR(中断控制状态寄存器)、INTCFG(中断功能配置寄存器)和PLMR(中断优先级掩码寄存器)。这些寄存器通过LDSR/STSR指令访问,控制中断优先级处理、掩码状态和功能配置。其中ISPR在INTCFG.EPL=0时启用优先级控制,IMSR按特定顺序更新中断掩码状态,PLMR实现基于优先级的屏蔽功能。各寄存器位域详细定义了中断管理的硬件机制。

2026-01-08 23:23:38 791 1

原创 Renesas RH850-U2A Inter-Processor Interrupt Function

【代码】Renesas RH850-U2A Inter-Processor Interrupt Function。

2026-01-05 23:40:24 1177 2

原创 The Renesas RH850-U2A Inter-Processor Interrupt Overview and Registers

摘要:Renesas RH850-U2A处理器的IPIR(Inter-Processor Interrupt Register)实现了处理器核(PE)间的快速中断请求,具有4通道中断、电平检测、中断屏蔽等功能。系统通过自区域(Self Region)虚拟寄存器实现统一访问,各PE可使用相同代码。主要寄存器包括使能寄存器(IPInENm)、标志寄存器(IPInFLGm)、清除寄存器(IPInFCLRm)等,支持原子操作并具备ECC和访问保护功能。该机制比软件设置INTC2中断标志更高效,同时支持直接访问实际寄

2026-01-05 23:17:50 754 1

原创 Renesas RH850-U2A Mutual Exclusion

摘要: Renesas RH850-U2A处理器通过原子操作指令实现多核环境下的互斥访问。支持的指令包括LDL/STC、CAXI、SET1/CLR1/NOT1等,适用于本地RAM和集群RAM。LDL/STC通过链接机制(LLbit)确保原子读写,要求地址和数据大小匹配。SET1指令通过检查PSW.Z标志实现互斥,而CAXI指令通过比较交换操作完成同步。文中提供了基于LDL/STC、SET1和CAXI的三种自旋锁示例代码,并详细说明了链接丢失条件(如中断、异常或地址冲突)。该机制保证多核数据访问的原子性,但需

2026-01-04 23:44:26 804

原创 Renesas RH850-U2A中断系统介绍-2

Renesas RH850-U2A中断系统通过硬件和软件协同处理中断上下文的保存与恢复。硬件自动保存程序计数器(PC)、程序状态字(PSW)、异常原因码(EIIC/FEIC)和工作系统寄存器(EIWR/FEWR),而软件需保存其他必要资源。中断分为FE和EI两个级别,分别通过FERET和EIRET指令返回。返回时需先恢复上下文,否则可能导致程序状态无法正确恢复。系统支持多级中断处理,通过基本上下文寄存器确保不同级别中断的上下文独立保存,避免覆盖。中断处理流程包括优先级检查、处理地址计算、寄存器保存和状态更新

2026-01-03 15:31:21 1162

原创 Renesas RH850-U2A中断系统介绍-1

RH850-U2A中断系统采用两种异常处理地址确定方法:直接向量法和表格引用法。直接向量法通过RBASE/EBASE寄存器(由PSW.EBV位选择)与偏移地址相加生成处理地址,复位时固定使用RBASE。用户中断(EIINTn)可通过RINT位控制偏移地址缩减以节省内存。表格引用法则通过INTBP寄存器指向内存中的中断处理地址表,支持为每个中断通道指定独立处理程序,适用于需要差异化处理的场景。系统提供灵活的异常处理机制,包括复位、异常和中断向量表配置,通过专用寄存器(RBASE/EBASE/INTBP)实现地

2026-01-02 22:41:15 1101

原创 Renesas RH850-U2A Branch Instructions

本文介绍了Renesas RH850-U2A处理器的分支指令,包括无条件分支指令(JARL、JMP、JR)和条件分支指令(Bcond)。Bcond指令根据PSW标志状态进行条件跳转,包含BC、BE等多种条件码形式。JARL指令实现跳转并保存返回地址,支持立即数和寄存器寻址方式。JMP指令通过寄存器或寄存器加偏移量实现跳转。JR指令支持相对地址跳转,有22位和32位两种位移格式。文中详细说明了各指令的格式、操作码及功能描述,为RH850-U2A的程序控制流程实现提供了完整的指令集参考。

2026-01-01 10:51:59 793 1

原创 Renesas RH850-U2A Arithmetic Instructions

【代码】Renesas RH850-U2A Arithmetic Instructions。

2025-12-31 23:56:24 860

原创 Renesas RH850-U2A Stack Handle Instructions

摘要:本文详细介绍了Renesas RH850-U2A处理器的栈操作指令集,包括PREPARE、DISPOSE、PUSHSP和POPSP四种核心指令。PREPARE指令用于将寄存器值保存到栈中并调整栈指针,DISPOSE指令则执行相反操作。PUSHSP和POPSP分别实现寄存器范围压栈和弹栈功能。文档提供了每种指令的格式、操作流程、操作码结构及寄存器列表定义(list12),并包含具体的位域说明和异常检查机制。这些指令通过不同的参数配置支持多种栈操作场景,为RH850-U2A的栈管理提供了高效解决方案。

2025-12-30 16:35:08 840

原创 Renesas RH850-U2A SST Instructions

本文介绍了Renesas RH850-U2A处理器的SST(Short Store)指令集,包括SST.B、SST.H和SST.W三种指令。这些16位长度指令使用ep寄存器作为基地址,通过零扩展位移量生成32位地址,分别实现字节、半字和字的存储操作。指令在中断上下文保存/恢复时与prepare指令配合使用,需先设置ep寄存器并开辟栈空间。所有指令在地址生成时采用无符号零扩展方式处理偏移量,并包含内存访问异常检查机制。各指令格式、操作语义及操作码均被详细说明。

2025-12-29 15:38:43 1087

原创 Renesas RH850-U2A ST Instructions

本文档详细介绍了Renesas RH850-U2A处理器的存储指令(ST)集,包含四种数据存储操作:ST.B(字节)、ST.H(半字)、ST.W(字)和ST.DW(双字)。每种指令提供多种寻址方式,包括带16位/23位偏移量的基址寻址、自增/自减后置寻址。文档详细说明了各指令的格式、操作流程和机器码编码方式,包括寄存器选择、位移量处理和内存访问检查等关键操作步骤。所有指令都涉及地址计算、内存访问异常检查(MDP/MAE)和实际存储操作,部分指令还会自动更新基址寄存器值。

2025-12-29 08:43:57 881

原创 Renesas RH850-U2A SLD Instructions

摘要:本文详细介绍了Renesas RH850-U2A处理器的SLD(Short format load)指令集,包括五种加载指令:SLD.B(字节加载)、SLD.BU(无符号字节加载)、SLD.H(半字加载)、SLD.HU(无符号半字加载)和SLD.W(字加载)。每种指令均包含格式说明、操作流程(含地址计算、异常检查和内存加载过程)以及对应的操作码图示,并特别标注了寄存器使用限制(如r0不能用于reg2)和位移量处理方式。这些指令通过不同位宽和符号扩展方式实现高效内存数据加载。

2025-12-28 18:44:33 653 1

原创 Renesas RH850-U2A LD Instructions

摘要:本文档详细介绍了Renesas RH850-U2A处理器的加载指令集,包括LD.B、LD.BU、LD.DW、LD.H等指令格式及操作。每种指令支持不同的寻址模式(如位移寻址、自增/减寻址),并提供对应的机器码编码方案。其中LD.B/LD.BU实现字节加载(带符号/无符号扩展),LD.H实现半字加载,LD.DW实现双字加载。所有指令均包含内存地址对齐检查(MDP/MAE)机制,并详细说明了操作数编码规则和位移量的符号扩展处理方式。

2025-12-27 17:30:49 994

原创 Renesas RH850-U2A Register Set

摘要: Renesas RH850-U2A处理器包含程序寄存器(32个通用寄存器r0-r31和程序计数器PC)和基本系统寄存器。通用寄存器中,r0固定为0,r3、r30等被特定指令隐式使用,r1、r4等需注意编译器占用。PC存储当前指令地址,复位后值为RBASE寄存器内容。基本系统寄存器通过LDSR/STSR指令访问,用于控制CPU状态和异常处理。特殊寄存器使用需遵循特定规则以保证兼容性。(149字)

2025-12-25 23:49:27 1087

原创 Renesas RH850-U2A Basic Instructions

摘要:本文档详细介绍了Renesas RH850-U2A微处理器的基础指令集,主要包括四类指令:1) 加载指令(LD/SLD系列),用于内存到寄存器的数据传输;2) 存储指令(ST/SST系列),实现寄存器到内存的数据传输;3) 算术指令(ADD/SUB/CMP等),处理寄存器间的算术运算;4) 逻辑指令(AND/OR/NOT等),执行逻辑运算操作。文档还规范了指令格式符号(如reg1/imm×等)和操作约定符号(如←/GR[a]等),为指令编码和使用提供了标准化的描述框架。该指令集支持多种数据格式操作(字

2025-12-25 23:33:25 867

原创 FreeRTOS-RP2040关键汇编函数解释

https://www.freertos.org/

2025-07-24 23:57:21 719 3

原创 FreeRTOS之链表关键数据结构和函数操作接口-2

中用于定位插入位置(在索引指针的前一个位置插入,使新节点成为 “最后一个将被移除的节点”)中用于定位插入位置(在索引指针的前一个位置插入,使新节点成为 “最后一个将被移除的节点”),遍历链表找到合适的插入位置,从链表的哨兵节点(xListEnd)开始遍历。,直接插入到链表尾节点(xListEnd)的前面,作为迭代器的起始节点。,记录新节点所属的链表,便于后续操作中快速定位节点所在的链表。,新节点的下一个节点指向迭代器的下一个节点。,新节点的下一个节点的前一个节点指向新节点。:指向要插入节点的目标链表,

2025-07-15 21:13:05 574 1

原创 FreeRTOS之链表关键数据结构和函数操作接口-1

这个结构体是 FreeRTOS 内核中用于管理链表的核心数据结构xLIST。链表在 FreeRTOS 中被广泛用于任务调度、事件管理、资源分配等场景(如就绪任务链表、延时任务链表、信号量等待链表等)。

2025-07-15 00:00:38 458

原创 归并排序算法及其在算法中的应用

将当前数组从中间分成两个子数组,递归地对这两个子数组继续进行分解,直到每个子数组只包含一个元素(此时子数组自然有序)。递归地对分解得到的子数组进行排序。由于每个子数组最终会被分解到只包含一个元素,因此排序操作实际上是在合并过程中完成的。将两个已排序的子数组合并成一个有序数组。这是归并排序的核心操作,需要比较两个子数组的元素,按顺序放入新的数组中。

2025-06-09 22:50:24 652 1

原创 ARM A64 STR指令

【代码】ARM A64 STR指令。

2025-05-18 21:35:45 1622 2

原创 ARM A64 LDR指令

https://developer.arm.com/documentation/ddi0487/fcLoad Register (immediate) loads a word or doubleword from memory and writes it to a register. The address that is used for the load is calculated from a base register and an immediate offset. The Unsigned

2025-05-16 00:00:28 892 1

原创 GNU链接器简介-3

该篇文章是基于对的翻译,并添加了部分自己的理解。

2025-01-07 00:07:52 1117 1

原创 GNU链接器简介-2

该篇文章是基于对的翻译,并添加了部分自己的理解。

2025-01-05 23:45:49 1007 1

原创 GNU链接器简介

为了介绍链接器,首先使用一个最简单的测试程序去介绍链接器的功能,主要是简要介绍链接器对于可行性程序或库的入口地址的影响。

2025-01-04 21:41:58 1410

原创 arm CPS指令解释

Some PSTATE fields can be accessed using the Special-purpose Current Program Status Register (CPSR). The CPSR can be directly read using the MRS instruction, and directly written using the MSR (register) and MSR (immediate) instructions.某些 PSTATE 字段可通过专用当

2024-12-13 23:55:55 1742 3

原创 ARM A32多数据处理汇编指令理解分享

在ARM A32多数据处理汇编指令分为多数据存储指令和多数据加载指令:1,多数据存储指令:push, STMFD(STMDB), STMED(STMDA) , STMFA(STMIB), STMEA(STMIA);2,多数据加载指令:pop,LDMF(LDMIA), LDMFA(LDMDA), LDMEA(LDMDB), LDMED(LDMIB);

2024-12-05 23:58:31 1889 1

原创 FreeRTOS之ARM CR5栈结构操作示意图

下面以FreeRTOS源码中arm cortex-r5处理器的栈处理为例来介绍栈结构操作前后变化。

2024-12-03 20:09:21 869 1

原创 FreeRTOS之vTaskStartScheduler实现分析

vTaskStartScheduler

2024-11-27 23:06:42 1307 5

原创 FreeRTOS之vTaskDelete实现分析

TaskHandle_t xTaskToDelete 要删除任务的句柄,但这个句柄其实就是我们申请任务时创建的TCB,这个参数在传入的时候可以设置为NULL,表示要删除的是自己当前的任务。

2024-11-22 23:33:49 791 1

CoAP_rfc7252.pdf

The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks.

2020-12-04

virtio-v1.1-csprd01.pdf

virtio-v1.1-csprd01.pdf

2022-08-24

virtio-v1.1.pdf

半虚拟化virtio协议的官方文档

2022-08-23

Real-Time Embedded Multithreading--Using ThreadX.7z

1,Real-Time Embedded Multithreading Using ThreadX and MIPS 2,Real-Time_Embedded_Multithreading_Using_ThreadX 3,Real-Time Embedded Multithreading Using ThreadX and ARM 4,eetop.cn_Real-Time.Embedded.Multithreading-Using.ThreadX.and.MIPS 5,(CMP) Real-Time Embedded Multithreading--Using ThreadX & ARM

2019-08-20

openocd-2020-12-23.pdf

Open On-Chip Debugger:OpenOCD User’s Guide This User’s Guide documents release 0.10.0+dev, dated 23 November 2020, of the Open On-Chip Debugger (OpenOCD). • Copyright c 2008 The OpenOCD Project • Copyright c 2007-2008 Spencer Oliver spen@spen-soft.co.uk • Copyright c 2008-2010 Oyvind Harboe oyvin

2020-11-24

python在linux下的路径

1,python的资料。 2,linux下的python下的资料。

2014-04-26

vi编辑器的一些配置文件

这个是vim的配置文件,在家目录下直接解压即可使用。

2014-09-16

busybox-1.31.0.tar.bz2

busybox的下载地址:https://busybox.net/downloads/,稍后我上传一个编译好的arm64的busybox _install_arm64

2020-07-08

_install.tar.gz

这个_install是我基于busybox-1.31.0编译的arm64的版本,这个可以直接下载下来拿到linux4.0的低版本上直接去使用,需要注意的是,如果修改该压缩包里面的文件,则需要重新编译内核才会生效。

2020-07-08

Inside the C++ Object Model_english&chinese;

Inside the C++ Object Model focuses on the underlying mechanisms that support object-oriented programming within C++: constructor semantics, temporary generation, support for encapsulation, inheritance, and "the virtuals"-virtual functions and virtual inheritance. This book shows how your understanding the underlying implementation models can help you code more efficiently and with greater confidence. Lippman dispells the misinformation and myths about the overhead and complexity associated with C++, while pointing out areas in which costs and trade offs, sometimes hidden, do exist. He then explains how the various implementation models arose, points out areas in which they are likely to evolve, and why they are what they are. He covers the semantic implications of the C++ object model and how that model affects your programs.

2018-07-27

vim配置信息

vim配置脚本。有了它对于应用开发有很大的好处。

2014-09-03

See mips run

In manyways, the first edition of See MIPS Run was a ground-breaking book on the MIPS architecture and its implementations. While other books covered similar material, See MIPS Run focused on what the programmer needed to understand of the architecture and the software environment in order to effectively program a MIPS chip.

2018-03-17

vim工具使用

一个关于vim的资料,资料在家目录直接解压之后就可以使用,当你用vi或者vim得时候就可以看到效果。

2014-09-07

简明 Python 教程_cn_en

A Byte of Python》 是一本由 Swaroop C H 编写, 旨在于介绍如何使用 Python 语言进行编 程的自由图书。 它以教材与指南的形式为入门者介绍 Python 语言。 如果你对电脑知识的了解 仅限于如何保存文本文件的话, 那这本书就是为你准备的。 2005 年, 沈洁元将本书的 1.20 版引进中国, 并完成了全本翻译, 将本书的译名定为《简明 Python 教程》 。 2017年, 漠伦基于原书 4.0 版重新翻译, 制作了本版全新译本, 并沿用同样 的译名。 向大神们致敬

2018-09-04

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

TA关注的人

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