打印

ADS转RVMDK ZLG 2134 2200 ARM7的菜鸟问题

[复制链接]
2857|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
asbsp23|  楼主 | 2013-12-18 09:49 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 asbsp23 于 2013-12-18 11:48 编辑

最近翻出了公司老人买的ZLG的ARM7开发板,有LPC2200和LPC2141,在看资料的时候发现都是用ADS1.2写的。之前有点KEIL基础,也看来几个ADS1.2转KEIL 的资料,不过有个头文件“rt_sys.h”里面有一句extern "C"{.........}让我迷惑了,是在里面声明的函数的编译方式是有什么特别的吗?还是这个是又ADS1.2带过来的?求指教。。。。。。
另:图片为移植时的一个报错,怀疑是电脑的环境没设置好,大神帮忙看看啊?

QQ图片20131218114659.jpg (48.1 KB )

QQ图片20131218114659.jpg

相关帖子

沙发
huangxz| | 2013-12-18 10:10 | 只看该作者
这个是为了跟cpp兼容设计的,如果是纯c,直接删掉就可以了

使用特权

评论回复
板凳
asbsp23|  楼主 | 2013-12-18 11:49 | 只看该作者
huangxz 发表于 2013-12-18 10:10
这个是为了跟cpp兼容设计的,如果是纯c,直接删掉就可以了

感谢,帮我看看新问题啊,万分感谢~!

使用特权

评论回复
地板
huangxz| | 2013-12-18 15:47 | 只看该作者
发错图了吧,图片是个分散加载文件呢

使用特权

评论回复
5
asbsp23|  楼主 | 2013-12-19 08:10 | 只看该作者
huangxz 发表于 2013-12-18 15:47
发错图了吧,图片是个分散加载文件呢

报错就是在这过不去,我怀疑是不是在启动代码里需要再加个初始化函数,还是说函数进入的地址不对啊。

使用特权

评论回复
6
jxyggg| | 2013-12-19 12:54 | 只看该作者
asbsp23 发表于 2013-12-19 08:10
报错就是在这过不去,我怀疑是不是在启动代码里需要再加个初始化函数,还是说函数进入的地址不对啊。 ...

楼主你是不是报的这个错误:
error: L6236E: No section matches selector - no section to be FIRST/LAST.

使用特权

评论回复
7
huangxz| | 2013-12-19 14:03 | 只看该作者
jxyggg 发表于 2013-12-19 12:54
楼主你是不是报的这个错误:
error: L6236E: No section matches selector - no section to be FIRST/LAS ...

出现这个错误是因为你没有启动代码

使用特权

评论回复
8
huangxz| | 2013-12-19 14:04 | 只看该作者
asbsp23 发表于 2013-12-19 08:10
报错就是在这过不去,我怀疑是不是在启动代码里需要再加个初始化函数,还是说函数进入的地址不对啊。 ...

你报的什么错都没发出来看看

使用特权

评论回复
9
jxyggg| | 2013-12-19 14:40 | 只看该作者
huangxz 发表于 2013-12-19 14:03
出现这个错误是因为你没有启动代码

huangxz你好,我也遇到过这个问题的,不过我用的是2416,模仿2440的启动代码改了一下我2416的启动代码,编译是通过了,但是JLINK仿真没法跳入MAIN函数,遂使用软件单步simulation,发现我的Entry point虽然是设置了,但确实没有跳入到MAIN。一直在汇编段循环,想请教一下到底怎么回事,可以详细交流吗?谢谢!

使用特权

评论回复
10
craaazyfor| | 2013-12-19 14:46 | 只看该作者
1. 没必要去做这种无谓的移植;
2. ADS的启动代码和KEIL有些约定不一样,你得去查相关资料,要对这个很熟;
3. LPC2200比较经典,但是已经有点out了,有精力的话去研究点别的;

使用特权

评论回复
11
huangxz| | 2013-12-19 15:48 | 只看该作者
jxyggg 发表于 2013-12-19 14:40
huangxz你好,我也遇到过这个问题的,不过我用的是2416,模仿2440的启动代码改了一下我2416的启动代码, ...

可能的原因是你的堆栈设置有问题,特别是使用target.c一定要分配堆,
你可以是是。

使用特权

评论回复
12
jxyggg| | 2013-12-19 16:14 | 只看该作者
huangxz 发表于 2013-12-19 15:48
可能的原因是你的堆栈设置有问题,特别是使用target.c一定要分配堆,
你可以是是。 ...

堆栈设置是在汇编段里面进行的吗?目前只做了关闭看门狗、屏蔽中断,初始化MMU等等操作。

使用特权

评论回复
13
asbsp23|  楼主 | 2013-12-19 20:42 | 只看该作者
craaazyfor 发表于 2013-12-19 14:46
1. 没必要去做这种无谓的移植;
2. ADS的启动代码和KEIL有些约定不一样,你得去查相关资料,要对这个很熟; ...

谢谢你的回复,其实本身研究这个移植就是想知道周立功的开发板的那些历程用KEIL编译下效果怎么样,而且有人说KEIL建立工程自动添加的启动代码不对,我对比了一下,是有些区别,就想移植下比较。ARM7的东西,肯定是除非一些特殊情况才会用了,也是新手菜鸟的启蒙问题吧。

使用特权

评论回复
14
asbsp23|  楼主 | 2013-12-19 20:45 | 只看该作者
huangxz 发表于 2013-12-19 15:48
可能的原因是你的堆栈设置有问题,特别是使用target.c一定要分配堆,
你可以是是。 ...

谢谢您的回复,后来我在选择加载文件的地方,也就是LINKER选项中,选择了原来ADS的分散加载文件mem_c.scf,编译通过,您上面说的很正确,我还想问个问题是,ARM7要是用KEIL的话启动代码是用默认的就行吗?分散加载的就需要自己写吗?那周立功历程里面的一些初始化函数也是得修改的,是吧?

使用特权

评论回复
15
asbsp23|  楼主 | 2013-12-19 20:47 | 只看该作者
jxyggg 发表于 2013-12-19 14:40
huangxz你好,我也遇到过这个问题的,不过我用的是2416,模仿2440的启动代码改了一下我2416的启动代码, ...

谢谢您的回复,请参考下我的意见,我今天后来通过编译的情况是确定了分散加载的具体位置,您编译的不通过有可能是因为使用了分散加载来提高性能,但是具体地址不符合。您可以尝试搜索下有个专门对分散加载进行解释的文档,在百度文库里就有,希望听到您的好消息。

使用特权

评论回复
16
asbsp23|  楼主 | 2013-12-19 20:49 | 只看该作者
jxyggg 发表于 2013-12-19 16:14
堆栈设置是在汇编段里面进行的吗?目前只做了关闭看门狗、屏蔽中断,初始化MMU等等操作。 ...

谢谢您的回复,就我看到的是一些堆栈的初始化,比如大小,是在启动代码startup.s里有的,关于target.c的情况我明天再仔细看一下,希望能尽快和您讨论。

使用特权

评论回复
17
jxyggg| | 2013-12-19 21:24 | 只看该作者
asbsp23 发表于 2013-12-19 20:49
谢谢您的回复,就我看到的是一些堆栈的初始化,比如大小,是在启动代码startup.s里有的,关于target.c的 ...

樱木君你客气了。。。我才是真菜鸟,很多时候都是照葫芦画瓢,对于我自己这边的问题我还在继续摸索中。倒是有个问题困扰我有段时间了,就是.s文件和debugger选项里面添加的ini文件,作用都是初始化,.s的是高效率的汇编语句,ini则是一段keil脚本,这两者在初始化上面有什么区别吗?而且在网上的教程中写到,如果是JLINK的在线仿真,则必须要添加该ini文件,否则就会报code56的错误代码。

使用特权

评论回复
18
rocdove| | 2013-12-19 22:03 | 只看该作者
谁知道17楼的问题,同求

使用特权

评论回复
19
jxyggg| | 2013-12-19 22:11 | 只看该作者
rocdove 发表于 2013-12-19 22:03
谁知道17楼的问题,同求

恩恩,一起讨论。。。主要是对汇编苦手,看不出来端倪。。。

使用特权

评论回复
20
rocdove| | 2013-12-19 22:15 | 只看该作者
jxyggg 发表于 2013-12-19 22:11
恩恩,一起讨论。。。主要是对汇编苦手,看不出来端倪。。。

那就慢慢等吧,自己再好好看看吧,一起学习

使用特权

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

本版积分规则

13

主题

68

帖子

1

粉丝