1、打开CodeWarrior for ARM Developer Suite软件
2、新建工程,工程类型为ARM Executalbe Image,注意工程名称和路径一定不能用中文,否则无法打开
3、向工程中添加文件,[file]->new,选择File标签页,输入文件名,如main.c,选择Add to Project复选框,在Targets中只选择DebugRel(生成的镜像里只包含基本的信息)
4,添加已有的系统文件,将系统文件复制到工程目录下,在工程页面中选择【Project】菜单下的Add files,加入相应的文件,在Targets中选择DebugRel。
5、在工程页面中选择【Project】菜单下的Create Group,对文件进行分类
6、配置工程选项,点击工具栏上的【DebugRel Setting…】工具按钮,在DebugRel Setting对话框中进行配置:
[Target Settings]项将Post-Linker选择为ARM fromELF,则编译生成可执行文件
[Language Settings]项,将每种语言的Architecture or Processor都选择为ARM920T
[Linker]项,将ARM Linker下,Output标签页中的Simple image的RO Base(内存起始地址)改为0x30000000,将Options标签页下的Image entry point也改为0x30000000,将Layout标签页下的Object/Symbol填上2440init.o(初始化代码的目标文件,如初始化代码为2440init.s,编译后生成2440init.o),在Section中填写Init(在2440init.s中主函数的入口处,用AREA定义了一个名为Init的只读代码段),ARM Linker设置完成,在Equivalent Command Line中列出设置的参数;将ARM fromELF下,可执行文件的输出格式output format中选择Plain binary。
7、 系统代码分析
2440init.s:系统初始化代码,设置系统的工作方式,初始化堆栈和中断向量表,配置存储控制器,指定函数的入口地址等等
2440slib.s:主要是初始化MMU
2440lib.c:是一些系统函数,Delay函数为毫秒级延时函数,一些系统时钟函数
2440lib.h
2440addr.h:定义了所有的寄存器,中断请求标志位
def.h:定义了数据类型,和常用的Size的值
Uart.c:和串口相关的函数定义
uart.h