ADS生成bin的方法 ADS路径问题

EDA/IC设计

1065人已加入

描述

    一、ADS生成bin的方法

  Edit》DebufRel settings》Target Settings》Post-Linker》ARM fromELF

  然后在ARM 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的开发板)例程来。

  然在从网上下载个,H-JTAG或是BANYAN,ARM7都行这些软件叫做调试代理软件,有他们我们就可以用廉价的WIGGLER或是JTAG(244的)简单仿真器,来实现一些调试的绝大部分功能了。

  1.打开LEDTEST工程文件。然后在Target-》linker项目选择 ARM linker。

  Target-》postlinker项目选择 ARM formELF

  2.在linker-》ARM linker-》simple image选项中的 RO base 中填写 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 中填写镜像加载前须处理的文件(该文件一般最后都会有这条语句“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,检测目标板,(【注意】一般要将并口设置成EEP模式,如果是笔记本的并口可能不支持该模式,则也可以选择ECP模式(我在我的IBMT43上是可以的),然后还要在设备管理器的并口设置里面,设置成允许使用分配该并口的任何中断,如果你设置禁止使用中断,调试代理是检测不到你的片子的)能检测出型号的就表示连接正确。

  然后运行AXD开始设置AXD,AXD设置比较简单,在configure interface-》general-》target connection选项中选ATTACH在configure target 里面选择驱动类型,前面运行的调试代理就是在这里选择的,一般如果用ARM7的调试代理就设置第一项,第二项是软件仿真,如果用其他代理则点ADD,选择调试代理的DLL文件,一般在安装后的文件目录里都能找到,完成后点configure 看看有没有跳出代理的窗口,好完成。

ADS1220

  现在你就可以加载image文件来仿真程序了。

  顺便说下,在RAM仿真时,我的机器是笔记本,有个并口,不过不支持EEP只支持ECP我选的ECP然后用banyan和h-jtag都好用,但是ARM我没连成功,估计可能是接口的问题。

  三、ADS路径问题

  以前写代码的时候都是形如:

  #include “。.inc44b.h”

  #include “。.inc44blib.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后 fileLoad image 菜单是不可用的灰色状态

  解决方案:

  OptionsConfigure 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 wouldn‘t 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编译,产生数据容量表:

  方法: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。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分