ARM平台裸板GDB调试
来源:互联网 发布:淘宝女装模板 编辑:程序博客网 时间:2024/06/04 20:36
ARM平台裸板GDB调试
概述
调试方式
ARM平台下裸板调试,一般分为两种。
* ARM内核的MCU开发和调试
* ARM内核的SOC的bootloader开发和调试
MCU的开发多是基于Windows系统。使用Keil(MDK)、芯片厂商基于eclipse的改造的IDE进行开发。当然也有开发者自己搭建环境进行开发的(gcc+编辑器等方式)。
SOC bootloader调试多是使用Linux系统。使用GCC或者ARMCC进行编译。
编译器选择
arm的编译有两种:
使用ARMCC编译器的多是在Keil(IDE)平台下开发,当然Linux也有(如高通平台的modem模块)不过用的少。
gcc免费开源,在Windows和Linux下的使用者都很多。
调试工具
不管哪种方式,在ARM平台下的裸板开发基本都会使用JTAG接口的仿真器进行在线调试。
不管是Jlink还是STlink等,都是开发者常用的JTAG接口的仿真器。
现在ARM内核的芯片和仿真器基本都支持SWD模式,毕竟只用四个引脚,硬件电路设计方便。
小结
本文将介绍在使用Jlink和GDB在线调试的方式。
Jlink的使用
Jlink安装
在Jlink官网https://www.segger.com/可以下载到最新Jlink软件。根据自己的操作系统选择对应的即可。
Jlink GDB Server
Jlink GDB Server是用来实现JLink和GDB程序的通信的server程序。其使用socket的方式来实现和GDB的通信,十分灵活方便。
不仅可以在本地通过localhost:port方式,也可以在局域网内联网调试。
这极大方便了使用虚拟机的用户。既可以使用纯WIN或者纯Linux的开发,也可在双系统下的调试开发。
以window下的Jlink为例,运行Jlink GDB Server程序。
点击OK运行
等GDB连接上红色就变为绿色了
GDB的使用
以下内容引用自萌萌哒兔纸酱-CSDN
运行GDB
$ arm-none-eabi-gdb
进入如下界面
GNU gdb (GNU Tools for ARM Embedded Processors) 7.8.0.20150604-cvsCopyright (C) 2014 Free Software Foundation, Inc.License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>This is free software: you are free to change and redistribute it.There is NO WARRANTY, to the extent permitted by law. Type "show copying"and "show warranty" for details.This GDB was configured as "--host=i686-w64-mingw32 --target=arm-none-eabi".Type "show configuration" for configuration details.For bug reporting instructions, please see:<http://www.gnu.org/software/gdb/bugs/>.Find the GDB manual and other documentation resources online at:<http://www.gnu.org/software/gdb/documentation/>.For help, type "help".Type "apropos word" to search for commands related to "word".(gdb)
连接端口
若是本地如下,若是局域网内则填写ip:port
(gdb)target remote localhost:2331
具体的端口号见Jlink GDB Server上面的提示(如上一个图中显示的是“2331”)
进行初始化操作
(gdb)monitor reset(gdb)monitor halt
这里monitor意为这向连接的外部软件发送指令,此处即向Jlink发送指令,因为reset halt等指令不是GDB的内部指令
装载调试程序
(gdb)file <编译生成的elf文件>(gdb)load
注意生成elf文件时要加-g选项,不然你只能看到汇编代码了 T_T
进行调试
网上关于gdb调试的教程已经很多,我这里再画蛇添足一下。
gdb的GUI调试界面
(gdb)-
- ARM平台裸板GDB调试
- windows 下构建 Eclipse gdb 调试平台调试arm程序
- 基于hisilicon的arm平台搭建gdb+gdbserver调试环境
- 基于hisilicon的arm平台搭建gdb+gdbserver调试环境
- ARM平台移植GDB
- ARM板上gdb +gdbserver调试.txt
- linux-arm gdb调试
- gdb远程调试 arm
- GDB调试ARM
- GDB调试ARM程序
- 编译arm-linux-gdb和远程调试arm板程序
- 编译arm-linux-gdb和远程调试arm板程序
- 编译arm-linux-gdb和远程调试arm板程序
- 编译arm-linux-gdb和远程调试arm板程序
- GDB+GdbServer: ARM程序调试
- GDB+GdbServer: ARM程序调试
- GDB+GdbServer: ARM程序调试
- gdb 远程qemu-arm调试
- 新唐-N32926板子使用nfs
- java方法调用(1)
- redux学习总结
- CCF认证201703-3 Markdown
- HDU 5924-Mr. Frog’s Problem
- ARM平台裸板GDB调试
- RYU 删除流表项 删除不掉 问题
- Tomcat 8熵池阻塞变慢详解
- Eclipse for j2e 报错no opencv_* in java.library.path的解决方法
- JS技术(2)--表单验证
- 正阅读微信小说分销系统-视频教程-4.数据统计 包含图文教程
- log4j
- Arduino/Microduino与OneNet平台及web服务器端的交互
- Java多线程同步的五种方法