微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > LPC1300通过USB在线系统编程ISP

LPC1300通过USB在线系统编程ISP

时间:11-27 来源:互联网 点击:

4.5卸载盘设备

大多数操作系统在一个延时之后将最终完整写到盘,但强制卸载是最后的有效步骤,以确保操作系统完成数据写入磁盘的操作,这样的话,当设备成功移除时就会告知用户。为了卸载操作成功,所有打开的文件包括firmware.bin文件必须先关闭。在Linux操作系统中,可以使用posix(可移值接口)标准umount命令。通常,卸载自动加载的USB大容量存储设备不需要管理权限。在Mac操作系统中,因为磁盘仲裁器能够自动管理加载操作,使用DADiskUnmount系统呼叫是最好的路径。在Windows操作系统中,大多数用户使用自我卸载或使用SetupAPI里的CM_Request_Device_Eject函数。我们的例子中WindowsISP更新器不卸载设备当它,反而,它会显示一个对话框提醒用户。

图4

5、自动进入USBISP

在前面的章节,我们解释了在USBISP模式下,PC更新设备固件的过程。当固件未编程,或者拉低一个引脚(在LPC134x系列是PIO0.1脚),设备复位/上电,NXPLPC1300微控制器默认为ISP模式。有时,ISP模式下更新固件、连接设备,用户不想去按一下按钮。这样的话,我们可以设计出允许ISP模式下编程的固件。

在LPC1300片上ROM中,通过In-ApplicationProgrammingAPI请求,可以实现ISP模式下编程。固件更新之后,用户需要重启设备以使新的固件生效。下载新固件之后,新固件可以预设置看门狗定时器来重新设置LPC1300。下面的流程图显示了设备自动化ISP过程。名为“autoisp”的软件实例演示了这一技术。

图5

6软件例子

为了尽早建立用户界面友好的固件更新工具,NXP发布了三个实例(一个ISP下载程序并提供了源代码)。提供一个基于C#的应用程序窗体,可运行于WindowsXP、WindowsVista和Windows7。使用MicrosoftVisualStudioC#Express2010,可以让Windows的应用得到扩展。一个用C语言编写的命令行工具可以在Mac上使用。这个工具在AppleXcode中得到加强,可以运行在OS-X10.5或更高的版本上。最后,UbuntuLinux也有一个程序化的脚本,已在Ubuntu10.04通过测试,并可以运行在具有相同udev文件系统和工具的不同版本的Linux上。

所有工具都是开放的、没有限制,可重复使用,除了Windows应用[取决于iTuner(http://ituner.codeplex.com/)计划的USB磁盘设备等级]。这是一个在开源许可下,要求公开源代码的衍生著作。

应用手册中还包括一个实现代码读保护的blinky的程序。这个程序用在theLPCXpressoIDE,在theLPCXpresso板上让LED闪烁,在嵌入式板上让七段数码管显示屏计数。有九种程序编译版本,所以,设备可以反复的编程(使用不同的CRP模式和LED闪烁/计数速率)。还有一个叫“autoisp”的程序。这个例子演示了如何在程序控制下进入ISP模式。在LED闪烁十秒钟之后,进入ISP模式。如果设备连接到PC上,它将顺序输出,固件开始闪动。这期间,LPC1343进入ISP模式,看门狗定时器继续工作。时间到了之后,LPC1343复位并再次运行固件。

最后,还有一个叫“padto”的小命令行程序。这个程序用来从开发工具获得二进制输出,并填补成0xFF字节,直到与LPC上的flash大小相匹配。这种匹配有助于PC主机上的ISP下载程序,确保固件适用于连接到USB上的特定的LPC134X。

WindowsNXPISP实用工具

这程序是基于Microsoft.NET,当setup.exe程序运行时启动,附带的VisualStudioInstaller将检查电脑和下载NET的最新版本(如果还未安装)。因此,当你第一次运行setup.exe程序时,请确认你已经通过宽带连接到互联网上。在Windows.NET子系统更新完之后,NXPISP程序将自动安装并运行。NXPISP运行时,点击“SelectFirmware.”一个文件选择对话框将会弹出,让你选择一个.bin文件。这个.bin文件将用“CriterionforValidUserCode”核对,即向量表的前8个32位字总和为0。如果bin文件符合要求,“SelectFirmware”按钮的那个绿色的检查标志将显示正确,否则。显示一个红色的X。

实际烧写一个设备,单击“UpdateFirmware.”,“UpdateFirmware.”按钮工作起来像一个触发器,而且当单击时能停留在压低或再一次单击时释放,当按键被按下,电脑将扫描NXPISP设备,如果有一个被发现,它的固件将被更新,而且“UpdateFirmware”按钮的绿色检查标志显示正确并且按钮将释放,如果没有设备被找到,“UpdateFirmware”按钮将停留在压低而且工具将等待设备被连接。设备被找到和更新后,绿色检查标志将显示而且“UpdateFirmware”按钮将弹起,如果实用工具等待设备连接(“UpdateFirmware”按钮仍然压低)它将通过再一次单击“UpdateFirmware”按钮取消而且导致弹起。安全弹出USBISP设备以确保新固件已经写入(WindowsNXPISP工具不会卸载设备)。通过Windows硬件弹出图标和Windows浏览器弹出选项来安全弹出设备。这个步骤失败将导致固件恶化。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top