ok6410流水灯c语言程序,飞凌OK6410流水灯程序AXD2.2编译过程.doc

飞凌OK6410流水灯程序AXD2.2编译过程

飞凌OK6410流水灯程序AXD2.2编译过程

程序

1.1 init.s

IMPORTMain

AREA |C$$code|,CODE,READONLY

globalstart

start

blMain

END

1.2main.c

#define rGPMCON(*(volatile unsigned*)(0x7F008820))

#define rGPMDAT(*(volatile unsigned*)(0x7F008824))

#define rGPMPUD(*(volatile unsigned*)(0x7F008828))

void msDelay(int time)

{

volatile unsigned int i,j;

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

for(j=0;j

}

void GPIO_Init(void)

{

rGPMCON=0x11111;

rGPMPUD=0x00;

rGPMDAT=0x1F;

}

void LedTest(void)

{

volatile unsigned int i;

while(1)

{

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

{

rGPMDAT=~(1<

msDelay(10);

}

}

}

void Main(void)

{

GPIO_Init();

LedTest();

}

打开CodeWarrior forRVDS

2.1File->new,图1所示。

图1

2.2new project 图2所示。

图2

新建文件init.s,main.c。图3所示

图3

添加文件到工程,图4所示。

图4

添加源文件后的视图,图5所示。

图5

工程设置,编译,链接。

3.1Debug Settings… 图6所示。

图6

Debug Settings对话框。图7~图13所示。

图7

图8

图9

图10

图11

图12

图13

剩余步骤这里不再给出,详情请看《飞凌6410裸机调试教程.pdf》

5、知识扩展:ARM映像文件EDN电子技术论坛>博客 >tengjingshu博客 >ARM Linux学习笔记1:ARM映像文件什么是arm的映像文件arm映像文件其实就是可执行文件,包括bin或hex两种格式,可以直接烧到rom里执行。在axd调试过程中,我们调试的是axf文件,其实这也是一种映像文件,它只是在bin文件中加了一个文件头和一些调试信息。可以参考pdf:ARM映像文件及执行机理映像文件的组成ARM映像文件是一个层次性结构的文件,包括了域(region),输出段(output section)和输入段(input section)。

所谓域,指的就是整个bin映像文件所处在的区域,它又分为加载域和运行域。

加载域就是映像文件被静态存放的工作区域,一般来说flash里的 整个bin文件所在的地址空间就是加载域,当然在程序一般都不会放在 flash里执行,一般都会搬到sdram里运行工作,它们在被搬到sdram里工作所处的地址空间就是运行域。

ARM映像文件一开始总是存储在ROM/Flash里面的,其RO部分既可以在ROM/Flash里面执行,也可以转移到速度更快的RAM中执行;而RW和ZI这两部分是必须转移到可写的RAM里去,其实RW包括ZI区域。

什么是RO段、RW段和ZI段

一个ARM程序包含3部分:RO,RW和ZIRO就是ReadOnly,程序中的指令和常量RW就是Read/Write,程序中的已初始化变量ZI就是Zero Init,程序中的未初始化的变量Image文件包含了RO和RW数据。 之所以Image文件不包含ZI数据,是因为ZI数据都是0,没必要包含,只要程序运行之前将ZI数据所在的区域一律清零即可。包含进去反而浪费存储空间。Q:为什么Image中必须包含RO和RW?A:因为RO中的指令和常量以及RW中初始化过的变量是不能像ZI那样“无中生有”的。ARM程序的执行过程从以上两点可以知道,烧录到ROM中的image文件与实际运行时的ARM程序之间并不是完全一样的。因此就有必要了解ARM程序是如何从ROM中的image到达实际运行状态的。实际上,RO中的指令至少应该有这样的功能:1. 将RW从ROM中搬到RAM中,因为RW是变量,变量不能存在ROM中。2. 将ZI所在的RAM区域全部清零,因为ZI区域并不在Image中,所以需要程序根据编译器给出的ZI地址及大小来将相应得RAM区域清零。ZI中也是变量,同理:变量不能存在ROM中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值