/**********************************************************************
说明:S3C44B0 BIOS的keil CARM版
源代码来自互连网,由本人进行了一些修改,使其在keil UV3 2.5A上编译通过。
主要修改的地方在启动文件,FLASH的烧录部分,另外在控制台中增加了几个命令。
硬件平台为: CPU:S3C44B0;SDRAM:HY57V641620;FLASH:29LV160DB;网卡芯片:RTL8019AS。
本软件仅供学习交流使用,不得用于其它用途,否则后果自负。
修改者:computer00
Http://Computer00.21ic.org
Http://www.ednchina.com/blog/computer00
2007-5-10
**********************************************************************/
S3C44B0-BIOS-KEIL源代码包下载:
该开发板的原理图下载(注意U4和R39不要安装,R8接VCC5.0端改为接地):
又对代码做了一点更改,启动代码s3c44b0x.s中添加了几句判断是否要复制代码的指令,如下,请找到相关部分修改:
;****************************************************************************
;为BDMA改变BDMACON的复位值
;BDMA目的寄存器
BDIDES0 EQU 0x1f80008
BDIDES1 EQU 0x1f80028
LDR R2, =BDIDES0
LDR R1, =0x40000000 ;BDIDESn reset value should be 0x40000000
STR R1, [r2]
LDR R2, =BDIDES1
LDR R1, =0x40000000 ;BDIDESn reset value should be 0x40000000
STR R1, [r2]
;****************************************************************************
;****************************************************************************
;将FLASH中的代码段(0x1E0000-0x1EFFFF)复制到RAM中(0xC7C0000-0xC7CFFFF)
;如果已经在RAM中运行,则不要复制
MOV R1,PC
LDR R2,=0x0C000000 ;SDRAM的起始地址
CMP R2,R1
BLS EndCopy
LDR R1,=0x001E0000 ;BIOS在FLASH中的地址
LDR R2,=0x0C7C0000 ;BIOS在SDRAM中的地址
LDR R7,=0x0C7D0000-4 ;BIOS总共64K
LOOP:
LDMIA R1!,{R3-R6} ;装入4个字到寄存器中
STMIA R2!,{R3-R6} ;将4个字保存到RAM中
CMP R2,R7 ;比较拷贝是否完成
BLS LOOP ;循环
EndCopy:
;****************************************************************************
;自己的代码结束
;****************************************************************************
另外,在main函数中将PortInit();前面的注释去掉,然后找到PortInit()函数,修改成如下代码:
/****************************************************************************
【功能说明】IO端口功能、方向设定
****************************************************************************/
void PortInit(void)
{
//其它IO在S3C44B0X.s里面已经配置好了。直接使用keil提供的Configuration Wizard设置更方便
//当然也可以在这里来配置
rPDATG = 0xff;
rPCONG = 0x000f; //enable extint0 extint1
rPUPG = 0x00; //enabled pull up register
rEXTINT = 0x42; //所有的外部硬件中断为低电平触发, extint0 为下降沿,extint1为上升沿
rINTCON = 5; // non vector mode, irq enable
rINTMOD = 0; //all are irq mode
}
用户1588142 2011-6-15 22:50
computer00 2008-3-3 23:22
用户123002 2008-3-3 19:36
用户1415449 2007-8-17 16:48
computer00 2007-8-6 01:55
我没有移植过.
既然有LPC的了,那就好办了。只要修改跟硬件相关的部分即可.
用户75640 2007-8-5 17:52
用户75640 2007-8-5 17:48
computer00 2007-8-5 11:21
启动文件也许要改吧,看你的需要了。
中断处理,初始化部分等等肯定是要改的了。
用户75640 2007-8-5 11:16
computer00 2007-5-14 22:11