当前位置:首页 » 编程软件 » iar编译器

iar编译器

发布时间: 2022-01-08 19:28:18

① 如何查看IAR编译器编译后的汇编代码,我想知道这个编译器是如何处理中断的

编辑界面右击工程点击options菜单项,选择c/c++ compiler选项卡中的list选项,勾选output assembler files,编译后则生成离线汇编代码文件。
调试界面下,点击view / disassembly 菜单项,则显示在线汇编代码窗口。

② IAR 编译器的相关问题(MSP 430 5438)

"+ 114 bytes shared"或linking后的"+ 114 bytes absolute"指的是您在程序中有144bytes 使用@ operator 或 #pragma location=operator 或__no_init volatile语法定义的数据。也可以说是可以在汇编中定义的数据。举例:P1OUT在430头文件中就用到了上述语法,当您读写P1OUT时,编译器和链接器就认为您使用了一个上述sahred/absolute数据。
编译器和链接器并不能真正地辨认出什么是RAM什么是Flash,它们使用DATA(没有指定固定的数据)和CONST/CODE(有指定固定的数据)概念来工作。
特意咨询了IAR员工,答对给分啊!

③ 准备使用stm8,编译器用IAR还是COSMIC好

悲剧的STVD,感觉要比STM32的keil差很多埃从stm32退步到stm8,我有种找不到北的感觉,虽然都是ST公司的产品,但是差好多埃编译器到底是用STVD还是用IAR啊? 哎,经过一番挣扎,我看还是去IAR那吧。

④ 单片机编程,不用跳转的子程序,IAR编译器,mega128

1.有一种关键字叫inline,虽然我不用IAR,但是我想常规的编译器都会支持这种功能,当inline出现在函数声明前面的时候,编译器会将这个函数在调用处自动展开
2.你说的循环10遍的问题,有一种编译优化叫循环展开,即将小于一定循环次数的循环操作直接像你所说的依次执行,而不是通常循环指令,这个操作要结合编译器手册看具体使用说明了,所以你还是要研究一下IAR的编译优化,看过这块,你的问题应该得到解决

⑤ keil和iar 编译器分别是什么

这两个本事就是编译器啊

⑥ 求助!在IAR环境下编译程序时总是编译不对!

看看是不是开了另外一个窗口在debugging,如果有的话点击stop debugging(红色按钮)

就好了

⑦ Codewarrior、IAR和Keil是常见的编译软件,所用编译器分别是什么哪个编译器更优秀啊

优秀不优秀,每个人的侧重点不同,无法一概而论。
其中CodeWarrior和IAR针对的单片机种类较多,适用面较广。Keil相对来说狭窄一些,主要面向51/251/166以及部分ARM平台(7、9、Mx/R4)。
至于编译器的效率方面这几方总在打嘴仗,也很难说清楚谁的编译器效率更高(因为要取决于具体的应用和源程序的书写)。就我来看对于普通用户而言其实差别不是那么明显的。
从易用性和体验来说,个人觉得CodeWarrior > IAR > Keil。这个是跟每个人的编程/调试习惯和调试需求有关系的。

⑧ 可以用IAR给Arino写程序吗

一. Proteus仿真平台简介

Proteus软件是英国Labcenter electronics公司出版的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++编译器
    用户按CPU型号选择自己喜欢的C/C++编译器(如Winavr,CodeSourcery,Keil,IAR,WinARM,Watcom等等),一般的编译器都可以生成标准的.hex,和.elf格式的可执行目标文件。 Arino IDE实际使用的是Winavr中的gcc。用此把第一步写的源程序编译成.hex和.elf文件。

  • 硬件仿真图
    Proteus中的Model下有元件仿真库,用户使用这些仿真元件,设计出自己的硬件仿真原理图,也叫.dsn文件。在Proteus环境下,用自己设计的.dsn文件,在CPU中加载第二步生成的.hex或.elf文件,就可以仿真运行了。.elf文件内部包含调试信息,可以单步、设置断点调试程序。

  • 三. Arino UNO硬件仿真原理图

    本仿真电路图(HW目录下Arino UNO.dsn文件)可以仿真Arino Diecimila,或Arino UNO板。前者采用FT232芯片做为串行通信模块,后都采用ATMEGA16U2微处理器代替了FT232,它们都是在USB上实现一个异步串行通信的功能。我们在仿真中,采用了Proteus中的串行口物理接口模型COMPIM,COMPIM完全可以代替串行通信的功能,它实现了与实际PC机物理串行接口RS232的连接,使仿真的虚拟世界与真实的世界连接。


    图5-选择preferences.txt

  • 用编辑器打开偏好设置文件preferences.txt

    【1】.在arino工具的File->preferences中找到preferences.txt文件,用记事本打开。
    【2】.在preferences.txt文件的最后加一行,编辑加入 build.path=d:MyHexDir,目录名自己定。为了观察方便,(本人设置是build.path=d:###ArinoDbgDir )。
    【3】先关闭Arino IDE;
    【4】之后保存preferences.txt;
    以上顺序不要变。这样就可以在Arino编译时,看到d:MyHexDir目标下的目标文件,而不会自动删除。

  • 4. 编译
    (1)双击SWBlink目录下的源文件Blink.ino,自动打开Arino IDE。
    (2)点击Sketch->Verify/Compile编译生成目标文件,目标文件在d:MyHexDir下(本人的在d:###ArinoDbgDir目录下 )。
    (3)点击CP.bat,会把.hex和.elf文件复制更新到当前.ino所在目录下。可以自己编辑CP.bat文件,改变目录。
    (4)在Proteus中设置好一次.hex或.elf文件的位置就可以,以后更新.hex或.elf文件时,自动认为已经加载最新的。

    五. 第一个Hello World程序仿真运行

    Hello World程序就是在计算机屏幕上显示“Hello,World!”的一个程序,在嵌入式系统开发中,LED的闪烁程序就是Hello World程序,Hello World程序很简约,一般它是程序员在新的开发环境中第一个要运行的程序,但是简约并不简单。

    虽然Hello World程序很简约,但是,为了这个简约的程序能够运行,需要进行开发工具链的选择、配置开发工具链,这需要大量繁琐的工作要做。Hello World程序能否运行,可以验证你的编译、开发环境、运行环境是否正确。

    第一个程序Blink.ino如下:

  • ///0. 引脚定义

  • #define LED_PIN 13 //定义LED引脚为13号数据引脚(DIG13)


  • ///1. 初始化

  • void setup() {

  • pinMode(LED_PIN,OUTPUT); // 初始化DIG13为输出

  • }


  • ///2. 循环

  • void loop() {

  • digitalWrite(LED_PIN,HIGH); //DIG13输出高电平

  • delay(1000); //延时1秒

  • digitalWrite(LED_PIN,LOW); //DIG13输出低电平

  • delay(1000); //延时1秒

  • }

  • (1)用Arino IDE打开Blink.ino,编译之;
    (2)在d:MyHexDir目录下会生成.hex和.elf文件等;
    (3)点击.ino所在目录下的CP.bat, 本目录多了两个文件.hex和.elf;
    (4)用Proteus打开HWArino UNO.dsn,双击Atmga 328P微处理器,在Program file项中选择上边SWBlinkBlink.hex文件,或Blink.elf文件,若加载Blink.elf文件,则可以单步或设置断点调试;
    (5)在Proteus中点击左下角运行仿真,如果图1中的LED小灯闪烁,则你的仿真运行环境设置正确。

⑨ 在IAR中编译程序后,IAR编译器完全没有反应,没有任何错误提示。这是怎么回事啊

1,你的IAR版本是多少,主要针对哪款ARM或MSP430,我的是iar embedded workbench for ARM 5.41
2,BUILD的窗口没有打开,通过"view"打开。
3,我的输出窗口:Total number of errors: 0
Total number of warnings: 28

热点内容
我的世界斗罗服务器电脑网易版 发布:2025-03-14 21:28:33 浏览:524
java是甲骨文 发布:2025-03-14 21:21:38 浏览:126
柱顶要加密 发布:2025-03-14 21:16:11 浏览:853
魔声蓝牙耳机怎么在安卓显示电量 发布:2025-03-14 21:15:32 浏览:618
智慧易店服务器地址是啥 发布:2025-03-14 20:57:49 浏览:887
小米ID密码忘记了有什么危害 发布:2025-03-14 20:45:28 浏览:611
大麦路由器怎么改密码 发布:2025-03-14 20:35:42 浏览:88
数据库词组 发布:2025-03-14 20:27:21 浏览:249
角色卡算法 发布:2025-03-14 20:08:48 浏览:650
linux服务器安全加固 发布:2025-03-14 19:59:21 浏览:779