热度 19
2013-9-6 16:32
1014 次阅读|
0 个评论
uC/Probe 是一个PC端程序,Micrium公司设计用来给嵌入式系统做可视的应急援救。uC/Probe可以轻松的监控并控制目标单片机,通过一个“仪表盘”(由视觉对象组成比如表盘,折线图,滑块等),被映射到应用程序变量上。 uC/Probe仪表盘(www.micrium.com) uC/Probe 可通过多种物理连接与目标单片机通信,比如JTAG调试器、UART、以太网或者Wi-Fi。无论物理连接是什么,协议都一样;uC/Probe只是发送命令到目标,来读写单片机内存位置。 构造一个“仪表盘”屏幕很简单,第一步是要下载目标程序的符号表(比如ELF文件)到uC/Probe“符号浏览器”上,如此的话uC/Probe就获知了每个目标变量的物理内存地址。接下来所需的可视对象可从“工具箱”中被拖拽出来,在仪表盘屏幕上确定位置和大小。可视对象可以进一步配置属性,比如颜色,范围,缩放等等。最后每个在仪表盘上的可视对象被映射到一个特定的目标程序变量,通过把变量从符号浏览器中拖动并将其置于可视对象上。 给仪表盘可视化对象指定一个应用程序变量 (www.micrium.com) 一旦可视对象被定义并指定符号地址,仪表盘就可通过点击“Run(运行)”来启动。现在uC/Probe循环发送命令到目标来访问被映射的符号(比如读/写单片机内存)并相应的推动仪表盘上可视对象显示。 两用调试器 作为一个援救调试器,uC/Probe超越基于文本显示工具链的典型单片机的限制。例如,用uC/Probe你可以将变量值图形化随着目标程序运行的时间推移。这比沉闷的一步步通过断点和观察变量或者是这破译在屏幕上飞奔的PRINTF数字流容易的多。 除了调试,多亏的以太网连接选项,uC/Probe可以在物联网应用中有双重用途,通过在网上提供简易途径监控和控制一个嵌入式应用。 唯一的警告是使用以太网选项要求: 目标单片机执行一个以太网驱动和UDP服务器来与uC/Probe通信。实际情况是以太网选项是一个用于很多内存和MIPS的大型单片机才是可行的,当同样运行目标应用时支持一个网络堆栈。然而,利用WIZnet以太网智能芯片的优势,uC/Probe使小单片机(比如8-16位)用于物联网应用成为可能。WIZnet内置“硬件协议栈”卸载网络负担并极大程度上减少了应用程序的干扰。让我们演示一下这个概念,通过展示用uC/Probe通过Arduino在网络上的工作是多么简单。 将硬件方式联网 Arduino已经得到了基于WIZnet硬件和软件的很棒的支持。硬件选择包括来自WIZnet的和许多其他供应商的扩展以太网插板(开源设计),WIZnet Wiz820io模块(集成了WIZnet芯片和RJ45 Magjack)和组合Arduino+以太网SBC,例如Seeed Studio 的Seeeduino Ethernet. Wiznet W5200 以太网插板和Wiz820io模块 (www.shopwiznet.com), Seeed Studio的 Seeeduino Ethernet (www.seeedstudio.com) 更棒的是,大量的久经时间考验的软件,贡献来自Arduino社区,尤其包括一个来自WIZnet以太网芯片的UDP驱动器。 所有这些都需要一些代码加到你的Arduino应用程序上 ,来处理uC/Probe的对话。这不是大问题因为这只关乎读写内存位置。 虚拟化 使用符号表来将视觉对象映射到你的应用程序变量上,这对于调试很有意义。每次程序修改(新的更改) 都改变了内存地址被指定到变量上的时候,它不需要重载uC/Probe符号浏览器。 对于物联网的应用,一个便捷的选择是采用了一个“虚拟”地址计划。从技术上讲,它意味着在一个uC/Probe视觉对象与Arduino应用变量的映像 被应用在运行本身时决定而不是在编译时的编译器决定。 虚拟方法简化了应用程序仪表盘的开发,由于uC/Probe符号浏览器最初只需要加载一次,并不随着每次程序(符号地址)的变化。应用程序也获得了动态分配的能力,像变量(单片机内存地址)被映射到仪表盘的视觉对象。虚拟的映像计划也可用其他的编程语言(比如BASIC,Forth),并不生成一个用户可访问的或者适当格式的符号表文件。 服务于人 让我们看一下uC/Probe在以太网上与Arduino一起工作是多么统一。 首先打开在Arduino IDE上打开‘uCProbe_Server_Arduino’程序,更改网络参数(MAC地址,IP地址和端口号)来匹配你的局域网设置。 设置演示MAC地址,IP地址和端口号 编译程序并下载到你的Arduino上,然后打开一个终端窗口来坚持程序运行。当程序开始显示一条‘Waiting for uCProbe packet…’信息时,并循环继续显示滑块变量值时。你可以通过ping 你指定的IP地址来核实以太网的连接。 接下来前往 www.micrium.com 去下载并安装uC/Probe的评估版本,运行它然后File-Open ‘Arduino_uCProbe_Demo.wspx’.这个.wspx(工作区)文件定义了一个带有可视对象变量的仪表盘,包括一个表盘和滑块,以及有图形,按钮,数字字段等等。 你可以点击对象去检查并修改他们的内容。同时,点击‘Symbol Browser’去看下‘ArduinoMap.out’虚拟地址的符号表。在这个演示中是个Arduino应用变量(每个类型byte,word或者long)可被映射到仪表盘变量VAR01_type 到VAR10_type之间(type = 08u, 16u or 32s)。 虚拟地址变量被定义在 ArduinoMap.out 符号文件中 为了完成设置点击uC/Probe“Settings”图标并键入你指定给Arduino的TCP/IP网络参数(IP地址和端口号) 继续阅读: http://blog.iwiznet.cn/?p=5598 下载代码 更多信息与我们交流: WIZnet邮箱:wiznetbj@wiznet.co.kr WIZnet主页:http://www.wiznet.co.kr WIZnet企业主页:http://e.weibo.com/wiznet2012