位置:51电子网 » 技术资料 » 其它综合

基于TS101的嵌入式实时操作系统设计

发布时间:2007/8/28 0:00:00 访问次数:661

西安电子科技大学模式识别与智能控制研究所  应陈克,胡文江


引言


随着半导体制造工艺的发展和计算机体系结构的改进,DSP处理芯片的处理能力越来越强大,控制的外围设备越来越多,软件算法也越来越复杂。对于DSP系统的软件开发,不仅要面对复杂的软件算法,同时还要把大部分精力放在各种外围设备和相关的硬件控制上,整个过程复杂而艰辛。因此,为这一类系统开发小巧精致、便于移植的嵌入式实时操作系统,具有实际的意义。本文参考开放源代码实时操作系统uC/OS-II,完成了基于ADI公司的ADSP-TigerSHARC101S(以下简称TS101)系列DSP芯片的嵌入式实时操作系统的设计和开发工作。


1 TS101芯片简介


TS101是美国ADI公司生产的一款高性能静态超标量处理器。ADSP-TS101S的内核指令周期为3.3ns,每周期能够执行4条指令、24个16-bit定点运算和6个浮点运算。内部有三条相互独立的128bit宽度的内部数据总线,每条总线各连接一个2MB内部存储器阵列,可提供4个字的数据、指令及I/O访问,以及14.4Gbytes/s的内部存储器带宽。


在ADSP-TS101内部的双运算模块中,每个均包含一个ALU、乘法器、64-bit移位器和32个字的寄存器组及相关的数据对齐缓冲器(DAB)。芯片中的双整数ALU(IALU)均有自己的31个字的寄存器组以用于数据寻址。此外,TS101中还带有一个带指令对齐缓冲器 (IAB),以及分支目标缓冲器(BTB)和中断控制器的程序控制器,同时有三条相互独立的128bit宽度的内部数据总线以及片内6MB SRAM;TS101提供有与主机处理器、多处理器空间(DSP)、外部SRAM和SDRAM相连的外部端口和一个14通道DMA控制器、四个链路口、两个64bit问隔定时器和定时器计满引脚。芯片上一个与IEEE 1149.1兼容的JTAG接口可用于片上仿真。


2 基于TS101的嵌入式实时操作系统功能


本文介绍的基于TS101的嵌入式操作系统是参考源码公开的实时操作系统uC/OS-II来设计的,实际上,它和uC/ OS-II一样,仅仅是一个实时内核,而不具有像GUI、TCP/IP协议栈等功能部件。它支持占先式多任务调度,并可提供有效的服务(如信号量、邮箱、队列、延时、超时等)。同时,在uC/OS-II基础上可引入高级操作系统中的进程和线程等概念。因此,本没计采用了进程与线程结合的方式,即将实现不同功能的任务视为进程,然后在任务内部进行细分,以划分为不同的线程。进程间的调度与切换在TS101内部存储区和外部扩展存储区(例如SDRAM)中进行,而线程间的调度与切换则在TS101内部存储区中实现。从本设计的整个TS101嵌入式实时系统来看,它的基本功能主要包括任务管理、中断管理、内存管理三方面内容。


在TS101嵌入式实时系统的三大块功能中,任务管理功能模块基本上是uC/OS-II的简单移植,本文主要针对中断处理和存储器管理两大部分进行设计说明。


3 TS101的中断处理


TS101的中断处理包括硬件中断和软件中断两大类,其中软件中断又包括软件异常中断和Debug中断。


3.1 硬件中断


TS101处理器不需要专门的堆栈指针来保存现场,器件中IALU的J、K寄存器都可以用作堆栈指针。在允许嵌套中断的中断服务程序中,可将中断返回地址(即RETIB)值保存到堆栈中,这样,在从RETIB读出返回地址后,系统将自动开启全局中断使能。但在保存相关的寄存器和RETI时本应禁止全局中断使能,所以这是在程序控制器将PC写入RETI时自动完成。如果系统不支持嵌套的硬件中断,则无需把处理器状态保存在堆栈中。中断一般根据寄存器RETI执行并在中断后返回,而不需要再对硬件中断的全局禁止位进行处理。


3.2 软件中断 (异常)


异常软件中断是在程序执行的过程中触发的。使能异常中断时,可将PMASK[62]置位,并将PC存储于RETS;而对于仿真异常,则将PMASK[63]置位,PC存储于DBUG中。当异常中断出现时,程序控制器将从寄存器IVSW指向的地址取址,仿真异常则从EMUIR寄存器取址,同时将指令流水的指令清空。


3.3 中断返回

西安电子科技大学模式识别与智能控制研究所  应陈克,胡文江


引言


随着半导体制造工艺的发展和计算机体系结构的改进,DSP处理芯片的处理能力越来越强大,控制的外围设备越来越多,软件算法也越来越复杂。对于DSP系统的软件开发,不仅要面对复杂的软件算法,同时还要把大部分精力放在各种外围设备和相关的硬件控制上,整个过程复杂而艰辛。因此,为这一类系统开发小巧精致、便于移植的嵌入式实时操作系统,具有实际的意义。本文参考开放源代码实时操作系统uC/OS-II,完成了基于ADI公司的ADSP-TigerSHARC101S(以下简称TS101)系列DSP芯片的嵌入式实时操作系统的设计和开发工作。


1 TS101芯片简介


TS101是美国ADI公司生产的一款高性能静态超标量处理器。ADSP-TS101S的内核指令周期为3.3ns,每周期能够执行4条指令、24个16-bit定点运算和6个浮点运算。内部有三条相互独立的128bit宽度的内部数据总线,每条总线各连接一个2MB内部存储器阵列,可提供4个字的数据、指令及I/O访问,以及14.4Gbytes/s的内部存储器带宽。


在ADSP-TS101内部的双运算模块中,每个均包含一个ALU、乘法器、64-bit移位器和32个字的寄存器组及相关的数据对齐缓冲器(DAB)。芯片中的双整数ALU(IALU)均有自己的31个字的寄存器组以用于数据寻址。此外,TS101中还带有一个带指令对齐缓冲器 (IAB),以及分支目标缓冲器(BTB)和中断控制器的程序控制器,同时有三条相互独立的128bit宽度的内部数据总线以及片内6MB SRAM;TS101提供有与主机处理器、多处理器空间(DSP)、外部SRAM和SDRAM相连的外部端口和一个14通道DMA控制器、四个链路口、两个64bit问隔定时器和定时器计满引脚。芯片上一个与IEEE 1149.1兼容的JTAG接口可用于片上仿真。


2 基于TS101的嵌入式实时操作系统功能


本文介绍的基于TS101的嵌入式操作系统是参考源码公开的实时操作系统uC/OS-II来设计的,实际上,它和uC/ OS-II一样,仅仅是一个实时内核,而不具有像GUI、TCP/IP协议栈等功能部件。它支持占先式多任务调度,并可提供有效的服务(如信号量、邮箱、队列、延时、超时等)。同时,在uC/OS-II基础上可引入高级操作系统中的进程和线程等概念。因此,本没计采用了进程与线程结合的方式,即将实现不同功能的任务视为进程,然后在任务内部进行细分,以划分为不同的线程。进程间的调度与切换在TS101内部存储区和外部扩展存储区(例如SDRAM)中进行,而线程间的调度与切换则在TS101内部存储区中实现。从本设计的整个TS101嵌入式实时系统来看,它的基本功能主要包括任务管理、中断管理、内存管理三方面内容。


在TS101嵌入式实时系统的三大块功能中,任务管理功能模块基本上是uC/OS-II的简单移植,本文主要针对中断处理和存储器管理两大部分进行设计说明。


3 TS101的中断处理


TS101的中断处理包括硬件中断和软件中断两大类,其中软件中断又包括软件异常中断和Debug中断。


3.1 硬件中断


TS101处理器不需要专门的堆栈指针来保存现场,器件中IALU的J、K寄存器都可以用作堆栈指针。在允许嵌套中断的中断服务程序中,可将中断返回地址(即RETIB)值保存到堆栈中,这样,在从RETIB读出返回地址后,系统将自动开启全局中断使能。但在保存相关的寄存器和RETI时本应禁止全局中断使能,所以这是在程序控制器将PC写入RETI时自动完成。如果系统不支持嵌套的硬件中断,则无需把处理器状态保存在堆栈中。中断一般根据寄存器RETI执行并在中断后返回,而不需要再对硬件中断的全局禁止位进行处理。


3.2 软件中断 (异常)


异常软件中断是在程序执行的过程中触发的。使能异常中断时,可将PMASK[62]置位,并将PC存储于RETS;而对于仿真异常,则将PMASK[63]置位,PC存储于DBUG中。当异常中断出现时,程序控制器将从寄存器IVSW指向的地址取址,仿真异常则从EMUIR寄存器取址,同时将指令流水的指令清空。


3.3 中断返回

相关IC型号
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!