好吧,如果你不知道啥叫console,我举个例子,那个XP下的DOS黑乎乎的窗口就是一种console,中文意思叫 控制台。
咳咳~
现在只是先做个小小的调查,如果有一个这样的 调试接口,你需要什么功能?
这个串口调试console是这样的。
(目前,先只考虑串口作为数据接口,因为它最简单,也最常用,在各类高低端单片机上也是最容易实现的一种通信接口。)
它的基本功能描述如下:
通过一个原始的简单的 PC和你所要调试的单片机或者其他数字系统 串口数据通信。电脑上位机(最简单的情况下就是 cmd的console)软件是上位机,单片机/数字系统是 下位机。
通过提示(当然是我程序里写的......),以固定的命令或者数据格式,对单片机进行一系列的数据读写。
定位:
它主要不是用于 仿真——硬件仿真器已经非常成熟,每一个相应的开发板几乎都有,串口的,USB的,JTAG的。我没事不打算凑这个热闹。
它也不是用来在线开发时调试debug用,这个事情,ide配合硬件仿真器 已经做得很好了,我没事也不打算去凑这份热闹。
那么,它的意义在哪里呢?
呵呵,其实,它的目标很简单:
就是,随时随地,离线 查看 硬件的调试信息 和 运行状态。
具体地说:
这个产品的最主要应用是 辅助产品测试。
一个单片机系统,在最简单的情况下,它可能没有数码管,没有显示屏,或者就算有,可显示的内容也非常有限。
这就决定了它不能像PC机程序一样,有许多丰富的资源和手段可以做程序测试。
比如说,PC机程序可以通过向console或者重定向到文件,去存储运行过程中打印出来的信息;
而一个单片机系统,它在调试时,诚然我们可以通过查看内存数据,通过设置断点等种种方式去查找问题,但是,调试阶段永远是有限的,而有的问题可能在长久的运行中,比如一个月,两个月,甚至半年一年才可能表现出来,这种时候,我们就非常希望保存好发生问题时的现场,比如某些数据单元到底发生了什么意外或者错误的变化——
总之我们需要数据。
前面说了,单片机系统,它本身是极不方便为我们查看这种信息的。
而且,特别对于小型单片机系统,它搞不好只有按键和若干个LED,这个时侯,要你查看信息,你绝对会疯掉。
所以,我们就打算以串口为通信接口,借助电脑作为上位机,通过与单片机通信,获取我们存在里面的数据并且可以输入我们要的调试信息,人为引发错误现象再次发生——这种情况,在现场使用是很方便的——因为,有很多时候,我们的产品发布出去以后,为了源码的安全和封闭,我们,是不会向用户提供开发这个产品所使用的ide以及其他开发工具的。
而且,至少我现在遇到的就是,它是没有办法在程序运行的状态下再次进入debug模式的,这种情况,就算你回到开发办公室,重新接入,也是枉然,因为数据已经全部被销毁了..........
最后,我简单描述一下我目前对这个产品的功能描述:
1.它以一套定制好的数据格式(届时,单片机的程序设计者,将得到一份相关的数据帧格式说明以备他按照这个格式,把相关的单片机串口处理程序做好,或者我们会直接提供一份静态源码,可以直接加入你的项目中去。),通过串口线和电脑通信,无须任何额外的硬件电路或者驱程——当然,如果你使用的是 USB转串口一类的,那,这个工具本身的驱程我们是没办法免除的。
2.它可以提供一系列设计好的控制命令,让你 对 单片机程序进行 数据读写,控制——当然,这些操作本身,你的单片机中要按照我们提供的app做好对应的处理工作
——对于你的实际项目,我们没办法也无权介入,这是你的自由。
3.为了更友好的用户操作,它将提供简要的用户操作说明,你会在界面中看到提示,它支持HEX码,ASCII码显示和输入,取决于你的需求——比如查看某部分存储器数据,当然最方便的我们认为是HEX码,而如果是发送控制命令,那也许,ASCII字符会更方便。
如果你还有更多的需求,在你的实际工作中会用到的,请发邮件告诉我们,谢谢!
如果你还有其他做单片机开发,并且对这种测试工具有一定需求,了解的朋友,也请帮忙转发,谢谢!
任何时候,你都可以给这封邮件的原作者 辛昕 发送电子邮件。
755087287@qq.com
辛昕 敬上
2012.8.3