s3c6410裸机调试方式总结

裸机程序即不带操纵系统的汇编和C程序开发。一般使用ARM公司的RVDS调试工具,通过Jlink连接,可以方便的在线进行断点调试和寄存器的状态值跟踪。网上和光盘资源里提供了很多的RVDS工程类代码,可以方便学习调试。在光盘里友善之臂也提供了一些GNU makefile的工程,由于一些编译器语法的不同,无法方便迁移到RVDS工程里,所以友善之臂也提供了MiniTools工具进行裸机程序下载验证,此方法无法在线调试,只能提供烧录的方式跟踪程序。

s3c6410裸机调试方式总结_第1张图片

MiniTools进入镜像下载方式:(前提需要连接MicroUSB线)

1. SD-Flasher工具将Superboot烧写到SD卡中;

2. 将光盘中的images/FriendlyARM.ini文件拷贝到SD卡中的images目录下;

3. 编辑SD卡中的images/FriendlyARM.ini文件文件,增加以下内容:

USB-Mode = yes

连接步骤:

1. 将开发板上的S2开关切换到SD卡或NOR flash启动模式,2440请先拨出SD卡或保证 USB-Mode=yes;

2. 上电开机,开发板将进入USB下载模式,用USB线连接电脑与开发板;

3. 连接成功,2106410LCD上会显示"USB Mode: Connected";

 

这种方式需要配合SD卡,这么多台设备,程序演示不方便。在没有SD卡的情况下,可以通过Tiny6410上的K1按键来进入下载模式。

步骤:按下K1键然后按下开机按键,此时系统进入下载模式。可以选择裸机程序进行下载。(前提:系统以NAND Flash启动,Uboot需要烧写SuperBoot程序)

 s3c6410裸机调试方式总结_第2张图片

裸机程序的调试方式:基于内存和基于FLash。基于内存调试,有些程序的地址方式有问题,可以运行结果有问题,基于Flash方式不要把Superboot给改掉。否则下次无法脱SD卡进入下载模式。

 

基于内存的方式,我们可以不用Minitools工具,也不需要连接MicroUSB,在笔记本USB紧张的时候,可以如此,之后的boot loader部分的调试方式也可以如此。减少因为硬件连接或者驱动不匹配,权限设置引起的各种奇葩问题。这种方式只需要通过串口线,通过网口,使用tftp命令下载程序到内存中即可。

这种方式的前提需要NAND flash已经烧写了u-boot_nand-ram256.bin程序。

连接笔记本和开发板Tiny6410连接网口和串口,然后开机在Hit any key to stop autoboot:  2 ,后面数字为零之前,按下按键,进入Uboot命令模式。

 s3c6410裸机调试方式总结_第3张图片

 

此后系统进入:

s3c6410裸机调试方式总结_第4张图片

按下q进入Uboot命令模式。

输入命令pri

 s3c6410裸机调试方式总结_第5张图片

之后配置网口跟笔记本统一网段,笔记本打开tftp server,

 s3c6410裸机调试方式总结_第6张图片

之后我门把需要调试的程序放入current Directory文件夹下。

在设备端输入:

s3c6410裸机调试方式总结_第7张图片

0x50000000 的地址跟光盘里的连接地址保持一致。

 

接着go 0x50000000 就可以查看运行结果,本来应该输出打印信息并进行相关调试,测试运行之后,没有相应的打印信息输出,这种方式有待进一步验证。

 

在友善之臂的Uboot里已经含有类似功能:

s3c6410裸机调试方式总结_第8张图片

[a] Download Absolute User Application,这种方式应该可以,只是在64位系统上运行dnw.exe,无法找到USB端口(需要连接MicroUSB),还需要在XP上验证一下。

 

 

还有通过OpenJTag来调试,配置过程比较繁琐,也需要对应的连接器件,好多是可以在线跟踪调试。


有时间再验证下。

 

你可能感兴趣的:(arm/Linux)