S3C2440 流水灯 (TQ2440)

首先 ARM的汇编启动代码  这是根据  韦东山老师  的程序改编的. 

start.s汇编程序

/////////////////////////////////////////////////////////////////////////////////////
  AREA    Init,CODE,READONLY

IMPORT  main 


ENTRY

start
    
    ldr     r0, =0x56000010    ; WATCHDOG寄存器地址
     
    mov     r0, #0x0                     
   ; str   r1, [r0]             ; @ 写入0,禁止WATCHDOG,否则CPU会不断重启
    ldr     sp, =0x30000000    ; @ 设置堆栈,注意:不能大于4k, 因为现在可用的内存只有4K
                               ; @ nand flash中的代码在复位后会移到内部ram中,此ram只有4K
    bl      main               ; @ 调用C程序中的main函数
    
halt_loop


    b halt_loop
            
    end
///////////////////////////////////////////////////////////



下面是main.C程序  

#include "2440addr.h"


#define uint unsigned int


#define datemun 200


//#define rGPBCON      (*(volatile unsigned long *)0x56000010)
//#define rGPBDAT      (*(volatile unsigned long *)0x56000014)


/*
 * LED1-4对应GPB5、GPB6、GPB7、GPB8
 */
 
#define GPB5_out        (1<<(5*2))
#define GPB6_out        (1<<(6*2))
#define GPB7_out        (1<<(7*2))
#define GPB8_out        (1<<(8*2))


/*
 * K1-K4对应GPG11、GPG3、GPF2、GPF0
 */


void delay(uint m)   //延时程序
{
uint x,y;
for(x=0;x


工程就这两个文件 


让我头疼的是DebugRel settings  




下面的都选ARM920T



设置程序入口




工程就是这么建立的 OVER。。。。。。

你可能感兴趣的:(S3C2440,硬件)