基于ESP32C3处理器创建Hello World工程-并使用OpenOCD进行Debug

1、编程环境

1.1、硬件

序号

名称

描述

备注

1

ESP-C3-12F-KIT

深圳安信可开发的基于其自家ESP-C3-12F模块的开发板。

淘宝购买

2

ESP-Prog

乐鑫官方推出基于FT2232HL接口芯片的JTAG调试器。

淘宝购买

3

杜邦线若干

用于将ESP-Prog的JTAG调试信号接到开发板

1.2、软件

序号

名称

描述

备注

1

IDF-4.3.1软件开发框架

这是由乐鑫官方推出的针对处理器:ESP32、ESP32C3、ESP32S2、ESP32S3系列芯片的软件开发框架,该框架已经直接集成了底层驱动层、FreeRTOS、WiFi、蓝牙等软件包,是一个非常好的SOC开发框架。

2

OpenOCD版本

v0.10.0-esp32-20211111

采用下载IDF软件包后,利用其目录下的安装脚本进行安装后获得的版本,直接下载官方离线包安装后获得的OpenOCD版本为20210401。

3

Eclipse集成软件开发环境

版本为Eclipse-2021-12,从Eclipse官网下载后并自行安装了乐鑫官方推出的针对ESP32系列处理器的插件。

乐鑫官方有离线安装包的下载链接,下载安装后有Eclipse,但版本低一些。

4

ESP-Prog驱动程序

JTAG接口驱动版本:6.1.7600.16385

使用FTDI官方的驱动,插入ESP-Prog后会在系统中识别出二个USB串口设备,需要下载zadig(可自行上网搜索) USB驱动工具修改其第一个设备驱动为WinUSB设备。

 2、软件编程记录

第1步,创建一个新的软件工程。

  如图2-1-1,启动Eclipse后,点击“Create a project”菜单开始创建软件工程。

     

如图2-1-2所示,选择”Espressif IDF Project”软件工程类型,然后点击“Finish”按钮进入下一步。

如图2-1-3所示,选择使用模板方式,选择“hello world”模板,然后点击“Finish”按钮进入下一步。

 如图1-1-3所示,选择“esp32c3”处理器。

 如图2-1-5所示,点击“Project->Build All”进行软件工程的编译,需要等待好几分钟,直至软件工程编译完成。

第2步,串口下载代码测试运行。

(1)确认当前开发板的USB串口连接到PC端所使用的串口号。

 如图2-2-1-1所示,点击齿轮图标进入设置界面。

 如图2-2-1-2所示,查询所使用的串口号是否控制面板中显示的开发板所占用的串口端口一致,如果不一样的,请在此修改一下串口号,然后点击“Finish”按钮返回。

(2)使用串口进行代码下载。

 如图2-2-2-1所示,找到红色框中的“debug“图标,点击进行代码下载。

如图2-2-2-2所示,等待代码下载完成,然后程序就开始运行了。

 

 如图2-2-2-3所示,打开一个串口助手调试软件,配置好串口号(之前下载代码所使用的串口号)、波特率(115200)、数据位(8位)、停止位(1)、校验位(NONE)、流控制(NONE)等参数,然后打开串口,即可收到来自于ESP32C3目标板的log信息。

(3)使用OpenOCD通过JTAG代码接口调试代码。

当前使用的是ESP-Prog调试器,JTAG接口的信号线连接关系参考以下的表格:

序号

信号名称

ESP-Prog的JTAG接口引脚信号

ESP32C3的GPIO口

1

TMS

2

IO4

2

TCK

4

IO6

3

TDO

6

IO7

4

TDI

8

IO5

如图2-2-3-1所示,点击“debug“按钮打开下拉菜单,点击”Debug Configiguretions…”菜单进入配置界面。

如图2-2-3-2所示,选中“ESP-IDF GDB OpenOCD Debugging”,然后点击“2”处的图标进入配置界面。

如图2-2-3-3所示,点击“Browse”按钮找到”hello_world”软件工程,点击“search Project..”找到“hello_world.elf”文件,然后点击”Debugger“进入仿真器配置界面。

如图2-2-3-4所示,点击“Browse“配置OpenOCD启动文件,在”Config options“编辑框中输入JTAG调试器的配置文件。ESP-Prog所用的配置文件是esp32c3-ftdi.cfg,这个文件可以在OpenOCD的安装或解压目录的/share/openocd/scripts/ board目录中找到,如果想进一步了解关于OpenOCD更详细的资料,请自行上网查阅相关的资料。到此后,请向下滑动窗口的滚动条,找到gdb命令配置界面。

如图2-2-3-5所示,点击“Browse“按钮找到”riscv32-esp-elf-gdb.exe“启动命令,然后点击”Startup“图标进入启动配置界面。

如图2-2-3-6所示,填写gdb启动时的初始化命令,如果走到这一步,编辑框中已经有这些命令了,就不要做任何的改动。注意,千万不要勾选“Enable ARM semihosting”,如果初次进入时,这个选项已经被勾选了的话,请把它清除。然后向下滚动配置窗口,做”Load Symbols and Executable”配置。

如图2-2-3-7所示,勾选“Load symbols”,缺省使用从项目中的.elf文件加载调试符号表,注意不要勾选“Load executable“选项,否则后续会出现调试异常。

如图2-2-3-8所示,勾选“Debug in RAM“,如果不勾选的话,运行也没有发生什么异常, 勾选了”Set breakpoint at”选项,可以在对应的编辑框中输入你所需要的断点,在这里设置了“app_main”,这个是用户程序的入口地址。

注意,“一定要勾选Continue”选项,否则启动调试过程后,程序运行会发生异常。

如图2-2-3-9所示,给当前的Debug配置设置一个名称,在这里可以设置成你自己喜欢的名称。 

(4)启动Debug过程进行代码调试。

如图2-2-4-1所示,在目前的Debug配置的下拉菜单中选择“hello_world_JTAG_FTDI”,然后点击“Debug”图标启动程序的运行过程。

如图2-2-4-2所示,程序已经成功运行,并在app_main断点处停止。

 如图2-2-4-3所示,点击“Resume”按钮,可以实现程序全速运行。

        

如图2-2-4-4所示,从串口助手中可以看到程序运行的LOG信息。

 如图2-2-4-5所示,点击“Suspend”按钮可以暂停程序的运行。

如图2-2-4-6所示,退出Debug模式后再次重新进入,在38行处设置一个断点,然后“Resume”按钮运行程序。

如图2-2-4-7所示,程序运行一会后停在了38行断点处。

如图2-2-4-8所示,点击“Step Over” 按钮进行测试。程序运行后停在36行断点处。

如图2-2-4-9所示,点击“Step Into”按钮进行测试,程序运行到后即刻停在了37行代码处。

如图2-2-4-10所示,点击“Step Return”按钮进行测试,程序运行到后即刻停在了38行代码处。

如图2-2-4-11所示,点击“Terminate”按钮进行测试,Eclipse退出了Debug模式,可以见到所有的“Debug”工具栏图标都已经变成灰色了。

至此,在Eclipse集成软件环境中创建一个基于ESP32C3处理的Hello world工程并利用OpenOCD进行源码级别的调试的过程就结束了,通过此软件工程已经简单验证了对于ESP32C3处理器是可以采用OpenOCD进行源码程序调试,为后续有针对性的采用ESP32处理器替代STM32处理器提供了一个值得参考的佐证。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值