一种基于FPGA的栈空间管理器的研究和设计

2010-09-21 19:25:08来源: 电子技术应用2010年第7期

  航空航天、工业控制、汽车电子和核电站建设等领域的高速发展,对嵌入式操作系统实时性的要求越来越高。同时,由于FPGA的集成度和速度的不断提高,使嵌入式操作系统硬件化实现成为发展趋势。硬实时操作系统中的堆栈管理对系统的实时性和可靠性起着至关重要的作用,而传统操作系统内核是将每个任务的堆栈空间直接进行最大化处理,导致大量存储空间浪费,另外采用通用RAM寻址方式也不能满足对被切换任务信息的快速保护。
  
  基于上述问题,本文提出了一种堆栈空间结构,设计了一款具有自动检验功能的栈空间管理器,并在Xilinx公司的集成开发环境FPGA系统上实现。
  
  1堆栈空间结构
  
  堆栈空间是按先进后出(LIFO)原则分配的连续存储器空间,可以满足保护任务切换信息和中断响应时保护处理器状态和任务参数数据的需要[1],且对每个任务分配一个单独的任务栈和一个响应系统中断任务的中断嵌套栈[2]。如图1所示,栈空间划分为n个任务栈和1个中断嵌套栈。


  
  任务栈主要保护被切换任务的信息。它存放的数据有:任务代码首地址、任务参数、任务中定义的局部变量、被调用函数的参数和局部变量及任务中各个函数的返回地址。中断嵌套栈存放被中断任务的数据,包括发生中断时需要保存的上下文、中断嵌套时需要保存的上下文和中断服务程序的局部变量。
  
  在硬实时操作系统中,当发生中断或中断嵌套时,堆栈地址指针从任务栈切换到中断嵌套栈。当所有的中断服务程序全部执行完成后,堆栈地址指针从中断嵌套栈切换到任务栈,继续执行该被中断的任务。这种管理方式同以往操作系统采用被中断任务的数据保存到相应任务堆栈的方法相比,更有效节约了堆栈空间开销[3,4]。

[1] [2] [3] [4] [5]

关键字:FPGA  栈空间管理  中断嵌套栈  任务栈

编辑:小甘 引用地址:http://www.eeworld.com.cn/FPGA/2010/0921/article_1352.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
FPGA
栈空间管理
中断嵌套栈
任务栈

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 

夏宇闻老师专栏

你问我答FPGA设计

北京航空航天大学教授,国内最早从事复杂数字逻辑和嵌入式系统设计的专家。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved