arm笔记2-arm嵌入式系统实验教程(3)实验2.24

1.arm处理器中,只有MRS指令可以将状态寄存器cpsr或spsr读出到通用寄存器中。

2.arm映像 文件就是指烧录到rom中bin文件,可以用image文件来称呼它。image文件包含了ro和rw.

   arm程序 是指在arm系统中正在执行的程序,而非保存在rom中的bin映像文件。一个arm程序包含3部

   分:r0,rw,和zi
   ro是程序中的指令和常量
   rw是程序中的已初始化变量
   zi是程序中的未初始化变量

#include "config.h"
#define BEEPCON 1<<7

void __irq IRQ_Eint3(void)
{
    uint32 i;
    i = IO0SET;  //当前io0set的值
    if((i&BEEPCON) == 0)
    {
        IO0SET = BEEPCON;  //if IO0SET'S 第7位为0,则让io0set该位变为1,对应位输出高电平。
    }
    else
    {
    IO0CLR = BEEPCON;  //if io0set's第7位为1,则让io0clr将该位变为1,即输出低电平。
    }

    while((EXTINT&1)!=0)
    {
        EXTINT = 1<<3;
    }

    VICVectAddr = 0;
}

 int main(void)
{// add user source code
    IRQEnable();
   
    PINSEL1 = 3<<8;   //作用为将P0.20设置为Eint3.参见书本194页
    IO0DIR = BEEPCON;  //BEEPCON is 10000000,p0.7 is output
   
    VICIntSelect = 0x00000000;  //all the interput is irq.
    VICDefVectAddr =(int)IRQ_Eint3;    //set the address of defvector interput irq_eint3
   
    EXTMODE = 0x00;                  //level trigger
    EXTINT = 1<<3;                      //1000,clear eint3 interprrupt flag
    VICIntEnable =1<<17;               //使能中断,见书本208页,eint3的vic为17
   
    while(1);
    return 0;
}

你可能感兴趣的:(arm笔记2-arm嵌入式系统实验教程(3)实验2.24)