S3C44B0 BIOS的keil CARM版 2008-08-31 09:11/********************************************************************** 2007-5-10
该开发板的原理图下载(注意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 } |
|
来自: BeautymengRoom > 《我的图书馆》