
带你学习Linux系统移植
文章平均质量分 92
一步步系统讲解Linux系统移植相关内容,包括LCD、USB、网卡、SD卡等各硬件设备驱动原理与编写,MiNiGUI、Qt等界面设计,嵌入式数据库SQLite、DB等原理与使用,嵌入式服务器搭建与移植等
Leon_George
一只始终飞翔在嵌入式Linux ARM开发中的黑鸟,对bootloader、跟文件系统和Linux内核裁剪,以及对Linux底层应用和驱动开发也有些许心得。有志同道合的同学请关注我哦。
展开
-
20_文件系统的制作 -JFFS2
JFFS2 文件系统是通过工具 mkfs.jffs2 将文件系统目录制成映像文件。制作工具mkfs.jffs2 需要编译 zhb 库和 mtd-utils,下面详细介绍其制作过程原创 2024-05-18 10:34:31 · 334 阅读 · 0 评论 -
19_文件系统的制作 -YAFFS2
如果开发板只有Nand Flash, 那么选择最合适的文件系统为YAFFS文件系统。例如,mini2440只有 Nand Flash 没有 Nor Flash,因此选择的文件系统为 YAFFS2 文件系统原创 2024-05-18 10:33:38 · 297 阅读 · 0 评论 -
18_文件系统的制作-Ramdisk
本文介绍如何制作文件系统。另外, 由于Busybox 集合了很多工具,编译起来也非常方便。在讲解制作文件系统的时候,也会介绍 busybox 的编译和安装过程;介绍制作文件系统时,会详细介绍 Ramdisk 、 YAFFS2、JFFS2 及其它文件系统的制作。原创 2024-05-12 16:18:16 · 127 阅读 · 0 评论 -
17_基于Flash和RAM的的文件系统选择
本文主要讲述在嵌入式系统中,常见的基于flash和内存(RAM)的文件系统类型,具体选择要结合实际需求灵活选配。原创 2024-05-12 16:16:57 · 298 阅读 · 0 评论 -
16_嵌入式文件系统选择
在进行嵌入式系统开发过程中,文件系统的选择和制作与硬件条件息息相关。根据硬件(Flash 或 RAM)的特性来指定相应的文件系统,能够充分利用硬件资源及提高系统效率。因为目前大部分的嵌入式文件系统都是建立在 Flash 之上,下面介绍 Flash 硬件方案比较与 Flash 的特点。原创 2024-04-02 10:48:17 · 686 阅读 · 0 评论 -
15_Linux内核升级
如果这一步省略,会在移植到开发板后 Bootloader 引导时出现机器 ID 错误的现象。出错的 ID 号将以十六进制给出, 将其转化为十进制, 替换 mach-types文件中的对应项。这里移植后报的错误是 0xFB,即对应十进制 251。查看对 System Type(系统类型) 的修改情况以确认进行正确的配置。将所有文件复制到工作目录下,然后解压内核文件和编译器文件。实际上就是完成对内核的配置。编译内核生成映像文件。原创 2024-04-02 10:47:21 · 537 阅读 · 0 评论 -
14_Linux内核裁剪及编译
经过对内核的认识和对裁剪配置项的了解,接下来实际操作。针对 S3C2440 开发板进行裁剪 Linux 内核。原创 2024-03-26 13:13:09 · 1465 阅读 · 0 评论 -
13_Linux内核配置选项
内核配置通常是对内核支持的各个功能进行取舍配置,将配置的方案保存到 configure文件中。在编译内核的时候,就会根据此配置对内核进行取舍编译。原创 2024-03-26 13:12:01 · 1644 阅读 · 0 评论 -
12_Linux内核结构
Linux 内核主要的 5 个部分:**进程调度、内存管理、虚拟文件系统、网络接口、进程通信**。在系统移植的时候,它们是内核的基本元素,这 5 个部分之间的关系原创 2024-03-17 16:20:27 · 980 阅读 · 0 评论 -
11_BootLoader分析
【摘要】本文详细介绍了基于嵌入式系统中的 OS 启动加载程序 ―― ==BootLoader 的概念、软件设计的主要任务以及结构框架==等内容。 在拿到空PCB板之后,硬件工程师首先会测试各主要**线路是否通连**(各焊点是否有空焊、断接或短路的情况),然后逐个模块焊接上去。之后需要验证系统上电之后,CPU与各组件的**供电电压是否正常**,供给CPU的震荡电路能否能够**正常起振**,外部存储器能否**正常读写**。原创 2024-03-17 16:19:29 · 1156 阅读 · 0 评论 -
10.网络文件系统( NFS)使用
本文介绍 了网络文件系统NFS在嵌入式系统开发中的优点和使用方法原创 2024-03-10 21:38:48 · 2495 阅读 · 1 评论 -
9. 内核、文件系统加载工具
该协议的传输速度和成功率都是比较优秀的。内核和文件系统也可以通过 MiniTools 工具烧写,烧写过程与烧写 Bootloader 类似。与烧写 Bootloader 不同的是,内核和文件系统下载需要选择正确的内核文件和文件系统文件,在烧写完成后会在“详细信息”中显示操作步骤以及完成信息。正确连接开发板后,选择开发板的系统类型及Bootloader 文件,通过要烧写的文件对应项目后的“…运行 MiniTools 软件,将开发板的 NOR/NAND 选择开关置于 NOR 位置,然后打开开发板电源。原创 2024-03-10 21:37:06 · 1239 阅读 · 0 评论 -
8. 超级终端和 Minicom
在对目标板进行查看、操作或目标板和上位机进行文件传输与通信时,需要安装终端软件。通过终端软件来对目标板进行配置,或者执行目标板上的程序与主机进行通信。 下面介绍 3种终端软件,具体开发时,你仅需任意使用一个即可,并非都要进行安装原创 2024-03-09 22:33:30 · 1075 阅读 · 0 评论 -
7. 交叉开发环境设置
交叉编译工具是为了使在上位机中编译的文件能够在不同平台的目标机中执行,搭建交叉编译环境是嵌入式开发的第一步,也是关键的一步。不同的体系结构、不同的操作系统,甚至是不同版本的内核,都会用到不同的交叉编译器。选择交叉编译器非常重要, 有些交叉编译器经常会有部分的 BUG,都会导致最后的代码无法正常运行。原创 2024-03-08 23:37:08 · 1244 阅读 · 0 评论 -
6. 虚拟机及Linux安装
进行嵌入式项目开发,第一步就是要建立嵌入式开发环境,主要包括**安装 Bootloader 工具**、不同平台的**交叉编译器**(如ARM 平台的arm-linux-gcc)、**内核源码树**(在需要编译和配置内核时)、在调试时使用的一些**终端软件**、**TFTP 或FTP软件**以及内核和文件系统的**烧写工具**(一般硬件厂家会提供)。下面分布讲解原创 2024-03-08 23:35:57 · 1034 阅读 · 0 评论 -
5.设备驱动程序
Linux 内核是一个比较庞大的系统,深入理解内核可以减少在系统移植中的障碍。在系统移植中设备驱动开发是一项很复杂的工作,由于 Linux 内核提供了一部分源代码,同时还提供了对某些公共部分的支持,例如, USB 驱动对读写 U 盘、键盘、鼠标等设备提供了通用驱动程序,一般情况可以直接使用内核提供的驱动。但是对于复杂的 USB 设备没有现成的驱动,就需要读者对驱动开发过程有一定的认识,必要时参考 Linux 源码重新开发驱动程序。原创 2024-03-02 22:59:28 · 1283 阅读 · 0 评论 -
4. 虚拟文件系统
虚拟文件系统的思想是在不同种类的文件系统和Linux内核之间建立一个虚拟文件系统层,通过调用虚拟文件系统中的读、写或其他函数时,内核都能把它们替换成支持 Linux 文件系统、 NFS 文件系统,或者其他文件系统的实际函数。原创 2024-02-26 23:41:03 · 1297 阅读 · 0 评论 -
3. Linux内存管理
RAM 的一部分(SRAM)被静态地划分给了内核,用来存放内核代码和静态数据结构。 RAM 的其余部分(如DRAM、SDRAM、DDR)称为动态内存(dynamic memory),这不仅是运行用户进程所需的宝贵资源,也是内核所需的宝贵资源。事实上,整个系统的性能取决于如何有效地管理动态内存。原创 2024-02-26 22:50:08 · 648 阅读 · 0 评论 -
2. Linux进程管理
进程管理包括创建进程、管理进程及删除进程。进程管理是 Linux 内核的重要部分,对系统的核心资源进行管理。要做好系统移植就需要对这部分知识有一定的了解。原创 2024-02-23 23:30:13 · 944 阅读 · 0 评论 -
1.系统调用接口
所有的操作系统在内核里都有一些内建的函数,这些函数完成对硬件的访问和对文件的打开、读、写、关闭等操作。 Linux 系统中称这些函数为系统调用。这些函数实现了将操作从用户空间转换到内核空间,有了这些接口函数,用户就可以方便地访问硬件。原创 2024-02-23 23:28:50 · 1245 阅读 · 0 评论