应用笔记 4312

采用DeepCover安全微控制器(MAXQ1850)评估套件和面向MAXQ30的CrossWorks编译器进行设计


摘要 : 本应用笔记介绍怎样针对DeepCover®安全微控制器(MAXQ1850)开发、构建并调试应用程序。实例采用了MAXQ1850评估(EV)套件和Rowley Associates提供的CrossWorks C编译器。

引言

Maxim的DeepCover®安全微控制器(MAXQ1850)是高性能、高安全性、引脚数较少的32位RISC微控制器,设计用于电子商务、银行和数据安全应用。微控制器执行16位指令,有一个32位数据通道。MAXQ1850在一个时钟周期中执行完成大部分指令,是性能非常高的RISC微控制器。MAXQ1850还具有很多重要的安全特性,包括:
  • 支持RSA、DSA和ECDSA的2048位模运算加速器
  • 支持AES-128、AES-192、AES-256、SHA-1、SHA-224、SHA-256、DES和3DES的密码硬件加速器
  • 真正的硬件随机数发生器
  • 8KB低泄漏电池备份NVSRAM
  • 4个自毁输入
  • 防篡改探测,可快速擦除密钥/数据
  • 能够探测超范围条件的环境传感器(例如,温度、电压)
MAXQ1850-KIT EV (评估)套件是安全应用原型开发的理想平台。套件提供一个RS-232串口、两个智能卡插槽(一个全尺寸,一个SIM卡)、一个USB连接器、一个LCD屏、一个16按键键盘以及原型区。

设置MAXQ1850评估套件

MAXQ1850-KIT电路板如图1所示。下面列出评估套件中包含的硬件,用于实现本应用笔记:
  1. MAXQ1850-KIT电路板
  2. JTAG电路板
  3. JTAG电缆(连接MAXQ1850-KIT电路板和JTAG电路板)
  4. 9针串行电缆
  5. 两个稳压电源(5V、±5%、300mA、中心正极)

    注:C版本的套件提供了一个1000mA的电源。
图1. MAXQ1850-KIT电路板(B版本)
详细图片
(PDF, 5.6MB)
图1. MAXQ1850-KIT电路板(B版本)

MAXQ1850-KIT电路板有很多跳线需要进行配置。如果需要了解跳线及其功能的详细信息,请参考数据资料。对于本应用笔记,请按照以下要求来配置跳线:
  • JU30 (靠近MAXQ1850左下部)。
  • 连接跳线JU5 (靠近电池)以及JU20 (靠近电源输入)的引脚1 (PCB上的方形焊盘)和引脚2。
  • 连接跳线JU21 (靠近MAXQ1850的右上部)的引脚2和引脚3。
  • 所有其它跳线应打开。
注:随MAXQ1850-KIT CD提供的一些示例程序需要不同的跳线设置,详细的跳线位置请参考示例程序的README.txt文件。

在JTAG电路板(P2)和MAXQ1850-KIT (J6)电路板之间连接JTAG电缆。在JTAG电路板上,电缆上的红条应连接至标有引脚1和引脚2的连接器一侧。在MAXQ1850-KIT电路板上,电缆上的红条应连接至引脚1 TCK (可以通过PCB背面的方形焊盘来识别引脚1)。

在您的PC和JTAG电路板之间连接9针串行电缆。最后,连接5V电源。对于A版本和B版本的电路板,将电源连接至JTAG电路板的电源连接器(J2)以及评估板(J1)。对于C版本的电路板,首先闭合评估板上的跳线JU31以及JTAG电路板上的JH3,然后将电源连接至评估板(J1)。C版本的电路板将为JTAG电路板供电。

采用CrossWorks编译器进行设计

在开始使用MAXQ1850-KIT时,我们开发一个简单的应用程序,使电路板上的3个LED闪烁。LED以固定、重复的顺序闪烁,看起来象是在电路板上“行走”。源代码可以从评估套件的CD中获得,也可以从Maxim网站下载获得。将其解压缩至C:\MAXQ1850\LED。

Maxim使用的工具包是Rowley Associates公司提供的CrossStudio。本文档采用面向MAXQ30的CrossWorks IDE创建,其版本为2.0.0.2009012302.4045。为确定是否是最新版本,请访问Rowley Associates网站,或者联系Maxim。有关Rowley CrossWorks的更多信息,请参见附录A

在建立新方案时,点击File New New Project。在New Project弹出框中,填写底部的NameLocation框,从Project Templates窗口中选择Executable类和A C executable (图2)。我们将工程命名为LED,并将其放到目录C:\MAXQ1850\LED中。

图2. 新工程界面
图2. 新工程界面

单击Next继续,您将看到Project Properties窗口(图3)。Target Processor可能是MAXQ1103。双击处理器的器件型号,可以选择MAXQ1850处理器。再次点击Next,并删除Project files main.c (图4)前面的对勾标识,然后可以添加自己的文件。点击Finish,建立工程。

图3. 选择MAXQ1850处理器
图3. 选择MAXQ1850处理器

图4. 新工程选项
图4. 新工程选项

工程建立后,在Project Explorer窗口(图5)中会出现一个新工程,通常位于应用程序窗口的右上处。展开该LED工程,将看到两个文件夹Source FilesSystem Files。右键点击Source Files并选择Add Existing File,从C:\MAXQ1850\LED目录处选择main.cspi.c文件,然后点击Open

图5. 项目管理器窗口
图5. 项目管理器窗口

当应用程序执行时,您会看到LED DS1、DS2和DS3 (位于评估电路板原型区左侧)按顺序不断闪烁。而在应用程序运行前,必须首先“构建”它。选择Build Build LED,或者按下F7。如果一切都正确构建,您将在Output窗口看到Build complete消息,它旁边有一个对勾(图6)。

图6. 工程构建后的输出
图6. 工程构建后的输出

在尝试加载应用程序之前,需在Targets窗口中设置JTAG调试端口。双击Maxim Serial JTAG Adapter将其变为粗体,并在下面的Properties Window中显示信息。您将能看到一系列属性,其设置如图7所示。将Connection Port Name设置为JTAG电路板连接的串口。

图7. 目标属性窗口
图7. 目标属性窗口

加载应用程序时,使用Debug Go或按下F5。程序将通过JTAG加载至评估板,并暂停在main函数的起始处。如果Go不可用或者程序没有加载,请参见附录B的问题解答。

从该点开始运行应用程序时,选择Debug Go (或者单击标识类似Play的按钮)。现在,请确认MAXQ1850-KIT电路板上的LED正在闪烁。您可能希望能够在一定程度上修改应用程序;尝试按照相反的顺序来闪烁LED,或者改变点亮时间,以实现更快或者更慢的闪烁。

使用CrossStudio调试应用程序

现在,我们将讨论MAXQ1850和CrossStudio工具的调试功能。MAXQ1850内置JTAG引擎,支持在实际芯片上进行调试,不需要昂贵的仿真器或者有可能出错的模拟器。注意,MAXQ1850还提供安全锁定机制,在器件锁定时,可防止JTAG工作。这样,当MAXQ1850器件用在对安全要求严格的应用中时,保证了JTAG调试引擎不会带来安全威胁。

以LED应用程序为例。首先使用Debug Stop退出当前的调试进程,作为一次试验,将main.c函数中的Delay函数的延时计数从200000改为2000

for(i=0;i < 2000; i++) ;
现在,选择Build Build and Debug,构建并运行应用程序。工具包会重新构建工程,加载新程序,开始运行。注意,LED变为始终点亮状态,而不再是闪烁状态。

选择Pause按钮(或者选择Debug Break),程序将暂停在当前代码行,左侧空白区会出现一个黄色箭头。由于程序大部分时间都花在Delay函数的for循环上,因此代码很有可能停在这里(参见图8)。

图8. 代码在Delay函数中停止运行
图8. 代码在Delay函数中停止运行

观察右侧的Locals窗口(如果看不到该窗口,单击Debug Debug Windows Locals)。该窗口将显示变量i的当前值。现在,按下Step Over按钮或者选择Debug Step Over,让程序运行一秒钟,然后再次按下Pause按钮,应该能看到i值增加了。

如要退出函数,应一直按着Step Over按钮,直到循环结束,但这会浪费很长时间。只要按下Step Out按钮或者选择Debug Step Out,程序将一直执行,直到退出Delay函数,返回到其调用函数main.c

通过设置断点,可以获得相似的结果。在main.c函数中的任一调用Delay函数的行上设置断点时,单击该代码行左侧的小三角,它将变为红圈(图9)。现在,再次运行应用程序(点击Debug Go或者Play按钮),应用程序会运行到这一点,然后暂停。

图9. 加入断点
图9. 加入断点

下面我们了解一下更多的调试功能。按下Step Over按钮几次。每按下一次,C源代码执行一行。您将看到,控制LED的一行代码每执行一次,LED闪烁一下。当暂停在Delay()中的一行时,按下Step Into按钮或者选择Debug Step Into。这会进入该函数,暂停在该函数的第一行。正如前面所演示的,按下Step Out按钮,可以退出Delay()函数。

在运行时,还可以改变变量(和寄存器)的值。点击Go,然后点击Pause,程序应再次停止在Delay()函数的中间位置。注意现在的i值。把i设置为1998 (单击i显示的数值,高亮后输入1998)。单击Step Into按钮,由于达到了i的最终值,因此,会看到循环结束。

以下是您可能感兴趣的其它调试功能:
  • Debug Disassembly将同时显示C代码和生成的汇编代码。这样,用户可以进入汇编代码,而不是C代码,并且在执行时也显示C代码。
  • Debug Debug Windows Call Stack将显示应用程序到达当前位置时所调用的函数。如果在Delay()函数中暂停执行,其显示如图10所示。
图10. 在Delay()函数中运行时调用堆栈
图10. 在Delay()函数中运行时调用堆栈

更多信息

评估套件CD中提供了演示MAXQ1850所有特性的示例代码。如需获取该CD或者对本应用笔记有任何问题,请联系微控制器技术支持

面向MAXQ30的Rowley CrossWorks正式文档可从此处获得。

附录A. Rowley CrossStudio

Rowley CrossWorks IDE版本

上述LED示例以及评估套件CD中提供的所有示例均采用面向MAXQ30的最新版本Rowley CrossWorks 2.0.0.2009012309.4045开发。采用该版本的IDE十分关键,该版本IDE中的工程文件与其它版本兼容。可以通过CrossStudio Help About CrossStudio查询版本号。

获取面向MAXQ30的Rowley CrossWorks

面向MAXQ30的CrossStudio可从Rowley的网站http://www.rowleydownload.co.uk/maxq/documentation/home.htm获取。在“Latest Downloads CrossWorks for MAXQ30”中选择“Version 2.0 for Windows”,下载并安装该可执行文件。

Rowley为CrossWorks IDE提供了30天的试用期,请按照指示进行。

如需购买面向MAXQ30的Rowley CrossWorks使用许可,可发送邮件至 (English only)或致电+44(0)1453 549536。

附录B. 问题解答

示例工程代码的编译问题

如果在尝试编译加载的工程文件中的示例代码时出现了问题,很有可能是Rowley CrossWorks编译器版本不兼容造成的。这种不兼容特性会造成一系列奇怪的现象,比如:无法构建工程、输出文件不正确、无法启动调试进程、调试按钮变灰、出现提示未安装供应商软件包的错误信息等等。

为解决上述问题,请用当前安装的IDE重新创建工程文件。首先,从工程目录中删除当前的.hzp和.hzs文件,然后按照上述说明或者评估套件CD中README.txt文件中的说明继续执行。之后应该就能够正确构建和调试工程了。

串口至JTAG电路板相关的问题

如果Rowley CrossWorks报告连接Maxim串行JTAG适配器的MAXQ1850-KIT出现了问题,请按下列步骤进行检查(每次检查一项):
  • 检查JTAG编程电缆的方向是否正确。确认红条连接至串行JTAG适配器电路板(连接器P2)和MAXQ1850 (连接器J6)的引脚1,可以通过评估板PCB背面的方形焊盘辨识引脚1。
  • 检查串行JTAG适配器电路板和评估板是否连接了电源。串行JTAG适配器电路板上的LED DS1应被点亮,MAXQ1850-KIT电路板上LCD屏的最上面一行应能看到一些较弱的方形图案。
  • 检查Rowley CrossWorks中是否选择了正确的串行通信端口。在Targets窗口中双击Maxim串行JTAT适配器,确认端口名是否与连接至串行JTAG适配器电路板的串口一致。
  • 断开串行JTAG适配器电路板和评估板的电源电缆。右键点击Targets窗口中的Maxim Serial JTAG Adapter,选择Disconnect,然后重新连接电源电缆并选择Connect
  • 对串行JTAG适配器电路板重新加载固件,按照应用笔记4027:“如何升级MAXQ的串口-JTAG接口板的固件”中的说明进行。
下一步
EE-Mail 订阅EE-Mail,接收关于您感兴趣的新文档的自动通知。
© , Maxim Integrated Products, Inc.
The content on this webpage is protected by copyright laws of the United States and of foreign countries. For requests to copy this content, contact us.
APP 4312:
应用笔记 4312,AN4312, AN 4312, APP4312, Appnote4312, Appnote 4312