一起学mini2440裸机开发(一)--第一个led灯点亮

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一起学mini2440裸机开发(一)--第一个led灯点亮

开发板:mini2440,NandFlash:K9F2G08U0B 256M大小,CPU:S

3C2440A 。

开发环境:MDK4.11

仿真器:Jlink v8

这是我用csdn发表的第一个文章,之前使用过arm-linux-gcc裸机开发mini2440,但是很多函数什么的不能直接调用(我的技术问题),准备重新整理一下ARM裸机,整理好之后准备下一阶段学习。关于软件MDK4.11和它的注册机,我传不上去,说是由于文件太大,又想要的直接加Q470868560要就行了。

下面开始我们的第一个LED灯的点亮程序吧!

1、新建一个项目工程

双击MDK图标进入开发环境,如下图,

单击Project/New uVision Project,选择你要创建文档的位置,文档名为test,单击保存

选择CPU为Samsung/S3C2440A,单击OK

单击完OK按钮后,咱们先看一下原来的空test文件夹里多了什么文件,当然你也可以不用看,我是看看MDK到底是默认给咱们提供了什么方便,下图为单击OK后多出的文档

很容易看出多出来一个test工程文档。在上一步单击完OK后,会弹出下图,该图是为了让你选择是不是将Samsung S3C2440的启动代码复制添加的你的工程文档。这段启动代码咱们以后分析,在这里先选择“是”

选择“是”后,一个工程文档建好了,如下图所示。

你看上图,可以看到工程文档自动添加了S3C2440.s,这就是上一步选择“是”后自动添加的启动代码,咱们再看看test文件夹里多了什么文件。很容易可以看出多了三个文件,其中一个就是S3C2440.s,这个代码很重要啊。咱们现在先不管他,接着下一步。

2、新建一个文件。选择File/New,新建一个文件。

将该文件保存并命名为test1,注意后面要加后缀.c,单击保存

将test1.c文件添加到你的工程,对着Source Group1右击,选择“Add Files to Group "Source Group 1"...”

选择刚才建立的test1.c,单击Add,该文件就被加到了工程中。

这里不需要添加别的文件了,直接点击Close就可以了。下图可以看到test1.c已经被加到工程中了。

3、编辑test1.c文件。这里我们再添加别的文件,也不再使用include包含什么东西。

test1.c的代码如下,可以直接复制粘贴。/* */里边的内容应该可以显示,这也是我从新浪搬家到这里的原因了,发现新浪的注释代码有时候不能显示。

/*

* 功能:实现LED1灯循环亮灭

* LED1--GPB5

* LED2--GPB6

* LED3--GPB7

* LED4--GPB8

*/

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

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

#define Led1_On ~(1<<5)

#define Led1_Off (1<<5)

void Led_Port_Init(void);

void delay(int i);

int main(void)

{

Led_Port_Init();

while(1)

{

//Led1亮

rGPBDAT&=Led1_On;

delay(10000);

//Led1灭

rGPBDAT|=Led1_Off;

delay(10000);

}

}

/*

* 函数名称:Led_Port_Init()

* 全局变量:无

* 参数:无

* 返回值:无

* 说明:实现Led1灯的寄存器初始化*/

void Led_Port_Init(void)

{

//设置GPB5为输出端口

rGPBCON &= ~(3<<10);

rGPBCON |= (1<<10);

}

/*

* 函数名称:delay(int t)

* 全局变量:无

* 参数:t

* 返回值:无

* 说明:延时函数

*/

void delay(int t)

{

int a,b;

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

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

}

将上面的代码复制粘贴完之后,注意保存。这时候还不能编译,如果编译,会出现如下图的错误。

意思是说ROM1没有定义什么的,下面在用之前需要配置

4、配置之前的准备工作

首先,在你MDK安装目录下,找到文件Ext_RAM的配置文件,如下图是我的Ext_RAM 的路径

将这个Ext_RAM文件复制到咱们创建的test工程存放的文件夹中,我的是下图

修改该文件的一处内容,只修改一处哈,如下图,

将LOAD Obj\Blinky.axf INCREMENTAL // Download program

修改为LOAD .\test.axf INCREMENTAL // Download program

这里的.\表示当前文件夹,test是你的工程文件名,比如说你新建的工程为wangwensong,那么这里就要改为.\wangwensong.axf了。

做完准备工作,下面开始进行配置。

在Target 1处鼠标右击,选择Options for Target 'Target 1'....

相关文档
最新文档