limingth 发表于 2005-9-2 00:31:07

lumit4510 bootloader 1.6.0 发布!

先供大家测试,增加了几个功能,修正了 chw75 指出的 1.4.0 中存在的 bug。

tftp 1.6.0 版新增功能特性:
1. 增添了 flashw 命令,用于在 dn 之后,把 ram 中的 image 写入 flash 中。
2. 增添了 加电3秒内若无键盘从 uart0 输入或者 INT0 按钮没有被按下,则进入自启动模式,加载 flash 中的 image 到 ram 中并执行。

tftp 1.6.0 版修正的 bugs:
1. 修正了 1.4.0 版中 vector.s 里面关于堆栈指针的 0x80000 的设置 bug ,解决了用 tftp 网络传输 image 到中间会停止跑飞的问题。
2. 修正了 lcd.c 中,关于 void Mv2LcdLine(void) 函数的设置参数为 0xC0 ,解决了部分 lcd 显示会抖动的问题。
3. 修正了 bios.c 中,关于 BIOS_BASE 的地址定义,解决了 uclinux 内核可以通过 ap 命令写入 flash 中,同时也支持加电启动后自动执行。

欢迎大家下载测试,并使用 FlashPGM2.0 进行烧写,可以选择 elf 格式文件进行烧写,无需通过 binhex 从 bin 格式转换到 hex 格式。

如果是 uue 格式的文件,通过 dn 命令下载之后,再运行 go 之前,用 flashw 命令可以写入 flash 中,下次加电即可从 flash 中自动执行。

如果是 uclinux 内核,通过 load 命令下载之后,boot image 选择 n ,
然后通过 prog 命令可以写入 flash 中,prog 命令的格式如下:
prog 10000 8000 size
其中 10000 表示写入 flash 中的 hex 地址(从64K 字节处开始写)
8000 表示数据来源为 0x8000 的 ram 起始处
size 是下载的 uclinux 内核的字节数,这里3个数字都是用 16 进制,不用加 0x ,可以写入 flash 的 size 最大为 1f0000。 lumit4510 所用 的 flash 为 2M 。

除了 prog 命令外,还有一种简单的方法,即用 ap 命令,可以在下载之后自动完成写入 flash 的工作。

板子加电启动后,会输出提示信息:

Press INT0 button or press any key by UART0 to enter into shell mode, or just wait 3 seconds for auto-rebooting..


如果此时(3秒内)从键盘输入回车或者按一下 INT0 按钮,,则将会进入 shell 模式中,此时原来的 bootloader 被执行,可以继续通过 int0 来播放歌曲。
*************************************************************

lumit4510 ARM7 Board Fireware ( Release 1.6 )
Build date : Sep 01 2005 Time : 23:56:45
- let us make it together
To find us at http://www.lumit.org
Type 'help' for more commands.
If you want to run image automaticly after reset, you can use <flashw> or <prog> to program image into flash.
\>

如果用户没有输入,则会提示:

Goto autorun mode...

Read image from flash..

Go at 0x8000...

如果 flash 0x10000 地址处已经写入了 uclinux 内核 image.ram ,则会输出如下启动信息:


Press INT0 button or press any key by UART0 to enter into shell mode, or just wait 3 seconds for auto-rebooting..

Goto autorun mode...

Read image from flash..

Go at 0x8000...

Linux version 2.4.22-uc0 (root@dailzh) (gcc version 2.95.3 20010315 (release)(ColdFire patches - 20010318 from http://fiddes.net/coldfire/)(uClinux XIP and shared lib patches from http://www.snapgear.com/)) #24 Èý 9ÔÂ 17 18:54:45 CST 2003
Processor: Samsung S3C4510B revision 6
Architecture: SNDS100
On node 0 totalpages: 4096
zone(0): 0 pages.
zone(1): 4096 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/rom0
Calibrating delay loop... 49.76 BogoMIPS
Memory: 16MB = 16MB total
Memory: 14512KB available (1454K code, 156K data, 40K init)
Dentry cache hash table entries: 2048 (order: 2, 16384 bytes)
Inode cache hash table entries: 1024 (order: 1, 8192 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 4096 (order: 2, 16384 bytes)
POSIX conformance testing by UNIFIX
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
Samsung S3C4510 Serial driver version 0.9 (2001-12-27) with no serial options enabled
ttyS00 at 0x3ffd000 (irq = 5) is a S3C4510B
ttyS01 at 0x3ffe000 (irq = 7) is a S3C4510B
Blkmem copyright 1998,1999 D. Jeff Dionne
Blkmem copyright 1998 Kenneth Albanowski
Blkmem 1 disk images:
0: C4358-17DB57 (RO)
RAMDISK driver initialized: 16 RAM disks of 1024K size 1024 blocksize
Samsung S3C4510 Ethernet driver version 0.1 (2002-02-20) <[email protected]>
eth0: 00:40:95:36:35:34
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 1024 bind 1024)
VFS: Mounted root (romfs filesystem) readonly.
Freeing init memory: 40K
Shell invoked to run file: /etc/rc
Command: hostname Samsung
Command: /bin/expand /etc/ramfs.img /dev/ram0
Command: /bin/expand /etc/ramfs2048.img /dev/ram1
Command: mount -t proc proc /proc
Command: mount -t ext2 /dev/ram0 /var
Command: mount -t ext2 /dev/ram1 /ramdisk
Command: chmod 777 /ramdisk
Command: mkdir /var/config
Command: mkdir /var/tmp
Command: mkdir /var/log
Command: mkdir /var/run
Command: mkdir /var/lock
Command: ifconfig lo 127.0.0.1
Command: route add -net 127.0.0.0 netmask 255.255.255.0 lo
Command: ifconfig eth0 192.168.168.101 netmask 255.255.255.0 up
Command: cat /etc/motd
Welcome to
          ____ __
         /__| ||_|               
    _   _| || | _ _____   ___
   | | | | || || |_ \| | | |\ \/ /
   | |_| | |__| || | | | | |_| |/    \
   |___\____|_||_|_| |_|\____|\_/\_/
   | |
   |_|

For further information check:
http://www.uclinux.org/

Execution Finished, Exiting

Sash command shell (version 1.1.1)
/>

limingth 发表于 2005-9-2 00:35:41

tftp16.elf可以用于 FlashPGM 2.0 烧写的 elf 格式文件。
tftp16.bin可以用于 sjf4510 烧写的 bin 格式文件。

sxwglxq 发表于 2005-9-19 15:57:02

板主:我从二楼下载了tftp16.(elf_bin).rar,用lumit-sjf4510-1.1.0将tftp.bin下到flash里加电以后得到一下信息:
Press INT0 button or press any key by UART0 to enter into shell mode, or just w
ait 3 seconds for auto-rebooting..

*************************************************************

lumit4510 ARM7 Board Fireware ( Release 1.6 )
Build date : Sep 02 2002 Time : 09:16:40
- let us make it together
To find us at http://www.lumit.org
Type 'help' for more commands.
If you want to run image automaticly after reset, you can use <flashw> or <prog>
to program image into flash.
\>
版本好像是对的,创作时间不对。和一楼得到的时间信息不一致,我也看了文件属性的确是2002-09-02 09:27
我想bios起来以后写个image.ram进去,可是提示符下不能输东西。复位后立刻连续敲回车,超级终端界面没有任何反映。
我然后又从www.lomx.net上下了个bios.bin,烧完以后,超级终端上的操作一切正常(可以输东西)。
请板主指点一下。谢谢!

limingth 发表于 2005-9-19 16:06:23

先试试把 1.4.0 的 bootloader 烧进去, 复位后立刻连续敲回车,超级终端界面有没有反映?

sxwglxq 发表于 2005-9-19 16:15:12

1.4.0我试过了也没有反映,以前有个早一点的版本有反映

limingth 发表于 2005-9-19 16:23:38

是不是你的串口线的问题?1.4.0 的 bin 文件很多人都测试过没有问题,可以在 lumit4510 的开发板上运行。

limingth 发表于 2005-9-19 16:30:37

对了, 超级终端有时候会因为 scroll lock 被按下 而导致无法输入的。
换一个 串口工具试试?
http://www.lumit.org/dn_tools.htm
http://www.lumit.org/download/tools/Terminal.exe

sxwglxq 发表于 2005-9-19 16:31:17

线应该没问题。从www.lomx.net上下的bios.bin进板子,超级终端是很正常的。谢谢板主。我自己再看看。

limingth 发表于 2005-9-19 16:34:42

可以用 flashpgm2.0 来烧写试试看,我很少用 sjf4510 来烧 flash 了,那个速度太慢。

rootlinger 发表于 2005-9-23 08:33:03

请问斑竹,ARM executable file是直接下载到DRAM中运行,还是需要把它转换成二进制文件,下载到flash中运行了?
你的源代码bootloader1.6编译后,是不是还需要转换成二进制文件,再烧写的flash中运行?

rootlinger 发表于 2005-9-23 08:35:03

请问斑竹,ARM executable file是直接下载到DRAM中运行,还是需要把它转换成二进制文件,下载到flash中运行了?
你的源代码bootloader1.6编译后,是不是还需要转换成二进制文件,再烧写的flash中运行?

limingth 发表于 2005-9-23 15:22:16

uue 的文件是通过 dn 命令从串口下载到 0x8000 RAM 地址处的
bin 的文件可以通过 load 命令从网口下载到 0x8000 RAM 地址处的
tftp1.x.bin 文件可以通过 sjf4510.exe 用并口和 wiggler jtag 头来烧写到 flash 0 地址处
tftp1.x.hex (elf) 文件是可以通过 flashpgm2.0 工具用并口和 wiggler jtag 头来烧写到 flash 0 地址处

基本上板子相关的文件就是这4类了。

rootlinger 发表于 2005-9-23 16:05:12

斑竹,那ADS生成的可执行文件与你所说的"bin 的文件可以通过 load 命令从网口下载到 0x8000 RAM 地址处的"bin文件是一回事吗?多谢斑竹的辛勤劳作,非常感谢你的回答!

rootlinger 发表于 2005-9-23 16:06:37

因我总感觉ARM executable file与bin文件有些区别,但为什么,你说的都可以下载到DRAM中运行了?

limingth 发表于 2005-9-23 16:11:32

ADS 生成的 axf 格式的文件类似于linux 的 elf 格式的文件,都是带可执行文件头信息的。
bin 格式的文件都是二进制的机器码。

你所说的 ARM executable file 如果是指axf 格式文件,那和 bin 格式是有很大差别的。
不过可以通过 fromelf 从 axf -> bin, 反之则不行。
页: [1] 2
查看完整版本: lumit4510 bootloader 1.6.0 发布!