这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » icc 请教改变icc向导文件好的方法?谢谢!

共2条 1/1 1 跳转至

icc 请教改变icc向导文件好的方法?谢谢!

院士
2006-09-17 18:14:16     打赏
icc 请教改变icc向导文件好的方法?谢谢!



关键词: 请教     改变     向导     文件     好的     方法     谢谢    

院士
2006-12-22 22:43:00     打赏
2楼
1: 修改启动文件根据目标MCU的种类和功能,ICCAVR编译器将从下面默认的启动文件中选择一个:
crtAVR.o:非ATmega类芯片默认的启动文件。
crtatmega.o:ATmega类芯片默认的启动文件。
ICCAVR也提供了下面四种常用的启动文件,用户可以在工程选项对话框中(Project->Options->Target->Non Default Startup)中指定一个启动文件(或用户自定义的启动文件),应注意必须指定启动文件的绝对路径,如果没有指出启动文件的路径,则默认启动文件位于工程选项库路径所指定的目录中(默认为c:\icc\lib)。
crtAVRram.o:与crtAVR.o相比,增加了初始化外部SRAM。
crtatmegaram.o:与crtatmega.o相比,增加了初始化外部SRAM。
crtboot.o:与crtAVR.o相比,增加了boot的内容,只有ATmega类的芯片才能选用。
crtboothi.o:与crtboot.o相比,增加了使用ELPM/RAMPZ内容,一般在需要读取大于64K字节存储器中的常数表格或字符串时才用。
上面的非ATMega类芯片的每一个中断入口地址使用一个字(2个字节),而ATMega类的每个中断入口地址使用2个字(4个字节)。


下面简单介绍如何修改和创建一个新的启动文件:
使用ICCAVR的IDE或UlterEdit32打开需要修改的启动文件(crtAVR.s、crtatmega.s或其它文件),对启动文件进行相应的修改并保存,在IDE中选择“File”菜单的“Compile File To->Object”,生成相应的目标文件(crtAVR.o、crtatmega.o或其它的文件名)。要注意,在默认设置的情况下,应在libsrc.AVR文件夹中生成目标文件,再将修改后的目标文件复制到c:\icc\lib文件夹中,并且应在工程选项对话框中指定修改后的启动文件。
2: 这是以前的方法,现在不是这样做的了:) 3: 现在怎样做? 4: 按以前的方法生成的启动OBJ文件,是死循环的。生成启动OBJ文件的方法不同,其余的相同。 5: 我刚才试一下,好像生成的启动文件正常。能否说说您的设置? 6: 真的是死循环!!!先前忘了在工程选项对话框中指定启动文件。
指定改进后新的启动文件,第一句就是死循环!!
我再试试,等试完后将结果再贴上来。 7: 是有问题,我以前问过,没人回答根据ICC提供的文档,链接器会自动将启动文件crtatmega.o 连接到程序之前。编辑修改crtatmega.s 文件后编译到目标文件创建一个新的crtatmega.o再拷贝到库目录。
可我直接编译crtatmega.s后,并替换原有crtatmega.o,
以后程序开始都变成
JMP 0x00000000
接着开始调用INIT.O里的内容,中断入口地址都被占用了
好象是我的crtatmega.s没有任何关于中断的语句,crtAVR.s编译后也是这样,请问有没有哪位老兄遇到过这个问题,如何解决。

这是经ICC编译后的汇编代码

+00000000:   940C0000    JMP     0x00000000   
+00000002:   BFCD        OUT     0x3D,R28
+00000003:   BFDE        OUT     0x3E,R29         +00000004:   51C0        SUBI    R28,0x10


一旦调用新的启动文件,就会出现这种情况,、
未对ICC的源代码做任何修改        


8: 正版用户可以升级到最新版,File菜单中会多一项。多的一项为:Compiler File... Startup File to Object
而老版本的ICCAVR,要生成正确的启动文件必须用命令行来做,才可以得到正确的启动OBJ文件。 9: to:AVR您说得对,的确可以生成正确的启动文件。
不过不一定要正版用户,演示版也一样有这个菜单,一样可以生成启动文件。 10: 有没有将现有项目关闭 11: 老兄们说的都不错看来俺是吃盗版软件的亏了,不过口袋里没有银子,将就着用吧

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]