ARM处理器的参数传递与嵌入式系统组件

需积分: 9 2 下载量 89 浏览量 更新于2024-08-16 收藏 11.07MB PPT 举报
"传递参数到SWIs-ARM开发ppt" 这篇文档主要讲解了如何在ARM架构下使用系统调用(Software Interrupt, SWI)来传递参数。SWI是一种在用户模式和操作系统之间通信的方式,常用于执行特权级操作,如在嵌入式系统中进行半主机模式下的I/O操作。 在ARM处理器中,SWI通过设置特定的SWI号码(例如0x123456 for ARM或0xAB for Thumb模式)并触发中断来执行。参数的传递通常是通过处理器的内核寄存器完成的,特别是r0-r3寄存器。在汇编语言编程中,可以直接设置这些寄存器的值,然后调用SWI指令。例如,可以将字符串指针放在r1寄存器,将操作码(如SYS_WRITE0)放入r0寄存器,然后执行SWI指令。 在C语言编程中,可以使用关键字`__swi`来调用SWI,并通过r0-r3寄存器传递最多4个参数。例如,定义一个函数`Semihosting(unsigned op, char *s)`,其中`op`对应于SWI操作码,`s`是字符串指针。函数调用时,`Semihosting(0x4, "ARM")`会将操作码和字符串传递给SWI。 如果需要返回一个结构体,可以使用`__value_in_regs`限定词,这样结构体的值会通过r0-r3寄存器返回,而不是使用堆栈。这种方法在速度要求高的情况下特别有用,因为它避免了内存访问,同时允许使用完整的32位SWI号码。 此外,还提到了一种方法,即仅将SWI号码作为一个参数通过寄存器传递,而不再嵌入具体的SWI指令。这在性能关键的应用中很有效,因为它减少了对存储器的访问,且支持更大范围的SWI号码。 ARM处理器是嵌入式系统中的核心组件,广泛应用于各种设备,如打印机、手机、游戏机和个人电脑等。ARM公司的业务模式是授权其处理器内核给合作伙伴,而自己并不生产芯片。ARM处理器的发展趋势包括多核处理,例如NVIDIA的Tegra系列,它们在智能手机、平板电脑等设备上广泛应用。 总结来说,本文档重点讲述了在ARM平台上使用SWI进行参数传递的方法,包括汇编和C语言的实现,以及优化参数传递以提高性能的技术。此外,还简要介绍了ARM公司在嵌入式系统中的角色及其处理器在现代电子设备中的应用。
2014-12-16 上传