- 论坛徽章:
- 0
|
// *****************************************************************************
// SOFTWARE API DEFINITION FOR System Peripherals
// *****************************************************************************
typedef struct _AT91S_SYS {
AT91_REG AIC_SMR[32]; // Source Mode Register
AT91_REG AIC_SVR[32]; // Source Vector Register
AT91_REG AIC_IVR; // IRQ Vector Register
AT91_REG AIC_FVR; // FIQ Vector Register
........
AT91_REG PIOA_PER; // PIO Enable Register
AT91_REG PIOA_PDR; // PIO Disable Register
AT91_REG PIOA_PSR; // PIO Status Register
.......
AT91_REG PMC_PCER; // Peripheral Clock Enable Register
AT91_REG PMC_PCDR; // Peripheral Clock Disable Register
AT91_REG PMC_PCSR; // Peripheral Clock Status Register
........
} AT91S_SYS, *AT91PS_SYS;
typedef volatile unsigned int AT91_REG;
上面的AT91C_SYS是这个结构体的一个指针,它指向的上面定义的寄存器的基地址,这样就可以访问到所有的
寄存器了,我已经跟踪了各个状态寄存器的值,但PMC_PCSR中对应的设置时钟的位并不正确,即外设的时钟没有打开,对于其它寄存器的写入,从它们各自的状态寄存器来看是正常的。不知为什么这个PMC的设置不成功,如果时钟设置不成功的话,那么接受中断很有可以就是问题了,希望大家再指点一下 |
|