引言

之前关于openrisc的内容,几乎都是基于opencores官方的ordb2a那个开发板的,但是,实际情况是有那个板子的人不是很多,所以目前我在做一个与之类似的板子,并且很快就会跟大家见面,这是后话。

在新做的板子出来之前,本小节我们先在xilinx ml501板子上跑一下openrisc和orpmon。

1,实验准备

1>熟悉开发板

ML501是xilinx比较老的一款FPGA开发板,在最开始,如果对这个板子不是很熟悉的话,可以先参考一下相关文档,链接如下:

1,Getting Started with ML501 Demonstrations
http://www.xilinx.com/products/boards/ml501/reference_designs.htm

2,Restoring ML501 Demonstration Images:
http://www.xilinx.com/products/boards/ml501/ml501_12.1/images.htm

3,Xilinx ML501 Stand-Alone Applications
http://www.xilinx.com/products/boards/ml501/ml501_12.1/standalone_apps.htm

2>准备opencores提供的Pre-built image for SPI flash

http://opencores.org/or1k/FPGA_Development_Boards#Xilinx_ML501

下载orpsoc-ml501-66MHz.mcs文件,这个文件里面包含FPGA的配置信息,也包含orpmon软件信息。

3>准备USB转串口线

由于我们需要查看ML501的串口输出,但是目前很少有电脑上还有串口,所以就需要一条转换线,当然需要安装USB转串口的驱动程序才能使用。

4>运行ml501的demo程序和Stand-Alone Applications

在ML501出厂时,板子的CF card,SPI flash,platform Flash,,liner flash里面都是有数据的,可以根据相关文档直接运行的,如果你的flash里面没有,可以restore,方法上面已经给出链接了,不再赘述。

做这些测试程序的目的有两个,其一是熟悉开发板,其二就是确定USB转串口线是否正常工作,因为在运行测试程序时,通过PC机上的串口工具是可以看到打印信息的。

2,实验步骤

1>安装xilinx的EDA工具,尤其是iMPACT。

2>打开iMPACT 设置:Edit menu -> Preferences, and in the Configuration Preferences category, set the SPI Byte Swap option to Ignore Setting.

3>初始化JTAG chain并增加SPI flash(选择之前下载的orpsoc-ml501-66MHz.mcs文件)

4>右击SPI flash->program

需要注意的是模式选择一定要正确:MODE[2:0] = 001。

3,实验结果

program的过程需要大概几分钟的时间,在显示“program successded”之后,我们再断电,上电。

打开并配置串口工具,就可以看到orpmon的启动结果了,如下所示:

可见这时orpmon已经启动了,键入help可以看到帮助信息,令人沮丧的是没有换行,看起来有点不舒服,How annoying!

下面是稍作整理的help信息:

Xilinx ML501> help

ic_enable           - enable instruction cache

ic_disable            - disable instruction cache

dc_enable                       - enable data cache

dc_disable                      - disable data cache

mfspr      <spr_addr>           - show SPR

mtspr      <spr_addr> <value>   - set SPR

dm         <start addr> [<end addr>] - display 32-bit memory location(s)

pm         <addr> [<stop_addr>] <value> - patch 32-bit memory location(s)

ram_test   <start_addr> <stop_addr> [<test_no>] - run a simple RAM test

better_ram_test <start_addr> <stop_addr> - run a better RAM test

crc        [<src_addr> [<length> [<init_crc>]]] - Calculates a 32-bit CRC on specified memory region

dhry       [<num_runs>]         - run dhrystone

coremark   [<mode>] [<iterations>] - run coremark, mode: p - performance run, o - profile run, default - validation run

tftp_conf  [ <file> [ <srv_ip> [ <src_addr>]]] - TFTP configuration

tboot      [<image number>]     - Bootstrap image downloaded via tftp

sdboot     [<image number>]     - Read image from SD-CARD

help                            - shows this help

CPU info

Frequency		66MHz

Instruction cache:	32kB (BS: 32 Sets: 1024)

Data cache:		32kB (BS: 32 Sets: 1024)

Info: Stack section addr 0x23c60

Build tag: Wed Jun  1 13:30:21 CEST 2011

Xilinx ML501> 

4,小结

本小节我们在ML501的板子上运行了openrisc和orpmon,enjoy!

5,future work

1>boot linux

通过上面的命令,我们可以预测,使用orpmon可以通过tftp将linux的镜像经网口download到板子上,这样,我们就可以启动linux了!

2>综合编译orpsoc & orpmon for ml501

上面的内容使用的是opencores提供的实现弄好的文件,但是这是远远不够的,因为我们要对ORPSoC进行修改,所以就需要创建orpsoc的ml501的ISE 工程,自己综合,生成mcs文件。当然可能需要重新编译orpmon。

关于这方面的内容请参考:

Programming the SPI flash memory:

http://www.rte.se/blog/blogg-modesty-corex/programming-spi-flash-memory/2.6

Loading and executing a program:

http://www.rte.se/blog/blogg-modesty-corex/loading-and-executing-program/2.7

ORPSoC User Guide的第6章:

http://download.csdn.net/detail/rill_zhen/6378603

上面的文档中有关于ml501的ORPSoC RTL工程的搭建,综合,以及如何将软件和FPGA硬件信息整合成一个mcs文件的操作步骤。

OpenRisc-52-run openrisc&orpmon on ml501 board的更多相关文章

  1. OpenRISC自定义指令GCC修改

    This short tutorial shows how to use the custom instructions defined by OpenRISC architecture. The O ...

  2. OpenRisc-44-or1200的pipeline整体分析

    引言 我们在前面分析了ORPSoC,or1200_top,和or1200_cpu的整体架构,在最近,我们也分析了or1200的pipeline(流水线)中的两级,EX级和IF级. 但是,我们还没有从宏 ...

  3. orpsocv2 从ROM(bootrom)启动分析--以atlys板子的启动为例子

    1 复位后的启动地址 1) 复位后,启动地址在or1200_defines.v最后宏定义,atlys板子的目录:orpsocv2\boards\xilinx\atlys\rtl\verilog\inc ...

  4. 【嵌入式】FS2410非操作系统外围资源测试

    在刚接触FS2410时,其实这个测试也没有多大意义,但是对于以后来说,当一个产品做成功时,产品测试还是一个必须经过的一个阶段,所以这个流程还是有必要走一下! 在非操作系统下,主要进行RTC测试,按键测 ...

  5. Open Source Software List: The Ultimate List

    http://www.datamation.com/open-source/ Accessibility 1. The Accessibility Project The Business Value ...

  6. ZooKeeper测试笔记

    1. 下载ZooKeeper.官网:http://zookeeper.apache.org 下载后解压,假定zookeeper程序目录为/home/test/zookeeper,为陈述方便此目录记为 ...

  7. Oracle GoldenGate for Oracle 11g to PostgreSQL 9.2.4 Configuration

    Installing and setting up Oracle GoldenGate connecting to an Oracle database Also please make sure t ...

  8. OpenRisc-37-OpenRISC的CPU&core的整体架构分析

    引言 前面我们分析了ORPSoC的整体架构,并对其子系统进行了深入的分析和了解.但对于ORPSoC的核心模块or1200_top及其内部的core--or1200_cpu模块却鲜有涉及,算是ORPSo ...

  9. 系统级性能分析工具perf的介绍与使用[转]

    测试环境:Ubuntu16.04(在VMWare虚拟机使用perf top存在无法显示问题) Kernel:3.13.0-32 系统级性能优化通常包括两个阶段:性能剖析(performance pro ...

随机推荐

  1. 拥抱ARM妹纸第二季 之 第三次 给我变个月亮,让约会更浪漫!

    嗯嗯,效果不错.趁着这个热乎劲,接到俺的LED测试板上试试.呃~~~ 竟然和小LED的效果不一样啊,不一样.不但闪烁而且完全没有调光效果.郁闷内,查查原因呗.看看那里出问题.迅速在PT4115手册里翻 ...

  2. jQuery对象和DOM对象的互相转换【 转】

    jQuery对象转换为dom对象 只有jQuery对象才能调用jQuery类库的各种函数,同样有些dom对象的属性和方法在jQuery上也是无法调用的,不过基本上jQuery类库提供的函数包含了所有的 ...

  3. 将Vim改造为强大的IDE

    1.安装Vim和Vim基本插件 首先安装好Vim和Vim的基本插件.这些使用apt-get安装即可: lingd@ubuntu:~/arm$sudo apt-get install vim vim-s ...

  4. 调皮的转义之addslashes

    背景: php自5.3版本开始废除set_magic_quotes_runtime函数,并在5.4及以后版本中移除了该函数 今天程序在向mysql插入一个serialize序列化后的数组时,由于一个数 ...

  5. .NET4.5中WCF中默认生成的basicHttpsBinding的研究

    起因: 使用.net4.5建立了一个空白的WCF服务.默认使用的绑定配置是basicHttpsBinding. 问题发现: 1.用客户端进行服务引用,生成了默认的配置文件,其中绑定配置是basicHt ...

  6. iOS上用FTGL显示定制Truetype字体碰到的问题

    没想到这个问题搞了快2个月时间:当然跟我只是断断续续地工作有关. FTGL是freetype的opengl实现.我接触FTGL最初只是为了练习OpenGL,写几个简单的游戏app.开始试了试FTGL觉 ...

  7. jquery 父页面 子页面 同级页面 调用

    项目中用到  代码 ,先 展示 ,以便以后用到,直接看下就会明白. var li_divs = parent.$("#servicelist")[0].contentWindow. ...

  8. Zabbix 安装及微信短信提醒

    Zabbix简介 Zabbix 近几年得到了各大互联网公司的认可,当然第一点归功与它强大的监控功能,第二点免费开源也得到了广大用户的青睐.Zabbix 能将操作系统中的绝大部分指标进行监控,比如(CP ...

  9. linux下获取时间差

    #include <sys/time.h> struct timeval tpstart,tpend;     float timeuse;     gettimeofday(&t ...

  10. hdu 4465 Candy 数学

    思路:易知结果为 ∑(n-k)*C(n+k,k)*(p^(n+1)*q^k+q^(n+1)*p^k). 注意不能直接算,注意点技巧!!!看代码 代码如下: #include<iostream&g ...