原创 S3C44B0 BIOS的keil CARM版

2007-5-10 14:30 7810 9 17 分类: MCU/ 嵌入式

/**********************************************************************
说明: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源代码包下载:rar


该开发板的原理图下载(注意U4和R39不要安装,R8接VCC5.0端改为接地):rar


 


 


又对代码做了一点更改,启动代码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 
}

 

PARTNER CONTENT

文章评论12条评论)

登录后参与讨论

用户1588142 2011-6-15 22:50

mark!!

computer00 2008-3-3 23:22

如果你用的是C语言的话,那是差不多的。ARM主要学习一下它的体系结构就差不多了,当然,要深入学习的话,还得要学指令集。

用户123002 2008-3-3 19:36

我是一个初学者,以前只玩过51单片机 不知道ARM学起来是不是和那又很大的不同!

用户1415449 2007-8-17 16:48

真的很好,谢谢。以后请多多指教!

computer00 2007-8-6 01:55

我没有移植过.

既然有LPC的了,那就好办了。只要修改跟硬件相关的部分即可.

用户75640 2007-8-5 17:52

我有周立功移植到keil的文件,但是他是lpc的,应该如何移植成aduc的呢??

用户75640 2007-8-5 17:48

你有没有移植过ucos啊,发来参考一下

computer00 2007-8-5 11:21

启动文件也许要改吧,看你的需要了。

中断处理,初始化部分等等肯定是要改的了。

用户75640 2007-8-5 11:16

oo我现在想把ucos移植到keil里,请问需要修改什么呢??(芯片是aduc7128)那个启动文件需要改吗?

computer00 2007-5-14 22:11

楼上的,你可以发邮件给我: computer-lov@tom.com
相关推荐阅读
computer00 2013-06-05 16:27
[招聘]Android系统开发工程师
任职要求: 1. 扎实的C/C++基础,熟悉嵌入式Linux和Android操作系统的软件开发; 2. 良好的沟通能力和逻辑思维能力; 3. 良好的英文文献阅读能力; 4. 具备...
computer00 2013-06-04 09:26
[招聘]Android应用开发工程师
任职要求: 1. 具备扎实的面向对象编程思想和JAVA编程基础; 2. 熟悉Eclipse+ADT开发环境,熟练掌握Android基本类库; 3. 熟悉网络应用和多媒体应用开发; ...
computer00 2012-09-26 13:15
圈圈的新浪官方围脖
http://weibo.com/computer00  ...
computer00 2012-09-26 13:12
欢迎大家去收听圈圈弹的曲子
http://www.tudou.com/home/_105209016  ...
computer00 2009-06-29 15:07
《圈圈教你玩USB》勘误(更新日期2009 年06月29日)
《圈圈教你玩USB》勘误(更新日期2009 年06月29日)下载地址1:下载地址2: 勘误.pdf...
computer00 2009-06-25 11:23
一块磐正845GE主板PS2接口的修复
圈圈有一部台式机,某天开机时,发现键盘用不了了,停留在输入BIOS密码那里。主机自检通过,但是蜂鸣器却发出很微弱的、连续的声音,同时键盘的三个LED也没有出现象往常一样的闪烁一下。圈圈以为多日未用,积...
EE直播间
更多
我要评论
12
9
关闭 站长推荐上一条 /1 下一条