微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM S3C2410硬件手册上的重要部分

ARM S3C2410硬件手册上的重要部分

时间:11-11 来源:互联网 点击:

返回

sub lr, lr, #4 @计算返回地址

stmdb sp!, { r0-r12,lr } @保存使用到的寄存器 ? ?

ldmia sp!, { r0-r12,pc }^ @中断返回 @^表示将spsr的值赋给cpsr

对于FIQ,进入和返回的代码如下:

sub lr, lr, #4 @计算返回地址

stmdb sp!, { r0-r7,lr } @保存使用到的寄存器 ? ?

ldmia sp!, { r0-r7,pc }^ @快中断返回, @^表示将spsr的值赋给cpsr

中断返回之前需要清中断:往SUBSRCPND(用到的话)、SRCPND、INTPND中相应位写1即可。对于INTPND,最简单的方法就是“INTPND=INTPND”

Timer几个重要寄存器介绍

1、TCFG0和TCFG1:分别设为119和0x03

这连个寄存器用于设置“Control Logic”的时钟,计算公式如下:

Timer input clock Frequency = PCLK / {prescaler value+1} / {divider value}

对于TIMER0,prescaler value = TCFG0[7:0],divider value由TCFG1[3:0]确定(0b000:2,0b001:4,0b010:8,0b0011:16,0b01xx:使用外部TCLK0)。

对于本实验,TIMER0时钟 = 12MHz/(119+1)/(16) = 6250Hz

2、TCNTB0:设为3125

在6250Hz的频率下,此值对应的时间为0.5S

3、TCON:

TIMER0对应bit[3:0]:

bit[3]用于确定在TCNT0计数到0时,是否自动将TCMPB0和TCNTB0寄存器的值装入TCMP0和TCNT0寄存器中

bit[2]用于确定TOUT0是否反转输出(本实验未用)

bit[1]用于手动更新TCMP0和TCNT0寄存器:在第一次使用定时器前,此位需要设为1,此时TCMPB0和TCNTB0寄存器的值装入TCMP0和TCNT0寄存器中

bit[0]用于启动TIMER0

4、TCONO0:只读寄存器,用于读取当前TCON0寄存器的值

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top