[资料分享] mini2440裸机程序 如何点亮led灯 基于MDK4.11版(ZZ)

zhaojun_xf   2010-7-14 11:05 楼主

呵呵,搞了一天,终于成功了。

心得,用MDK3.5版的启动文件老是出错,一气之下,下了个4.11版的,居然很正常,嘿嘿,新版就是好。

万恶的ADS,总是调不出AXD,没办法,转向MDK啦,反正ADS停止更新了,MDK才是王道啊。

转载请保留版权信息,谢谢合作。

mini2440裸机程序 如何点亮led灯 基于MDK4.11版

http://hi.baidu.com/如来大悲/blog/item/c6150233be4692a45edf0e02.html

1.bmp

1,新建工程文件led_test


2.bmp

2,选择S3C2440A

3.bmp

 

3,添加默然启动代码,点“是”即可


4.bmp

4,新建main.c文件,并加入MDK中,如上图(main.c的代码在文章下面)

5.bmp

 

5,点击Target,按上图配置。

6.bmp

7.bmp


8.bmp

6,在D:\Keil\ARM\Boards\Samsung\S3C2440\RTX_Blinky中找到Ext_RAM文件,复制到你的工程目录中,并修改为.\led_test.axf


9.bmp

7,配置Debug,我用的是jlink v8仿真器


10.bmp

8,配置Utilities

11.bmp

 

10,进入仿真。调试前,MDK提问你是否要安装jlink的最新驱动,需要联网。点确定,安装最新驱动即可。

真情大放送

//main.c 博客地址 http://hi.baidu.com/如来大悲/blog/item/c6150233be4692a45edf0e02.html

//本代码通俗易懂,且没有引入其他的头文件,结构清晰

//哈哈,自吹自擂,失礼啦

#define rGPBCON                (*(volatile unsigned long *) 0x56000010)

#define rGPBDAT                (*(volatile unsigned long *) 0x56000014)

void Led_port_init(void);

#define LED1_ON    ~(1<<5)

#define LED2_ON    ~(1<<6)

#define LED3_ON    ~(1<<7)

#define LED4_ON    ~(1<<8)

#define LED1_OFF    (1<<5)

#define LED2_OFF    (1<<6)

#define LED3_OFF    (1<<7)

#define LED4_OFF    (1<<8)

/*************************************************

Function name: delay

Parameter     : times

Description : 延时函数

Return : void

Argument      : void

Autor & date :

**************************************************/

void delay(int times)

{

    int i;

    for(;times>0;times--)

      for(i=0;i<400;i++);

}

/*************************************************

Function name: Main

Parameter     : void

Description : 主功能函数

Return : void

Argument      : void

Autor & date :

**************************************************/

int main(void)

{

    int i;

     Led_port_init();

    

    for(i=0;i<100;i++)

     {

     /* 全亮*/

     rGPBDAT = rGPBDAT&(LED1_ON)&(LED2_ON)&(LED3_ON)&(LED4_ON);

    

     delay(10000);

    

     /* 全灭*/

     rGPBDAT = rGPBDAT|(LED1_OFF)|(LED2_OFF)|(LED3_OFF)|(LED4_OFF);

    

     delay(10000);

     }

}

/*************************************************

Function name: Led_port_init

Parameter     : void

Description : mini2440开发板有个引脚连接了LED发光

                二极管,分别是GPB5--LED1GPB6—LED2

                GPB7--LED3GPB8--LED4,该函数的作用

                是对其个引脚进行初始化。

Return : void

Argument      : void

Autor & date : Daniel

**************************************************/   

void Led_port_init(void)

{

   /*设置GPB5-GPB8为输出端口*/

    rGPBCON &= ~((3<<10)|(3<<12)|(3<<14)|(3<<16));

    rGPBCON |= (1<<10)|(1<<12)|(1<<14)|(1<<16);

}

我的博客

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复