读书人

TQ210裸机编程(四)按键(中断法)

发布时间: 2013-10-14 12:54:46 作者: rapoo

TQ210裸机编程(4)——按键(中断法)

S5PV210有4个向量中断控制器(VIC),每个向量中断控制器包含32个中断源。

当某个中断源产生中断时,CPU会自动的将VICxVECTADDRy(x=0,1,2,3,y=0-31)寄存器的值赋给VICxADDRESS(x=0,1,2,3),因此我们可以把我们的中断处理函数的地址赋给VICxVECTADDRy寄存器,

比如我们有个函数

void key_handle()
{
……
}

我们把key_handle 函数的值赋给VIC0VECTADDR0(外部中断0)

VIC0VECTADDR0 =key_handle;


当外部中断0触发中断时,CPU会自动的将VIC0VECTADDR0的值赋给VIC0ADDRESS,并跳转到这个地址去执行,即执行函数key_handle。


代码如下:

start.S

key.bin: start.o key.oarm-linux-ld -Ttext 0x20000000 -o key.elf $^arm-linux-objcopy -O binary key.elf $@arm-linux-objdump -D key.elf > key.diskey.o : key.carm-linux-gcc -c $< -o $@start.o : start.Sarm-linux-gcc -c $< -o $@clean:rm *.o *.elf *.bin *.dis

将程序下载到内存运行

按下key1,LED1点亮,再次按下key1,LED1熄灭

按下key2,LED2点亮,再次按下key2,LED2熄灭

读书人网 >编程

热点推荐