导航:首页 > 源码编译 > iar编译是什么

iar编译是什么

发布时间:2022-08-29 15:48:43

㈠ IAR如何编译生成文件

项目中有些功能需要用汇编编写,所以想让编译器生成一个汇编框架,但是现在只能生成.r43和.lst文件,如何能生成.s43文件。
我的方法是这样,写一个同名的函数,在Project中选择Option命令,在List页中全选择,但现在生不成s43文件

㈡ iar是什么干什么的

摘要 iar是公司名称。

㈢ IAR编译错误,请高手给看看是怎么回事

这是说明你的代码量超出了你预设的rom大小,一般iar编译程序后会根据一个
xxx.xcl文件把你的代码和数据链接到指定地址,iar的文件夹里面搜搜就能搜到,"-z(code)code=romstart-romend"是说你所有的代码都放置在以romstart为起始地址,romend为终止地址的一段连续的空间内,romstart为0x4000016c,romend为40003fff,貌似是个有16k
flash的arm。上面报错是因为你编译出来的code
size
是0x58b4,已经超过了这个空间,你能做的就是看看能不能缩减代码量。

㈣ 用IAR嵌入式编译程序,“section=”是什么意思

#pragma section( "section-name" [, attributes] ) 作用是由程序指定创建一个段
一般默认段都是由编译器自动指定的 不过看你这样的写法 IAR的时候是没有默认段的 必须由编写者手动指定
比如#pragma section = ".data"就是创建一个名字为.data的段,
然后下面调用
data_ram = __section_begin(".data");
来获取这个段的首地址以备其操作
其他类似
关于pragma section的详细说明如下。 对于#pragma 预处理还有很多功能 感兴趣可以自行搜索
==================================================================================
#pragma section。创建一个段。
其格式为:#pragma section( "section-name" [, attributes] )
section-name是必选项,用于指定段的名字。该名字不能与标准段的名字想冲突。可用/SECTION查看标准段的名称列表。
attributes是可选项,用于指定段的属性。可用属性如下,多个属性间用逗号(,)隔开:
read:可读取的
write:可写的
execute:可执行的
shared:对于载入该段的镜像的所有进程是共享的
nopage:不可分页的,主要用于Win32的设备驱动程序中
nocache:不可缓存的,主要用于Win32的设备驱动程序中
discard:可废弃的,主要用于Win32的设备驱动程序中
remove:非内存常驻的,仅用于虚拟设备驱动(VxD)中
如果未指定属性,默认属性为read和write。
在创建了段之后,还要使用__declspec(allocate)将代码或数据放入段中。
例如:
//pragma_section.cpp
#pragma section("mysec",read,write)
int j = 0;
__declspec(allocate("mysec"))
int i = 0;
int main(){}
该例中, 创建了段"mysec",设置了read,write属性。但是j没有放入到该段中,而是放入了默认的数据段中,因为它没有使用__declspec(allocate)进
行声明;而i放入了该段中,因为使用__declspec(allocate)进行了声明。

㈤ IAR编译中的.s文件是怎么生成的,有什么用startup文件是在整个程序中,起什么作用

gcc -S可以生成.s文件,.s是汇编文件
startup是系统初始化

㈥ 用iar新建工程编译选项设置

error[cp001]:

protection
check,
no
valid
license
found
for
this
prod
t
[20]
原因:安装的时候没有把注册机的0x.....字串的小写字母改为大写字母。
warning[pe001]:
last
line
of
file
ends
without
a
newline
f:\emotion\iar\pk
升级\cc1110-8\main.c
原因:在使用iar时常常会弹出类似这样一个警告,其实只要在最后一行多加一个回车就不会再有这个警告了.
error[e72]:
segment
bank_relays
must
be
defined
in
a
segment
definition
option
(-z,
-b
or
-p)
原因:这是用730b编译的错误,可能是由于相对于目标工程版本过高的,后改用720h,没有发生错误。
error[pe005]:
could
not
open
source
file
"stdio.h"
原因:头文件路径不对造成,改正的方法是在设置选项卡的c/c++
compiler
->
preprocessor选项里,将$toolkit_dir$\inc\clib\添到incl?
paths中。

㈦ iar编译问题求助!

从截图看是编译器编译此行错误,但具体的错误并看不出来,是找不到此文件吗?还要提供更详细的错误提示信息。

㈧ DOS下面 如何用IAR编译程序

第一种编译方法( 编译直接生成class 文件,执行需先创建包的路径)
假设当前目录为/src/java/ ,则编译命令为:
javac HelloWorld.java

假设当前目录为/src/ ,则编译命令为:
javac /src/java/HelloWorld.java
或者使用相对路径:
javac java/HelloWorld.java

执行完该命令后, 在/src/java/ 目录下生成一个HelloWorld.class 文件。执行文件(在java 目录下新建目录a ,在a 目录下新建目录b 将HelloWorld.class 至于b 目录下;执行java a.b.HelloWorld ),必须要按照包的结构先创建目录。

第二种编译方法( 编译直接生成包的路径)
假设当前目录为/src/java/ ,则编译命令为:
javac -d . HelloWorld.java
说明:"." 为指定编译路径为当前目录;生成的HelloWorld.class 所有目录为/src/java/a/b/HelloWorld.class 。

javac -d c/d HelloWorld.java
说明:c/d 为指定编译路径为/src/java/c/d ,同样也可以写成绝对路径如javac -d d:/ HelloWorld.java ,前提是路径必须先存在;生成的HelloWorld.class 所有目录为/src/java/c/d/a/b /HelloWorld.class 。

假设当前目录为/src/ ,则编译命令为:
javac -d . java/HelloWorld.java
说明:生成的HelloWorld.class 所有目录为/src/a/b/HelloWorld.class 。

javac -d java/c/d java/HelloWorld.java
说明:生成的HelloWorld.class 所有目录为/src/java/a/b/HelloWorld.class 。

第三种编译方法(先把源文件按照包结构放到指定的目录中,然后执行编译命令)
假设当前目录为/src/java/,先在目录中创建目录/a/b,然后编译命令:
javac a/b/HelloWorld.java

下面总结一下对于带包的类进行编译和执行时的一些要点:
1、编译时可以不考虑包结构的问题,不论用哪种方法,其实本质都是一样的,只需要让javac命令找到所需要编译的原文件(*.java)即可。编译时可以用相对或者绝对路径来为javac命令提供源文件的位置信息。

2、初学者易混淆classpath的作用,对于java命令的-cp选项和javac命令的-classpath选项,以及配置环境变量时的 CLASSPATH.其作用是不变的:都是指定所需要的class文件的位置。所不同的是,执行javac编译时的-classpath选项用于指定被编译的源文件需要调用另外的用户自定义类的位置.。执行java命令是根据classpath来寻找所需要执行的class文件的位置;而javac命令不能根据classpath来找源文件,只能根据classpath来寻找所需要用到的类。

下面举例来说明该问题:
假设以下代码(位置:/src/java/code/a/b/TestT.java):
package a.b;
import c.d.T;
public class TestT {
public static void main(String[] args) {
T t = new T();
t.p();
}
}
package a.b;
import c.d.T;
public class TestT {
public static void main(String[] args) {
T t = new T();
t.p();
}
}
引入的文件(位置:/src/java/code/tmp/c/d/T.java)
package c.d;
public class T {
public void p(){
System.out.println("class:T");
}
}
package c.d;
public class T {
public void p(){
System.out.println("class:T");
}
}
假设现在编译两个文件(目录:/src/java/),则编译命令为:javac -classpath code/tmp code/a/b/TestT.java 执行命令为:java -cp code;code/tmp a/b/TestT

如果当前目录为:/src/java/code/,则编译命令为:javac -classpath tmp a/b/TestT.java执行命令为:java -cp .;tmp a/b/TestT

假设现在编译不同磁盘的三个文件(目录:e:/src/java/),则编译命令为:
假设以下代码(位置:e:/src/java/code/a/b/TestT.java):
view plain to clipboardprint?
package a.b;
import c.d.T;
import e.f.T1;
public class TestT {
public static void main(String[] args) {
T t = new T();
t.p();
T1 t1 = new T1();
t1.p();
}
}

package a.b;
import c.d.T;
import e.f.T1;
public class TestT {
public static void main(String[] args) {
T t = new T();
t.p();
T1 t1 = new T1();
t1.p();
}
}
引入的文件1(位置:d:/java/code/tmp/c/d/T.java)

view plain to clipboardprint?
package c.d;
public class T {
public void p(){
System.out.println("class:T");
}
}

package c.d;
public class T {
public void p(){
System.out.println("class:T");
}
}

引入的文件2(位置:c:/code/tmp/e/f/T1.java)
view plain to clipboardprint?
package e.f;
public class T1 {
public void p(){
System.out.println("class:T1");
}
}

package e.f;
public class T1 {
public void p(){
System.out.println("class:T1");
}
}
如果当前目录为:e:/src/java/
编译命令为:javac -classpath d:/java/code/tmp;c:/code/tmp code/a/b/TestT.java
执行命令为:java -cp code;d:/java/code/tmp;c:/code/tmp a/b/TestT

说明:javac命令中的classpath必须指定引入类的路径;同样java命令中的cp必须引入引入类的class的路径也需指定执行类的路径

实例:
package test;
enum T{
HELLO,WORLD,HAA;
}

package test;
import static test.T.*;
public class A {
private T t;

public A(T t){
this.t = t;
}

public static void main(String[] args){
System.out.println(new A(HELLO));
System.out.println(new A(HAA));
}

@Override
public String toString(){
return this.t + " ";
}
}

编译命令:javac -d . T.java
javac -d . A.java

执行命令: java test.A

㈨ IAR里面 compile与make的区别有谁知道吗

compile是编译文件,make包含了编译链接等工作,个人理解望采纳

㈩ iar是什么干什么

iar是公司名称。

IAR 公司总部在北欧的瑞典,在美国、日本、英国、德国、比利时、巴西和中国设有分公司。它最着名的产品是C编译器-IAR Embedded Workbench, 支持众多知名半导体公司的微处理器。

相关信息:

IAR更适合高机动性的现代战争,相比之下M249这个大家伙却很容易暴露目标。交火的时候谁抱着M249就先杀谁已经成了战场生存法则。

而IAR长的很像M4,到时候就难以区分。提高存活率,更高效的打击敌军火力,提供更稳妥的班级火力支援。IAR,无限可能。

阅读全文

与iar编译是什么相关的资料

热点内容
轻量级php论坛 浏览:340
如何查看应用存储在哪个文件夹 浏览:434
app开发项目范围怎么写 浏览:74
androidjms 浏览:840
弹珠连贯解压 浏览:241
程序员的网课 浏览:901
广东加密狗防拷贝公司 浏览:448
rtf转换pdf 浏览:348
单片机退出中断 浏览:138
可以对单个内容加密的便签 浏览:825
1024程序员节小米 浏览:316
共享和ftp服务器有什么区别 浏览:715
centos7卸载php 浏览:184
解压黏黏球如何玩 浏览:230
位域结构体编译树形描述 浏览:655
宏基手机如何装安卓系统 浏览:745
linuxcp命令实现 浏览:669
单片机热释红外报警器 浏览:662
单片机原理及接口技术b卷 浏览:358
php链接正则表达式 浏览:966