自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 Linux设备树:标签与别名的区别

本文通过通俗易懂的例子解释了Linux设备树中标签(Label)和别名(Alias)的核心区别。标签(如uart1_label)是开发人员编写DTS源码时使用的快捷方式,编译后即消失;而别名(如uart1)必须定义在根节点的aliases下,会被编译进二进制文件供内核驱动使用。标签服务于DTS编写阶段,别名服务于内核运行时。内核驱动可通过别名实现硬件查找的标准化,增强代码可移植性。理解两者的不同生命周期和服务对象,对Linux驱动开发至关重要。

2026-08-14 16:03:08 215

原创 FreeRTOS源码阅读——任务控制块TCB和列表与列表项结构体

TCB结构体是FreeRTOS任务控制块,包含任务上下文和状态信息。关键成员包括栈顶指针pxTopOfStack(必须为首成员)、MPU设置、状态和事件列表项、优先级、任务栈指针等。支持多核调度(核心亲和性掩码)、栈溢出检测、临界区嵌套计数、调试跟踪、优先级继承互斥锁、线程本地存储、任务通知等特性。列表项(xLIST_ITEM)是双向链表基本单元,包含前后指针和所属列表指针,用于构建任务状态链表。Mini列表项是简化版本,主要用于列表头节点。

2026-06-06 19:48:32 20

原创 FreeRTOS 临界区深度解析:从内联汇编到多架构移植

本文深入解析了FreeRTOS中临界区保护的实现机制,通过分析vPortRaiseBASEPRI()函数的四行内联汇编代码,揭示了RTOS内核设计的关键思想。文章从五个层面展开: GCC内嵌汇编语法结构,强调输出/输入操作数和破坏列表的作用 函数修饰符的重要性,解释每个修饰符的必要性 四条汇编指令的硬件级含义,包括BASEPRI寄存器工作原理和屏障指令的作用 内存屏障":memory"的关键作用,防止编译器错误优化 延伸到多架构移植,说明FreeRTOS如何通过抽象层适配不同CPU架构 核心在于FreeRT

2026-06-04 18:15:16 382

原创 点亮LED背后的“内存暗战”:深度解析51单片机的SP、SFR与寻址歧途

《51单片机内存架构深度解析:从SP指针到SFR特殊寄存器》 本文通过一段简单的LED控制汇编程序,深入剖析了51单片机内存架构的关键问题。首先解释了堆栈指针SP在复位后必须重新配置的原因:默认值07H会与寄存器组冲突,导致数据错乱。文中对比了将SP设置在60H和80H的优劣,60H方案兼容性强但占用高效RAM,80H方案能释放低128字节但仅支持间接寻址。 进一步探讨了SFR特殊功能寄存器的作用机制,揭示了8051通过直接/间接寻址方式区分SFR和高128字节RAM的巧妙设计。最后从C语言编译器角度,分析

2026-05-28 19:41:07 256

原创 解决 WSL 编译 Tina SDK 时因 Windows 环境变量空格导致的编译失败

摘要: 全志Tina Linux SDK在WSL下编译时,常因Windows环境变量注入导致失败,尤其是带空格的路径破坏编译脚本逻辑。根本原因是WSL自动合并Windows的PATH变量,引发路径解析错误。解决方案包括手动清除含/mnt/的Windows路径,或使用专用脚本tina_build_env.sh隔离环境。脚本会备份变量、过滤干扰路径、检查依赖,并启动纯净子Shell供编译使用,退出后自动恢复原环境。对于复杂问题,推荐使用Docker镜像或调整WSL内核参数。该方法有效避免环境冲突,提升编译效率。

2026-05-18 15:53:27 362

原创 Cache映射计算

Cache映射计算的核心是将主存地址转换为Cache地址,主要涉及三种映射方式:直接映射(主存块号%Cache块数确定位置)、全相联映射(任意位置存放,需并行比较所有标记)和组相联映射(先按组定位,再组内比较)。计算时需划分地址字段(Tag、索引、偏移),不同映射方式字段划分不同。直接映射简单但冲突率高,全相联灵活但成本高,组相联是两者的折中方案。理解地址字段划分和映射规则是解题关键。

2026-04-28 19:36:29 426

原创 尝试使用qemu学习正点原子《手把手教你学Linux》

本文介绍了如何在预算有限的情况下,使用QEMU模拟器替代实体开发板学习嵌入式Linux开发。文章详细讲解了QEMU的基本原理,即在x86平台上模拟ARM架构环境的方法。主要内容包括:1) 通过WSL2或虚拟机快速搭建Linux环境;2) 使用apt安装QEMU和ARM工具链;3) 解析QEMU与物理芯片启动流程的差异;4) 提供具体的QEMU启动命令和GDB调试方法。该方案特别适合初学者低成本入门嵌入式开发,通过模拟方式实现与实体开发板类似的学习效果。

2025-12-13 11:29:34 1141

原创 PortSwigger web实验室(BurpSuit官方靶场)之SQL注入

SQL注入(SQLi)是一种Web安全漏洞,允许攻击者干扰应用程序对其数据库进行的查询。它通常允许攻击者查看他们通常无法检索的数据。这可能包括属于其他用户的数据,或者应用程序本身能够访问的任何其他数据。在许多情况下,攻击者可以修改或删除此数据,从而导致应用程序的内容或行为发生持久更改。在某些情况下,攻击者可以升级SQL注入攻击以危及底层服务器或其他后端基础架构,或执行拒绝服务攻击。

2024-07-05 11:29:57 4474 2

原创 SQL注入

SQL注入是一种广泛利用Web应用程序缺陷的攻击方式,攻击者通过将恶意SQL代码注入到应用程序输入字段中来获取对数据库的非授权访问权限。攻击者可以利用SQL注入攻击来绕过应用程序的身份验证和权限控制,从数据库中窃取敏感信息,修改、删除或插入数据,甚至完全控制数据库。SQL注入的原理是在 Web 应用程序中,数据未经充分验证或处理就被输入到 SQL 查询中。攻击者可以利用这个缺陷来注入恶意代码,从而执行未经授权的数据库操作。攻击者可以使用各种技术和工具来发现和利用SQL注入漏洞,从而入侵目标系统。

2024-02-01 00:04:30 1562 1

原创 PortSwigger web实验室(BurpSuit官方靶场)之文件上传漏洞

文件上传漏洞是指Web服务器允许用户将文件上传到其文件系统,而无需充分验证其名称,类型,内容或大小等内容。如果没有适当地执行这些限制,可能意味着即使是基本的图像上传功能也可以用来上传任意和潜在危险的文件。这甚至可以包括支持远程代码执行的服务器端脚本文件。在某些情况下,上传文件的行为本身就足以造成损害。其他攻击可能涉及对文件的后续HTTP请求,通常是为了触发服务器执行该文件。

2024-01-31 23:39:44 2719 1

空空如也

空空如也

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

TA关注的人

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