日志档案

发表于 2007-5-10 14:30:10

18

标签: S3C44B0  BIOS的keil  CARM版  

S3C44B0 BIOS的keil CARM版

/**********************************************************************
说明: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 
}

 

系统分类: ARM   |   用户分类: 初学ARM   |   来源: 整理   |   【推荐给朋友】

    阅读(1785)    回复(12)  

投一票您将和博主都有获奖机会!

  • jg24

    2007-5-12 15:55:45

    希望和你交个朋友 对于音乐(电声),电子系统设计我也是很感冒!!!!

  • cocappjj

    2007-5-10 16:20:53

    真是不错啊。我发现这里的人,单片机,arm,fpga,充电器,电源。。。。总是学无止境。

    我看到EDN网友最多的博客、帖子、签名档,就是我要学。。。。

  • computer00

    2007-5-14 22:11:52

    楼上的,你可以发邮件给我: computer-lov@tom.com

  • pzkk

    2007-7-24 18:19:13

    不错,谢谢分享!!

    不知圈圈有没有44b0BIOS  ADS版的呢?

  • M理论

    2007-8-5 11:16:20

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

  • computer00

    2007-8-5 11:21:46

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

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

  • computer00

    2007-8-6 1:55:58

    我没有移植过.

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

  • M理论

    2007-8-5 17:48:33

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

  • M理论

    2007-8-5 17:52:07

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

  • sirrus

    2007-8-17 16:48:22

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

  • czhdyf_0527

    2008-3-3 19:36:31

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

  • computer00

    2008-3-3 23:22:33

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