TeamViewer和P200串口服务器配合使用,开发人员就可在家办公。

2010年05月19日

TeamViewer是一个在任何防火墙和NAT代理的后台用于远程控制,桌面共享和文件传输的简单且快速的解决方案。

为了连接到另一台计算机,只需要在两台计算机上同时运行TeamViewer即可,而不需要进行一个安装的过程。该软件第一次启动在两台计算机上自动生成伙伴ID。只需要输入你的伙伴的ID到TeamViewer,然后就会立即建立起连接。 这款软件是至今唯一的一款能穿透内网的远程控制软件,可以穿透各种防火墙,要求双方都安装这个软件,使用时要求双开打开软件并且接受连接即可,最大优势在于此软件任何一方都不需要拥有固定IP地址,双方都可以相互控制,只要连入Internet即可,不受防火墙影响!

而P200串口服务器是一个针对开发人员而设计的串口解决方案。开发人员远程登录到办公电脑后,就可以如同操作本地电脑一样开发软件,并通过串口服务器访问开发板,并烧录固件进行调试,断电重启等。

替代IAR,使用免费的gcc编译开发cortex-m3产品

2010年05月12日

在写这篇小短文之前,想问问大家,不知道大家用什么编译器编译基于cortex-m3的代码?项目开始的时候就会购买商业版的编译器么?还是用D版的?反正我是没找到好用的D版(有过贼心,没偷成)。前段时间一直在用IAR开发基于Luminary LM3S的一个工具,可是在加入TCP/IP协议栈的时候遇到了32K的代码限制,在google上搜索了好几天都没有找到合适的key,于是只能自己动 手,做了基于4.4.0的gcc编译器(编译的代码已经应用于产品),在附件中可以直接下载。另外,Sourcery G++也可以编译Cortex M3,但没用过,欢迎有用过经历的朋友拍砖。不多说,做正事。

1.开发环境

目前的开发都是在Linux上进行的,当然也可以在Windows上做,只是据我知道的,GDB在windows下没有一个比较好用的能够设置hard breakpoint的调试界面(对运行在flash上的程序设置断点),Linux下的DDD可以做到,而且一步一步的执行汇编代码,这个对于调试操作系统的堆栈切换非常有用。除了省钱,另外一个吸引我的是Linux强大的网络功能和开源,可以基于此进行很多网络模拟测试开发。

操作系统选择UBUNTU 9.10。UBUNTU安装软件包很方便。例如后续我们将用到的调试工具OpenOCD,9.10上已经自带0.2的版本,运行命令apt-get install openocd就自动安装。尽管 10.04已经发布,但离稳定还需要一段时间,所以目前还是比较推荐9.10。当然,其它的Linux版本也可以使用,看个人兴趣。

2.安装编译器

先在附件中下载编译器,保存在当前目录下面,在终端运行命令tar zxvf cortex-m3-gcc4.4.0.tar.gz。 解压后将目录里面的文件夹cross-cortex拷贝到/opt目录(运行命令cp -r  cross-cortex /opt),然后用gedit或者vi编辑~/.bashrc,在文件末尾添加如下一行来设置环境变量,“export PATH=$PATH:/opt/cross-cortex/bin”。这样在任何目录下面,就可以执行编译器arm-elf-gcc了。

3.编译目标文件

先下载附件中的代码,解压后有三个文件,分别是example.lds,start.c和Makefile。

example.lds是gcc连接器脚本,连接器通过该脚本决定如何将输入文件的sections映射到输出文件,以及如何控制内存分布(memory layout)。这个脚本文件主要是针对LM3S系列64 RAM, 256K Flash的处理器。

start.c是CPU上电后开始执行的文件,其入口函数是ResetISR,这个相关资料都有介绍,这个文件只是最简单的一个示例,若要打印一个”hello world!”比这个还要麻烦一些,至少配置串口等。

最后一个文件就是Makefile,我不太清楚看这篇文章的朋友(常用单片机,从事工业控制等,都能自己设计电路,自己写程序?)了解Linux的多不多。大家在Windows下面的集成开发环境用的比较多,例如IAR,ADS,或者MS的Visual Studio开发环境。但Linux的绝大部分软件几乎都是由Makefile来组织的。尽管Makefile很让初学者头疼,但几乎大型嵌入式(或者服务器等)软件都少不了它(Linux内核编译也是由Makefile来组织)。在当前目录运行make命令的时候,会逐行运行Makefile的如下几行命令。

arm-elf-gcc -g -mcpu=cortex-m3 -mthumb start.c -nostartfiles -T example.lds -c -o start.o,生成object文件。

arm-elf-ld  -T example.lds start.o -o start.dbg,生成带有调试信息的二进制elf文件,类似于Windows的PE文件,也就是大家常见的exe,包括一些文件头,等等。但这个可执行文件还不能够烧录到flash,还要执行下面的一步,

arm-elf-objcopy -O binary -S -R .note -R .comment start.dbg start.bin,生成“纯”二进制文件,去除了调试信息。start.bin就可以通过jtag烧录到单片机的flash。

arm-elf-objdump -t start.dbg > start.map,最后这样是用来生成内存映射表。例如,变量对应的内存地址,函数入口地址等。这些信息在调试的时候有用。

在当前代码的目录下面,运行make clean就运行命令“rm start.bin start.dbg start.map start.o”删除生成的这些二进制文件。

希望这篇短文对大家有用,有问题欢迎拍砖。下一篇有空将介绍如何通过OpenOCD,控制JTag来调试和烧录程序。

参考:

http://www.eluaproject.net/en_tc_cortex.html

下载:

Cortex-M3 GCC编译器

演示代码

P200串口服务器开始供货

2010年04月8日

P200串口服务器

P200 是一款自主研发的,轻量级的经济实惠型串口服务器,支持三个串口转 TCP,并提供远程控制 负载电源的功能,每一个串口对应一路负载。可广泛用于工业控制,门禁系统,大型 LED 屏幕,产品研 发调试等等。

为什么选择 P200?

性能稳定。采用原装串口芯片,防静电设计。经过测试,三路串口全部连接上,波特率设置115200,连续发送数据 24 小时(1G 的数据),无数据丢失,不死机。

价格优势。市场许多串口服务器采用高端芯片,运行 Linux 系统。尽管芯片主频很高,但同时软件 耗费的资源也更多,导致实时性降低,更重要的是成本提高。而我们的方案采用 Cortex 系列的 32 位处理器,成本有很大优势。软件上,采用完全自主研发的针对网络处理的实时系统,引进高效的内存分配算法,经过严格的测试,性能表现优越。如果选择 ODM/OEM,客户无须为RTOS 支付额外的 License。

控制电源。P200相比普通的串口服务器,增加了控制电 源的打开和关闭的功能(DC,5-18V),并支持三路的电源控制。这个功能对于需要经常用串口开发和调试的研发人员特别有用。而且,在开发的时候,使用 P200可以减少对电脑资源的占用(很多时候使用电脑只是使用其中的串口),从而节约公司购置电脑的成本。另外,现在市面上绝大部分的笔记本电脑都不配备 串口,P200串口服务器可以弥补这一缺陷,完全替代USB转串口线。

特性

  • 3个RS232串口,最大速率115200 bps
  • 支持通过web进行管理和配置,使用非常方便
  • 支持五种模式 Telnet Server, TCP/UDP Server, TCP/UDP Client
  • 分别远程控制三路负载的电源
  • 可由USB供电,或DC电源供电(5.5mm-2.1mm,内正外负,5V-18V之内都可以)
  • 支持通过DHCP获取IP地址或静态IP
  • 支持字符映射和过滤功能(双向)
  • 免费发布固件升级版本

体验

在演示P200之前,请先阅读P200用户手册。 在了解串口服务器的操作之后,在Windows或者Linux命令行下面运行”telnet au.interd.com.cn 1″就能够自动登录到我们架设的串口服务器。服务器串口1连接上一块Linux开发板,用户可以通过手册上一些步骤来体验。 另外,串口2和3是没有连接串口的。该串口服务器只是为了演示,所以在您操作体验完之后,请及时关闭连接,方便其他用户继续使用。