飞凌手把手教您如何将 ADS 下的程序下载到开发板中运行
以 led 实验在 OK2440-III 上运行为例。
打开 ADS1.2(CodeWarrior for ARM Developer Suite)建立工程文件:
在主菜单 FILE-�new….,如下图设置,点击确定
同样在主菜单 FILE--�new….如下图设置,点击确定
用同样的方法在建立 led.c 文件。
编辑代码,下面代码敲进对应的文件:init.s 汇编文件和 led.c:
Init.s //注意此文件的代码不能定格写
AREA |DATA|,CODE,READONLY
ENTRY
ldr r13, =0x1000
IMPORT ledMain
b ledMain
END
Led.c
/**********************LED实验*********************************/
// 公司名称 :保定飞凌嵌入式技术有限公司
// 描
// 版
// 网
述 :LED
权 :保定飞凌嵌入式技术有限公司
址 :www.witech.com.cn
/***************************************************************/
/*
*/
本实验接口说明
GPF3
------ LED0
GPF4
------ LED1
GPF5
------ LED2
GPF6
------ LED3
/*------------------------地址声明---------------------------*/
//地址是s3c2440芯片手册里规定好的,具体说明参考芯片手册GPIO章节
#define GPFCON (*(volatile unsigned *)0x56000050)
#define GPFDAT (*(volatile unsigned *)0x56000054)
#define GPFUP (*(volatile unsigned *)0x56000058)
#define uchar unsigned char
#define uint unsigned int
/*-------------------------------------------------------------
函数名称: ledMain
功能描述: 入口程序
初始化后,进入跑马灯死循环
传
参: 无
返 回 值: int 0
-------------------------------------------------------------*/
int ledMain(void)
{
void Delay();
GPFCON &= 0xffc03f;
// GPF3,GPF4,GPF5,GPF6设置为输出
GPFCON |= 0x1540;
GPFDAT = ((1<<3)|(1<<4)|(1<<5)|(1<<6));
//使LED全灭
GPFUP |= 0x78;
while (1)
// 死循环
{
GPFDAT = ~(1<<3);
//LED0亮
Delay(500);
GPFDAT = ~(1<<4);
//LED1亮
Delay(500);
GPFDAT = ~(1<<5);
//LED2亮
Delay(500);
GPFDAT = ~(1<<6);
//LED3亮
Delay(500);
}
return 0;
}
/*------------------------------------------------------------/
函数名称: Delay
功能描述: 延时函数,该函数只是大概时间,没有具体时间值
传
参: int x
返 回 值: 无
/*********************************************************/
void Delay(int x)
{
}
int k, j;
while(x)
{
}
for (k=0;k<=0xff;k++)
for(j=0;j<=0xff;j++);
x--;
代码编辑完毕之后保存。这时候可以编译一下,看是否有语法错误。选中源文件,点击 make。
没问题的话就继续下一步。
代码编译没问题,可能在内存里抛尸没问题的,但是一旦下载到开发板上就不行了。
下面开始讲述下载到开发板上如何进行设置。
在上图中(红色方框)打开 DebugRel Setting……
如果你的工程最后没有生成 bin 文件,那么你要检查一下上图中 Post-linker 是否设置为了
“ARM fromELF”。
我们所用的 CPU 内核是 ARM920T;
保存退出(其他的使用默认)之后,重新编译,这时的 bin 就可以下载到开发板中运行了。