- 博客(496)
- 收藏
- 关注
原创 Linux内核入口head.S文件解析
该文件位于如下位置这个是ARM架构下Liunx内核的启动文件。在 ARM 架构的 Linux 内核中,head.S(通常位于)是内核启动的第一个执行文件,负责从硬件初始化到跳转到 C 语言内核()的关键过渡。一、明确head.S的核心作用head.S是内核的汇编入口点处理器识别与兼容性初始化(适配不同 ARM 核)。初始化核心寄存器(如栈指针、页表基地址寄存器)。创建初始页表(),为 MMU 使能做准备。切换处理器模式(如从 SVC 模式初始化其他模式栈)。
2025-08-05 07:38:43
597
原创 Linux定时器和时间管理源码相关总结
Linux 中定时器和时间管理机制涉及大量的数据结构、核心文件和关键函数,它们共同协作实现时间跟踪、定时任务调度等功能。一、核心数据结构1. 定时器相关(普通内核定时器)作用:描述一个基础定时器,用于毫秒级精度的定时任务。// 哈希表节点(临时存储)// 超时时间(jiffies 单位)// 超时回调函数u32 flags;// 标志(如 TIMER_IRQSAFE)(高精度定时器)作用:支持纳秒级精度的定时器,用于高精度场景(如音频处理)。
2025-07-29 20:54:34
770
原创 ARM汇编常见伪指令及其用法示例
用于在内存中定义数据(如整数、字符串、数组等)。用于划分程序的不同段(代码段、数据段等),便于内存管理。定义数据(.word.asciz等);划分内存段(.text.data等);控制符号与地址(.global=label等);优化内存对齐(.align灵活使用伪指令可使汇编代码更清晰、易维护,同时适配不同的硬件和内存布局需求。
2025-07-24 20:10:59
778
原创 在Ubuntu上使用QEMU仿真运行ARM汇编
QEMU 包含虚拟机功能:在 “全系统仿真” 模式下,它就是一款虚拟机工具,能模拟完整的计算机系统。QEMU 不止是虚拟机:它的 “用户模式仿真” 可以轻量地跨架构运行单个程序,且支持更多小众硬件架构,是开发者调试底层代码的重要工具。简单说,传统虚拟机更像 “一台虚拟电脑”,而 QEMU 更像 “一个万能的硬件模拟器”,虚拟机功能只是它的一部分。
2025-07-24 14:29:02
1011
原创 Linux内核中断源码相关总结
Linux 中断机制通过分层设计(硬件控制器→通用框架→底半部延迟处理)实现了高效、可靠的事件响应。其核心是在保证实时性的同时,平衡中断处理的效率和系统稳定性,是内核与硬件交互的关键纽带。
2025-07-24 10:21:24
561
原创 探讨下硬件电路是如何识别程序的
它的角色是 “编译器 / 汇编器的输出”,而非 “开发者的输入”。这一步是 “编程” 的核心 ——HDL 代码定义了电路的逻辑关系(比如 “当输入 A 为 1 且输入 B 为 0 时,输出 C 为 1”),而非直接描述电路的物理连接。因此,用汇编而非机器码,是在 “直接操作硬件” 和 “实际开发维护” 之间的最优选择 —— 既保留了对硬件的精确控制,又避免了机器码的可读性和可维护性灾难。这些代码是内核与硬件交互的 “直接翻译”,初期难懂是正常的,随着对架构细节和内核流程的熟悉,会逐渐理解其设计逻辑。
2025-07-23 13:14:55
765
原创 Linux内核中常用的函数/代码汇总
的工具,通过向编译器提示分支概率,帮助 CPU 减少流水线停顿,提升程序执行效率。它们的核心价值在于优化高频路径的执行性能,尤其在性能敏感的内核代码中应用广泛。是新进程 “诞生” 的最后一步,它将初始化完成的进程接入内核调度系统,使其从 “待启动” 状态变为 “可运行” 状态,是进程能够被 CPU 执行的关键触发点。看内核源码时,好多接口都不太清楚是什么意思,所以,这篇文章就是专门做个记录,记录那些内核中出现得比较频繁的内容。在 Linux 内核中,进程的 ID 并非简单的整数,而是通过。
2025-07-22 18:01:16
577
原创 Linux内核的目录结构
大概介绍:Linux 内核源代码的目录结构清晰且模块化,每个目录负责不同的功能模块或组件。理解这些目录的作用,有助于深入学习内核工作原理和进行开发。arch/:架构相关代码该目录包含与具体 CPU 架构相关的代码,是内核适配不同硬件平台的核心。每个子目录对应一种处理器架构(如 x86、ARM、RISC-V 等)。arch/x86/:x86 架构(32 位和 64 位)相关代码,包括启动程序、中断处理、寄存器定义等。arch/arm/:ARM 架构代码,支持手机、嵌入式设备等。
2025-07-21 19:56:24
1039
原创 Linux的系统调用机制总结
系统调用,顾名思义,说的是操作系统提供给用户程序调用的一组“特殊”接口。用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务,比如用户可以通过文件系统相关的调用请求系统打开文件、关闭文件或读写文件,可以通过时钟相关的系统调用获得系统时间或设置定时器等。从逻辑上来说,系统调用可被看成是一个内核与用户空间程序交互的接口——它好比一个中间人,把用户进程的请求传达给内核,待内核把请求处理完毕后再将处理结果送回给用户空间。
2025-07-21 19:28:26
804
原创 认识下计算机视觉中的人脸识别
人脸识别技术已取得显著进展,但其应用需平衡技术能力与伦理责任。未来,随着算法优化、硬件升级和法规完善,人脸识别将在更多领域发挥作用,同时也需要社会共同努力确保其合法、公正地使用。
2025-07-14 17:25:58
1136
1
原创 使用Tensorflow和CNN进行猫狗图片训练的实战总结
依赖关系:现代图像识别系统(尤其是高精度系统)几乎都以 CNN 为基础架构,没有 CNN,就没有当前图像识别的实用化水平。本质作用:CNN 通过卷积、池化等操作,将高维度、强关联的图像数据转化为可用于分类 / 识别的抽象特征,让计算机能高效 “理解” 图像的语义信息。简单来说:图像识别是目标,CNN 是实现这一目标的最有效工具。
2025-07-10 19:45:49
742
2
原创 Tensorflow的安装记录
CUDA (Compute Unified Device Architecture)是一套软硬件结合的解决方案,包括硬件架构(GPU 中的计算核心)和软件编程模型(API、工具链、库),旨在让开发者用类似 C/C++ 等主流语言编写并行计算程序,而非仅用于图形渲染。注意,这里说的不是哪个几点几的小版本号,而是Tensorflow分为两大类版本,CPU版本和GPU版本,它们在安装方式、依赖和性能上有明显区别。安装后建议通过示例代码验证环境,确保模型能正常训练和推理。同样,安装完成后可以在Python中导入。
2025-07-09 11:44:47
1250
原创 图像识别之图像的卷积
在图像处理中,卷积是一种重要的特征提取和处理手段。图像是一个二维的像素矩阵,卷积核(也叫滤波器)是一个小的二维矩阵。对图像进行卷积运算时,卷积核在图像上滑动,在每个位置,将卷积核与图像对应区域的像素值进行元素相乘,然后将结果相加,得到卷积后的输出像素值。作用:不同的卷积核可以实现不同的图像处理效果,比如使用高斯卷积核进行卷积运算,可以对图像进行平滑处理,减少噪声;使用边缘检测卷积核(如 Sobel 算子、Canny 算子),可以检测出图像中的边缘信息,突出物体的轮廓。
2025-07-08 18:03:46
614
原创 深度学习之迁移学习
迁移学习通过 “知识复用” 打破了传统机器学习 “每个任务孤立训练” 的限制,尤其适合数据有限或计算资源受限的场景。从预训练模型微调(如 BERT、GPT)到跨领域知识迁移,它已成为现代 AI 的核心技术之一,推动了医疗、自动驾驶、NLP 等领域的快速发展。未来,随着多模态预训练模型(如 CLIP、GPT-4)的兴起,迁移学习的应用范围将进一步扩大。
2025-07-08 07:48:22
727
原创 认识神经网络和深度学习
神经网络(Neural Network)是一种模仿生物神经系统(如大脑神经元连接方式)设计的计算模型,通过多层 “人工神经元” 的互联,实现对数据的非线性关系建模,是机器学习和人工智能的核心技术之一。其核心能力是从数据中自动学习规律(如分类、预测、特征提取),无需人工编写具体规则。一、神经网络的基本结构神经网络由多个 “层” 组成,每层包含若干 “神经元”(Neuron),神经元之间通过 “权重”(Weight)连接,形成类似生物神经网络的信号传递路径。
2025-07-08 07:43:17
821
原创 机器学习:无监督学习之聚类
Kmeans(K - 均值聚类)是机器学习中最经典的无监督学习算法之一,用于将无标签数据自动划分为 K 个不同的簇(类别)。核心思想:假设数据由 K 个高斯分布混合生成,通过 EM 算法估计每个分布的参数(均值、协方差),样本属于概率最高的分布对应的簇。核心思想:DBSCAN 的改进,通过计算 “可达距离” 生成聚类顺序图,可在不同密度下识别簇,减少对参数的依赖。“均值” 的含义: 每个簇的中心是该簇所有样本在特征空间中的平均值(例如二维空间中,质心是所有点的坐标平均值)。
2025-07-08 07:33:46
905
原创 机器学习:更多分类回归算法之决策树、SVM、KNN
决策树是一种强大且直观的机器学习算法,适合处理非线性关系和需要可解释性的场景。虽然它存在过拟合风险,但通过剪枝、集成学习等优化手段,决策树在实际应用中仍然表现出色,尤其是作为集成模型(如随机森林)的基础组件。
2025-07-08 07:28:52
1959
原创 机器学习之逻辑回归
逻辑回归(Logistic Regression)是一种用于解决分类问题的统计学习方法,尽管名称中带有 “回归”,但它本质上是一种分类算法,尤其适用于二分类问题(即结果只有两种可能,如 “是 / 否”“正 / 负”)。核心思想逻辑回归的核心是通过Sigmoid 函数(也称为 Logistic 函数)将线性回归的输出(连续值)映射到 [0,1] 区间,从而表示 “属于某一类别的概率”。与线性回归的区别适用场景。
2025-07-08 07:19:45
469
原创 CMake之CMakeLists.txt语法规则
而第三个参数则是一个数学运算表达式,支持的运算符包括:+(加)、-(减)、*(乘)、/(除)、%(求余)、|(按位或)、&(按位与)、^(按位异或)、~(按位取反)、<<(左移)、>>(右移)以及这些运算符的组合运算,它们的含义与 C 语言中相同。需要注意的是,源文件路径既可以使用相对路径、也可以使用绝对路径,相对路径被解释为相对于当前源码路径(注意,这里源码指的是 CMakeLists.txt 文件,因为 CMakeLists.txt 被称为 cmake 的源码,若无特别说明,后续将沿用这个概念!
2025-07-03 21:50:44
754
原创 Cmake简介与基本使用概述
大都数的 IDE 都有这个工具,譬如 Visual C++的 nmake、linux 下的 GNU make、Qt 的 qmake 等等,这些 make 工具遵循着不同的规范和标准,对应的 Makefile 文件其语法、格式也不相同,这样就带来了一个严峻的问题:如果软件想跨平台,必须要保证能够在不同平台下编译,而如果使用上面的 make 工具,就得为每一种标准写一次 Makefile,这将是一件让人抓狂的工作。还好每一个都不复杂!所以,意味着最终生成的库文件对应的名字会自动添加上前缀和后缀。
2025-07-03 21:48:24
842
原创 windows下安装和使用git
对于绝大多数用户日常使用的桌面电脑(Windows PC、传统 x86 架构的 Mac 等),x64 是当前的主流架构。只有少数特殊设备(如苹果 M 系列 Mac、部分 ARM 架构的轻薄本)采用其他架构,但整体占比不高。
2025-07-03 11:24:46
847
原创 在开发板I.MX6U上进行QT开发
选择 fsl-imx-x11-qt5 工具链:若开发 i.MX 平台的 Qt 应用,特别是需要硬件加速或 X11/Wayland 支持。选择 arm-linux-gnueabihf-g++:若开发简单 ARM 程序,或需自行控制所有依赖的编译过程。关键点:fsl 工具链是为 i.MX 平台深度定制的 “一站式” 解决方案,而。
2025-07-03 07:58:11
844
原创 QT常用类和模块
Qt 对数据库的基本操作流程大概是这样子,当然 Qt 提供了很多操作数据库的类,我们只讲解基本的与常用的就已经足够了。Qt SQL 模块里包含了很多个类,可以轻松实现数据库的连接、执行 SQL 语句,获取数据库里的数据与界面显示等功能,一般数据与界面之间会采用 Model/View架构,从而很方便的显示数据界面和操作数据库。绘图和图表的内容本章主要介绍绘图和图表的基本操作,以简单的例子呈现绘图与图表的用法,目的就是快速入门绘图与图表,关于绘图与图表详解最好是看 Qt 官方的帮助文档。
2025-07-03 07:44:33
717
原创 QT入门基础知识总结
Qt 是原生应用开发框架,通过 C++ 直接操作操作系统和硬件,适合高性能、深度定制的界面;前端是Web 生态的界面层,依赖浏览器或容器,适合快速迭代、跨平台部署的轻量级应用。二者虽都涉及界面交互,但技术路径和适用场景截然不同,选择取决于具体需求:若需开发桌面软件、嵌入式系统或高性能应用,选 Qt;若需开发网站、小程序或跨平台 Web 应用,选前端技术栈。
2025-07-03 07:15:02
691
原创 认识OpenCV视觉处理库
OpenCV(Open Source Computer Vision Library)是一个广泛用于计算机视觉任务的开源库,其核心代码主要使用 C++ 编写,同时提供了多种语言的接口。一、OpenCV 的底层语言:C++性能优先:C++ 是一种高性能语言,适合处理计算机视觉中的大量计算任务(如图像滤波、特征提取、深度学习推理等)。跨平台支持:C++ 代码可在 Windows、Linux、macOS、Android、iOS 等多种操作系统上编译运行。API 基础:OpenCV 的原生 API(如。
2025-06-24 17:22:36
670
原创 认识NumPy/Scipy/Pandas/Matplotlib这几个Python库
数据清洗(Data Cleaning) 是数据分析与机器学习流程中的关键步骤,指的是识别并纠正(或删除)数据集中的不准确、不完整、不一致或重复信息的过程。通俗来说,就是把 “脏数据” 变成 “干净数据”,为后续分析和建模打下基础。
2025-06-24 17:21:50
1185
原创 图像和视频处理基础知识总结
自然光线(含RGB三色) → 拜耳滤镜选择性过滤(仅允许单一颜色透过) → 感光二极管感知光强并产生电荷 → ADC转换为数字信号(单一颜色的强度值) → 插值算法根据相邻像素估算缺失色彩 → 合成完整RGB像素 → 色彩校正(白平衡、伽马变换等)→ 最终彩色图像核心结论:感光单元与光电效应是色彩记录的基础,但仅能提供单通道光强信号;色彩信息的完整记录依赖滤光片的分光作用和后期插值算法,二者缺一不可。
2025-06-19 11:04:51
827
原创 RV1126开发之基础知识总结
MIPI 摄像头凭借高速、低功耗和抗干扰的特性,成为移动设备和嵌入式场景的主流选择;而其他接口(如 USB、GigE Vision、Camera Link 等)则根据传输距离、带宽需求、成本和应用场景的不同,在工业、医疗、消费电子等领域发挥作用。选择摄像头接口时,需结合设备尺寸、画质要求、传输距离和系统兼容性综合考量。
2025-06-19 11:04:20
1262
原创 AI应用:计算机视觉相关技术总结
计算机视觉通过融合传统算法与深度学习,从基础的图像特征提取发展到复杂的场景理解与推理,已广泛应用于各行业。未来,随着大模型、多模态技术的发展,计算机视觉将向更智能、更贴近人类认知的方向演进,同时在边缘计算、实时性等领域面临更多工程挑战。
2025-06-14 08:48:54
1159
原创 嵌入式AI?
嵌入式 AI(Embedded AI)是指将人工智能技术与算法集成到嵌入式系统中,使设备能够在本地(无需依赖云端服务器)实现数据处理、分析和决策的技术形态。它融合了嵌入式系统的实时性、低功耗特性与AI 的智能化能力,让传统硬件设备具备 “边端智能”,适用于对响应速度、隐私保护、网络依赖性要求高的场景。核心特点本地化运行无需联网即可完成数据处理和决策,避免网络延迟和断网风险(如自动驾驶汽车在隧道中实时避障)。保护用户隐私:敏感数据(如人脸、医疗信息)无需上传云端,直接在设备端处理。低功耗与轻量化。
2025-06-10 08:11:35
1263
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人