(第一天)S3C6410点亮一个LED

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

 

平台信息:

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

Win7 32bit

RVDS 2.2

 

 

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

计算机生成了可选文字: etrowerk'Codewarrlor-而竺目】口r叫口口口口口口口口口口FileEditViewSearchprojertDebugToolsWindowHelpMil护一的勿台哆.。。取、龟省.,!图谬‘冬园l函.一」引协生招翻.n忱p,k,{l甲性,函,团甲rat、:n:\。esktop\ie之test\*n*t.,IMpORTMain份Debu'引涵罕谬冬卜固Fil。,L、、oraer}Tar:et,A只EA}c$$code},coDE,READoNLYq10bals七art-111一‘FilecodeData恤蛛star七b1Main月习习:…巨亚习一1一1mainc一l一153C6410一却.h…END

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

 

 

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

LED0-LED4用的是 GPIOM0-GPIOM3

 

GPIOM寄存器

计算机生成了可选文字: 寄存器地址i卖,写描述复位位GP]班CON0x7F008520读泻端口M配咒寄存器肚22222222GP入ID户J0x7F008824i卖l写端口M数据寄存器未定义GP入任UD0X7F008828i卖l写端口M卜拟下拉寄存器oxo000oZAA端日M控制寄存器包括二个控制寄存器,分别是GPMCON、GPMDAT、GPMPUD。

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

计算机生成了可选文字:

 

 

 

 

#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视频,电驴资源里面有下载.

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cp1300

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值