00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "aduc7026.h"
00021
00022 #include "global.h"
00023
00024 #include "processor.h"
00025
00026
00027 void processorInit( void)
00028 {
00029
00030 PLLKEY1 = 0xAA;
00031 PLLCON = 0x01;
00032 PLLKEY2 = 0x55;
00033
00034 POWKEY1 = 0x01;
00035 POWCON = 0x00;
00036 POWKEY2 = 0xF4;
00037 }
00038
00039 unsigned int processorDisableInt(unsigned int cpsr_mask)
00040 {
00041 unsigned int cpsr;
00042
00043 asm volatile ("mrs %0, cpsr" : "=r" (cpsr) : );
00044
00045 asm volatile ("msr cpsr, %0" : : "r" (cpsr|(cpsr_mask&CPSR_MASK_INT)) );
00046
00047 return cpsr;
00048 }
00049
00050 unsigned int processorEnableInt(unsigned int cpsr_mask)
00051 {
00052 unsigned int cpsr;
00053
00054 asm volatile ("mrs %0, cpsr" : "=r" (cpsr) : );
00055
00056 asm volatile ("msr cpsr, %0" : : "r" (cpsr&~(cpsr_mask&CPSR_MASK_INT)) );
00057
00058 return cpsr;
00059 }
00060
00061 unsigned int processorRestoreInt(unsigned int cpsr_orig)
00062 {
00063 unsigned int cpsr;
00064
00065 asm volatile ("mrs %0, cpsr" : "=r" (cpsr) : );
00066
00067 asm volatile ("msr cpsr, %0" : : "r" ( (cpsr&~&CPSR_MASK_INT) | (cpsr_orig&CPSR_MASK_INT)) );
00068
00069 return cpsr;
00070 }