OPENJTAG调试学习(四):OpenJTAG 来烧写、调试 cortex M3

简介: OPENJTAG调试学习(四):OpenJTAG 来烧写、调试 cortex M3

OpenJTAG 来烧写、调试 cortex M3

1 使用 Eclipse 调试程序:以 S3C2410/S3C2440 的 u-boot 程序为例

注意:调试网上下载的 u-boot 时,需要定义 CONFIG_SKIP_LOWLEVEL_INIT,它表示“跳过底层的初始始化”,就是不要初始化存储控制器,不要再次复制 u-boot 本身到 SDRAM中。对于光盘中的 u-boot,已经增加的自动识别代码,无需定义这个宏。

虽然不能在 Windows 下编译 u-boot,但是只要有 elf 格式的可执行文件和源代码,还是可以在 Eclipse 下调试的。

E:\eclipse_projects\u-boot 目录下的 u-boot.bin、u-boot 是 u-boot-1.1.6_OpenJTAG.tar.bz2 在Linux 下编译好的可执行文件,u-boot.bin 是二进制格式,u-boot 是 elf 格式。

  • 首先,在 E:\eclipse_projects\u-boot 目录下将 u-boot-1.1.6_OpenJTAG.tar.bz2 解压缩。
  • 然后,仿照前面创建 leds 工程的方法创建 u-boot 工程。
  • 最后,为 u-boot 重新配置调试器,配置内容如图 2.62~2.67 所示。

Elf 格式的文件本身包含有路径信息,u-boot 是在 Linux 下编译的,现在要在 Windows 下调试,肯定要更改路径信息──这称为“Path Mapping”。

光盘上 u-boot 可执行文件的编译路径为:

/work/eclipse_projects/u-boot/u-boot-1.1.6_OpenJTAG

在 Windows 下 u-boot 源码路径为

E:/eclipse_projects/u-boot/u-boot-1.1.6_OpenJTAG。

可以使用以下 gdb 命令进行设置,FROM 表示原来的路径,TO 表示修改后的路径。

set substitute-path FROM TO

图 2.64 进行命令设置,命令罗列如下:

set substitute-path /work/eclipse_projects/u-boot/u-boot-1.1.6_OpenJTAG E:/eclipse_projects/u-boot/u-boot-1.1.6_OpenJTAG 
load 
break start_armboot 
c

注 1:以下的命令是进行“Path Mapping”:

set substitute-path /work/eclipse_projects/u-boot/u-boot-1.1.6_OpenJTAG E:/eclipse_projects/u-boot/u-boot-1.1.6_OpenJTAG

注 2:u-boot 执行时调用的第 1 个 C 函数是 start_armboot,它没有 main 函数。

注3:Eclipse查找源文件的默认方式是搜索工程目录下的文件(对于简单的程序,比如leds,可以使用默认方式),由于我们已经在图 2.64 中设置了“Path Mapping”,要把默认方式删除,如图 2.65 所示。

为了让 Eclipse 能正确定位到源文件,还得在图 2.65 中使用“Add” 按钮增加“Path Mapping”──这是个不起作用的“Path Mapping”。原因在于:Linux 下路径名用“/”,而Windows 下路径名用“\”,Eclipse 会把路径名里的“/”强制改为“\”,使得“Path Mapping”不起作用。直正起使用的是图 2.64 中的第 1 个命令。

图 2.66~图 2.67 用来增加一个“不起作用的”“Path Mapping”。在图 2.66 中点“Add”按钮,在出现的对话框中选中“Path Mapping”,再点“OK”。

在图 2.67 中,点击“Add”按钮,在“Compilation path”里填入编译 u-boot 时代码的路径,就是/work/projects/OpenPDA/u-boot-1.1.6_OpenJTAG;在“Local file system path”中选择当前的、本地的、要调试的源码路径,即 E:/eclipse_projects/u-boot/u-boot-1.1.6_OpenJTAG

配置完成后,先启动 OpenOCD,然后启动“u-boot Default”调试器,稍等一会就可以看到如图 2.68 所示的界面,u-boot 停在 start_armboot 函数的第一条指令上。

除调试器的设置不同外,u-boot 工程的调试方法与 leds 工程的基本一样,不再赘述。

2 使用 OpenOCD 烧写 cortex M3

把 OpenJTAG 的 JTAG 线与 cortex M3 连接好后,上电。

启动 OpenJTAG GUI,在“target”里选择“stm32”,然后点击“connect”,即可识别出cortex M3。如图 2.85 所示。

点击“telnet”按钮,即可在 telnet 界面使用 openocd 本身的命令烧写 Flash:

  • ① 执行以下命令识别 Flash,如图 2.86 所示:
halt 
flash probe 0

  • ② 执行以下命令擦除烧写 Flash,如图 2.87 所示:
flash write_image erase STM3210B.bin 0x08000000 
verify_image STM3210B.bin 0x08000000
  • 第一条命令的含义为:烧写 STM3210B.bin 文件到的 0x08000000 地址──这是 Flash 的开始地址,“erase”表示自动擦除。
  • 第二条命令是较验。

注意:如果第一条命令不成功,多执行几次就可以了;最后再用 verify_image 命令较验一下。

可以执行“help”命令查看更多的命令,或者“help 命令”查看这个命令的详细用法。比如“help flash”。

目录
相关文章
|
数据采集 机器学习/深度学习 监控
Arm Coresight 介绍
Coresight 是 ARM 架构上的一款嵌入式系统监控和调试工具,能够为系统管理员和开发人员提供便捷的系统监控和调试功能。该平台可以实时追踪和分析处理器上的活动,以深入了解潜在的性能瓶颈和问题。本文将介绍Coresight的概念、优势及其安装、配置、故障排除和调试等方面的内容,并探讨其未来发展方向和重要性。
2643 1
|
网络协议 Unix Linux
OpenOCD(五):调试适配器配置
OpenOCD(五):调试适配器配置
1368 0
|
监控 NoSQL
JLink + GDB 调试方法
本节主要介绍嵌入式开发中常用的JLink+GDB调试方法。 调试所需软件 J-link,可以从https://www.segger.com下载对应操作系统的软件包,然后安装(注意:segger是仿真器的名字,相当常用的一款,仿真器的接口也是固定的,一般开发版上都会带有这个调试接口,如图) 运行JLinkGDBServer 按照上图中的配置,配置GDBServer,然后点击OK,进入下一个界面 注意,如果硬件连接没有问题,那么上图中的J-Link和 Device栏中显示绿色,GDB显示为红色,因为我们还没有运行GDB软件。
8978 46
|
7月前
|
SQL 人工智能 自然语言处理
数据 + 模型 驱动 AI Native 应用发展
随着人工智能技术的飞速发展,从生成式人工智能(GenAI)到自主代理人工智能(Agentic AI)的演进,企业面临着构建 AI Native 应用的机遇与挑战。本文将深入探讨 AI 开发模式的转变、企业应用的挑战以及技术架构和开发工具的应用,旨在为读者提供一个全面的视角,以理解如何利用数据和模型驱动 AI Native 应用的发展。
294 0
|
NoSQL IDE 开发工具
OPENJTAG调试学习(一):嵌入式软件的交叉开发系统
OPENJTAG调试学习(一):嵌入式软件的交叉开发系统
771 0
|
IDE 编译器 开发工具
【C语言】全面系统讲解 `#pragma` 指令:从基本用法到高级应用
在本文中,我们系统地讲解了常见的 `#pragma` 指令,包括其基本用法、编译器支持情况、示例代码以及与传统方法的对比。`#pragma` 指令是一个强大的工具,可以帮助开发者精细控制编译器的行为,优化代码性能,避免错误,并确保跨平台兼容性。然而,使用这些指令时需要特别注意编译器的支持情况,因为并非所有的 `#pragma` 指令都能在所有编译器中得到支持。
1438 41
【C语言】全面系统讲解 `#pragma` 指令:从基本用法到高级应用
|
数据挖掘 测试技术 项目管理
2025年测试用例管理看这一篇就够了 ----Codes 开源免费、全面的测试管理解决方案
Codes 是国内首款重新定义 SaaS 模式的开源项目管理平台,支持云端认证、本地部署、全部功能开放,并且对 30 人以下团队免费。它通过整合迭代、看板、度量和自动化等功能,简化测试协同工作,使敏捷测试更易于实施。并提供低成本的敏捷测试解决方案,如同步在线离线测试用例、流程化管理缺陷、低代码接口自动化测试和 CI/CD,以及基于迭代的测试管理和测试用时的成本计算等,践行敏捷测试。
2025年测试用例管理看这一篇就够了 ----Codes 开源免费、全面的测试管理解决方案
|
11月前
|
搜索推荐 UED
销售易CRM:用户体验与市场评价深度分析
销售易CRM是国内领先的客户关系管理系统,以其现代化的界面设计、强大的移动端支持和优质的客户服务赢得广泛好评。系统操作简洁直观,支持个性化定制与多设备访问,移动端功能齐全且具备离线支持,协同工具丰富。销售易注重客户服务,提供快速响应、专业培训和持续优化。市场评价显示,用户对其功能、体验和服务均给予高度认可,是企业提升客户管理效率和推动销售增长的理想选择。
|
负载均衡 调度 芯片
SMP多核启动(一):spin-table
SMP多核启动(一):spin-table
723 0
|
小程序 存储控制器 Android开发
OPENJTAG调试学习(二):OpenOCD、OpenJTAG 烧写程序、调试程序
OPENJTAG调试学习(二):OpenOCD、OpenJTAG 烧写程序、调试程序
2021 0