首页|嵌入式系统|显示技术|模拟IC/电源|元件与制造|其他IC/制程|消费类电子|无线/通信|汽车电子|工业控制|医疗电子|测试测量
首页 > 分享下载 > 嵌入式系统 > S3C44B0BIOS的keilCARM版

S3C44B0BIOS的keilCARM版

资料介绍

详细说明:S3C44B0 BIOS的keil CARM版

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

说明:S3C44B0 BIOSkeil CARM

源代码来自互连网,由本人进行了一些修改,使其在keil UV3 2.5A上编译通过。

主要修改的地方在启动文件,FLASH的烧录部分,另外在控制台中增加了几个命令。

硬件平台为: CPUS3C44B0SDRAMHY57V641620FLASH29LV160DB;网卡芯片:RTL8019AS

本软件仅供学习交流使用,不得用于其它用途,否则后果自负。

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

该开发板的原理图.rar(注意U4R39不要安装,R8VCC5.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 ;BIOSFLASH中的地址

LDR R2,=0x0C7C0000 ;BIOSSDRAM中的地址

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)

{

//其它IOS3C44B0X.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

}

标签:嵌入式ARM
S3C44B0BIOS的keilCARM版
本地下载

评论