部μC/OS-II的函数调用与服务执行时间是可知的。进而言之,μC/OS-II服务的执行时间不依赖于应用程序任务的多少。
⑧任务栈:每个任务有自己独立的栈,μC/OS-II允许每个任务有不同的栈空间。以便压低应用程序对RAM的需求。使用μC/OS-II的栈空间校验函数,可以确定每个任务到底需要多少栈空间。
⑨系统服务:μC /OS-II提供很多系统服务,例如邮箱、消息队列、信号量、块大小固定的内存的申请与释放以及时间相关函数等。
⑩中断管理:在μC/OS-II中执行中断时可以使正在执行的任务暂时挂起,如果优先级更高的任务被该中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断嵌套层数可达255层。
11稳定性与可靠性:μC/OS-II是基于μC/OS的,μC/OS-II与μC/OS的内核是一样的,只不 ○
过提供了更多的功能。自1992年以来μC/OS已经有好几百个商业应用。 4、Boot Loader在嵌入式系统中主要起什么作用?完成哪些主要的工作?(5分) 答:
Boot Loader是在嵌入式系统复位启动时,操作系统内核运行前,执行的一段程序。通过Boot Loader初始化硬件设备,建立内存和I/O空间映射图,为最终加载操作系统内核调整好适当的系统软硬件环境。
Boot loader是系统引导程序,负责Linux内核的启动,用于初始化系统资源,包括SDRAM。这部分代码用于建立Linux内核运行环境和从Flash中装载初始化Ramdisk等。它首先完成系统硬件的初始化,包括时钟的设置、存储区的映射、堆栈指针的设置等;然后跳转到操作系统内核的入口,将系统控制权交给操作系统。 5、进行基于ARM核的嵌入式系统软件开发时,调用如下函数: int do_something(int arg1,void *arg2,char arg3,int *arg4)
则这四个参数通过什么方式从调用程序传入被调函数? (4分) 答:
根据ATPCS编程规则,调用函数和子程序通过R0-R3四个寄存器传递参数,超过四个参数使用堆栈传递。因此arg1通过R0传入,arg2通过R1传入,arg3通过R2传入,arg4通过R3传入。
6、当异常产生,处理器进入一个异常程序、退出异常时需进行哪些操作?(5分) 答:
①进入异常:
(1)把断点处的下一条指令的地址保存到相应的R14寄存器中。
(2)把状态寄存器CPSR的值复制到相应的SPSR寄存器中,以保存断点处的状态。 (3)根据异常模式,把CPRS寄存器的模式位M[0:4]设置成对应的值。 (4)自动使PC指向异常向量,从该向量地址处取一条指令并执行。
②退出异常:
(1)将保存在R14寄存器的值再送回到PC中。 (2)再将SPSR寄存器的值送回到CPSR寄存器中。 (3)对中断禁止位标志进行清除。
7、简述FIQ工作方式的特点?(5分) 答:
①FIQ异常是由外部中断信号引起的。
②FIQ异常模式下有足够的私有寄存器,且支持数据传送和通道处理方式,从而当异常发生、进入异常服务时,可避免对私有寄存器保存的需求,减少了进入异常或退出异常过程中的总开销。
③FIQ异常优先级高于IRQ异常。FIQ异常向量被放在所有异常的最后,这样是为了提高响应速度。
8、结合实际说明一下ARM的中断进入和返回的过程。(5分)
相关推荐: