(第一天)S3C6410点亮一个LED

今天开始学习ARM11,使用的是飞凌的OK6410A开发板.

 

平台信息:

采用的是三星的S3C6410,板载256MB DDR,2G NAND.

Win7 32bit

RVDS 2.2

 

 

1.像以前学习51时一样,首先点亮一个LED.

(第一天)S3C6410点亮一个LED_第1张图片

这是启动文件,最简单的,就声明一个代码段,跳转到main函数.因为是刚刚学习,因此暂时不去深究.

 

 

2.主要的代码,就一个延时函数,一个LED  IO初始化函数,一个主函数,非常简单的.

LED0-LED4 用的是 GPIOM0-GPIOM3

 

GPIOM寄存器

(第一天)S3C6410点亮一个LED_第2张图片

主要设置的就是配置寄存器了

(第一天)S3C6410点亮一个LED_第3张图片

 

 

 

 

#include"s3c6410_map.h"

 

 

void led_init(void)

{

GPIOM->CON= 0x1111;

GPIOM->DAT= 0;

}

 

void Delay(u32 n)

{

u32i;

while(n--)

{

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

}

}

 

void Main(void)

{

u8i;

led_init();

while(1)

{

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

{

GPIOM->DAT= ~(1 << i);

Delay(3);

}

 

}

}

 

 

3.寄存器映射,仿照的STM32官方的库函数,之前学习STM32感觉这种采用指针的操作方式非常方便,比起STM32的寄存器设置,S3C6410         相对来说非常的简单

 

//作者:陈鹏

//创建时间:20120218

//最后修改时间:20120218

//说明:S3C6410寄存器映射定义

 

 

#ifndef_S3C6410_MAP_H_

#define_S3C6410_MAP_H_

 

//

#define _GPIOM

 

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

//数据结构定义

/* Includes------------------------------------------------------------------*/

/* Exported types------------------------------------------------------------*/

typedef signedlong  s32;

typedef signed shorts16;

typedef signedchar  s8;

 

typedef signedlong  const sc32;  /* Read Only */

typedef signed shortconst sc16;  /* Read Only */

typedef signedchar  const sc8;   /* Read Only */

 

typedef volatilesigned long  vs32;

typedef volatilesigned short vs16;

typedef volatilesigned char  vs8;

 

typedef volatilesigned long  const vsc32;  /* Read Only */

typedef volatilesigned short const vsc16;  /* Read Only*/

typedef volatilesigned char  const vsc8;   /* Read Only */

 

typedef unsignedlong  u32;

typedef unsignedshort u16;

typedef unsignedchar  u8;

 

typedef unsignedlong  const uc32;  /* Read Only */

typedef unsignedshort const uc16;  /* Read Only */

typedef unsignedchar  const uc8;   /* Read Only */

 

typedef volatileunsigned long  vu32;

typedef volatileunsigned short vu16;

typedef volatileunsigned char  vu8;

 

typedef volatileunsigned long  const vuc32;  /* Read Only */

typedef volatileunsigned short const vuc16;  /* Read Only*/

typedef volatileunsigned char  const vuc8;   /* Read Only */

 

typedef enum {FALSE= 0, TRUE = !FALSE} bool;

 

 

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

//GPIO

//外设寄存器定义

typedef struct

{

u32        CON;

u32        DAT;

u32        PUD;

u32        CONSLP;        //可能没有

u32        PUDSLP;        //可能没有

}GPIO_TypeDef;//定义一个GPIO寄存器结构类型

 

 

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

//GPIO

//外设基址

#define GPIOM_BASE0x7f008820        //GPIOM基址

 

 

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

//GPIO

#ifdef _GPIOM

#defineGPIOM        ((GPIO_TypeDef*)GPIOM_BASE)

#endif

 

 

 

#endif

 

 

4,工程建立以及仿真运行

工程建立仿真可以参阅国嵌的OK6410视频,电驴资源里面有下载.

你可能感兴趣的:(数据结构,c,struct,三星,平台,delay)