IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 使用CodeLite配合OpenOCD和GDB调试Nuttx(基于STM32) -> 正文阅读

[嵌入式]使用CodeLite配合OpenOCD和GDB调试Nuttx(基于STM32)

使用CodeLite配合OpenOCD和GDB调试Nuttx(基于STM32)

环境

  • Debug tool, OpenOCD V0.11
  • JLink V9, Firmware 2021 May 7
  • Target board, STM32F103-minimum board
  • Host OS, Ubuntu 20 on VMware

依赖

  • gdb-multiarch
  • CodeLite

过程

CodeLite工程向导

首次启动会有Setup向导,后面如果想重新打开向导也可以在Help->Run the Setup Wizard中重新运行

以下是重要过程截图,最重要的是要确认已经安装了arm-none-eabi 交叉编译工具

image-20210811123129782

image-20210811123241325

新建工作区和工程

Workspace->New Workspace

image-20210811123748558

确认后就在nuttx-space下创建了一个名为nuttx-codelite的工作区,在IDE左侧刚生成的nuttx-codelite工作区右键New->New Project

image-20210811124050843

image-20210811124118966

image-20210811124136244

创建完工作区和工程后如下

image-20210811124214444

导入工程文件

在上面stm32工程上右键Import Files From Directory

image-20210811124339198

导入ok后如下

image-20210811124438638

编译 -工程设置

在stm32工程右键->Settings,将Working Directory改为nuttx目录,然后Clean改为make distclean(跟实际命令行一致)

image-20210812203901433

配置完成后应该就可以编译了,工程右键Build(或快捷键F7),如下提示表示编译成功

image-20210812203728979

调试 -全局设置

在菜单栏Settings->Build Settings设置如下,设置Gdb位置

image-20210812210630808

调试 -工程设置

设置如下gdb server地址和debug前需要让host执行的命令

image-20210812210715796

和如下gdb命令,根据实际需要写入,设置断点在nx_start(或者更早的可以设置__start)

mon reset halt
load nuttx
file nuttx
b nx_start

image-20210812210737347

调试 -启动gdb服务

在host终端,执行如下命令,用OpenOCD打开GDB服务

openocd -f openocd-tcl/jlink-swd-stm32f10x.cfg

image-20210812205031423

调试 -menuconfig配置

在host终端下,nuttx目录下执行如下,在Build Setup-> Debug Options中勾选Generate Debug Symbols,以便生成符号用于调试

make menuconfig

image-20210812205404478

调试 -Codelite Debug

上述配置完成后,可以点击Debugger(或者F5快捷键),等待十多秒(主要耗时在load nuttx上),可以看到程序停在nx_start断点处了

注意,debug时已经把程序下载到stm32 flash中了,也就是load nuttx命令

image-20210812211020913

参考

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-08-13 12:17:17  更:2021-08-13 12:17:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 20:55:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码