"学习嵌入式 Linux 系统" 嵌入式 Linux 系统是一种将 Linux 操作系统裁剪修改,使之能在嵌入式计算机系统上运行的操作系统。学习嵌入式 Linux 系统需要从裸机编程开始,了解硬件的基本使用方法和控制方式,包括理解硬件的构架、控制原理和寄存器地址的作用。 第一步:学习基本的裸机编程 学习裸机编程需要掌握硬件的基本使用方法和控制方式,对硬件的控制有了感性的认识。例如,学习 ARM7 的时候,使用 ADS 去编程,第一个实验就是控制 LED。学习裸机编程的同时要好好理解这个硬件的构架、控制原理,这些我称他为理解硬件。 理解硬件就是说,理解这个硬件是怎么组织这么多资源的,这些资源又是怎么由 CPU、由编程进行控制的。例如,s3c2410 中有 AD 转换器,有 GPIO(通用 IO 口),还有 NAND flash 控制器,这些东西都有一些寄存器来控制,这些寄存器都有一个地址,那么这些地址是什么意思?又怎么通过寄存器来控制这些外围设备的运转?还有,NOR flash 内部的每一个单元在这个芯片的内存中都有一个相应的地址单元,那么这些地址与刚刚说的寄存器地址又有什么关系?他们是一样的吗?而与 NOR flash 相对应的 NAND flash 内部的储存单元并不是线性排放的,那么 s3c2410 怎么将 NAND flash 的地址映射在内存空间上进行使用?或者简单地说应该怎么用 NAND flash? 第二步:使用 Linux 系统进行一些基本的实验 在买一套板子的时候一般会提供一些 Linux 的试验例程,好好做一段时间这个吧,这个过程也是很有意义的,也是为进一步的学习积累感性认识。你能想象一个从没有使用过 Linux 系统的人能学好 Linux 的编程吗?好好按照手册上的例程做一做里面的实验,虽然有点娃娃学走路,有点弱智,但是我想很多高手都会经历这个过程。 第三步:研究完整的 Linux 系统的运行过程 所谓完整的 Linux 系统包括哪些部分呢?三部分:bootloader、Linux kernel(Linux 内核)、root file system(根文件系统)。那么这 3 部分是怎么相互协作来构成这个系统的呢?各自有什么用呢?三者有什么联系?怎么联系?系统的执行流程又是怎么样的呢?搞清楚这个问题你对整个系统的运行就很清楚了,对于下一步制作这个 Linux 系统就打下了另一个重要的根基。 第四步:开始做系统移植 上面说到完整的 Linux 有 3 部分,而且你也知道了他们之间的关系和作用,那么现在你要做的便是自己动手学会制作这些东西。当然我不可能叫你编写这些代码,这不实现。事实上这个 3 者都能在网下载到相应的源代码,但是这个源代码不可能下载编译后就能在你的系统上运行,需要很多的修改,直到他能运行在你的板子上,这个修改的过程就叫移植。在进行移植的过程中你要学的东西很多,要懂的相关知识也很多,等你完成了这个过程你会发现你已经算是一个初出茅庐的高手了。 在这个过程中如果你很有研究精神的话你必然会想到看源代码。很多书介绍你怎么阅览源代码,但是这里不再赘述。
- 粉丝: 748
- 资源: 8万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 学校课程软件工程常见10道题目以及答案demo
- javaweb新手开发中常见的目录结构讲解
- 新手小白的git使用的手册入门学习demo
- 基于Java观察者模式的info-express多对多广播通信框架设计源码
- 利用python爬取豆瓣电影评分简单案例demo
- 机器人开发中常见的几道问题以及答案demo
- 基于SpringBoot和layuimini的简洁美观后台权限管理系统设计源码
- 实验报告五六代码.zip
- hdw-dubbo-ui基于vue、element-ui构建开发,实现后台管理前端功能.zip
- (Grafana + Zabbix + ASP.NET Core 2.1 + ECharts + Dapper + Swagger + layuiAdmin)基于角色授权的权限体系.zip