打印
[CPLD]

关于sparten_3E实验班串口输出的问题。

[复制链接]
3170|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
daiy5210|  楼主 | 2011-8-14 14:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好:
   问题是这样,最近我在Sparten_3E开发板上做实验的时候遇到了个这样的问题。

   搭建一个简单的SOPC平台,使用串口向中终端上输出Hello World, 很简单的实验,开始使用的是默认的Linker Script 即将所有的代码和数据段扣映射到BRAM上,超级终端上可以显示我要得到的结果。

  可是,我打算使用Sparten_3E开发版上的DDR_SDRAM ,即将所有的代码和数据段都映射到DDR_SDRAM 上,当然 boot和vector段是映射到BRAM上,并将工程配置设置为如下图示。
file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Tencent/Users/925961367/QQ/WinTemp/RichOle/MP%PLHEM_$A}VWD259${F2Q.jpg

Linker Scriper设置如下图示:
file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Tencent/Users/925961367/QQ/WinTemp/RichOle/AV}PXI]}@X(ME~_ZSD562V6.jpg

工程可以编译成功。也可以生成elf文件,也可以下载到开发版上,但是就是在串口上得不到任何字符输出,已经调了2天了,查阅了很多资料,任然得不到需要的结果,不终端 问题到底是出在什么地方 那位同学和老师也曾经遇到相同的问题,帮忙找下问题的所在。谢谢大家了。。。已经很崩溃了哈。~~~~

相关帖子

沙发
daiy5210|  楼主 | 2011-8-14 15:00 | 只看该作者
本帖最后由 daiy5210 于 2011-8-14 15:02 编辑

图片挂了


project.jpg (19.35 KB )

project.jpg

使用特权

评论回复
板凳
daiy5210|  楼主 | 2011-8-14 21:01 | 只看该作者
大侠们 帮帮忙哈。。

使用特权

评论回复
地板
SuperX-man| | 2011-8-15 08:24 | 只看该作者
LZ,你是通过XMD下载的?
还是就简单的download bitstream.

使用特权

评论回复
5
AutoESL| | 2011-8-15 08:55 | 只看该作者
4# SuperX-man

有什么区别吗? 两者都说一下需要注意的地方吧

使用特权

评论回复
6
AutoESL| | 2011-8-15 08:58 | 只看该作者
以前遇到过类似的问题, 好像是把映射到DDR时的便宜地址修改了就可以了,最好不要从0开始. ms有专用?

使用特权

评论回复
7
daiy5210|  楼主 | 2011-8-15 16:25 | 只看该作者
4# SuperX-man

你好:
      我是通过download bitstream.下载的,这个实验室按照赵峰书上讲的做的。步骤都对,但是就是超级终端上得不到输出。。。难道是DDR自身的问题。。

   XMD下载?这个我没用过,,,

使用特权

评论回复
8
daiy5210|  楼主 | 2011-8-15 16:27 | 只看该作者
6# AutoESL

你好:
    怎么修改映射到DDR的地址。这个Linker Script 不是自己生成的链接文件么? 而且boot段 被映射到BRAM上去的 。。。。。糊涂了。。

使用特权

评论回复
9
daiy5210|  楼主 | 2011-8-15 16:32 | 只看该作者
那个我目前查阅的资料上 ,有这样的说明。 boot段和vector段 需要被映射到BRAM上 其他的数据和代码段需要映射到外部DDR上,。问题是 ,我用mb-objdump查阅了下 elf文件,映射关系是对的。但是就是串口得不到射出。不知道这到底是为什么。

使用特权

评论回复
10
daiy5210|  楼主 | 2011-8-15 21:02 | 只看该作者
我又发现了个新的问题,就是在以上的平台设计中,没有加入 OPB SDRAM Contriler 因为是按照书上的指导来做的实验,不清楚如果需要使用SDRAM的话是否需要加入OPB SDRAM Contriler 呢?
大侠帮忙吧。。。。晕了啊~~

使用特权

评论回复
11
SuperX-man| | 2011-8-15 22:19 | 只看该作者
请问,您看的是哪份资料?
首先如果只是把数据放在DDR中,而代码放在BRAM中的话,不需要用到XMD.
但是如果你想从DDR中载入你的代码的话,需要用到XMD来完成相应下载的.
你把你的代码放入DDR中以后,你download bitstream只是下载了一个bootloop文件.之后还需要手动加载elf文件到FPGA的,  我用的是ISE 12.4, 选择Debug -> Launch XMD
然后键入connect mb mdm
接着 用dow命令 把你的elf下载下去,下载完成了使用con来运行, stop来停止.
具体步骤,你可以参考官方的EDK教程.
http://www.xilinx.com/university ... sign-flow/index.htm
另外,你用的EDK是什么版本的, 官方有相关教程可以下载

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
daiy5210 + 1
12
daiy5210|  楼主 | 2011-8-16 13:49 | 只看该作者
《FPGA上的嵌入式系统设计实例》 ,这上面是lab4 ,因该是翻译xilinx公司的基础实验编写的。谢谢楼上同学的帮忙,我这就去做下实验。

但是,还有一个问题就是,如果使用了DDR的话,需要添加DDR Controller么?我最近看到的一份资料上,提到过这个控制器的使用。但是按照书上的流程,并没有提到过这个问题。

使用特权

评论回复
13
daiy5210|  楼主 | 2011-8-16 14:14 | 只看该作者
11# SuperX-man


谢谢这位同学的帮忙。确实按照你的流程下来,终端上得到了我希望的输出。但是,很奇怪的是,为什么要这样麻烦,我想因该可以用傻瓜式的方式进行。每次如果需要下载Code段和Data段放到外部DDR的时候,都需要这样的操作?

再次感谢各位大侠的帮忙。

使用特权

评论回复
14
SuperX-man| | 2011-8-16 14:59 | 只看该作者
这是两个不同的方式, 硬件上FPGA并没有从DDR的启动方式.
所以你代码放在了DDR上,需要手动加载.

如果只是DATA段放在DDR中, CODE仍然放在Bram中的话,是不需要手动加载的.
如果CODE放在了DDR上,那么肯定需要手动加载.

你用的应该是板卡信息包来建立工程的吧,其实你在选择DDR外设的时候,实际上已经把控制器自动加载上去了.

建议你还是看看FPGA的硬件结构,有助于理解.

使用特权

评论回复
15
edacsoft| | 2011-8-16 15:10 | 只看该作者
这是两个不同的方式, 硬件上FPGA并没有从DDR的启动方式.
所以你代码放在了DDR上,需要手动加载.

如果只是DATA段放在DDR中, CODE仍然放在Bram中的话,是不需要手动加载的.
如果CODE放在了DDR上,那么肯定需要手动加载.
...
SuperX-man 发表于 2011-8-16 14:59

斑竹,插一句,您的意思是图一中.text选择Bram就不需要手动加载了?

使用特权

评论回复
16
SuperX-man| | 2011-8-16 15:23 | 只看该作者
YES,另外别忘了Application中选择一个C工程,而不是bootloop

使用特权

评论回复
17
daiy5210|  楼主 | 2011-8-16 19:00 | 只看该作者
16# SuperX-man

原来是这样。。。谢谢指教了。哈~~~郁闷了4天了。:'(

使用特权

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

本版积分规则

个人签名:把希望寄托在自己的努力上,向前跑

2

主题

25

帖子

0

粉丝