ADS2.2哪里有下载和**?

[复制链接]
3595|7
 楼主| decoder8 发表于 2007-11-8 17:44 | 显示全部楼层 |阅读模式
我的代码:&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(type&nbsp;==&nbsp;USB_STANDARD_REQUEST)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(*StandardDeviceRequest[req])();<br />定义:void&nbsp;(*StandardDeviceRequest[])(void)&nbsp;=<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;get_status,<br />&nbsp;&nbsp;&nbsp;&nbsp;clear_feature,<br />&nbsp;&nbsp;&nbsp;&nbsp;reserved,<br />&nbsp;&nbsp;&nbsp;&nbsp;set_feature,<br />&nbsp;&nbsp;&nbsp;&nbsp;reserved,<br />&nbsp;&nbsp;&nbsp;&nbsp;set_address,<br />&nbsp;&nbsp;&nbsp;&nbsp;get_descriptor,<br />&nbsp;&nbsp;&nbsp;&nbsp;reserved,&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;get_configuration,<br />&nbsp;&nbsp;&nbsp;&nbsp;set_configuration,<br />&nbsp;&nbsp;&nbsp;&nbsp;get_interface,<br />&nbsp;&nbsp;&nbsp;&nbsp;set_interface,<br />&nbsp;&nbsp;&nbsp;&nbsp;reserved,<br />&nbsp;&nbsp;&nbsp;&nbsp;reserved,<br />&nbsp;&nbsp;&nbsp;&nbsp;reserved,<br />&nbsp;&nbsp;&nbsp;&nbsp;reserved<br />};&nbsp;&nbsp;&nbsp;&nbsp;<br />我用ADS2.2MAKE后,后成的ELF文件,在SDRAM中调试,调用get_status()时不能跳到正确的函数地址,选中下面那项时,MAKE后就可以了,不明白为什么会这样?请高手指教,给我一个解决问题的思路也可以的!先谢谢了!
dld2 发表于 2007-11-8 17:54 | 显示全部楼层

建议

生成链接符号文件,比较一下开关打开关闭的区别。
 楼主| decoder8 发表于 2007-11-8 20:38 | 显示全部楼层

我看了一下ELF地址定位

我对比了下两种情况下,get_descriptor()的定位,没有上面的选项时地址是0x0c002388,选项有时是0x0c001b60,按道理说,这个没有关系的呀!地址是ADS定义的呀!难道用函数指针时还要用scatter文件定义映像文件的地址映射?我在ADS手册中没有找到可用的解决方法,请各位指点!!
 楼主| decoder8 发表于 2008-1-21 16:25 | 显示全部楼层

这个问题我已经解决,现在把解决方案发上来,希望对后来者有

首先说明一下:解决这个问题时,我请教了很多高手有这个坛子里的,比如:00,阿南等,也有别个坛子的朋友,他们给了我很多非常有用的建议,我很感谢他们!<br />这个问题主要是我写的bootloader有问题,为了简单我省去了代码从Flas中拷贝<br />到SDRAM中部分功能,因为我是自己做着玩一下的,不是做产品,我只须在SDRAM中<br />调试出来就OK了.RO区的代码不会有问题,但RW区就不一样,它是由|Image$$RW$$Limit|和|Image$$RW$$Base|给出的,所以它和RO区可能有重复区域,如果代码是在Flash中,程序运行时由bootloader完成代码的拷贝那就不会有问题,我所用的方法在用Jtag把程序下到SDRAM中运行,原代码没有展开,地址在RW区后都是错的了,所以函数指针就不能跳到正确的地址了,因为MAP文件中的地址和实际的地址不一样的.在我生成的MAP文件中,我看到RW区的一些地址和调试时看到的不一至.这也验证了我的想法.<br />解决办法:可以加入拷贝代码部分,也可把一些局部变量数组前加上Const放到RO区.这两种方法我都试过了,都是可行的.<br />摸索的日子很痛苦,当初这个问题捆饶了我几个星期,今天翻旧,看到了这个贴子,就写了点,希望后来者可以少走这个弯.表达能力有限,让各位见笑了!<br />
djyos 发表于 2008-1-21 22:35 | 显示全部楼层

哈哈,我遇到过类似的问题

数月前调试djyos的加载器时碰到的,不过我没有像你那样费那么多周章。
 楼主| decoder8 发表于 2008-1-22 11:03 | 显示全部楼层

各人的思考方式不一样!

我搞51比较多,可能有后遗症吧!不过这个问题认真去分析,还是有很多可以细纠的地方的,并不是一无是处呀!对遇到这种问题的新手可能有用吧!
tubie 发表于 2008-2-2 09:49 | 显示全部楼层

ADS2.2哪里有下载和**?

  
zkr 发表于 2008-2-2 15:44 | 显示全部楼层

ADS貌似就出到1.2 Patch 848。

在下来就是RealView的那套了。<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

103

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部