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。

近期下载者

相关文件


收藏者