常见的问题说明

1. WIN2000下的IP地址改了以后无效?

 

在WIN2000和XP中修改了IP地址,然后用DOS命令窗口,

执行ipconfig

就会显示本机的IP地址。

如果改的不对,只好重起机器。

 

2. JUPITER板插SELOADER ROM(BOOT ROM),连接好后,执行BOOTP连接不上。

 

首先检查网线是否连接好,网线应接开发板的ETH0(板子右上角的网口),网线连接好时黄色LED灯三个中的至少中间的一个应该亮。靠近边缘的黄色LED灯是冲突检测灯。

如果冲突检测灯总是闪亮,则表示网络太忙,你可以使用对联网线直接连接PC(WIN2000)和JUPITER板。

 

HANWIN DHCP/BOOTP软件的使用请参考“开发板的使用”和该软件的HELP。

 

3. 执行BOOTP连接上了,但是执行TFTP没有反应。

 

首先检查TFTPD 是否在PC(WIN2000)上已经运行了。参考开发板的使用。

第二,如果冲突检测灯总是闪亮,则表示网络太忙,你可以使用对联网线直接连接PC(WIN2000)和JUPITER板。因为TFTP使用UDP协议,数据在繁忙的网络上可能丢失。

 

4. 本开发板不用烧写EPROM吗?能否使用AM29LV160放程序?

 

在开发的时候不用。

UCLINUX核心和RAMDISK(RDGZ.BIN)是用以太网0口下载到SDRAM中。然后在终端中执行BOOT来启动。

 

当开发完成后,需要把SELOADER+UCLINUX+RDGZ做成ROMIMAGE.BIN,烧写EPROM(如果小于1M的话)

在编译内核的时候自动就做了ROMIMAGE.BIN。

制作ROMIMAGE.BIN的脚本文件是E:\cygwin\home\administrator\uClinux-eisc\uClinux-2.4.20\makeimage-jupiter 注意在该目录下的RDGZ.BIN文件应该换成你最新做的。

 

该文件的RDGZ的开始地址可以修改,以适应LINUX.BIN变大的需要:

dd if=$RAMDISK of=$ROMIMAGE seek=700 bs=1k count=1024

并且在

\cygwin\home\administrator\uClinux-eisc\forJupiter\seloader\include\config.h

#define RAMDISK_SRAM_BASE (0x000AF000) // 700k

也要做相应修改。然后编译SELOADER。

 

如果你的ROMIMAGE.BIN超过1M,则需要用更大的芯片,如AM29LV160

该芯片的烧写可以用以下方法:

首先将AM29LV160的片选接在JUPITER的CS4上,

在EPROM的位置插一个含有烧写程序的芯片,该程序的作用是把ROMIMAGE.BIN文件烧写到AM29LV160中。ROMIMAGE.BIN文件可以从串口,或网络下传到SDRAM。

其实写一个UCLINUX中的应用程序也可以,该程序负责把一个文件烧到AM29LV160中(已经完成:烧写AM29LV160DB)。

然后移去EPROM芯片,将AM29LV160的片选从CS4变回CS0,通电就可以运行了。注意通电前还要设置

jp32 为1-2

jp33 为2-3(代表cs0 是16位宽度)

却省两个都是2-3(代表cs0 是8位宽度)

 

或者仍然把bootloader放在CS0/EPROM中,只是将kernel和ramdisk放在CS4/am29lv160中。

在bootloader的源程序/include/config.h中

// Position of kernel.
#define KERNEL_SRAM_BASE (0x08010000)  //修改1
//#define KERNEL_SRAM_BASE (SRAM_BASE_ADDR+LOADER_SRAM_MAX_SIZE)
#define KERNEL_DRAM_BASE (0x0c200000)
#define KERNEL_MAX_SIZE (0xD0000 )  //修改2
#define NUM_KERNEL_BLOCKS (KERNEL_MAX_SIZE / SRAM_BLOCK_SIZE)
// Position of ramdisk.
#define RAMDISK_SRAM_BASE (0x080e0000) //修改3
#define RAMDISK_DRAM_BASE (0x0c500000)
#define RAMDISK_MAX_SIZE (0x0a0000)   //修改4
#define NUM_RAMDISK_BLOCKS (RAMDISK_MAX_LEN / SRAM_BLOCK_SIZE)
#define DEFAULT_RAM_WORK_START (0x0c400000)

然后从新编译bootloader。

 

也可以做成能自动启动的bootloader,网站上放不下了,可以发邮件问我要。

 

5. 怎样使用FALSH芯片的文件系统MTD+JFFS?

在编译内核时增加选项(完成,见jffs文件系统)

6. 用户开发jupiter uclinux程序一定要使用2台pc吗?其中一台跑linux,一台跑win2000.

 

也可以只用一台win2000的pc机,内存超过256M,在其上跑mvware软件,可以增加一个linux操作系统。

其实在linux操作系统上的工作很少,只有将用户程序从elf文件转换为binflat格式,和制作ramdisk.

kernel,app,uclibc的编译只在win2000机器的cygwin环境中执行。

mvware软件需免费要注册一个密码。

7. 如何调整cpu的频率

 

在 seloader的源程序中修改, 程序是forJupiter\seloader\src\start_se3208.S 是汇编语言写的

有这样一句:

# ldi 0x00009f61, %R7 # 45.5Mhz
ldi 0x00003E21, %R7 # 50Mhz
# ldi 0x0000A151, %R7 # 55Mhz

8. 增加存储芯片时,如增加一片am29lv160,还要修改seloader吗?

 

是的,jupiter有8个memory bank,请参考芯片手册

如果am29lv160被放在bank 4,则需要修改程序 forJupiter\seloader\src\start_se3208.S 

############################
# Local SRAM 8 & 16 For CS4#
############################
ldi 0x01F00410, %R6 #Bank4(cs4) Control Register
ldi 0x00002951, %R7 #16bit  //0x7ff1----对于富士通的29lv160,速度放慢些
st %R7, (%R6,0)