除错系统与方法与流程

文档序号:19564529发布日期:2019-12-31 16:29阅读:149来源:国知局
本发明是有关于一种除错系统与方法,特别是一种有关于嵌入式装置的除错系统与方法。
背景技术
::嵌入式装置具备小型化、轻量化、低功耗和低成本等特性,因此在消费性电子产品等市场十分流行,由于大多数嵌入式装置缺乏键盘、屏幕以及硬盘等元件,因此开发人员在开发嵌入式装置(例如微控制器或芯片等)的内部应用程序过程中,常需将程序运行时产生的除错信息输出显示至具备上述元件的除错端,以方便除错工作的进行。输出除错信息的常见方式有两种,其一是嵌入式装置通过通用非同步接收发送器(universalasynchronousreceiver/transmitter)将除错信息即时传送至开发人员的除错端,然而,由于成本考量,许多开发中的嵌入式装置并不具有通用非同步接收发送器。因此,另外一种输出除错信息的方式乃是通过一般的嵌入式装置输出入接脚,以semihosting机制将除错信息传送回除错端。semihosting机制乃是一种软件除错机制,嵌入式装置通过软件中断暂停程序运行,接着除错端会收到中断通知,并取得嵌入式装置中的除错信息,在除错端取得信息后,嵌入式装置才会结束中断恢复运行,此方法虽无需另增通用非同步接收发送器,但每次取得除错信息时程序运行都会受到干扰,降低除错的效率。技术实现要素:本
发明内容的一态样为一种除错系统,除错系统包含一嵌入式装置与一终端计算机。嵌入式装置包含储存器单元,且储存器单元包含一第一缓冲区块,嵌入式装置用以执行至少一指令并产生至少一笔即时除错信息,且将即时除错信息写入第一缓冲区块中。终端计算机通过第一接口连接至内电路仿真器,而内电路仿真器通过一第二接口连接至嵌入式装置。终端计算机用以采轮询(polling)方式通过内电路仿真器读取第一缓冲区块内的即时除错信息,并于读取完成后删除第一缓冲区块所储存的即时除错信息;其中,所述终端计算机还用于显示读取的即时除错信息。于一实施例中,第一接口为通用序列总线(usb)接口。于一实施例中,第二接口为有线测试(jtag)接口。于一实施例中,储存器单元用以记录第一缓冲区块的起始地址与大小。于一实施例中,嵌入式装置于第一缓冲区块的剩余空间不足以写入至少一笔即时除错信息时,嵌入式装置等待第一缓冲区块清空后再进行写入。于一实施例中,储存器单元更包含第二缓冲区块,终端计算机通过内电路仿真器写入至少一笔远端信息至第二缓冲区块,嵌入式装置以轮询方式读取第二缓冲区块以取得远端信息。本
发明内容的一态样为一种除错方法,除错方法包含下列步骤:通过终端计算机采轮询方式通过内电路仿真器自嵌入式装置读取至少一笔即时除错信息,且嵌入式装置用以将执行至少一指令时所产生的即时除错信息写入嵌入式装置内的第一缓冲区块;在读取即时除错信息后,删除第一缓冲区块所储存的即时除错信息;其中,所述终端计算机还用于显示读取的即时除错信息。于一实施例中,除错方法更包含读取储存器单元中所记录的第一缓冲区块的起始地址与大小。于一实施例中,除错方法更包含通过终端计算机通过内电路仿真器写入至少一笔远端信息至嵌入式装置内的一第二缓冲区块,且嵌入式装置以轮询方式读取第二缓冲区块以取得远端信息。本
发明内容提供的除错系统与方法能够降低嵌入式装置的开发成本,在不增加多余硬件接口的前提下,采用嵌入式装置原本具有的接脚进行除错信息的传递,同时嵌入式装置在输出除错信息时,可将除错信息储存于储存器单元中,待终端计算机读取后删除错信息以容纳新的除错信息。如此一来,嵌入式装置无须因输出除错信息而中断运行,在持续执行程序情况下进行除错可大幅缩短除错时间,增进开发效率。另外,嵌入式装置亦包含一第二缓冲区块,供终端计算机储存远端信息,省去设置多余接口的麻烦,近一步降低开发成本。附图说明图1是依照本
发明内容实施例绘示的一种除错系统的方块示意图;以及图2是依照本
发明内容实施例绘示的除错方法的流程图。附图标号:100除错系统110嵌入式装置112处理单元114储存器单元1142第一缓冲区块1144第二缓冲区块120终端计算机122处理单元124储存器单元126显示单元128输出入单元130内电路仿真器140第一接口150第二接口200除错方法s210~s230步骤具体实施方式为了使本
发明内容的叙述更加详尽与完备,可参照所附的图式及以下所述各种实施例,图式中相同的号码代表相同或相似的元件。另一方面,众所周知的元件与步骤并未描述于实施例中,以避免对本
发明内容造成不必要的限制。此外,图式仅以说明为目的,并未依照原尺寸作图。关于本文中所使用的“第一”、“第二”、…等,并非特别指称次序或顺位的意思,亦非用以限定本
发明内容,其仅仅是为了区别以相同技术用语描述的元件或操作而已。关于本文中所使用的“耦接”或“连接”,均可指二或多个元件相互直接作实体或电性接触,或是相互间接作实体或电性接触,而“耦接”还可指二或多个元件相互操作或动作。图1是依照本
发明内容实施例绘示一种除错系统的方块示意图。除错系统100用于开发嵌入式装置110所执行软件程序,由于嵌入式装置110缺乏键盘、屏幕以及硬盘等元件,且开发时硬件往往也尚未开发完成,因此开发人员需要将嵌入式装置110在程序运行时产生的除错信息输出至具备显示装置的终端计算机120。图1所示的除错系统100包含嵌入式装置110、终端计算机120以及内电路仿真器(in-circuitemulator)130。嵌入式装置110包含处理单元112和储存器单元114,且储存器单元114包含第一缓冲区块1142,嵌入式装置110用以通过处理单元112执行至少一指令,执行指令时产生至少一笔即时除错信息,且将即时除错信息写入储存器单元114内的第一缓冲区块1142中。终端计算机120通过第一接口140连接至内电路仿真器130,而内电路仿真器130通过一第二接口150连接至嵌入式装置110。终端计算机120用以采轮询(polling)方式通过内电路仿真器130读取第一缓冲区块1142内的即时除错信息,并于读取完成后删除第一缓冲区块1142所储存的即时除错信息。即时除错信息例如是程序或指令中所使用变数的数值,或储存器单元114中固定地址所储存的数值,或任何其他对了解程序运行状态有关的信息。于一些实施例中,嵌入式装置110的处理单元112为一arm架构的中央处理器,储存器单元114为静态随机存取储存器(staticrandomaccessmemory,sram)。于另一些实施例中,嵌入式装置110的处理单元112为一mips架构的中央处理器,储存器单元114为动态随机存取储存器(dynamicrandomaccessmemory,dram)。于其他实施例中,嵌入式装置110的处理单元112可为其他类型处理器,而储存器单元114可为闪存(flashmemory)、或任何其他适用的储存器种类,并不限于本
发明内容所举示例。于一实施例中,终端计算机120为一个人电脑,处理单元122为中央处理器(cpu),储存器单元124为动态随机存取储存器(dram)与硬盘(harddisk),显示单元126为液晶屏幕(lcd),输出入单元128为键盘鼠标组。于另一实施例中,终端计算机120为一平板电脑(tablet),处理单元122为arm架构处理器或mips架构处理器,储存器单元124为动态随机存取储存器(dram)、闪存(flashmemory)、sd储存卡以及固态硬盘(ssd)等,显示单元126为触控屏幕(touchpanel)或amoled屏幕,输出入单元128为光学鼠标(opticalcursor)或实体键盘(keyboard)。在其他实施例中,终端计算机120可为其他种硬件实施方式,并不限于上述所举示例。于一实施例中,终端计算机120的轮询周期为10毫秒(ms),于另一实施例中,终端计算机120的轮询周期为15毫秒(ms)。本领域相关技术人员在阅读本
发明内容后,可依应用需求设计轮询的周期长度,并不限于上述所举示例。于一实施例中,终端计算机120在通过内电路仿真器130读取即时除错信息后,可删除第一缓冲区块1142内所储存的即时除错信息,使嵌入式装置110继续将新产生的即时除错信息写入第一缓冲区块1142。于另一实施例中,终端计算机120在通过内电路仿真器130读取即时除错信息后,设定储存器单元114内的一旗标,处理单元112读取该旗标的值以确认第一缓冲区块1142内的即时除错信息是否已被读取,若均已被读取则可复写第一缓冲区块1142内的即时除错信息。通过上述的技术内容,嵌入式装置110将即时除错信息写入第一缓冲区块1142,而终端计算机120则以轮询方式定时检查第一缓冲区块1142,并在第一缓冲区块1142中包含即时除错信息时,读取即时除错信息并显示于显示单元126,开发人员便可得知程序运行的状况并加以除错。如此一来,除错系统100既无需于嵌入式装置110增加额外的硬件接口专门用以传送即时除错信息,嵌入式装置110也不用因输出即时除错信息而暂停程序运行,可大幅提高除错效率,缩短产品开发周期。于一实施例中,连接终端计算机120与内电路仿真器130的第一接口140为通用序列总线(usb)接口,而连接内电路仿真器130与嵌入式装置110的第二接口150为有线测试(jtag)接口。于其他实施例中,第一接口140为通用序列总线人机接口装置(usbhumaninterfacedevice,usbhid)接口,而第二接口150为背景除错模式(backgrounddebugmode,bdm)接口。于其他实施例中,第一接口140与第二接口150为其他接口,并不限于本
发明内容所举示例。当第一缓冲区块1142的剩余空间不足以写入所产生即时除错信息时,嵌入式装置110等待终端计算机120读取并清空第一缓冲区块1142中的即时除错信息后,再将新的即时除错信息写入第一缓冲区块1142。于一实施例中,嵌入式装置110进行忙碌等待(busywaiting)以持续确认第一缓冲区块1142已储存的信息是否被清空,并在第一缓冲区块1142清空后,写入新产生的即时侦错信息,并结束等待并继续执行指令。多种因素影响储存器单元114中的第一缓冲区块1142的起始地址与大小的订定。第一缓冲区块1142的空间越大,则越能缩短或避免嵌入式装置110的等候时间,然而,若第一缓冲区块1142的空间过大,则嵌入式装置110运行程序或指令时所使用的储存器空间则会受到限制。另外,第一接口140与第二接口150的传输速率越快,或是终端计算机120轮询的周期越短,皆能提升第一缓冲区块1142被清空的速度,降低所需第一缓冲区块1142的空间大小。于一实施例中,第一缓冲区块1142的空间大小为256字节(byte),于另一实施例中,第一缓冲区块1142的空间大小为512字节(byte)。本领域相关技术人员可根据本
发明内容,视实际应用情况调整第一缓冲区块1142的起始地址与大小,并不限于所举示例。于一实施例中,储存器单元114用以记录第一缓冲区块1142的起始地址与大小,处理单元112与终端计算机120读取所记录的起始位置与大小,以写入或读取即时除错信息于储存器单元114中对应的储存器地址。于另一实施例中,储存器单元114所包含的非挥发性储存器中记录第一缓冲区块1142的起始地址与大小,开发人员视需求改变储存器单元114所记录的第一缓冲区块1142的起始地址与大小。于另一实施例中,储存器单元114更包含第二缓冲区块1144,终端计算机120通过内电路仿真器130写入至少一笔远端信息至第二缓冲区块1144,嵌入式装置110以轮询方式读取第二缓冲区块1144以取得远端信息。亦即,开发人员根据程序指令执行状况输入远端信息,嵌入式装置110通过内电路仿真器130取得远端信息,并根据远端信息继续执行程序指令,开发人员再根据嵌入式装置110所产生的即时除错信息找出错误。如此一来,嵌入式装置110与终端计算机120即可通过内电路仿真器130达到双向沟通,使除错过程更加流畅,降低开发成本。应注意到,终端计算机120欲在第二缓冲区块1144中写入远端信息时,需先行确认第二缓冲区块1144中剩余空间是否足够,当第二缓冲区块1144的空间不足时,终端计算机120进入等待状态,待嵌入式装置110读取并清空第二缓冲区块1144后,终端计算机120再行写入远端信息。第二缓冲区块1144的储存器空间与起始位置亦如同第一缓冲区块1142,记录于储存器单元114中,供处理单元112与终端计算机120读取,并于储存器单元114的对应地址读取或写入远端信息。于一实施例中,由于嵌入式装置110于指令执行过程中所需的远端信息的数据量通常小于即时除错信息的数据量,故第二缓冲区块1144的储存器空间较第二缓冲区块1144的储存器空间小,例如64字节(byte)或128字节(byte)。本领域相关技术人员于阅读本
发明内容后,可根据应用需求设计第二缓冲区块1144的储存器空间大小与起始地址,并不限于上述所举示例。图2是依照本
发明内容实施例绘示的除错方法的流程图。应了解到,虽然流程图中对于除错方法200以特定顺序的步骤来做描述,然此并不限制本
发明内容所提及步骤的前后顺序,另外在实作中可增加或减少所述步骤。于此实施例中,为了方便及清楚说明,以图1所示的除错系统100为例来进行阐述,但本
发明内容并不以此为限。于除错方法200的步骤s210中,通过终端计算机120采轮询方式通过内电路仿真器130自嵌入式装置110读取至少一笔即时除错信息。在一些实施例中,于步骤s210之前,嵌入式装置110预设将执行指令时所产生的即时除错信息写入嵌入式装置110内的第一缓冲区块1142。于一实施例中,终端计算机120读取储存器单元114中所记录的第一缓冲区块1142的起始地址与大小,以在储存器单元114中对应位置读取即时除错信息。终端计算机120所采用的轮询方式以及即时除错信息等技术细节如上所述,于此不再赘述。终端计算机120在读取即时除错信息后,删除第一缓冲区块1142所储存的即时除错信息(步骤s220)。于一实施例中,嵌入式装置110欲写入新产生的即时除错信息,然而第一缓冲区块1142仍保留未被终端计算机120读取的即时除错信息,嵌入式装置110便进入等待状态,在终端计算机120读取并清空第一缓冲区块1142后再行写入。嵌入式装置110写入第一缓冲区块1142与终端计算机120读取并清空第一缓冲区块1142的技术细节如上所述,于此不再赘述。于一实施例中,于步骤s220之后,通过终端计算机120通过内电路仿真器130写入至少一笔远端信息至嵌入式装置110内的第二缓冲区块1144(步骤s230),使得嵌入式装置110可以读取第二缓冲区块1144内的数据,例如:嵌入式装置110以轮询方式读取第二缓冲区块1144以取得远端信息。终端计算机120写入远端信息与嵌入式装置110读取远端信息的技术细节如上所述,于此不再赘述。综上所述,本
发明内容提供的除错系统与方法能够降低嵌入式装置的开发成本,在不增加多余硬件接口的前提下,通过嵌入式装置原本具有的接脚或接口传送除错信息或远端信息,同时嵌入式装置在输出除错信息时,可将除错信息储存于储存器单元中,待终端计算机读取后删除除错信息以容纳新的除错信息。如此一来,嵌入式装置无须在每次输出除错信息时均中断运行,而是由终端计算机采轮询方式检查储存器单元中是否储存有除错信息,而可在嵌入式装置持续执行程序情况下进行除错,大幅缩短了除错时间,并增进开发效率。虽然本
发明内容已以实施方式揭露如上,然其并非用以限定本
发明内容,任何本领域相关技术人员在不脱离本
发明内容的精神和范围内,当可做各种的更动与润饰,因此本
发明内容的保护范围当视权利要求为准。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1