51EDA_code_BIOSV6.01
所属分类:Linux/Unix编程
开发工具:C/C++
文件大小:1138KB
下载次数:24
上传日期:2005-12-04 18:08:22
上 传 者:
南京石头
说明: 基于ARM7 BIOS源代码,适用CPU:三星S3C44B0X。
(ARM7-based BIOS source code, the application CPU : Samsung S3C44B0X.)
文件列表:
51EDA_code_BIOSV6.01\Cliff_Change.txt (1342, 2004-05-29)
51EDA_code_BIOSV6.01\explain.txt (740, 2004-05-30)
51EDA_code_BIOSV6.01\howto.txt (1346, 2004-05-30)
51EDA_code_BIOSV6.01\convert.bat (127, 2004-05-29)
51EDA_code_BIOSV6.01\Inc\44B.H (15464, 2003-12-04)
51EDA_code_BIOSV6.01\Inc\44BLIB.H (1734, 2004-05-28)
51EDA_code_BIOSV6.01\Inc\Def.h (431, 2003-03-14)
51EDA_code_BIOSV6.01\Inc\Flash.h (245, 2004-05-28)
51EDA_code_BIOSV6.01\Inc\Option.h (2017, 2004-05-28)
51EDA_code_BIOSV6.01\Inc\Rtc.h (497, 2003-12-13)
51EDA_code_BIOSV6.01\Inc\Shell.h (1554, 2004-04-26)
51EDA_code_BIOSV6.01\Inc\Memcfg.inc.bak (2569, 2004-05-29)
51EDA_code_BIOSV6.01\Inc\Memcfg.inc (2617, 2004-05-29)
51EDA_code_BIOSV6.01\Inc\Option.inc (583, 2004-05-28)
51EDA_code_BIOSV6.01\Inc (0, 2004-05-30)
51EDA_code_BIOSV6.01\Net\Armnet.h (685, 2004-01-14)
51EDA_code_BIOSV6.01\Net\Arp.h (824, 2003-12-15)
51EDA_code_BIOSV6.01\Net\Icmp.h (534, 2003-12-04)
51EDA_code_BIOSV6.01\Net\Ip.h (720, 2003-12-04)
51EDA_code_BIOSV6.01\Net\Ne2000.h (8336, 2003-12-04)
51EDA_code_BIOSV6.01\Net\Necfg.h (8620, 2003-12-04)
51EDA_code_BIOSV6.01\Net\Tftp.h (499, 2003-12-13)
51EDA_code_BIOSV6.01\Net\Udp.h (612, 2003-12-04)
51EDA_code_BIOSV6.01\Net\Util.h (491, 2003-12-13)
51EDA_code_BIOSV6.01\Net\Arp.c (5739, 2004-01-14)
51EDA_code_BIOSV6.01\Net\Icmp.c (3371, 2004-01-14)
51EDA_code_BIOSV6.01\Net\Ip.c (6501, 2003-12-04)
51EDA_code_BIOSV6.01\Net\Ne2000.c (6845, 2004-04-26)
51EDA_code_BIOSV6.01\Net\Tftp.c (4118, 2004-01-14)
51EDA_code_BIOSV6.01\Net\Udp.c (5463, 2003-12-04)
51EDA_code_BIOSV6.01\Net\Util.c (1241, 2003-12-13)
51EDA_code_BIOSV6.01\Net (0, 2004-05-30)
51EDA_code_BIOSV6.01\Src\44blib.c (16510, 2004-05-28)
51EDA_code_BIOSV6.01\Src\Flash.c (5433, 2004-12-10)
51EDA_code_BIOSV6.01\Src\Main.c (4894, 2004-12-10)
51EDA_code_BIOSV6.01\Src\Rtc.c (2646, 2003-12-13)
51EDA_code_BIOSV6.01\Src\Shell.c (32046, 2004-05-30)
51EDA_code_BIOSV6.01\Src\44binit.s (11696, 2004-12-10)
51EDA_code_BIOSV6.01\Src (0, 2004-05-30)
... ...
*************************************************
BIOS程序说明
By hugang, hgxxx@51eda.com
本程序改编自antiscle公布的代码,在此首先
对antiscle表示感谢,我替换的原代码的网络
部分,对shell和flash也进行了一定的修改,
使其可以在51eda的开发板上可以正常运行。
*************************************************
1.文件说明
Net : Rtl8019驱动代码
Src : 主程序代码
Inc : 主程序的头文件
Debug : SDT目标代码
Mybios_Data\Debug : ADS目标代码
Mybios.apj : SDT2.51工程文件
Mybios.mcp : ADS1.2工程文件
Mybios.PR : SourceInsight3.5工程文件
2.烧写步骤
1> 开发板上电
2> 执行Debug目录下的F.bat文件将bios程序烧写到flash中
3> 将PC配置为192.168.111网段
4> 用交叉网线连接开发板和PC
5> 运行串口监视软件,波特率115200
6> 开发板复位
7> 可以看到如下提示信息
Bios for S3C44B0x
Flash ID is : 278200bf
IP address : 192.168.111.8
Build date:Apr 19 2004-22:07:20
8> 敲入help,回车看到可执行的命令的列表
help ------ show help
? ------ = help
date ------ show or set current date
time ------ show or set current time
setweek ------ set weekday
clock ------ show system running clock
setmclk ------ set system running clock
setbaud ------ set baud rate
ipcfg ------ show or set IP address
load ------ load file to ram
comload ------ load file from serial port
run ------ run from sdram
prog ------ program flash
copy ------ copy flash from src to dst address
boot ------ boot from flash
backup ------ move bios to the top of flash
md ------ show memory data
move ------ move program from flash to sdram
9> 若是第一次运行bios,敲入backup,将bios备份到flash高端
即:1f0000处
3.几个重要命令
1> load
格式:load RAM地址
用途:通过网络将主机上的文件加载到开发板的RAM中的指定地址处
若缺省地址,则地址取默认值0c008000。
2> run
格式:run RAM地址
用途:从开发板的RAM总的指定地址运行程序,若地址缺省,则取默
值0c008000。
3> prog
格式:prog Flash地址 RAM地址 代码长度 选项(-no0)
用途:将指定RAM地址开始处的指定长度代码烧写到指定的Flash地址
中。当指定的Flash地址为0时,若再指定选项-no0,则不会修改0地
址处的代码,直接烧入。否则先修改后在烧入。修改后的代码为指向
flash高端处备份的bios的一个跳转。具体原来参考shell.c中的原码。
4> move
格式:move Flash地址 RAM地址 代码长度
用途:将指定Flash地址处开始的指定长度代码复制到指定的RAM地址
中。
5> boot
格式:boot
用途:运行Flash中的代码,不是bios。
6> md
格式:md 地址
用途:显示指定地址开始处的22*4*4字节的内容,缺省地址为0。
4.注意事项
1> Src目录中的44binit.s文件于原开发板所带的其它原码中的44binit.s
文件不同,不可被替换。
2> 工程中指定的ro-base为0x0c7c000,不要改为0,具体原来参考44binit.s
中的注释。
3> 执行load命令后网络才会工作,平时是ping不通的。
4> 缺省的编译环境为sdt2.51,若需要使用ads编译后的目标文件则需要修改两处代码:
src\main.c 第22行
ETHERFRAME etherframe; 改为 ETHERFRAME __align(4) etherframe;
net\ne2000.c 第12行
NICHDR nichdr; 改为 NICHDR __align(4) nichdr;
修改后重新编译,否则网络不通。
5> 用bios引导uClinux时,需要先在flash的0地址处烧入boot.bin文件,这个文件
可以在vector目录下找到,此文件的作用是将0地址处的中断向量映射到0xc000000处,
完成与uClinux中断处理程序的衔接,它的原码参见同目录下的boot.s
5.操作实例(以引导uClinux为例,假定bios已烧入flash,并备份到高端,并且连线正确)
1> 在超级终端中输入:
load
回车后会提示:
No begin address for download, use address 0xc008000
Load image file from host
Type tftp -i 192.168.111.8 put filename at the host PC
Press ESC key to exit
2> 在windows中开一个命令窗口,并输入
tftp -i 192.168.111.8 put boot.bin
回车开始传送文件,这时在超级终端中将显示
Begin to receive filename: boot.bin, transtype: octet.
传送完成后会显示
TFTP transfer finished, and receive 3c bytes.
并重新回到提示符状态
3> 超级终端中输入
prog 0 c008000 3c
回车后,显示
program flash begin @0x0, from ram data @0xc008000, size = 60Bytes
Are you sure? [y/n]
输入y开始将文件烧入到flahs的0地址处,烧写过程中会有如下提示
Erase sector 0x0 ok
program ok
Erase sector 0x1fd000 ok
program ok
烧写完成后,重新会到提示符状态
4> 在超级终端中输入
load c000000
回车后会提示:
No begin address for download, use address 0xc000000
Load image file from host
Type tftp -i 192.168.111.8 put filename at the host PC
Press ESC key to exit
在windows命令窗口中输入
tftp -i 192.168.111.8 put image.rom
回车开始传送文件,这时在超级终端中将显示
Begin to receive filename: image.rom, transtype: octet.
传送完成后会显示
TFTP transfer finished, and receive f6104 bytes.
并重新回到提示符状态
5> 在超级终端中输入
run c000000
回车后会提示
Run program from 0xc000000, are you aure? [y/n]
输入y后开始运行加载到0xc000000处的image.rom。
近期下载者:
相关文件:
收藏者: