|
源代码:
#include <errno.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#define refextcon (*(volatile unsigned *)0x03FF303c)
#define extdbwth (*(volatile unsigned *)0x03FF3010)
#define extacon0 (*(volatile unsigned *)0x03FF3008)
#define adc_ch0 (*(volatile unsigned char *)0x03F00060) /*adc channel 0*/
#define adc_ch1 (*(volatile unsigned char *)0x03F00061) /*adc channel 1*/
#define adc_ch2 (*(volatile unsigned char *)0x03F00062) /*adc channel 2*/
#define adc_ch3 (*(volatile unsigned char *)0x03F00063) /*adc channel 3*/
#define adc_ch4 (*(volatile unsigned char *)0x03F00064) /*adc channel 4*/
#define adc_ch5 (*(volatile unsigned char *)0x03F00065) /*adc channel 5*/
#define adc_ch6 (*(volatile unsigned char *)0x03F00066) /*adc channel 6*/
#define adc_ch7 (*(volatile unsigned char *)0x03F00067) /*adc channel 7*/
#define led1 (*(volatile unsigned char*)0x03F00000) /*ds4*/
#define led2 (*(volatile unsigned char*)0x03F00010) /*ds3*/
#define led3 (*(volatile unsigned char*)0x03F00020) /*ds2*/
#define led4 (*(volatile unsigned char*)0x03F00030) /*ds1*/
#define maxline 5
extern int errno;
unsigned char led[11]={0xb7,0x06,0x73,0x57,0xc6,0xd5,0xf5,0x07,0xf7,0xd7,0x0};
/*error*/
report_error(char *s)
{
printf("receiver:error in %s,errno=%d\n",s,errno);
perror("error type");
exit(1);
}
/*delay*/
delay(int x)
{
int i,j,k;
for(i=0;i<=x;i++)
for(j=0;j<255;j++)
for(k=0;k<255;k++);
}
/*change the binary to char*/
disp(char adc,char charnum[4])
{
char temp;
temp=adc;
adc=adc/1000;
led1=led[adc];
charnum[3]=48+adc;
temp=temp-1000*adc;
adc=temp;
adc=adc/100;
led2=led[adc];
charnum[2]=48+adc;
temp=temp-100*adc;
adc=temp;
adc=adc/10;
led3=led[adc];
charnum[1]=48+adc;
temp=temp-10*adc;
led4=led[temp];
charnum[0]=48+temp;
printf("snum=%s",charnum);
}
main()
{
unsigned char adc;
char snum[4],gnum[maxline];
refextcon=0xce2783f0;
extdbwth=0x05503002;
extacon0=0x0fffffff;
while(1)
{
adc_ch1=0x0;
delay(10);
adc=adc_ch1;
disp(adc,snum);
}
}
错误信息:
Internal error: unknown data abort code: e0c11001
CPU: 0
pc : [<00000000>] lr : [<00000000>] Not tainted
sp : 00000000 ip : 00000000 fp : 00000009
r10: ffffffff r9 : 00000000 r8 : 00000000
r7 : 001713dc r6 : 00000000 r5 : 00000000 r4 : 00000044
r3 : 00000004 r2 : ffffffff r1 : a0000010 r0 : d4050000
Flags: nzcv IRQs on FIQs on Mode FIQ_26 Segment kernel
Control: 0
Process ss.o (pid: 52, stackpage=00e67000)
Stack:
Backtrace: frame pointer underflow
Code: 0a000004 0a000004 (ef9f0000) ea0000dd e59ff410
pid 52: failed 11 |
|