Hands on mbed LPC1768

ARM 公司赠送的 mbed 开发板放在我的桌子上已经很长时间了,今天准备试试看

下载第一个程序

打开开发板的包装就可以看到一个只有 DIP40 大小的开发板,板上有一个 MiniUSB 的插头,显然这就是它的编程接口。可当我将开发板接上 USB 电缆,系统识别出来的竟然是一个 USB 存储器,这倒是一个不小的意外。通过打开存储器里面的 MBED.HTM 文件,就可以登录到 mbed 项目的官方网站,注册一个用户就可以使用在线工具编程开发了。

简单来说,使用 mbed 开发主要有三个步骤:

  1. 通过 USB 电缆连接开发板
  2. 使用在线开发环境进行编程,并最终生成二进制文件
  3. 将二进制文件放到 USB 存储器,按下板上复位按钮运行

mbed 的优点

mbed 的这种开发方式还是很新颖的,只用了几分钟的时间我就已经把第一个程序运行起来了。而作为用户,不用了解 ARM 芯片的任何知识,也不用了解编译器的相关概念,甚至在自己电脑上都不用安装任何新软件。所有的开发都可以通过浏览器完成,所有硬件的细节都被抽象成了用户 API,非常适合刚刚接触嵌入式的人士使用。

个人认为 mbed 比较适合高中生或者业余非专业人员使用,而对于专业嵌入式开发者可能会觉得它隐藏了太多的细节,更像一个玩具而不是一个开发工具。或者换句话说,专业人士如果使用 mbed,有一天碰见了一个高中生,那个高中生说:“我用的也是这个”,这或多或少会让专业人士少了些神秘感,甚至感觉有点“丢份”。就像一个 Linux Hack,要么只用 terminal,要么就使用一个平铺的窗口管理器,总之必须满屏幕是字符才会让他觉得有真正黑客的自尊。

不过 mbed 还是非常适合快速开发的。如果有一个项目工期很紧,使用 mbed 也不失好的选择。

离线开发

在线开发方式也不讨好专业人士,好在网站提供了离线的开发方法。在项目的右击菜单中有 Export Program 的选项,可以导出为 Keil,DS-5,GCC,IAR 等多种开发平台的工程,其中也包含 mbed 的链接库。因此即使使用离线开发工具,依然也可以使用 mbed 提供的 API,方便用户的开发。

离线的方式使用户可以继续使用熟悉的开发工具,而且同样可以把生成的二进制映像拷贝到 mbed 的存储器中,“自动”下载程序到处理器。

也就是说 mbed 所使用的二进制文件并没有特别的地方,那它的存储器是如何实现的呢?当它运行了我的用户程序后,存储器功能是否还存在呢?其实在 LPC1768 板子的背面还可以看到很多芯片,存储器的功能就是它们实现的。每次用户按下复位按钮的时候,这部分硬件就会把存储器里面的二进制程序通过 LPC1768 的 ISP 模式下载到芯片里面去。所以存储器的这部分功能一直是存在的,也并不是 LPC1768 这个芯片所实现。

最后要提一句的是这个板子在用了一段时间后竟然是温温的,难道主频 96M 有些高?这是我第一次使用唯一一个不太满意的地方。