ARM

收到新唐NUC472开发板

四月份从大学同学那里得到消息,参加新唐网络研讨会,可以免费获得新唐的开发板。这也是新唐推销自己产品的一种手段吧。于是,就去参加了一下。其实就是看看在线视频,里面讲解了一下新唐最新产品的功能和特点,以及应用。五月份收到开发板确认邮件,到昨天才拿到手。真实够慢的,不过也无所谓,毕竟是免费的东西,也应该知足了。五月份又参加了新唐的一个网络研讨会,也已经收到确认邮件,不知何时才能收到板子。 NUC472是ARMv7版本的Cortex M4构建的芯片,据说比M3增加了浮点数运算单元。一直用的时M3内核的ARM,M4还没用过,有时间好好学习一下。
新唐开发板

Keil4 for ARM编译无法在Proteus上运行问题,以及Keil与Proteus的联调

一、Keil uVision4 for ARM编译无法在Proteus上运行问题

最近在学ARM7,昨天晚上在Keil uVision4上编写了一段LPC2138的小程序,编译后生成HEX文件,却发现在Proteus中无法仿真,但是在keil4上仿真却是正常的。以前在keil4上编写51单片机程序的时候从未出现过这种情况。在图书馆借的一本书上用的是Keil uVision3。折腾了一段时间,无果。

今天,继续昨天的工作。在上网搜索的过程总发现,有两种方法可以解决:

方法1:把生成的*.axf文件复制一份,修改后缀名*.elf。然后把这个elf文件加载到MCU中。

方法2:用记事本打开生成的*.hex文件,删除倒数第2行,保存。然后把这个hex文件加载到MCU中。

方法1经过我自己的验证没有成功,改用方法2后,问题得以解决。

二、Keil与Proteus的联调

首先需要下载vdmagdi.exe,然后安装。

安装后需要设置keil以及Proteus

1、打开Keil的安装根目录,在根目录下有一个配置设置文件:tools.ini,用记事本或其他文本编辑器的方式打开;

2、找到“[ARM]”,在代码的第7行就是,可以用“编辑==》查找”

3、在最后一行TDRV后面回车加上,TDRV11=BIN\VDMARM.DLL (“Proteus VSM Simulator”)(如果存在则不用添加),TDRV后面那个序号取决于实际情况,我的tools.ini [ARM]中最后一行TDRV序号是10,故我新增的一行为TDRV11,下面都以TDRV11为例;

4、把TDRV11添加到[ARM]下面第三行CPUDLL0=SARM.DLL(TDRV0,TDRV5,TDRV6,TDRV9)里面,变为CPUDLL0=SARM.DLL(TDRV0,TDRV5,TDRV6,TDRV9,TDRV11)

5、找到[ARMADS],和上面修改方法和过程一样。

6、重启keil软件,在“Options for Target”中的“Debug”和“Uitilities”栏,你会发现下拉框中多了Proteus VSM simulator选项

keil4

7、在Keil中要设置的地方有两个,打开“Options for Target”,一个是“Debug”中右上方的下拉菜单中要选择Proteus VSM simulator,并在“setting”中,把IP改为:127.0.0.1或者localhost;另一个是“Uitilities”的下拉菜单中也要选择Proteus VSM simulator。

keil4

8、在Proteus中要设置的地方有一个,在菜单栏的“debug”的下拉菜单中,选中“remote debug monitor”

keil4