积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> 嵌入式软件 >> WINCE
  相关分类: LINUX | WINCE | UC/OS | Bootloader | 下载 | VXWORKS | 网络协议 | JAVA | 汇编 | 驱动设计 | Symbian | XP Embedded | Nucleus | 新产品 | 相关文章 | 综合技术 |
通过CPU仿真器(ICE)实现对嵌入式操作
 
作者:孟繁普   来源:上海横河国际贸易有限公司    点击数:268   更新时间:2007-9-3
您可以添加到网摘 让更多人关注此文章:

      对于开发嵌入式系统,软件调试一直是一个难度大、直接影响产品质量的重要环节。由于嵌入式系统本身不具备调试环境,又有较高的实时性要求,所以必须要有外部调试工具的协助工作。ICE仿真器作为嵌入式调试的核心设备,可以帮助用户实现断点调试、单步运行、寄存器与内存读写、闪存烧写等功能。

       嵌入式系统通常可以分为硬件、硬件驱动、实时操作系统以及上层应用等几部分。其中实时操作系统是整个系统的管理者,起着承上启下,合理分配系统资源的作用。操作系统的开发、调试是系统开发的最重要环节。如果操作系统不能稳定运行,整个系统就无法正常工作;反之,操作系统正常工作了,再进行上层应用开发就会变得快速、稳定、可靠。同时,稳定的系统也有利于进行各种相关测试。



图1  ICE仿真器工作示意图


       日本横河数字计算机公司出品的AdvicePro仿真器产品,通过对实时操作系统TCB(Task Control Block)的解析,非常直观地显示操作系统的资源信息以及各进程的状态,为客户提供稳定的系统调试平台。以横河数字计算机公司为大唐移动提供的实时操作系统ThreadX调试方案为例,ThreadX是一种以占用空间小、可靠性高、实时性高、完全源代码透明而闻名的实时操作系统,完全与Green Hills Software的MULTI IDE集成,并包含可识别内核的调试(kernel awareness debugging)、工程项目管理、源代码浏览、事件跟踪分析、代码分析,用于系统及应用项目监控。作为多任务系统,在系统运行时,会产生多个线程互相通信,交替工作。ThreadX的各个线程的信息都保存在TCB结构体中,ThreadX的TCB结构体的一部分如下:


       typedef  struct TX_THREAD_STRUCT
{
    ULONG       tx_thread_id;           /* Control block ID         */
    ULONG       tx_run_count;           /* Thread's run counter     */
    VOID_PTR    tx_stack_ptr;           /* Thread's stack pointer   */
    VOID_PTR  tx_stack_start;         /* Stack starting address   */
    VOID_PTR    tx_stack_end;           /* Stack ending address     */
    ULONG       tx_stack_size;          /* Stack size               */
    ULONG       tx_time_slice;          /* Current time-slice       */
    ULONG  tx_new_time_slice;      /* New time-slice           */
  CHAR_PTR  tx_thread_name;         /* Pointer to thread's name */
    UINT        tx_priority;            /* Priority of thread (0-31)*/
    UINT        tx_state;               /* Thread's execution state */
    UINT   tx_delayed_suspend;     /* Delayed suspend flag     */
    UINT        tx_suspending;          /* Thread suspending flag   */
  UINT  tx_preempt_threshold;   /* Preemption threshold     */
   ULONG  tx_priority_bit;        /* Priority ID bit          */
 }


       线程的信息保存在TCB结构体中,因此只要能够对TCB进行解析,就可以获取各线程的相关信息,跟踪系统状态。例如,在图2所示的系统中,通过解析,我们可以知道,该系统中共有9个线程被启动,同时工作。其中线程System_Timer_Thread拥有最高的优先级,状态为SUSPENDED。



图2  多线程状态表示界面


       在多任务系统中,每个进程都拥有独立使用的堆栈,用于保存进程在函数调用、中断处理时产生的临时信息、数据。适当地为堆栈分配空间,是维护系统稳定,节约系统资源的一个核心环节。因为,如果为堆栈分配的空间过小,当需要保存的信息较多时,堆栈就可能会溢出,从而导致系统崩溃;反之,如果给堆栈分配的空间过大,就会浪费宝贵的系统资源。AdvicePro的系统堆栈分析功能,可以直观地帮助用户了解到系统堆栈的状态,控制余量,在保证系统稳定的前提下,最大程度节省系统资源,提高系统效率。


       通过线程堆栈资源表示界面(图3),可以清楚地观察到各线程堆栈的当前状态。例如为线程System_Timer_Thread分配的堆栈空间是0x801f5a3~0x801f1a4,大小为400个双字,当前堆栈指针指向0x801f514,已使用空间占全部空间的14%。这样就可以非常直观地了解到堆栈的使用状况,有效预防由于堆栈溢出而引起的系统崩溃。



图3  线程堆栈资源表示界面


       AdvicePro的实时操作系统调试功能是通过TCL脚本语言来实现的。TCL是一种很通用的脚本语言,它几乎在所有的平台上都可以解释运行,功能强大,是Tool Command Language的缩写,主要适用于发布命令给一些交互程序,如文本编辑器、调试器和shell。它有简单的语法和很强可扩充性,TCL可以创建新的过程以增强其内建命令的执行能力。AdvicePro的调试软件MicroView-Plus中内嵌了TCL解释器,用户可以根据需要自行定制界面,增加了产品的灵活性。


       以上,我们只是以ThreadX为例,简单介绍了AdvicePro仿真器在嵌入式实时操作系统调试中的应用。作为日本最成熟的嵌入式测试产品,AdvicePro在Symbian、Linux、Nucleus等操作系统上也有相当丰富的实际经验。欲了解更多信息请访问:www.yokogawa.com/cn-ysh (中文)或 www.yokogawa.com (英文)。

[1]



相关文章
· 单片机的单CPU仿真器的设计[92]
· 几种Linux下嵌入式开发环境的简单介绍[312]
· 如何利用嵌入式软件设计SoC[325]
热门评论排行
·VHDL设计中电路简化问题的
·江苏嵌入式Linux教育培训
·锐极LINUX驱动培训班定于
·基于实时操作系统μC/OS-
·ARM嵌入式系统基础教程(N

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
华虹NEC的0.13微米嵌入式工艺取
映绿色风潮 奇美电子在日发
尔必达注资力晶半导体新台币35亿-4
WSTS调降近三年IC市场预期&nb
Vishay 推出具有业界
具备革命性数字安全特性的英飞凌SLE
祥硕科技采用一系列 MIP
安森美半导体荣获德尔福苏州E&S优质
赛普拉斯为用于机器视觉与运动分析应用
赛普拉斯针对机器视觉与全息数据存储应
 
热门下载 [更多]
 
[ PCB设计] Protel99教程下载
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
 
论坛新帖 [更多]
 
硬件工程师面试题及答案(模拟电...
如何在C语言中跳出多重循环?—...
ARM入门开发步骤...
linux学习点滴...
在linux上安装配置samb...
[转帖]WinCE 5 mem...
四折批发各种数码相机,摄相机等...
最低价销售各种品牌手机...
震撼出售各种品牌笔记本电脑等!...
IC design 的流程...

 
赞助商 [更多]
 

ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网