嵌入式系统是一种特定设计的计算机系统,广泛应用于各种设备中,其主要特点是针对特定应用进行优化,具有高度的专用性和高效能。根据技术复杂度,嵌入式系统可以分为无操作系统控制、小型操作系统控制、中型操作系统控制和大型操作系统控制四类。Linux内核的库函数通常位于`lib`目录下。
在程序调用和参数传递方面,按照PCS(Procedure Call Standard)规范,子程序间通过寄存器传递参数时,不能使用R1寄存器。嵌入式系统的资源相比普通计算机通常较少,尤其是在内存和处理器性能上。在开发流程中,需求分析是嵌入式系统设计的第一个阶段,后续依次是系统设计、代码调试和代码固化。
嵌入式系统的发展历程与微处理器的进步紧密相关,大致可以分为四个阶段。在ARM处理器中,进行半主机操作的SWI子功能号是0x123。嵌入式系统设备通常具有专用性,而非通用性,能够执行特定的任务,如数字电视机、机顶盒和数码摄像机等都是信息家电领域的嵌入式系统应用实例。
在软件开发工具套件中,ADS、RVDS、GNU和SDS分别代表不同的工具,其中GDB是GNU开发套件中的调试器。背景调试的英文缩写是BDM,程序烧写到非易失型存储器的过程称为代码固化。CPSR寄存器的T位为0时,处理器处于ARM状态。
在构建嵌入式Linux系统时,需要系统引导程序、Linux系统内核和初始化过程,文件系统是另一个重要的组成部分,但不包括在最基本的三个元素中。在需求分析之后,概要设计阶段的主要任务是将需求转化为软件结构和数据结构。
在文件系统的选择上,JFFS、ROMFS、YAFFS和RAMFS各有所长,其中RAMFS常用于存放临时或经常修改的数据。对于单片机系统,无操作系统控制的嵌入式系统是常见的选择。Linux操作系统通常采用树型目录结构,其中/proc文件系统是一个特殊类型,它既存在于内存中,也占用少量磁盘空间。
ARM处理器支持的指令集包括ARM、Thumb和Jazelle,Thumb指令集是16位的,而B和BL指令在ARM架构中可以跳转到32GB范围内的任意地址。在内嵌汇编程序中,对物理寄存器的使用有一定的限制。ARM汇编语言源程序由基本指令、指示符和宏指令组成。Linux的`du -sk * | sort -rn`命令可以按容量大小降序显示文件和目录的大小。
嵌入式系统编程语言包括汇编、C、C++和Java等。DCW指令用于分配半字对齐的内存,而DCWU则不一定严格对齐。多寄存器指令的执行顺序通常与寄存器列表次序无关。MAP可以定义内存表的首地址,但不能用“*”代替。在ARM状态下,软中断的编号不是0x12345678。Linux的`tar`命令可以用来打包文件,但不能直接压缩文件,通常需要结合gzip或bzip2等工具。
ARM处理器的一个显著特点是使用大量寄存器以提高执行速度,嵌入式Linux是一种开放源码、软实时、多任务的操作系统,适合于各种嵌入式设备。ORR指令在ARM中用于将寄存器的某些位置1。GBLA、GBLL和GBLS在汇编语言中用于声明不同类型的局部变量。