- 博客(456)
- 资源 (1)
- 收藏
- 关注
原创 FreeRTOS基础 -- xTaskCreate 的详细用法
虽然的返回值检查并非强制要求,但在实际开发中,尤其是在资源受限的环境下,建议始终检查返回值并处理可能的错误情况。这可以提高系统的鲁棒性和可靠性,防止由于任务创建失败导致不可预期的问题。
2024-09-23 20:00:00 489
原创 数学基础 -- 微积分之函数求导的常数倍法则
使用常数倍法则可以简化求导过程,减少出错几率,并提高计算效率。掌握此法则后,复杂函数的求导也可以变得更加简单直观。
2024-09-21 21:41:16 599
原创 Linux内核 -- irq_of_parse_and_map 接口使用详解
是驱动程序中与设备树中断描述紧密相关的重要接口。它通过解析设备树中定义的中断信息,将硬件中断资源映射到内核可识别的 IRQ 号,为设备的正常工作提供了关键支持。在设备驱动开发中,理解设备树的中断定义及其与的关联,对于正确处理硬件中断至关重要。前的部分: 这是设备树节点的标签,用于在设备树中唯一标识这个节点,通常用于引用。后的部分: 这是设备树节点的名称,应该使用这个名称来查找节点。在使用时,填入的应该是设备树中后面的部分,即节点名称,如。
2024-09-20 20:00:00 953
原创 Python基础 -- 使用Python实现ssh终端并实现数据处理与统计功能
本教程展示了如何使用Python编写一个简单的SSH客户端。该客户端连接到远程服务器,执行命令,并监听远程服务器的输出。本教程使用了paramiko库来处理SSH连接,使用了matplotlib来绘制图表,numpy处理数据,ctypes用于处理无符号64位整数。
2024-09-19 21:07:38 676
原创 Linux基础 -- 原子同步之__sync_val_compare_and_swap 用法详解
是 GCC 提供的一个内置函数,用于实现原子操作。它在多线程编程中非常有用,可以用来实现无锁数据结构和同步机制。该函数提供了一个原子性的比较并交换操作,即在一个多线程环境下,这个操作能够确保多个线程不会同时修改同一个变量。参数说明:指向需要进行原子操作的变量的指针。:期待的当前值,也就是我们希望 指向的变量当前应该包含的值。:如果 指向的变量的值等于 ,那么将 指向的变量的值设置为 。返回值如果 指向的变量的值等于 ,函数会将 赋值给该变量,并返回 。如果 指向的变量的值不等
2024-09-19 20:03:47 334
原创 ARM64基础 -- x29 和 x30 寄存器详解
x29(FP):用于指向当前栈帧的基址,便于函数内部访问局部变量和参数,帮助调试和栈回溯。x30(LR):用于存储函数的返回地址,确保函数执行完毕后能正确返回调用者。通过这些寄存器,ARM64 能够高效管理函数调用和返回,保持程序的结构清晰和可维护性。
2024-09-19 20:00:00 813
原创 ARM64基础 -- 栈帧管理示例
函数入口时使用stp指令保存了x29和x30,并将sp减少 16 字节以分配新的栈帧。sp从0x1000变为0x0FF0。栈上存储了0x2000(旧的x29)和0x3000(旧的x30函数结束时使用ldp指令恢复x29和x30,并将sp增加 16 字节以恢复到函数调用前的状态。sp恢复到0x1000。这个过程确保了函数执行时保存和恢复了必要的上下文(帧指针和返回地址),以便函数能够正确返回并保持调用栈的完整性。
2024-09-19 20:00:00 377
原创 计算机科学基础 -- 指令缓存体系
初始阶段:程序的指令最初不在缓存中,导致一次缓存未命中,CPU从主存加载指令到缓存。循环阶段:由于循环中的指令模式固定,后续的每次循环都会命中缓存,CPU直接从缓存中获取指令执行,极大提高了效率。性能提升:如果没有指令缓存,CPU每次取指都需要从主存中读取,这将导致程序执行速度变慢,尤其是在这样的循环密集型程序中。在这个循环运算的例子中,指令缓存显著提升了程序的执行速度,尤其是在循环体较小、指令重复率高的情况下。
2024-09-14 00:06:20 732
原创 计算机科学基础 -- 分支预测之感知机分支预测器
感知机分支预测器通过学习历史分支行为调整权重,能够有效处理复杂的分支模式。它比传统预测器更灵活,在处理长依赖链分支时表现优异。然而,它需要更多的硬件资源和计算能力,但其准确性和自适应能力使其在复杂场景中具有明显优势。
2024-09-13 23:44:43 921
原创 计算机科学基础 -- 分支预测
当处理器遇到分支指令时,它还不知道条件是否成立(即分支是否跳转),这时分支预测器会做出一个猜测。如果预测错误,处理器需要丢弃错误路径上执行的指令,并回退到正确路径重新执行。是处理器中的一种重要技术,用于预测程序中的分支指令(如条件跳转、循环和函数调用)的执行路径。分支预测通过猜测分支的走向,让处理器提前执行预测路径上的指令,从而减少等待时间,提高整体性能。分支预测能够减少处理器因分支指令导致的停顿,提高指令执行效率。对于循环等频繁出现的分支,分支预测的准确性对整体性能提升至关重要。假设有一个循环,条件为。
2024-09-13 23:32:13 795
原创 计算机科学基础 -- 访存单元
访存单元是处理器中负责内存读写操作的模块,通过缓存、预取等技术优化内存访问效率。它面临缓存一致性、内存延迟和带宽等挑战。访存单元的设计和优化对系统性能至关重要。
2024-09-13 23:20:56 410
原创 计算机科学基础 -- 超流水线
通过超流水线技术,处理器能够在同一个时钟周期内同时发射和执行多条指令,充分利用多个功能单元(如两个整数运算单元和一个浮点运算单元)。这使得处理器能够提高指令的吞吐量,从而大大提升整体性能。但同时也带来了更复杂的指令调度、依赖处理和资源冲突等挑战。
2024-09-13 22:52:47 315
原创 计算机科学基础 -- 流水线与MIPS
流水线和MIPS(Millions of Instructions Per Second)是计算机体系结构中的两个重要概念,但它们侧重不同的方面。
2024-09-13 22:24:29 561
原创 数学基础 -- 线性代数之奇异值
奇异值分解在数据压缩和最小二乘问题中有广泛的应用。在数据压缩中,通过保留最大的奇异值,我们可以有效减少数据量,压缩图片或信号;在最小二乘问题中,SVD 提供了数值稳定的解法,特别适用于病态或超定方程组。
2024-09-13 00:52:36 852
原创 数学基础 -- 线性代数之特征值与特征向量深入解析
特征值与特征向量的深入理解包括广义特征值问题、稀疏矩阵、奇异值分解、非线性问题等多个领域。它们在数学和应用中扮演着核心角色,从数值计算、机器学习到深度学习,特征值的分析和计算工具为我们提供了理解复杂系统的途径。
2024-09-13 00:17:17 1123
原创 GPU基础 -- 并行化与阿姆达尔定律
阿姆达尔定律提醒我们,程序中的不可并行部分将限制性能提升的上限。因此,在并行算法设计中,应该尽可能减少串行部分,优化并行部分,才能实现更高的加速比。
2024-09-12 00:10:41 510
原创 数学运用 -- 泰勒展开与勒让德展开差异分析
项目泰勒展开勒让德展开基于函数的导数勒让德多项式的正交性适用区间任意一点附近,尤其在aaa点附近−11[-1, 1]−11区间应用场景函数近似,局部线性化,物理和工程学中的小范围分析球谐分析,量子力学,电磁场中的球对称问题级数收敛性依赖于函数在展开点附近的光滑性与导数性质依赖于区间−11[-1, 1]−11上的函数特性优点在函数光滑时能够较好地逼近函数正交性保证了在一定区间内的良好逼近局限性可能在某些区域不收敛或逼近较差仅适用于固定区间,非球对称问题较少应用。
2024-09-11 20:00:00 633
原创 数学基础 -- 概率统计之高斯分布
项目泰勒展开勒让德展开基于函数的导数勒让德多项式的正交性适用区间任意一点附近,尤其在aaa点附近−11[-1, 1]−11区间应用场景函数近似,局部线性化,物理和工程学中的小范围分析球谐分析,量子力学,电磁场中的球对称问题级数收敛性依赖于函数在展开点附近的光滑性与导数性质依赖于区间−11[-1, 1]−11上的函数特性优点在函数光滑时能够较好地逼近函数正交性保证了在一定区间内的良好逼近局限性可能在某些区域不收敛或逼近较差仅适用于固定区间,非球对称问题较少应用。
2024-09-11 20:00:00 976
原创 Linux内核 -- 内存管理之 lru_cache_add_inactive_or_unevictable 函数
是 Linux 内核中的一个函数,主要用于将内存页添加到 LRU(Least Recently Used,最近最少使用)缓存的非活跃(inactive)或不可逐出(unevictable)列表中。该函数是内存管理子系统的一部分,旨在优化内存页的缓存与逐出策略。是 Linux 内核中管理内存页的重要函数之一,确保了不同类型的内存页能够按照合理的策略进行处理与管理。通过将内存页加入不同的 LRU 列表,该函数帮助优化系统的内存回收机制,维护内存管理的高效性与稳定性。
2024-09-10 23:00:00 382
原创 Linux内核 -- CGROUP子系统之内存控制组 mem_cgroup_charge函数
是 Linux 内核中的一个函数,用于对内存控制组(Memory Control Group,简称 memcg)中的某个内存页进行“计费”(charge)。它的主要作用是确保在分配或使用内存时,该内存页的消耗能够正确地被归属到对应的内存控制组中,从而实施对内存使用的限制和控制。内存控制组(memcg)是 Linux 内核 cgroup(控制组)子系统的一部分,用于限制、隔离和监控不同进程组的内存使用。通过 memcg,系统管理员可以对不同任务或进程组设置内存使用上限,以防止某个进程过度消耗系统内存资源。
2024-09-10 23:00:00 415
原创 数学基础 -- 线性代数之克罗内克函数 Kronecker delta
克罗内克δ函数δijδij是一个重要的工具,广泛应用于线性代数、量子力学、正交多项式和张量分析等多个领域。它主要用于检测两个变量是否相等,并用于表示正交性、单位矩阵以及基向量的内积结果。
2024-09-10 22:45:12 1009
原创 图像处理 -- ISP功能之局部对比度增强 LCE
局部对比度增强(Local Contrast Enhancement, LCE)是一种图像处理技术,旨在通过调整图像的局部区域对比度,增强图像细节和视觉效果。LCE 的实现方式多种多样,以下是几种常见的类型与算法说明。
2024-09-10 20:30:00 1464
原创 数学基础 -- 线性代数正交多项式之勒让德多项式展开推导
通过详细的推导,我们得到了函数fxx2f(x) = x^2fxx2a013a031a10a_1 = 0a10a223a232因此,函数fxx2f(x) = x^2fxx2fx13P0x23P2xfx31P0x32P2xfx13⋅123⋅123x2−1x2fx31⋅132⋅213。
2024-09-09 23:37:12 1148
原创 数学基础 -- 线性代数之格拉姆-施密特正交化
(Gram-Schmidt Orthogonalization)是一种将一组线性无关的向量转换为一组两两正交向量的算法。通过该过程,我们能够从原始向量组中构造正交基,并且可以选择归一化使得向量组成为标准正交基。
2024-09-07 14:17:07 1196
原创 数学基础 -- 线性代数之矩阵正定性
对于一个n×nn \times nn×n的对称矩阵AAA正定矩阵:如果对于任意非零向量x∈Rnx∈Rn,二次型xTAxx^T A xxTAxxTAx0∀x∈Rnx≠0xTAx0∀x∈Rnx0则称矩阵AAA是正定矩阵(positive definite matrix)。正半定矩阵:如果对于任意向量x∈Rnx∈Rn,二次型xTAxx^T A xxTAxxTAx≥。
2024-09-06 22:58:31 1211
原创 windows基础 -- USB驱动架构总览
Windows 的 USB 驱动架构涵盖了从主控制器驱动、集线器驱动、类驱动、功能驱动到客户端驱动,形成了一套完整的层次架构。
2024-09-05 08:29:02 666
原创 数学基础 -- 微积分之数列与级数
数列是按照一定的规律排成的一列数,形式为:a1,a2,a3,…,an,… a_1, a_2, a_3, \ldots, a_n, \ldots a1,a2,a3,…,an,…其中,ana_nan 表示数列的第 nnn 项。数列可以是有限的或无限的。常见的数列类型:级数是数列各项相加得到的和,形式为:S=a1+a2+a3+…S = a_1 + a_2 + a_3 + \ldotsS=a1+a2+a3+…级数可以是有限的(有限项相加)或无限的(无限项相加)。常见的级数类型:对于一个无限级
2024-09-05 00:48:00 619
原创 数学基础 -- 线性代数之矩阵的迹
对于一个n×nn \times nn×n的方阵AAAAa11a12⋯a1na21a22⋯a2n⋮⋮⋱⋮an1an2⋯annAa11a21⋮an1a12a22⋮an2⋯⋯⋱⋯a1na2n⋮ann矩阵AAA的迹trAtrAtrAa11a22⋯ann∑i1naiitr。
2024-09-04 20:00:00 1197
原创 数学基础 -- 统计学之零均值化
零均值化是数据预处理中的重要步骤,可以采用按列零均值化或整体零均值化两种方式。按列零均值化更常用于需要分析特征之间关系的场景(如PCA),因为它能够更好地保留特征之间的相关性。而按整体零均值化则适用于一些特定的全局性分析任务。在实际应用中,选择适当的零均值化方法对于正确理解和处理数据至关重要。
2024-09-04 20:00:00 1030
原创 Linux基础 -- pthread之线程池任务调度
为了在多线程环境中支持任务间的依赖关系,我们设计了一个基于封装的线程池,任务之间可以设置依赖,只有在依赖的任务完成后,依赖任务才会被执行。该设计目标是简化任务调度的逻辑,让开发者可以专注于任务的编写,而不必关注复杂的线程管理和任务依赖的执行顺序。
2024-09-04 20:00:00 1074
原创 数学基础 -- 线性代数之LU分解
在标准LU分解中,要求下三角矩阵LLL的主对角线元素为1,因此其行列式为1。这是由行列式的性质和LU分解的定义直接得出的结论。如果我们不要求主对角线元素为1,LLL的行列式则等于这些主对角线元素的乘积。
2024-09-03 20:57:24 1032
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人