"本文档主要介绍了如何将基于ADS的Mini2440程序移植到RealView MDK(Keil uVision)环境中,并使用Jlink作为调试工具,针对SDRAM调试和中断支持进行了详细阐述。作者指出,由于ADS的兼容性和稳定性问题,选择MDK作为替代方案,强调了MDK的一些优势,如启动代码生成向导和软件模拟器等功能。"
在进行程序移植时,首先要确保拥有正确的开发环境。在这个案例中,使用的环境包括:
1. 操作系统:Windows XP SP3
2. Jlink驱动:版本4.08
3. Keil MDK for ARM:版本4.11 Pro
4. 终端连接工具:Xshell 3.0
5. 下载工具:DNW(随Mini2440开发板提供的)
6. 开发板:Mini2440,配置为2M NOR Flash、64MB SDRAM和256MB NAND Flash
7. 测试程序:2440test-20100609(同样随Mini2440开发板提供)
移植的原因主要是因为ADS的局限性,如在新操作系统中的不兼容问题以及调试时的不便。MDK(RealView MDK)作为Keil公司被ARM收购后的产品,提供了以下显著优势:
1. **启动代码生成向导**:MDK的μVision4能自动生成启动代码,这减少了手动编写汇编代码的难度。用户可以通过图形界面方便地调整启动配置,如看门狗设置、内存分配和CPU频率。
2. **软件模拟器**:MDK包含了一个设备模拟器,允许开发者在没有硬件的情况下进行软件开发和调试,提高了开发效率。
3. **中断支持**:在ADS中调试SDRAM中的程序可能存在困难,但MDK提供了更好的中断处理机制,使得在SDRAM中调试更为顺畅。
移植步骤通常涉及以下几个关键部分:
1. **环境配置**:安装并配置MDK,确保所有驱动和工具正确安装。
2. **代码迁移**:将ADS项目中的源代码转移到MDK项目中,注意不同编译器的语法差异和库函数的兼容性问题。
3. **启动代码调整**:根据MDK的启动代码生成向导,生成或修改启动汇编代码,以适应新的开发环境。
4. **中断处理**:更新中断服务例程,确保在MDK环境下中断功能的正常工作。
5. **编译与调试**:使用MDK进行编译和链接,通过Jlink下载到Mini2440开发板上,并使用Xshell进行串口通信观察程序运行状态。
6. **错误排查**:如果遇到问题,需定位错误并进行修正,可能涉及到内存配置、中断向量表、寄存器设置等多个方面。
完成以上步骤后,应能成功将基于ADS的程序移植到MDK环境中,并利用Jlink进行有效的调试。这种移植对于那些希望继续使用Mini2440开发板但又希望升级到更现代开发工具的工程师来说,是非常有价值的。