本次结束了对ARM架构,系统移植和驱动开发的学习,它们都是属于底层,难度想对都比较的难一点,但先学习arm架构之后去学习系统移植和驱动开发,会使自己对系统移植和驱动开发容易理解点。
arm架构
arm架构是研究核如何工作的,内部原理和工作过程,虽然在后面工作或是进行系统移植和驱动开发中很少直接使用,但它对我在后面进行学习和工作都会产生深远的影响。学习arm架构的第一步是了解arm核的工作原理,及核 = 运算器+控制器+寄存器,然后学习arm的工作模式,以及为什么要进行模式切换,然后学习cpu,了解了cpu的工作模式和知道了不同模式下的权限和资源是不一样的,之后了解了少部分的汇编指令,虽然汇编指令后面并没有用到,但它让我理解的程序和指令是如何执行的。
系统移植和驱动开发
系统移植和驱动开发是两门不相同的课程,但他们却是紧密结合的,系统移植中的系统即操作系统,它管理硬件,对用户提供统一的接口,提供服务: 网络协议 打印服务 UI界面 。而驱动就是驱动程序全称设备驱动程序,是添加到操作系统中的特殊程序,其中包含有关硬件设备的信息。
对他们的学习先要从一切皆是文件开始,一切皆是文件:linux系统把一切都当做了文件.包括硬件,而对硬件的一些操作,就是对文件的操作,所以驱动开发就是基于这个原理的来对硬件进行控制和初始化的。
第二学就是内核模块了,因为平时是 os和驱动的代码在一起,一起编译生成Image ,然后烧录到板子即可工作,但这样却有一个不好的问题,就是一旦某个驱动需要改动,需要重新编译所有的源码,然后重新烧录.而window呢是系统和驱动分离的