《ADS生成bin的方法 ADS路径问题.doc》由会员分享,可在线阅读,更多相关《ADS生成bin的方法 ADS路径问题.doc(5页珍藏版)》请在三一文库上搜索。
1、ADS生成bin的方法 ADS路径问题 一、ADS生成bin的方法EditDebufRel setTIngsTarget SetTIngsPost-LinkerARM fromELF然后在ARM FromELFPlain binary下面的路径 似乎不用设置,空着就ok,我设了反倒出不来bin。奇怪。还有就是在代码框,也要设置DebufRel setTIngs一遍,好像分开的。ok。二、ARM在ADS1.2调试的设置(RAM调试)对于ARM来说调试程序有两种方式,1.将程序下载到RAM里仿真.2.下载到FLASH里仿真。下面我们首先说一下在RAM里放着的编译器设置及调试代理软件的使用方法。首先
2、,安装ADS12(555,没钱啊有钱就搞ULINK了在MDK在仿真了),然后去网上随便down一个,LEDTEST的44B0(我用的是44b0的开发板)例程来。然在从网上下载个,H-JTAG或是BANYAN,ARM7都行这些软件叫做调试代理软件,有他们我们就可以用廉价的WIGGLER或是JTAG(244的)简单仿真器,来实现一些调试的绝大部分功能了。1.打开LEDTEST工程文件。然后在Target-linker项目选择 ARM linker。Target-postlinker项目选择 ARM formELF2.在linker-ARM linker-simple image选项中的 RO ba
3、se 中填写 0xc008000 RW base 不填。(注意:这项要根据你的开发板实际填写,我的44B0 SDRAM挂在了bank6上,而bank6的起始地址是0x0c000000,所以我可以添0xc000000以后的地址,但不要太靠后了保证的的程序能放的下,注意不要超出她的范围,44b0 bank6地址最大为0xe000000)linker-ARM linker-opTIon选项的 image entry point里面 填写镜像进入地址,这里也添0xc008000.linker-ARM linker-layout选项的place at beginning of image 中填写镜像加载
4、前须处理的文件(该文件一般最后都会有这条语句bl Main跳到主程序处),这里一般填写初始化文件,如INIT的,我的44bo为44binit.S则填写44binit.o文件后面的区域名添init因为该文件里一般不止一起区域我的就还有个ramdata的Area这里的Area是ARM伪指令,关于伪指令部分可查阅我的另一篇文章。linker-ARM fromELG-output format 是文件输出格式,是烧写FLASH用的二进制文件或是HEX因为我们是在RAM里仿真所有可不填.output file name 也是同样。3.运行仿真代理软件,运行检测CPU,检测目标板,(【注意】一般要将并口设
5、置成EEP模式,如果是笔记本的并口可能不支持该模式,则也可以选择ECP模式(我在我的IBMT43上是可以的),然后还要在设备管理器的并口设置里面,设置成允许使用分配该并口的任何中断,如果你设置禁止使用中断,调试代理是检测不到你的片子的)能检测出型号的就表示连接正确。然后运行AXD开始设置AXD,AXD设置比较简单,在configure interface-general-target connection选项中选ATTACH在configure target 里面选择驱动类型,前面运行的调试代理就是在这里选择的,一般如果用ARM7的调试代理就设置第一项,第二项是软件仿真,如果用其他代理则点AD
6、D,选择调试代理的DLL文件,一般在安装后的文件目录里都能找到,完成后点configure 看看有没有跳出代理的窗口,好完成。现在你就可以加载image文件来仿真程序了。顺便说下,在RAM仿真时,我的机器是笔记本,有个并口,不过不支持EEP只支持ECP我选的ECP然后用banyan和h-jtag都好用,但是ARM我没连成功,估计可能是接口的问题。三、ADS路径问题以前写代码的时候都是形如:#include 。.inc44b.h#include 。.inc44blib.h后来发现,在ads里面工程属性-target-access path里面勾选上Always Search User Paths
7、就可以这样了哎,发现的好晚啊#include 44b.h#include 44blib.h四、关于ADS的软件仿真在ADS中点debug,打开AXD,选optionConfigure taget选择ARMUL,然后,在ARMTDMI上点右键,Load Image,去打开编好的axf文件。五、ADS中查找函数的方法在ADS中,环境下编写程序时,右键单击一个函数名选择go to definition以后,可到其函数原型处。查看search的下拉菜单,有go back或快捷键(cttl+shift+b) 可回到原位置。六、Error : A1163E: Unknown opcode SOURCE.S
8、 line 46Answer:查看是否用了中文的标点符号(,;等),若是标识符(定义的变量,常量等)要顶格写,其后面不能跟:若是指令不能顶格写七、Error : A1150E: Bad symbol SOURCE.S line 4949 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源程序或汇编程序文件,
9、而是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后 fileLoad image 菜单是不可用的灰色状态解决方案:OptionsConfigure t
10、arget选择其中一个调试器,默认的已选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中的入口地址值没设置正确
11、,改为entry后符号地址即可十二、#include file wouldnt open将#include 改为#include ucos_ii.h编译器从标准库路径开始搜索编译器从用户的工作路径开始搜索filename.h ,如果没有找到再从标准库路径开始搜索 filename.h十三、Warning: L6304W: Duplicate input file E:armAppMyUartMyUart_DatadebugRelObjectCode*.o ignored解决:DebugRelObjectCode里的*.o文件重复输入,原来是我把.s文件和.c文件取了相同的名字,它们都会生成.o文件,名字相同的话,就重复了。改成不同名字就OK,可能还有其他办法,比如让.C文件不生产.O文件,不过没试过,等下次熟悉ADS后再玩。十四、ADS中,make编译,产生数据容量表:方法:ADSdebugrel settinglinkerARM linkerlistingsTotal,打钩。十五、H-JTAG仿真时的设置问题。打开H-JTAG软件,检测到cpu后(选dectection),在AXD中optionsconfigure targetadd。选择H-JTAG安装目录下的H-JTAG.DLL文件,最后,载入映像文件,ok。
链接地址:https://www.31doc.com/p-3245799.html