搜索
bottom↓
回复: 28

ADS2.2(ARM REALVIEW 2.2/RVDS2.2)中的连接与ADS1.2不兼容问题

[复制链接]

出0入0汤圆

发表于 2006-1-25 09:36:30 | 显示全部楼层 |阅读模式
高手们好!

本来在ADS1.2中的连接(LINK)是正常的,在ADS2.2中却是连接出错。经研究,是中断向量的几个标号连接出错,请教哪位高手,如何解决?!

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2006-1-25 13:01:43 | 显示全部楼层
把出错信息传上来

你仔细看看帮助   关于连接部分  *.s文件为引导文件   是不是你的连接没有找到着个文件

你可以常试着从新添加到你的工程里.

出0入0汤圆

 楼主| 发表于 2006-2-4 09:58:46 | 显示全部楼层
请看附件:

点击此处打开armok01100546.xls

出0入0汤圆

 楼主| 发表于 2006-2-6 08:58:42 | 显示全部楼层
1楼的那位高手不是说好帮忙的吗?!

出0入0汤圆

 楼主| 发表于 2006-2-7 12:29:16 | 显示全部楼层
请哪位高手帮帮忙解决一下?!先谢谢啦!如果在珠海的话,请客也行啊。

出0入0汤圆

发表于 2006-2-7 22:04:17 | 显示全部楼层
现在忙好久没有来了

我在沈阳  离你那里太远了   



我真服你了,AMR编译后  入口指针  你知道是什么吗,如果不知道   建议你在ADS里仿真看看第一句是什么,连入口都定位不了,连接后就是绝对地址,而不是编译时的虚地址。那些中断当然就出错了,入口指针和中断函数都是在一个文件里    用那个就给那个添加中断处理功能块

就象51复位的第一条指令在0一样

在一个就是更换了环境,看RVDS帮助,里边有汇编和C语法的变更。在RVDS工程管理里设置编译的器件,

我建议你先找个好的例子看看

一般是  *.S文件

   

AREA    Init,CODE,READONLY    看看汇编吧建议   当然不会花你很多时间。但是你必须知道才能作好     



    ENTRY 这个就是入口

    b ResetHandler  ;for debug   复位后B指令   跳到这里   你在ResetHandler里添加

复位处理   不加也可以

    b HandlerUndef  ;handlerUndef   着几个就是中断函数    你在函数声明里加处理功能

    b HandlerSWI    ;SWI interrupt handler

    b HandlerPabort ;handlerPAbort

    b HandlerDabort ;handlerDAbort

    b .                    ;handlerReserved

    b HandlerIRQ

    b HandlerFIQ

出0入0汤圆

发表于 2006-2-7 22:16:48 | 显示全部楼层
哈哈  

刚仔细看了才   你肯定是在移植周立功开发板的例子了



他们的风格就是  有  STARTUP.S文件   和   IRQ.s   两个组成地层驱动



那里说的很详细的



看样子ADS你肯定熟悉了,问题是RVDS你不熟悉了   还是先看看工程设置

出0入0汤圆

 楼主| 发表于 2006-2-8 08:49:42 | 显示全部楼层
先谢谢啦!

我看过了,在Startup.s里有下面两行:

    CODE32

    AREA    vectors,CODE,READONLY

再次请教,是不是直接把vectors改成Init就OK吗?!我也奇怪这个文件怎么不用

    AREA    Init,CODE,READONLY

呢?!

看来dazuieyu对周立功开发板的例子很熟悉啊,再次请高手指教指教.

出0入0汤圆

 楼主| 发表于 2006-2-8 08:51:35 | 显示全部楼层
如果我去了沈阳的话,一定请客,不过机会很少.我不喜欢出差或到外面旅游.

出0入0汤圆

发表于 2006-2-11 13:52:56 | 显示全部楼层
AREA    Init,CODE,READONLY         

    //Init  这是这个段的名字   你想怎么叫都可以   主要是方便明了。Init 初始化

    ENTRY 关键字   自己去查   看看解释

    b ResetHandler  ;for debug   复位后B指令,B指令寻址范围  你查查看

                                 ResetHandler 函数名字 复位后  C语言入口

                                 ResetHandler 到这个函数里添加  复位后的处理

                                 建议你在里边做个无限循环,直接死机,看看好玩不。

                                 哈哈哈

    b HandlerUndef  ;handlerUndef   着几个就是中断函数    你在函数声明里加处理功能

    b HandlerSWI    ;SWI interrupt handler

    b HandlerPabort ;handlerPAbort

    b HandlerDabort ;handlerDAbort

    b .          ;handlerReserved

    b HandlerIRQ

    b HandlerFIQ       类同ResetHandler

建议你先把  周立功的代码看懂在  来学移植吧  一点基础都没有   基础才是最重要的

世界上有1000重以上潜入试处理器   

但是只要你弄懂了一个   其他的就会触类旁通了    必须简单的了解ARM的体系和指令(宏汇编)   要不然  学习这些一点意义都没有  当然了如果就是为了找点乐子  我不反对你这样去学习。不要总是提一些愚蠢的问题  自己多想多实验   实在不懂在寻找帮助

出0入0汤圆

 楼主| 发表于 2006-2-13 08:11:27 | 显示全部楼层
我真的不是很懂,不过上面这段代码我理解。

不过您老大能否针对周立功的代码和那些连接出错的指示作一一对应的说明和作出改正措施?对BOOTLOAD我还是了解一些。

谢谢先。

出0入0汤圆

发表于 2006-2-13 16:42:45 | 显示全部楼层
等写日子得   我在做新项目  快要完了  

完了我可以休息一个月  那时在说了   你要坚持住啊哥们 哈哈

出0入0汤圆

 楼主| 发表于 2006-2-13 17:03:15 | 显示全部楼层
哥们,没事。哥们在做什么工作?新项目完了可以休息一个月的?羡慕!我一个月要上26天班的啊?!

先谢谢!

出0入0汤圆

 楼主| 发表于 2006-2-21 08:08:45 | 显示全部楼层
除dazuieyu外再没有高手了吗?

出0入0汤圆

发表于 2006-2-21 09:50:03 | 显示全部楼层
可是我不是高手,帮不了你。



不过,楼主的行为令人有点不爽。

在公共论坛上,没人能强求别人一定要帮你解决问题。

出0入0汤圆

 楼主| 发表于 2006-2-21 12:01:52 | 显示全部楼层
Sorry!

出0入0汤圆

发表于 2006-2-22 10:43:53 | 显示全部楼层
这个问题应该自己就能解决,虽然ADS文档不是很好,但是还是可以找得到这个问题的描述(1月25日到2月21日)。



回到正题:

第一个问题dazuieyu提到了,在startup.s中有一个ENTRY,在link时需要用-entry指出这个ENTRY的绝对地址。在RVDS2.2的连接器选项中有这个设置,或者直接输入 --entry 0指定入口地址为0。



第二个问题是ADS1.2升级到RVDS2.2固有的问题。问题的起因是因为使用LDRD和STRD双字传输指令。可能(猜测)RVDS2.x的C编译器使用了这些指令,因此要求你现有的汇编文件和库文件明确使用8byte对齐栈(见rvds编译器参考手册的3.1.6),所以,你应该在汇编文件中加上“PRESERVE8”来定义,而这个在zlg的文件中是没有定义的。

出0入0汤圆

 楼主| 发表于 2006-2-22 16:17:42 | 显示全部楼层
非常谢谢mored!

有空我会试一试,毕竟RVDS2.2比ADS1.2的界面好多了!

出0入0汤圆

 楼主| 发表于 2006-2-23 10:12:56 | 显示全部楼层
mored,好象RVDS2.2没有“PRESERVE8”这个汇编修伪指令呀?

您再看看这个编译错误文件,它究竟是错在哪里呢?

点击此处打开armok01103490.xls

出0入4汤圆

发表于 2006-2-23 14:34:07 | 显示全部楼层
我的也一样,也是这样的错误. 习惯了1.2还不知这个2.2是怎么用得好了.



Error   : armlink: L6238:  Vectors.o(Startup) contains invalid call from '~PRES8' function to 'REQ8' function FIQ_Exception.

出0入4汤圆

发表于 2006-2-23 15:09:11 | 显示全部楼层
JTAG以前的也不行,  算啦,还是换回1.2 了.

出0入0汤圆

 楼主| 发表于 2006-2-24 11:07:48 | 显示全部楼层
非常谢谢mored!

原来PRESERVE8是伪操作,我在每个后辍为S的文件中加上,果然OK。

也谢谢MyAVR的忠告;但我已经知道怎么处理了,谢谢。

出0入0汤圆

 楼主| 发表于 2006-2-24 11:10:32 | 显示全部楼层
mored说的ADS文档是指ADS自带的帮助文件吗?关于编译器,它可是什么都没说。

出0入0汤圆

发表于 2010-9-21 19:00:50 | 显示全部楼层
mark
我还是没懂,光看见教训人了!

出0入0汤圆

发表于 2010-9-24 20:43:44 | 显示全部楼层
学习一下!!!

出0入0汤圆

发表于 2010-9-24 22:11:55 | 显示全部楼层
不是说1.2 后就不更新了吗?

出0入0汤圆

发表于 2011-10-31 21:29:06 | 显示全部楼层
mark,感谢16楼

出0入0汤圆

发表于 2011-12-4 22:51:38 | 显示全部楼层
MARK

出0入0汤圆

发表于 2013-1-25 08:54:34 | 显示全部楼层
mored 发表于 2006-2-22 10:43
这个问题应该自己就能解决,虽然ADS文档不是很好,但是还是可以找得到这个问题的描述(1月25日到2月21日) ...

怎么都说16楼,我明明看到的就是17楼,学习了,我的问题解决了。太感谢了!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-7 13:25

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表