当前位置:首页 > 模拟 > 模拟
[导读]引言MAXQ1103是Maxim集成产品公司的新一代安全微控制器,设计用于金融终端。它运行16位指令,提供一个32位数据通道。微控制器在一个机器周期中执行完成指令,是性能非常高的RISC机。MAXQ1103还具有很多重要的安全特性

引言

MAXQ1103是Maxim集成产品公司的新一代安全微控制器,设计用于金融终端。它运行16位指令,提供一个32位数据通道。微控制器在一个机器周期中执行完成指令,是性能非常高的RISC机。MAXQ1103还具有很多重要的安全特性,包括:

支持DES、3DES、SHA-1、SHA-224、SHA-256、RSA、DSA和ECDSA的密码加速器

真正的硬件随机数发生器

1KB低泄漏电池备电NVSRAM

与外部电路连接的7个防篡改探测输入

环境传感器,例如温度和电压超范围探测器

评估(EV)套件是安全应用原型开发的理想平台。套件提供两个串口,两个智能卡插槽(一个全尺寸,一个SIM卡),一个USB连接器,一个LCD屏,一个16按键键盘以及原型区。

设置MAXQ1103评估套件

评估套件如图1所示。需要采用下面列出的硬件元件来完成本应用笔记所讨论的工作:

MAXQ1103评估套件电路板

JTAG电路板

JTAG电缆(连接MAXQ1103评估套件电路板和JTAG电路板)

9针串行电缆

稳压电源(5V、±5%、300mA、中心正极)

<center>


详细电路图(PDF,14.4MB)
图1.MAXQ1103评估套件

评估套件电路板和JTAG电路板都有很多跳线需要进行配置。如果需要了解跳线及其功能的详细信息,请参考各自的数据手册。对于本应用笔记,请按照以下要求来配置跳线:

在MAXQ1103评估套件电路板上,短接跳线JU1,连接JU5上面的两个引脚(最靠近JU5标签的两个引脚)。现在,所有其他跳线应打开。如果,JU6到JU18的所有跳线都短接,那就OK。这是智能卡通信需要的配置,本应用笔记不涉及。

在JTAG电路板,短接JH1和JH2,打开JH3。

在JTAG电路板和MAXQ1103套件电路板之间连接JTAG电缆。在JTAG电路板上,红色电缆应连接至标有引脚1和引脚2的一侧,以及MAXQ1103套件电路板的TCK-GND一侧。

注意,在早期的MAXQ1103评估套件中,MAXQ1103IC可能采用了插槽。如果是这样,把MAXQ1103插入到IC标记向下的插槽中(无铅指示符“+”应在右上侧)。

在您的PC和JTAG电路板之间连接9针串行电缆。不要将其连接至MAXQ1103评估套件电路板。将电源连接至这两块电路板。

采用CrossWorks编译器进行设计:Blinky

我们不以“HelloWorld”开始,而是构建一个简单的应用程序,该应用程序使MAXQ103套件电路板上的一个LED闪烁。

我们使用的工具包是RowleyAssociates公司提供的CrossStudio。现在,工具包当前版本是面向MAXQ30的CrossWorks(2.0.0.2008063000.2293版),可用于产生本文档的截屏显示。为确定是否是最新版本,请在线访问RowleyAssociates网站,或者通过Maxim支持中心,与我们取得联系。

在建立新方案时,点击FileNewNewProject。在NewProject弹出框中,填写底部的Name和Location框,从ProjectTemplates窗口中选择“ACexecutable”(图2)。我们调用工程BlinkyDemo,将其放到目录C:workmaxqmaxq1103blinky中。


图2.选择“ACexecutable”,填写工程名称和位置

单击Next继续,您将看到ProjectProperties弹出框。选择默认值即可,单击Finish,建立工程(您可以单击Next,选择其他的选项;本工程在这些选项中使用所有默认值)。

在建立工程时,ProjectExplorer框中会出现一个新工程(图3),通常位于应用程序窗口的右上。打开它,您将看到两个文件夹,SourceFiles和SystemFiles。打开SourceFiles,将看到main.c,这是您的应用程序源代码。双击它,打开。


图3.ProjectExplorer窗口

自动生成的源代码非常简单,我们只需要加入几行就可以使我们的闪烁应用程序工作。复制以下应用程序代码(替换main.c文件中当前的所有内容)。

#include

#include

voiddelayms(unsignedlongcount)

{

unsignedintx;

while(count>0)

{

for(x=0;x<2500;x++)

{

__no_operation();

}

count--;

}

}

voidmain(void)

{

//setport0toalloutput

PD0=0xff;

while(1)

{

//togglebits0,1,7

PO0=PO0^0x83;

delayms(500);

}

}

当我们运行这一应用程序时,会看到LEDDS1、DS2和DS3(位于套件电路板MAXQ1103的左下侧)闪烁,接通0.5s,关断0.5s。注意,“delayms”函数并不恰好是一毫秒,而是非常接近,达到了blinky应用程序的目的。

在运行演示实例前,必须首先构建它。选择BuildBuildBlinkyDemo。或者按下F7来构建。如果一切都正确构建,您将在Output窗口看到消息“Buildcomplete”,它旁边有一个对勾(图4)。如果有错,请确定您输入的代码是否正确。


图4.工程构建后的输出

运行应用程序时,单击DebugStepOver。也可以按下F10,或者单击带有向下箭头工具条中的图标(图5)。


图5.StepOver按钮

CrossStudio通过JTAG电路板把应用程序下载到MAXQ1103中,Output窗口显示状态消息。应用程序将开始运行,然后,在代码第一行停止(左侧空白区显示黄色箭头)。运行应用程序时,单击“Play”按钮(或者选择DebugGo)。现在,请确定MAXQ1103电路板上的LED正在闪烁。您可能希望能够在一定程度上修改应用程序。使LED按顺序闪烁,或者改变点亮时间,更快或者更慢的闪烁。

使用CrossStudio调试应用程序

现在,让我们了解一下MAXQ1103和CrossStudio工具的调试功能。MAXQ1103有内置JTAG引擎,支持在实际芯片上进行调试,从而不需要昂贵的仿真器或者有可能出错的模拟器。注意,MAXQ1103还提供锁定机制,在元件锁定时,防止JTAG工作。这样,当MAXQ1103微控制器用在敏感应用中时,保证了JTAG调试引擎不会带来安全威胁。

现在,我们返回到最初的Blinky应用程序,在主函数中,把延时从500改到5:

delayms(5);

现在,构建并运行应用程序。注意,LED持续点亮,而不是不断闪烁。这就是简单演示代码第一次编写并运行时的情况。

这样会带来一个基本问题:“灯的确是连续点亮,还是闪烁非常快,而无法察觉呢”?如果灯是连续点亮,那就有必要检查原理图和引脚分配,确定一切OK。如果LED只是很快地闪烁(太快,以至于看不清间隔),那就只需要调整时间,这是可能需要做的工作。为回答这一问题,我们现在使用CrossStudio的调试工具。

按下Pause按钮(或者选择DebugBreak)。在代码停止的地方,出现一个黄色箭头。代码很有可能停止在delayms()函数的‘for’循环中(参见图6)。


图6.在delayms()函数中,代码停止运行

观察右侧的Locals窗口(如果看不到该窗口,单击DebugDebugWindowsLocals)。该窗口将显示变量“x”和“count”的当前值。现在,按下StepOver按钮几次。在Locals窗口中,您应该看到x值增加了(可以连续按下StepOver,直到循环结束,但这可能需要很长的时间)。

现在,已经很容易回答“灯是在闪烁吗”这一问题了?对此,需要在main函数的delayms(5)一行设置断点,单击该代码行左侧的小三角。它将变为红圈(图7)。现在,再次运行应用程序(DebugGo,或者Play按钮)。应用程序会运行到这一点,然后暂停。现在,点击Go若干次后,您会看到,随着您的点击,灯接通和关断。这验证了灯是在闪烁,只是太快,我们的眼睛无法察觉。


图7.加入断点

现在,我们借这个机会了解一下更多的调试功能。按下StepOver按钮几次,按顺序执行三行代码:while(1),PO0=PO0^0x83和delayms(5)。您将看到,当通过PO0行时,灯闪烁。现在,当暂停在delayms(5)行时,按下StepInto按钮(图8),进入delayms()函数(而不是StepOver,这会执行整个函数)。


图8.StepInto按钮

在运行时,还可以改变变量(和寄存器)。清除所有断点(DebugBreakpointsClearAllBreakpoints),单击Go。单击Pause,程序应再次停止在delayms()函数的中间部分。注意“x”和“count”值。现在,把x设置为2499(单击x显示的数值,高亮后输入2499)。执行几次StepOver或者StepInto,您会看到循环结束,“count”值也递减了。

以及您感兴趣的其他调试功能:DebugDisassembly将同时显示C代码和生成的汇编代码。这样,用户可以进入汇编代码,而不是C代码,同时知道对应于C代码的什么位置。

DebugDebugWindowsCallStack将显示应用程序到达当前位置时所调用的函数。如果在delayms()函数中暂停执行,其显示如图9所示。

使用DebugStop停止调试,观察右侧的Targets窗口。确定MaximSerialJTAGAdapter以粗体字显示,观察下面的配置选项。如果您使用串口,而不是默认的COM1,那么,可以在这里改变这一选项。


图9.在delayms()函数中运行时调用堆栈

center>

更多资讯请关注:21ic模拟频道

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭