文档详情

嵌入式微处理器系统及应用Chapter13嵌入式实时操作系统内核硬件相关设计与代码移植.ppt

发布:2016-12-16约6.31千字共59页下载文档
文本预览下载声明
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * UART Uart(Universal Asynchronous Receiver/Transmitter),是通用异步收发器的简称,一般称之为串口。 可以通过它将目标板上的程序执行信息发送出来,供调试观察之用。 采用支持格式输出的函数printk将串口相关的驱动函数封装起来(通过调用Uart_SendChar来输出字符),而应用只需调用printk就可以了 AIC AIC(Advanced Interrupt Controller),高级中断控制器,类似于X86体系的8529芯片,是W90P710芯片中控制中断的部件。 W90P710可以处理 多达32个中断源, 现在只定义了31种, 每个中断源都对应 了唯一的中断号 AIC 为了更好地管理中断,还实现了一个8级(0-7)的中断优先级位表:中断号越低,优先级就越高,1号中断(看门狗中断)优先级最高。 优先级为0的四个中断触发的是FIQ中断,而其余级别的中断全都属于IRQ中断 中断号 优先级 4 3 2 1 0 8 7 6 5 1 12 11 10 9 2 16 15 14 13 3 20 19 18 17 4 24 23 22 21 5 28 27 26 25 6 31 30 29 7 13.2.2 移植的函数结构 13.2.2 移植的函数结构 os_cpu_a.S文件函数与uCOS层交互作用图 移植任务 编写BSP,以支持ucos运行所必要的功能函数接口,主要是串口、时钟和中断,而这需要熟悉W90P710芯片的UART、Timer和AIC等部件,完成对它们的驱动。 修改uCOS的三个硬件相关文件: os_cpu_c.c os_cpu.h os_cpu_a.S 13.2.3 BSP层的移植 AIC相关函数 Aic_Init Aic_Int_Enable Aic_Int_Disable AIC_Get_Vector Timer相关函数 Timer_Init Timer_Start UART相关函数 Uart_SendChar AIC相关函数(1) 在整个中断体系中,有三级控制开关。AIC处于中断体系的第二级 AIC相关函数(2) AIC_Init :中断初始化函数,开始一般将31个中断通道都关闭,而后选择要响应设备的中断号,将其打开。因为我们要响应时钟0的中断,所以要打开13号通道 AIC相关函数(3) AIC_Int_Enable :中断使能函数,接受中断号,打开该中断通道 AIC相关函数(4) AIC_Int_Disable :和AIC_Int_Enable函数的作用相反,关闭某个中断通道 AIC相关函数(5) AIC_Get_Vector :用于从寄存器IPER里读取最高优先级的中断号,然后跳转到相应中断的处理程序。 *ISR[])()是对应中断处理函数的函数指针数组,其初始化步骤: Timer相关函数 初始化Timer:选择timer的工作模式,给计数器赋初值,选择合适的分频数。 Timer_Start UART相关函数 Uart_SendChar 13.2.4 os_cpu_a.S文件的修改 声明部分 代码段 声明的变量 在文件中要 引用,但是 定义却在其 它文件中 声明为全局 符号,在别 的文件中可 以被引用 13.2.4 os_cpu_a.S文件的修改 函数实现 OSStartHighRdy OSCtxSw OSIntCtxSw OS_CPU_SR_Save和OS_CPU_SR_Restore CPSR_Init _ISR_Handler OSStartHighRdy 由函数OSStart调用的,用于将就绪的最高优先级任务置为运行态 OSCtxSw 完成任务级的任务切换,将被置换任务的信息压入它的任务栈,而把要运行任务的信息从任务栈加载到ARM寄存器组中。 OSCtxSw(续) OSIntCtxSw 在中断处理后,恢复现场前需要调用OSIntExit来判断是否在中断处理中使更高优先级的任务就绪了,从而恢复高优先级而非被中断任务的信息。 OSIntExit通过调用OSIntCtxSw来完成高优先级任务的恢复,由于在中断处理前已经保存了现场,所以OSIntCtxSw就无须保存现场信息了。 OSIntCtxSw OS_CPU_SR_Save和OS_CPU_SR_Restore 用来关闭和打开中断 它们和OS_ENTER_CRITICAL()、OS_EXIT_CRITICAL()的关系: CPSR_Init 由于任务一开
显示全部
相似文档