
一般来说,调试arm的时候会生成两个文件:axf和hex,进行arm的仿真的时候,下载的是axf文件,而成品代码的话,下载的就是hex文件了。所以,如果不能仿真,那就有可能是你下载了hex文件而非axf文件的原因。
你弄错了断点的作用了,程序在运行某段程序的时候若发现有断点,程序会在断点处暂停,等待你的进一命令 *** 作。而不是说你加了断点就可以让程序跳转到断点处执行。除非你手动修改pc指针,把pc指针修改为指向你想要的地方。但这个 *** 作相当危险,也需要很厚的技术功底才行。
你弄错了断点的作用了,程序在运行某段程序的时候若发现有断点,程序会在断点处暂停,等待你的进一命令 *** 作。而不是说你加了断点就可以让程序跳转到断点处执行。除非你手动修改PC指针,把PC指针修改为指向你想要的地方。但这个 *** 作相当危险,也需要很厚的技术功底才行。
这是因为修改了s启动文件的格式,即使没修改,删除了空格会这样报错的。
最好的解决办法是:IAR工程中remove掉这个启动文件,把原来的启动文件删掉,重新移植一个相同的启动文件过来,再重新在CMSIS文件夹下面Add启动文件,编译即可通过了。
可以。32位程序可以运行于32位 *** 作系统可以支持安装iar软件,IAR是一款和keil类似的开发工具软件它是一种增强型一体化开发平台,其中完全集成了开发嵌入式系统所需要的文件编辑、项目管理、编译、链接和调试工具。
第一种编译方法( 编译直接生成class 文件,执行需先创建包的路径)
假设当前目录为/src/java/ ,则编译命令为:
javac HelloWorldjava
假设当前目录为/src/ ,则编译命令为:
javac /src/java/HelloWorldjava
或者使用相对路径:
javac java/HelloWorldjava
执行完该命令后, 在/src/java/ 目录下生成一个HelloWorldclass 文件。执行文件(在java 目录下新建目录a ,在a 目录下新建目录b 将HelloWorldclass 至于b 目录下;执行java abHelloWorld ),必须要按照包的结构先创建目录。
第二种编译方法( 编译直接生成包的路径)
假设当前目录为/src/java/ ,则编译命令为:
javac -d HelloWorldjava
说明:"" 为指定编译路径为当前目录;生成的HelloWorldclass 所有目录为/src/java/a/b/HelloWorldclass 。
javac -d c/d HelloWorldjava
说明:c/d 为指定编译路径为/src/java/c/d ,同样也可以写成绝对路径如javac -d d:/ HelloWorldjava ,前提是路径必须先存在;生成的HelloWorldclass 所有目录为/src/java/c/d/a/b /HelloWorldclass 。
假设当前目录为/src/ ,则编译命令为:
javac -d java/HelloWorldjava
说明:生成的HelloWorldclass 所有目录为/src/a/b/HelloWorldclass 。
javac -d java/c/d java/HelloWorldjava
说明:生成的HelloWorldclass 所有目录为/src/java/a/b/HelloWorldclass 。
第三种编译方法(先把源文件按照包结构放到指定的目录中,然后执行编译命令)
假设当前目录为/src/java/,先在目录中创建目录/a/b,然后编译命令:
javac a/b/HelloWorldjava
下面总结一下对于带包的类进行编译和执行时的一些要点:
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/TestTjava):
package ab;
import cdT;
public class TestT {
public static void main(String[] args) {
T t = new T();
tp();
}
}
package ab;
import cdT;
public class TestT {
public static void main(String[] args) {
T t = new T();
tp();
}
}
引入的文件(位置:/src/java/code/tmp/c/d/Tjava)
package cd;
public class T {
public void p(){
Systemoutprintln("class:T");
}
}
package cd;
public class T {
public void p(){
Systemoutprintln("class:T");
}
}
假设现在编译两个文件(目录:/src/java/),则编译命令为:javac -classpath code/tmp code/a/b/TestTjava 执行命令为:java -cp code;code/tmp a/b/TestT
如果当前目录为:/src/java/code/,则编译命令为:javac -classpath tmp a/b/TestTjava执行命令为:java -cp ;tmp a/b/TestT
假设现在编译不同磁盘的三个文件(目录:e:/src/java/),则编译命令为:
假设以下代码(位置:e:/src/java/code/a/b/TestTjava):
view plaincopy to clipboardprint
package ab;
import cdT;
import efT1;
public class TestT {
public static void main(String[] args) {
T t = new T();
tp();
T1 t1 = new T1();
t1p();
}
}
package ab;
import cdT;
import efT1;
public class TestT {
public static void main(String[] args) {
T t = new T();
tp();
T1 t1 = new T1();
t1p();
}
}
引入的文件1(位置:d:/java/code/tmp/c/d/Tjava)
view plaincopy to clipboardprint
package cd;
public class T {
public void p(){
Systemoutprintln("class:T");
}
}
package cd;
public class T {
public void p(){
Systemoutprintln("class:T");
}
}
引入的文件2(位置:c:/code/tmp/e/f/T1java)
view plaincopy to clipboardprint
package ef;
public class T1 {
public void p(){
Systemoutprintln("class:T1");
}
}
package ef;
public class T1 {
public void p(){
Systemoutprintln("class:T1");
}
}
如果当前目录为:e:/src/java/
编译命令为:javac -classpath d:/java/code/tmp;c:/code/tmp code/a/b/TestTjava
执行命令为: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 testT;
public class A {
private T t;
public A(T t){
thist = t;
}
public static void main(String[] args){
Systemoutprintln(new A(HELLO));
Systemoutprintln(new A(HAA));
}
@Override
public String toString(){
return thist + " ";
}
}
编译命令:javac -d Tjava
javac -d Ajava
执行命令: java testA
以上就是关于用IAR下载的程序为什么不能执行全部的内容,包括:用IAR下载的程序为什么不能执行、使用IAR时程序已经下进去了,但为什么不能调试、IAR调试时,怎么让程序运行到断点处等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)