首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

在linux下实现ARM程序和CPLD程序固化

在linux下实现ARM程序和CPLD程序固化

公司里有一批dell optiplex 320电脑,用于生产和检验,随机带有红旗linux desktop 5.0系统。按照公司要求,在这批电脑安装LINUX系统,实现ARM处理器和CPLD程序固化。需要对ST公司STR710F进行程序固化,并对lattice公 司的256xo cpld进行固化。


1 安装linux。首先遇到问题,随机带的redflag linux居然安装失败。费了半天劲,才发现是bios版本的问题,将版本降到1.09后,安装成功。


2 设置linux。删除了游戏软件,建立普通用户,设置网络访问权限等。


3 安装lattice impvm for linux版。在当前用户目录下,修改.bashrc文件,设置三个环境变量。


增加如下三行:


export ISPVM_DIR=/isptools/ispvmsystem


export LD_LIBRARY_PATH=$LD_LIBRARY_PATHISPVM_DIR/lib


export PATH=$PATHISPVM_DIR


然后按照lattice公司的ispVM System UNIX/Linux文档安装软件。


4 运行ispvm软件。建立一个脚本cpld


在文件中写入:


ispvm /i str710.xcf /t /Parallel /o


其中str710.xcf文件中指定了要写入的jed文件。


写入器是简易的并口写入器,在网上可以方便找到原理图。


5 安装ARM处理器固化程序。在网上上下载openocd软件,利用wigger接口固化ST 公司STR71x 芯片。


6 下载了openocd的源代码后要进行编译。


(1)redflag linux中没有automake工具,需要自行安装。我安装了redhat中的autoconfig2.0-10版和automake1.7.9.6版。


(2)然后在源码目录下运行.bootstrap生成.configure脚本。


(3)运行.configure --enable-parport --enable-parport_ppdev


(4)运行make,然后运行make install


7 建立openocd运行的配置文件。


(1) 在当前用户目录下,建立openocd.cfg文件,在该文件中还要建立对str710内部flash操作的脚本文件调用。


(2) 建立str710_flash.script文件,写入固化有关的命令。


两个文件的内容分别如下:


openocd.cfg:


# mthomas 4/2007


#daemon configuration


telnet_port 4444


gdb_port 3333


#interface


interface parport


parport_port 0


parport_cable wiggler


jtag_speed 0


#use combined on interfaces or targets that can't set TRST/SRST separately


reset_config trst_and_srst srst_pulls_trst


#jtag scan chain


#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE)


jtag_device 4 0x1 0xf 0xe


#target configuration


daemon_startup reset


#target arm7tdmi <reset mode> <chainpos> <endianness> <variant>


target arm7tdmi little run_and_init 0 arm7tdmi


#run_and_halt_time 0 30


target_script 0 reset str710_flash.script


str710_flash.script:


#


# The following command wills be executed on


# reset (because of run_and_init in the config-file)


# - wait for target halt


# - erase memory


# - flash content of file main.bin into target-memory


# - shutdown openocd


#


# created by Martin Thomas


# http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects


# based on information from Dominic Rath


#


arm7_9 dcc_downloads enable


wait_halt


sleep 10


poll


flash probe 0


# STR710 erase all banks:


flash erase 0 0 9


flash write 0 boot.bin 0x0


reset run


sleep 10


shutdown


8 运行openocd。在用户目录下,键入openocd命令即可。


9 安装串口终端程序。因为需要有一个终端通过串口与目标板进行交互。我从redhat linux中安装了minicom和lrzsz程序。可以利用xmodem进行文件传送。


总结: 在linux下可以建立廉价的环境进行,进行程序固化。并且运行速度很快,比在windows下图形界面操作还简洁。另外,redflag的桌面环境与windows很相近,初学者可能会感到亲切。
继承事业,薪火相传
返回列表