自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 BSP工程师的内核必修课:1.5 Linux Kconfig语法详解下:菜单结构

本节讲了如何在Kconfig语法中创建子菜单,以及通过依赖来控制子选项。至此我们内核编译基础的部分也告一段落,我们在第一章中主要讲解了Kernel Build子系统的使用以及Kconfig语法。接下来我们会开始进入下一章节:内核模块。内核模块是Linux内核最重要的组成,我们将讲解内核模块的组成、模块参数、底层原理等等一些列内核模块相关内容,并结合第一章从头创建一个内核模块并将其编译到内核中。

2025-07-16 23:52:48 1482

原创 BSP工程师的内核必修课:1.4. Linux Kconfig 语法详解上:config配置条目

配置选项必须有类型,类型包括booltristatestringhexint,这些类型和C语言中类型定义概念是一样的。bool :布尔类型,有两种值yn,表示该CONFIG可配置为选中或者不选中,在图像界面里表项形式为[]。tristate: 三态类型,有三种值ymn,比bool多了一项m表示该CONFIG可配置为内核模块,在图像界面里表项形式为<>。string: 字符串类型,表示该CONFIG,在图像界面里表项形式是()。hex :16进制类型,表示该CONFIG宏可以设为一个十六进制,比如。

2025-07-16 23:46:12 828

原创 BSP工程师的内核必修课 —— 1.3 Kernel Build Sytem

本文我们学习了,这是一套目前高效并广泛用在开源项目中的编译系统。用户使用Kconfig配置选项,生成.config文件,Kbuild根据.config文件动态组织编译项,在我们后面学习了内核模块后,就更加可以感受到完美的配合了内核模块的理念。我们现在学会了如何使用内核提供的配置,但是如果我们如果想增加一个内核中不存在的配置该怎么办呢?下一节中我们将详细讲解Kconfig的语法,让我们可以增加和修改自己的配置,这在内核、BSP以及驱动开发中是必要的技能如果有什么问题,欢迎添加我的微信讨论。

2025-07-16 23:42:26 670

原创 BSP工程师的内核必修课:1.2. Linux内核编译

刚才使用的是我提供的sdk编译了内核,接下来对我们刚才的编译流程做一下解释,让大家明白刚才做的步骤的目的是什么。保证大家拥有即使脱离开平台也具有独立进行开发的能力。到这里就完成了一个完整的kernel编译,有的同学会不会觉得有点过于简单了?事实上编译内核本身就不是很复杂的事情,如果内核编译都非常繁琐那Linux就不可能做到如此大规模的普及程度了。上面的编译流程,如果你在一个文档和环境较为完善的公司,那编译流程基本上是差不多的,都会有自己完整的环境脚本和启动流程。

2025-07-16 23:37:11 754

原创 BSP工程师的内核必修课:1.1. 初识Linux内核

我不喜欢像很多Linux书籍一样从"盘古开天"开始讲起,我们简单的介绍一下Linux内核,其中很多方面在这里不做过多的讨论,让大家快速了解即可,否则既控制不住篇幅,也无法深入讲解。Linux内核顾名思义,它是Linux系统的核心,扮演者“大管家”的角色对硬件资源例如CPU、内存、硬盘进行统一管理实现硬件资源与应用程序之间的抽象、中介与管理,让软件开发者无需关心硬件细节将复杂的功能划分为若干相对独立又紧密写作的子系统。

2025-07-16 23:17:34 1910

原创 BSP工程师的内核基本功

本文介绍了《BSP工程师的内核基本功》系列专题的学习方法与内容规划。作者沙师兄根据多年BSP开发经验,采用"What-How-Why"拼图学习法,从实用角度讲解Linux内核知识。专题将涵盖编译配置、设备驱动、中断处理等核心内容,使用QEMU作为实验平台。该系列旨在帮助工程师深入理解内核原理,培养T型人才能力,同时欢迎读者参与讨论和指正。文章强调实用主义学习路径,先掌握使用再探究原理,最终实现从应用到底层实现的全面理解。

2025-06-17 11:06:55 742

原创 Ubuntu24.04+Qemu+ARMV8+Linux6.12保姆级开发环境搭建教程

1. envsetup.sh:设置环境变量,检查并下载必要的工具2. source:内核源码压缩包,编译工具链源码压缩包,buildroot源码压缩包,3. out:产出物文件夹,包括内核镜像,文件系统,设备树等4. start.sh:qemu启动脚本5. share:qemu与PC的共享目录,用来传文件6. arm-gnu-toolchain-12.2.rel1-x86_64-aarch64-none-linux-gnu:编译工具链。

2025-05-12 23:45:05 2073 2

空空如也

空空如也

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

TA关注的人

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