📄 partest.c
字号:
#include <stdio.h>
__inline void enable_IRQ(void);
volatile int globvar;
void __irq myIRQhandler(void)
{
char *portlocn = (char *)0x123460;
globvar = *portlocn;
}
unsigned Install_Handler( unsigned routine, unsigned *vector )
{
unsigned vec, oldvec;
vec = ((routine - (unsigned)vector - 0x8) >> 2 );
vec = 0xea000000 | vec;
oldvec = *vector;
*vector = vec;
return (oldvec);
}
int main( void )
{
unsigned *irqvec = (unsigned *)0x18;
int *loc = (int*)0x123450;
Install_Handler( (unsigned)myIRQhandler, irqvec );
/* ENABLE IRQs - These are disabled by default in AXD under ADS 1.1 */
enable_IRQ();
printf( "Contents of location 0x123450 = %d\n", *loc );
do {
globvar = -1;
while( globvar == -1 );
printf( "Character read in from text file %c\n", globvar );
}
while( globvar != '.' );
return 0;
}
__inline void enable_IRQ(void)
{
int tmp;
__asm
{
MRS tmp, CPSR
BIC tmp, tmp, #0x80
MSR CPSR_c, tmp
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -