1.打开 CodeWarrior
开始->所有程序->ARM Developer Suite v1.2->CodeWarrior for ARM Developer Suite
2.新建一个mini2440裸机工程
2.1点击File->New.. 在Project 选项签中,选择 ARM Executable Image。然后在右侧”Project name”中填写一个工程名。以 mini2440 作为工程名,点击”Set...”,选择工程存放的目录。填写工程名和选择路径后,点击确定。这样,就完成了新建工程。
3.为工程新建源码文件
3.1点击File->New.. 选择File选项签,选择Text File,然后在右侧“File name”中填写源码文件名start.s。在“Location”中点击“Set...”选择源码文件存放的路径,选择前面建立的mini2440目录下。勾选“Add to Project”,“Project”选择mini2440.mcp。“Targets”选项中将Debug,DebugRel,Release全部选中。
4.打开调试设置窗口
4.1点击Edit->DebugRel Settings,
4.2选择Target->Target Settings,设置Post-linker为“ARM fromELF”。
4.3选择Language Settings->ARM Assembler,将“Architecture or Processor”改为“ARM920T”。
4.4选择Language Settings->ARM C Compiler,将将“Architecture or Processor”改为“ARM920T”。
4.5选择Linker->ARM Linker,选择”Linktype为Simple”,将”Simple image”的”RO Base”改为0x00000000。
5.编辑start.s,编写汇编程序点亮mini2440的LED。
6.工程编译
设置完成后,点击Project->Make开始编译整个工程。编译过程当中,会弹出一个 Building 的工程对话框显示编译当前的状况。
7.使用AXD调试
编译完成后,点击Project->Debug开始通过Jlink调试。
start.s代码如下:
GPBCON EQU 0x56000010 ;定义GPIO的GPB控制寄存器GPBDAT EQU 0x56000014 ;定义GPIO的GPB数据寄存器
LED1 EQU 1<<(5*2) ;定义LED1控制端口
LED2 EQU 1<<(6*2) ;定义LED2控制端口
LED3 EQU 1<<(7*2) ;定义LED3控制端口
LED4 EQU 1<<(8*2) ;定义LED4控制端口
LEDS EQU LED1 | LED2 | LED3 | LED4
LED1_ON EQU ~(1<<5)
LED2_ON EQU ~(1<<6)
LED3_ON EQU ~(1<<7)
LED4_ON EQU ~(1<<8)
CODE32
AREA Init,CODE,READONLY
ENTRY
ldr r0, =0x53000000 ;关闭WATCHDOG,禁止CPU重启
mov r1, #0x0
str r1, [r0]
ldr sp, =1024 * 4 ;设置堆栈
ldr r0, =GPBCON ;设置GPB的5,6,7,8(对应LED1,LED2,LED3,LED4)为输出
mov r1, #LEDS
str r1, [r0]
ldr r0, =GPBDAT ;写GPB数据寄存器,点亮一个LED
mov r1, #LED1_ON
str r1, [r0]
loop
b loop
END