打印

求教:iar下。xcl文件的写法

[复制链接]
7014|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
btiger2000|  楼主 | 2008-8-3 15:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
Swd21ic| | 2008-8-3 18:23 | 只看该作者

re

你把内部和外部的RAM范围定义出来,比如
IRAMSTART 40000000
IRAMEND   40003FFF

ERAMSTART 8000000
ERAMEND   80003FFF

然后你的各个DATA段是怎么分配,就可以自己定义了.比如

-Z DATA_I = IRAMSTART-IRAMEND
-Z DATA_Z = ERAMSTART-ERAMEND

建议先去看几个例子就明白了

使用特权

评论回复
板凳
btiger2000|  楼主 | 2008-8-3 22:03 | 只看该作者

多谢了!我没找到例子!只好在这问了!

使用特权

评论回复
地板
btiger2000|  楼主 | 2008-8-4 15:46 | 只看该作者

郁闷!

我照着这个方法作了!可是,只要把数据段分配到外部RAM,程序就会取数终止,或者出现图中的错误,外部RAM是可用的

使用特权

评论回复
5
btiger2000|  楼主 | 2008-8-4 16:40 | 只看该作者

我直接用指针对外部RAM的读写都没错!!

使用特权

评论回复
6
Swd21ic| | 2008-8-4 22:20 | 只看该作者

re

那个是JTAG的错误吧..
跟xcl有关系吗.?不太明白

使用特权

评论回复
7
btiger2000|  楼主 | 2008-8-5 08:41 | 只看该作者

在xcl文件中不使用外部RAM,就不会出以上的问题!!

不知道该如何结决!

使用特权

评论回复
8
lomeisi_99| | 2008-8-5 10:20 | 只看该作者

5.11以上版本都已经改了,不再使用XCL.而是用XCF.

使用特权

评论回复
9
btiger2000|  楼主 | 2008-8-5 10:46 | 只看该作者

我用的4.42

我将

-DRAMSTART
-DRAMEND

改为我实际的外部ram,80000000-8001FFFF, 编译、运行,就会取数终止,设置成内部RAM则没有问题!!

使用特权

评论回复
10
btiger2000|  楼主 | 2008-8-5 11:34 | 只看该作者

22xx的例子

我用iar 下22xx的例子,将存储器设置改成跟我的板子一样,运行,就直接跳到__DEBUGBREAK(反汇编窗口看到)

使用特权

评论回复
11
btiger2000|  楼主 | 2008-8-7 15:47 | 只看该作者

仿真可以,脱机不运行!

使用.mac文件,仿真可以使用外部ram, 但是脱机不运行!!

不知道该怎么办了!!
请大虾指教啊!

使用特权

评论回复
12
lomeisi_99| | 2008-8-8 09:06 | 只看该作者

LZ邮箱是什么?我发个文档给你,应该对你有帮助

使用特权

评论回复
13
btiger2000|  楼主 | 2008-8-8 11:26 | 只看该作者

先行谢过了!!

btiger2000@tom.com

使用特权

评论回复
14
btiger2000|  楼主 | 2008-8-8 11:31 | 只看该作者

先行谢过了!!

btiger2000@tom.com

使用特权

评论回复
15
btiger2000|  楼主 | 2008-8-8 11:36 | 只看该作者

不好意思,网络问题,多发了一遍!

使用特权

评论回复
16
lomeisi_99| | 2008-8-8 16:48 | 只看该作者

发给你了

里面有比较详细的说明

使用特权

评论回复
17
btiger2000|  楼主 | 2008-8-11 09:29 | 只看该作者

收到了!谢谢!!不过好像还是不解决问题!

现在遇到了一个新问题,我都无法进入仿真了!运行llink-arm.exe 提示无法找到目标cpu,而且连isp,也无法识别芯片了!!真是郁闷!!

使用特权

评论回复
18
btiger2000|  楼主 | 2008-8-11 14:26 | 只看该作者

换了一片2214,又可以调试了!

使用特权

评论回复
19
wujianbo| | 2008-8-12 06:43 | 只看该作者

盼望你有个结果

我还真没有做过这种分散的ram,很想知道真正的解决办法是啥,让大家共同进步

使用特权

评论回复
20
btiger2000|  楼主 | 2008-10-30 16:44 | 只看该作者

到目前为止,还是没能使用外部RAM

我就是想直接把外部RAM指定为数据区或者堆栈区,

也就是在xcl文件中

-DXRAMSTART=80000000
-DXRAMEND=8007FFFF
//************************************************
// Data segments.
//************************************************

-Z(DATA)DATA_I,DATA_Z,DATA_N=XRAMSTART-XRAMEND


//*************************************************************************
// Stack and heap segments.
//*************************************************************************

-D_CSTACK_SIZE=2000
// -D_SVC_STACK_SIZE=10
-D_IRQ_STACK_SIZE=100
-D_HEAP_SIZE=2000

-Z(DATA)CSTACK+_CSTACK_SIZE=XRAMSTART-XRAMEND
// -Z(DATA)SVC_STACK+_SVC_STACK_SIZE=RAMSTART-RAMEND
-Z(DATA)IRQ_STACK+_IRQ_STACK_SIZE,HEAP+_HEAP_SIZE=XRAMSTART-XRAMEND




但是,这样程序运行就不正常。

通过指针对外部RAM读写操作都正常!!说明外部RAM的硬件访问没有问题!!实在不知怎么办了!!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

80

主题

1176

帖子

6

粉丝