Ubuntu16.04自动交叉编译ARM平台gdb和ncurse

本文介绍了如何在Ubuntu16.04环境下,使用gdb-7.9.1和ncurses-6.0进行交叉编译,以提高嵌入式程序调试效率。通过自定义Makefile,设置编译器选项,简化了编译过程,生成的gdb可以直接在目标板上运行,进行高效远程调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编译环境:

Ubuntu16.04 + gdb-7.9.1.tar.gz + ncurses-6.0.tar.gz

传统的gdb调试是GDB+gdbserver,对于大型的嵌入式程序来说,这种方法效率过低,特别是追踪低概率的段错误时。并且对调试环境较高,有时候程序在客户手里或者测试部,不可能要求他们都装上同样开发环境等等。

我们要做的只需要把gdb和执行程序拷贝到U盘,然后从U盘运行执行程序,挂机等待。问题复现时会有core文件产生,此时我们直接运行./gdb app core, 随后输入bt即可查看函数调用关系和死机位置,也可以进行其他的gdb命令操作,非常方便。

编写的Makefile可实现自动编译安装ncurese和gdb,只需修改这两个变量,根据你编译器和编译选项填入即可:

OSDRV_CROSS ?= arm-linux-gnueabihf

OSDRV_CROSS_CFLAGS ?= -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp

然后执行make命令,如果提示某些命令找不到,请检查或安装即可,编译好后会生成一个gdb-xxx的执行文件,拷贝到你板子上直接运行即可。

Makefile主要命令讲解:

TOOLS_TOP_DIR := $(shell pwd)
#如果是其他版本,请修改TOOL_TAR_BALL和TOOL_TAR_BALL2,使其对应具体的程序包
TOOL_TAR_BALL := gdb-7.9.1.tar.gz
TOOL_TAR_BALL2 := ncurses-6.0.tar.gz
TOOL_NAME :&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值