新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > T-Kernel在Blackfin处理器上的移植分析

T-Kernel在Blackfin处理器上的移植分析

作者:时间:2012-03-20来源:网络收藏

1 概述

在嵌入式RTOS(Real Time Operating System)领域,日本组织推出的以其开源免费,小体积强实时性内核,统一的接口规范等特点显出了优势;ADI. Blackfin系列处理器在嵌入式控制和数字信号处理领域应用非常广泛,同时结合了MCU(Micro Controller Unit)和DSP特点,非常适合于运行RTOS系统。

本文分析内核调度原理和Blackfin处理器内核结构,归纳了在Blackfin处理器BF533系统移植过程中的三个主要问题:中断管理,任务切换和系统调用入口三个模块的实现方法,并讨论了系统稳定性和实时性的测试以保证系统的稳定性和实时性。

2 T-Kernel概述

2.1 T-Kernel的系统结构

图1 T-Kernel的位置

T-Kernel的系统结构如图1所示,各功能模块是以子系统(subsystem)的形式存在的,如设备管理模块。

T-Kernel的内核是系统默认的子系统,它为应用层提供系统服务(SVC)接口,同时管理着其他子系统。子系统为应用层提供扩展服务(Extended SVC)调用接口。系统中各子系统运行在相互独立的地址空间中,保证了系统的模块化,易于扩充和裁减。

2.2 T-Kernel的系统状态和任务调度

T-Kernel规范[1]中对系统状态做了明确的划分和定义,移植相关的状态有:(1)任务态 (Task Portion),指系统运行在应用层最高优先级的就绪任务中;(2)任务无关态 (Task Independent Portion),指系统的中断和异常处理过程。任务无关态具有最高的执行优先权,可以中断其它状态的执行。

T-Kernel内核采用了基于优先级的可抢先调度策略,优先级相同的任务采用先进先出的时间片轮转调度,允许任务动态更改优先级。

T-Kernel的任务调度和切换是分离的过程。内核中维护着按照优先级排列的就绪任务TCB(Task Control Block)指针链表队列。全局指针ctxtsk指向当前运行任务的TCB。有更高优先级任务就绪时,全局指针schedtsk指向其TCB,此为任务调度过程;任务调度发生后,必须在条件满足时,系统触发软中断异常进行任务切换,将ctxtsk更新为schedtsk,程序转入新任务运行。

3 Blackfin处理器概述

Blakcfin处理器内核包含双算术处理单元的DSP引擎,执行RISK指令集,结合了优异的数字信号处理功能和完善的控制功能。.

Blackfin内核相关的寄存器除了堆栈和返回地址寄存器:SP(Stack Pointer),FP(Frame Pointer),RETS(Subroutine Return Address Register),RETI(Interrupt Return Address Register),通用数据寄存器R0~R7,通用地址寄存器P0~P7,还包含数字信号处理相关寄存器 L0~L3,LB0~LB1,LC0~LC1,LT0~LT1,ASTAT,A0~A1,I0~I3, B0~B3,M0~M3. 在任务切换和中断前后处理中,需要进行寄存器保存恢复及相应的设置[2]。

Blackfin处理器内核支持15个优先级的中断。ILAT寄存器显示当前触发的中断;IMASK寄存器控制各优先级中断的使能和禁止;IPEND寄存器显示当前执行的中断,其第4位IPEND[4]是全局中断的使能和禁止位。T-Kernel运行在第15级(最低)中断处理程序中,这样系统运行于Supervisor Mode,可以获得对处理器操作的最大权限[2]。

T-Kernel系统运行在ADSP-BF533 EZ-KIT LITE开发板,开发环境是ADI VisualDSP++4.5 Environment.


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭