0 背景
在S3C2400开发板裸板调试程序中,常用调试手段有三种:点灯法,串口打印,OpenOCD。OpenOCD又分命令行和图形界面(Eclipse)。点灯发和串口打印调试效率都很低,若能掌握第三种调试方法,会让开发过程变得高效。以下重点介绍图形界面的调试方法。
1 准备环境
01.gnu-mcu-eclipse-build-tools-2.9-20170629-1013-win64-setup
02.gcc-arm-none-eabi-7-2017-q4-major-win32-sha2.exe
03.eclipse-cpp-luna-SR2-win32-x86_64
04.OpenOCD with GUI setup.exe
1.1 下载gnu-mcu-eclipse-build-tools-2.9-20170629-1013-win64-setup
https://github.com/gnu-mcu-eclipse/windows-build-tools/releases
安装到crosstoolchain\tools目录
0x22 下载gcc-arm-none-eabi-7-2017-q4-major-win32-sha2.exe
https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads
安装到crosstoolchain\arm-embed目录
0x23 添加环境变量
0x24 测试
0x31 eclipse下载eclipse-cpp-luna-SR2-win32-x86_64
http://wiki.eclipse.org/Older_Versions_Of_Eclipse
安装插件网址http://opensource.zylin.com/zylincdt
Help->Install new software
点下一步即可安装成功,啰嗦一句,最新版本的eclipse不支持此插件安装。
安装完毕后,点File->new->C Project
创建好leds工程后,在工程上点右键菜单选择Import->FileSystem->选择要导入的裸板程序即可开始编译和调试。编译之前,修改Makefile文件,将编译程序都修改为arm-none-eabi-,而-g是为了后面调试elf执行程序做准备,其作用是让elf执行程序包含调试信息,如下图:
不出意外,选工程点右键Build Project会报错Make no rule 之类的,此时选择工程点右键选择Properties->c/c++ Build,在Behavior选项卡里面取消all,如下图:
修改完后编译成功
0x22 下载安装测试OpenOCD with GUI setup.exe
2 调试配置
Run->debug configuration
顺利进行动态调试
3 源码调试值得注意的点
1. 编译elf文件要带-g。
2. lds文件要指定.text,.rodata,.data,.bss,并且链接地址在0x30000000,即SDRAM上。
3. S3C244gdb.ini是初始化SDRAM,所以GDB Command要带上这个文件配置。
4. 点Debug之前要把OpenOCD GUI打开并连接。