|  | 
| 代码如下: //Startup.s
 ; 起动文件。初始化C程序的运行环境,然后进入C程序代码。
 
 
 IMPORT        Main                ; 声明C程序中的Main()函数
 
 AREA        Start,CODE,READONLY        ; 声明代码段Start
 ENTRY                                ; 标识程序入口
 CODE32                                ; 声明32位ARM指令
 
 Reset        LDR                SP,=0x40003F00
 
 
 
 B                Main                ; 跳转到C程序代码Main()函数
 
 END
 
 //Main.c
 
 #include "stdio.h"
 
 #define GPHCON (*(volatile unsigned long *)0x56000070)
 #define GPHDAT  (*(volatile unsigned long *)0x56000074)
 #define GPHUP  (*(volatile unsigned long *)0x56000078)
 #define ULCON0  (*(volatile unsigned long *)0x50000000)
 #define UCON0  (*(volatile unsigned long *)0x50000004)
 #define UFCON0  (*(volatile unsigned long *)0x50000008)
 #define UMCON0  (*(volatile unsigned long *)0x5000000c)
 #define UTRSTAT0  (*(volatile unsigned long *)0x50000010)
 #define UTXH0   (*(volatile unsigned long *)0x50000020)
 #define URXH0   (*(volatile unsigned long *)0x50000024)
 #define UBRDIV0   (*(volatile unsigned long *)0x50000028)
 
 
 
 //LED设置
 #define GPBCON (*(volatile unsigned long *)0x56000010)
 #define GPBDAT (*(volatile unsigned long *)0x56000014)
 
 //设置LED接口为输出
 #define GPB5_out (1<<(5*2))
 #define GPB6_out (1<<(6*2))
 #define GPB7_out (1<<(7*2))
 #define GPB8_out (1<<(8*2))
 
 #define PCLK 50000000
 #define UART_CLK PCLK
 #define UART_BAUD_RATE 115200
 #define UART_BRD ((UART_CLK / (UART_BAUD_RATE*16))-1)
 
 void uart0_init(void)
 {
 GPHCON |=0Xa0;
 GPHUP =0X0c;
 ULCON0=0x03;
 UCON0 =0x05;
 UFCON0=0x00;
 UMCON0=0x00;
 UBRDIV0=UART_BRD;
 }
 
 void putc12(unsigned char c)
 {
 while(!(UTRSTAT0 & 0x04));
 
 UTXH0=c;
 }
 
 
 unsigned char getc12(void)
 {
 while(!(UTRSTAT0 & 0x01));
 
 return URXH0;
 }
 void sleep(int i)
 {
 int j;
 for(j=0;j<=i;j++);
 }
 
 int Main(void)
 {
 unsigned char c;
 GPBCON=GPB5_out | GPB6_out | GPB7_out | GPB8_out;
 
 uart0_init();
 GPBDAT ^= (15<<5);
 while(1)
 {
 c=getc12();
 sleep(10000);
 if(c=='1')
 {
 GPBDAT ^= (1<<5);
 putc12(c);
 }
 if(c=='2')
 {
 GPBDAT ^= (2<<5);
 putc12(c);
 }
 if(c=='3')
 {
 GPBDAT ^= (4<<5);
 putc12(c);
 }
 if(c=='4')
 {
 GPBDAT ^= (8<<5);
 putc12(c);
 }
 }
 return 0;
 }
 
 用AXD调试的时候一切如程序设计一样正常运行,但是烧入NAND Flash中 就无反应或者不能按照程序设计流程运行。
 1。请问这是什么原因啊?
 2.当在AXD中调试的时候程序的运行环境和烧入NAND Flash中,代码的运行环境有什么区别吗?
 
 菜鸟问题,麻烦高手指教  呵呵……
 | 
 |