可以用IAR给Arduino写程序吗?
Proteus软件是英国Labcenter电子公司发布的EDA工具软件(该软件在中国的总代理是广州封彪电子科技有限公司)。它不仅具有其他EDA工具和软件的仿真功能,还可以仿真单片机和外围设备。是目前模拟单片机及外围设备的最佳工具。现已受到电子爱好者,特别是单片机爱好者,从事单片机教学的教师,致力于单片机开发应用的科技工作者的青睐。以前的EWB等软件只能模拟数字电路和模拟电路,不能模拟CPU和程序。
目前网上有几个版本的Proteus,比如7.8 SP2,7.10 SP0,8.0,这些JM版本都比较稳定。这些版本的组件模型格式是兼容的,并且DSN模拟原理文件是相同的。8.0版本只是把DSN原理图、软件编辑环境、编译器集成到一个工程文件中,变成了一个类似“傻瓜相机”的东西,但是对于Proteus的初学者来说更方便,因为程序编辑器和不同的编译器都可以下载。
在7.xx版本中,DSN模拟原理,编辑器和编译器是独立的。8.0版本集成。8.0版本在多CPU模拟中不易设置;集成后软件有点大,没有7.xx版本简洁。
二。发展三部曲
编辑
用户选择使用自己喜欢的编辑器(如notepad++、Utraedit、Source Insight、vim、slickedit、notepad等。)来写源程序。
c/c+编译器
用户选择自己喜欢的C/C++编译器(如Winavr、CodeSourcery、Keil、IAR、WinARM、Watcom等。)中生成标准的可执行目标文件。十六进制和。elf格式。Arduino IDE实际上在Winavr中使用了gcc。用这个把第一步写的源程序编译成。十六进制和。elf文件。
硬件模拟图
在Proteus中的模型下有一个组件仿真库。用户使用这些仿真组件来设计自己的硬件仿真原理图,也称为。dsn文件。在Proteus环境中,使用。dsn文件并加载。十六进制或。将第二步生成的elf文件导入CPU,就可以模拟操作了。的。elf文件包含调试信息,因此可以一步调试程序并设置断点。
三。Arduino UNO硬件仿真原理图
这个仿真电路图(硬件目录下Arduino UNO.dsn文件)可以仿真Arduino Diecimila或者Arduino UNO板。前者采用FT232芯片作为串行通信模块,后者采用ATMEGA16U2微处理器代替FT232,都实现了USB上异步串行通信的功能。在仿真中,我们采用了Proteus中的串口物理接口模型COMPIM。COMPIM完全可以代替串口通信的功能,它实现了与实际PC的物理串口RS232的连接,将模拟的虚拟世界与现实世界连接起来。
图1-Arduino UNO硬件仿真示意图
图的左下角增加了两个串行通信虚拟端子VT1和VT2,用于调试串行通信接收数据或发送数据。其他仿真电路都是Arduino Diecimila或者UNO,管脚名称都有详细标注,就像实现电路板一样。使用Proteus仿真工具,可以双击Arduino UNO.dsn打开Arduino仿真电路图。
4.Arduino开发软件的下载和设置
1.下载并安装Arduino IDE。
在官网下载安装Arduino IDE。最新的稳定版本是1.0.6。
http://arduino.cc
http://arduino.cc/en/Main/Software
2.选择Arduino板类型和串行端口。
如图2所示,在模拟时,您可以选择前两块板。当连接实际的Arduino板卡时,可以选择相应的板卡和相应的串口。
* * *因为本文采用Arduino仿真开发方法,在仿真电路图中,只要目标执行文件。十六进制或。选择elf文件,就相当于加载程序,所以不用串口加载程序。
图2-选择主板型号
图3-选择串行端口
3.设置Arduino IDE个人偏好设置(重要)
选择文件-& gt;偏好;喜好;优先;参数选择
图4-选择首选项
找到设置首选项文件preferences.txt
图5-选择preferences.txt
用编辑器打开首选项文件preferences.txt。
1.arduino工具中的文件-->;在preferences中找到preferences.txt文件,用记事本打开。
2.在preferences.txt文件的末尾添加一行,编辑并添加build.path=d:\MyHexDir,自己命名目录。为了方便观察,(我的设置是build.path=d:###ArduinoDbgDir)。
3关闭Arduino IDE第一;
4然后保存preferences.txt;
不要改变上面的顺序。这样Arduino编译的时候,可以看到d:\MyHexDir的目标下的目标文件,而不会自动删除。
编译
(1)双击SW\Blink目录中的源文件Blink.ino,自动打开Arduino IDE。
(2)单击草图->;Verify/Compile编译生成目标文件,目标文件在d:\MyHexDir(我的在D: # # Arduinodbgdir目录)。
(3)单击CP.bat,然后。十六进制和。elf文件将被复制并更新到当前目录。伊诺位于。可以自己编辑CP.bat文件,更改目录。
(4)设置的位置。十六进制或。elf文件在Proteus中运行一次,当更新。十六进制或。elf文件以后,会自动认为已经加载了最新的文件。
动词 (verb的缩写)模拟第一个Hello World程序
Hello World程序是显示“Hello,World!”在电脑屏幕上。在嵌入式系统开发中,LED的闪烁程序就是Hello World程序,非常简单。一般是程序员在新的开发环境下运行的第一个程序,但是简单并不简单。
虽然Hello World程序很简单,但是为了运行这个简单的程序,需要选择和配置开发工具链,这需要大量繁琐的工作。Hello World程序能不能运行,可以验证你的编译、开发环境、运行环境是否正确。
第一个程序Blink.ino如下:
///0.引脚定义
#定义LED_PIN?13 //将LED引脚定义为数据引脚13 (DIG13)。
///1.初始化
void setup() {
pinMode(LED_PIN,输出);//初始化DIG13作为输出。
}
//2.循环
void循环(){
?digitalWrite(LED_PIN,高电平);//DIG13输出高电平
?延时(1000);//延迟1秒
?digitalWrite(LED_PIN,低电平);?//DIG13输出低电平
?延时(1000);//延迟1秒
}
(1)用Arduino IDE打开Blink.ino并编译;
(2)文件如。十六进制和。elf将在d:\MyHexDir目录下生成;
(3)点击目录中的CP.bat。伊诺找到了,还有两个文件。十六进制和。精灵;在此目录中;
(4)用Proteus打开HW\Arduino UNO.dsn,双击Atmga 328P微处理器,在程序文件项中选择SW\Blink\Blink.hex文件或Blink.elf文件。如果加载了Blink.elf文件,可以单步调试或者设置断点;
(5)在Proteus中点击左下角运行模拟。如果图1中的LED闪烁,则您的模拟环境设置正确。