项目运行后总出错,该怎么解决

项目运行后总出错
小弟是ARM的新手。。按照书上的例子写了几个例子,但都出现一样的错误。

错误描述:
make通过后运行,运行完自己写的程序后出现错误提示:未定义的指令.如下:
    Processor   ARM7TDMI   raised   an   exception.
    Cause:   Undefined   instruction


这个实例项目只包含两个文件:一个是汇编用于初始化,一个是C语言。。
编译器是使用ADS1.2的,PC没接任何外部设备

汇编文件的源码:

IMPORT   |Image$$RO$$Limit|
IMPORT   |Image$$RW$$Base|
IMPORT   |Image$$ZI$$Base|
IMPORT   |Image$$ZI$$Limit|
IMPORT   Main
AREA   Start,CODE,READONLY
ENTRY
CODE32
Reset LDR   SP,=0x40003f00
LDR   R0,=|Image$$RO$$Limit|
LDR   R1,=|Image$$RW$$Base|
LDR   R3,=|Image$$ZI$$Base|
CMP   R0,R1
BEQ   LOOP1
LOOP0   CMP   R1,R3
LDRCC   R2,[R0],#4
STRCC   R2,[R1],#4
BCC   LOOP0
LOOP1   LDR   R1,=|Image$$ZI$$Limit|
MOV   R2,#0
LOOP2   CMP   R3,R1
STRCC   R2,[R3],#4
BCC   LOOP2
B   Main
MOV   R2,#0
END


C文件的源码:

#define   uint8   unsigned   char
#define   uint32   unsigned   int
#define   dd   unsigned   int
#define   N   100
uint32   sum;
void   Main(void)
{
uint32   i;dd   da;
sum=0;
for(i=0;i <=N;i++)
{
sum+=i;
}
//while(1);

//da=1;
return;
}



------解决方案--------------------
呵呵,楼主看来是从软件转来的,你原来设计软件都是开发工具给你做了默认的循环程序,比如vc的winmain,如果没有循环,程序结束后,程序计数器只会接着往下运行,程序之外的是无定义指令,自然会出错。