以下内容仅仅针对于FL2440开发板,对其他开发板仅能做参考。
文章导航:
1. 通过DMW 下载
DMW 的默认下载地址为0x3010 0000。
对于FL2440开发板,在使用DMW 下载时,应将地址设置为0x3080 0000 (USB)。
2. FL2440 自带BOOT
基于三星公板,可由ADS 直接在Windows 下编译。
支持双操作系统,通过USB 下载。
3. 空板下载 BOOTLOADER
1) 连接JTAG 调试版(使用JTAG 口)。
2) 安装驱动。
3) 通过sjf2440.exe/通过AXD (ADS调试器) 下载映像文件到第一分区。
※烧写BOOTLOADER 后,所有分区数据需要重新下载。
4. BOOTLOADER 的编译
1) 在ADS 中,选择[Project]-[Remove Object File] 删除之前编译生成的目标文件。
2) 选择[Project]-[Make (F7)] 全新编译BOOTLOADER。
.o 文件(目标文件)位置:[~/DebugRel/ObjectCode/]
.bin 文件(可执行二进制文件)位置:[~/DebugRel/]
.bin 文件即为BOOTLOADER,用于烧写至开发板BOOT 分区。
5. JTAG 调试时需要设置的编译选项
1) 菜单[Edit]-[DebugRel Settings] 或 ALT+F7 打开编译选项.
2.1) Language Settings - ARM Assembler 中Architecture or Process 设置成 ATM920T (对应于 s3c2440)
2.2) Language Settings - ARM C Compiler 中Architecture or Process 设置成 ATM920T (对应于 s3c2440)
2.3) Language Settings - ARM C++ Compiler 中Architecture or Process 设置成 ATM920T (对应于 s3c2440) (如有C++ 代码)
3) Linker - ARM Linker 中R0 Base 设置成 0x0 (s3c2440 从0x0 地址开始读取SRAM)
4) Make(F7) 后,在工程目录的“/debugRel” 下生成.axf 文件,其用于AXD 调试。
5.a) 如通过JLINK 调试,则在AXD-[Option]-[Configure target] 添加JLINK 目录下的“JLINKRDI.DLL”
5.b) 如通过JTAG 调试,则在AXD-[Option]-[Configure target] 添加“H-JTAG.DLL”
6) 同时,在Configure 中,将CPU 设置为 “No reset”
※7) 如在调试过程中发生“The Processor was reset” 的问题,可在AXD-[Option]-[Configure Processor]中去掉R(即不监视Reset)。
8) 连接硬件
9) 启动代理软件(H-JTAG/JLink GDB Server)
10) 打开开发板,此时开发板会等待,而不会进入操作系统。
11) 启动AXD(没错,之前开着的话要先关闭,在代理软件连接上开发板后启动AXD为好),选择[File]-[Load Image]-*.axf
6. 有关虚拟地址
Linux 或WinCE 启动后,会打开ARM 的MMU,这样AXD 操作的地址便成为虚拟地址。
所以要在操作系统启动前运行裸机程序。
7. 有关将裸机程序烧写到开发板中的APP 分区
1) 在DebugRel Setting 中,Target - Target Settings - Post-Linker 设置为“ARM fromELF”
2) 在DebugRel Setting 中,Linker - ARM Linker - R0 Base 设置为“0x3200 0000”(此地址由BootLoader 写死)
裸机程序将被拷贝到0x3200 0000 地址处并得到执行。