全部博文(24)
分类: 嵌入式
2012-09-21 17:27:44
一、ADS生成bin的方法
Edit>DebufRel settings>Target Settings>Post-Linker> fromELF
然后在 FromELF>Plain binary
下面的路径 似乎不用设置,空着就ok,我设了反倒出不来bin。奇怪。还有就是在代码框,也要设置DebufRel settings一遍,好像分开的。ok。
二、ARM在ADS1.2调试的设置(RAM调试)
对于ARM来说调试程序有两种方式,1.将程序下载到RAM里仿真.2.下载到FLASH里仿真.下面我们首先说一下在RAM里放着的编译器设置及调试代理软件的使用方法.
首先,安装ADS12(555,没钱啊有钱就搞ULINK了在MDK在仿真了),然后去网上随便down一个,LEDTEST的44B0(我用的是44b0的开发板)例程来.
三、ADS路径问题 ^_^
以前写代码的时候都是形如:
#include "..\inc\44b.h"
#include "..\inc\44blib.h"
后来发现,在ads里面工程属性->target->access path里面勾选上Always Search User Paths就可以这样了~~~哎,发现的好晚啊~~~
#include "44b.h"
#include "44blib.h"
四、关于ADS的软件仿真
在ADS中点“debug”,打开AXD,选option——>Configure taget——>选择ARMUL,然后,在“ARMTDMI”上点右键,“Load Image”,去打开编好的axf文件。
五、ADS中查找函数的方法
在ADS中,环境下编写程序时,右键单击一个函数名选择“go to definition”以后,可到其函数原型处。查看search的下拉菜单,有“go back”或快捷键(cttl+shift+b) 可回到原位置。
六、Error : A1163E: Unknown opcode SOURCE.S line 46
Answer:
查看是否用了中文的标点符号(,;等),
若是标识符(定义的变量,常量等)要顶格写,其后面不能跟:
若是指令不能顶格写
七、Error : A1150E: Bad symbol SOURCE.S line 49
49 00000070 LDR R1,=INTMAK ; 设置中断屏蔽寄存器,只允许定时器0中断
A: LDR R1,=INTMAK 指令中INTMAK未定义。而是定义了INTMASK(INTMASK EQU 0x3FF4008)
八、C_CALL_ASM
问题:在ads1.2中按下F7调试好后,按下F5或者(Ctl+F5)进入AXD,跳出来的不是C源程序或汇编程序文件,而是disassembly的窗口。之后也不知道处理如何进入源代码的窗口。
原因:ADS ARM Linker下没有设置Place at begining of image,这里要设置映象文件的入口段,就是ResetEntry所在的那个代码段
解决方案:Edit/DebugRel Setting/ARM Linker/Layout/Place at beginnig of image
的Object/Symbol框中填入在Options中设置的入口地址(Image entr point)
九、进入AXD后 file\Load image 菜单是不可用的灰色状态
解决方案:
Options\Configure target
选择其中一个调试器,默认的已选ARMUL,直接按OK即可
十、Error:(Fatal)L6015:Could not any input file to link
文件没有添加到工程文件中
解决:切换到工程文件界面,右键单击Add file
十一、Error:L6207E:Invalid argument for -keep/-first/-last command:'0x8000'
解决:Edit/DebugRel Setting/ARM Linker/Layout/Place at beginnig of image
的Object/Symbol框中填入在Options中的入口地址值没设置正确,改为entry后符号地址即可
十二、#include file
将#include
<>编译器从标准库路径开始搜索
""编译器从用户的工作路径开始搜索filename.h ,如果没有找到再从标准库路径开始搜索 filename.h
十三、Warning: L6304W: Duplicate input file E:\armApp\MyUart\MyUart_Data\debugRel\ObjectCode\****.o ignored
解决:DebugRel\ObjectCode\里的****.o文件重复输入,原来是我把.s文件和.c文件取了相同的名字,它们都会生成.o文件,名字相同的话,就重复了。改成不同名字就OK,可能还有其他办法,比如让.C文件不生产.O文件,不过没试过,等下次熟悉ADS后再玩。
十四、ADS中,make编译,产生数据容量表:
方法:ADS>>debugrel setting>>linker>>ARM linker>>listings>>Total,打钩。
十五、H-JTAG仿真时的设置问题。
打开H-JTAG软件,检测到cpu后(选dectection),在AXD中》options》configure target》add。。。》选择H-JTAG安装目录下的H-JTAG.DLL文件,最后,载入映像文件,ok。