HaaS100开发调试系列 之 如何使用J-Link仿真器调试代码

简介: 今年阿里云官方推出的HaaS100开发板引起了嵌入式开发者的极大关注,阿里云IOT部门提供的开发者7*24小时咨询答疑服务,也受到了广大开发人员的欢迎。
来源 | HaaS技术社区

1、前言

今年阿里云官方推出的HaaS100开发板引起了嵌入式开发者的极大关注,阿里云IOT部门提供的开发者7*24小时咨询答疑服务,也受到了广大开发人员的欢迎。

在钉钉开发者群里,很多爱好者问了下面的问题:

在基于AliOS Things 的RTOS上,HaaS100上如何开发调试?

AliOS Things的shell 系统是什么样的?

如何获得系统内存大小?

为了解答这些开发调试相关的问题,我们给大家带来了《带你上手HaaS100 开发调试》系列,计划推出一系列文章,帮助开发者进一步了解AliOS Things,了解HaaS100,从而快速开发应用。

今天首先推出的是HaaS100 J-Link仿真器的连接和使用。

对于嵌入式开发者来说,使用仿真器进行代码调试是很常见的操作,关于仿真器的原理网上也有很多的学习资料,这里不再赘述,直接上正文。

2、HaaS100如何连接仿真器

2.1、连接方法

HaaS100支持SWD接口连接仿真器,如图所示:

image.png

排针的引脚定义如下

image.png

连接步骤为:

1、按照图中所示用线将SWDIO(图中白色线)、SWCLK(图中紫色线),加上电源3V3(使用排针1脚或2脚)和地GND(图中黑色线,或者排针上任一GND均可)共四根线与仿真器连接。笔者使用的是较常见的V9仿真器,如下图:

image.png

2、上电,打开Jlink GDB Server,笔者使用的是SEGGER GDB Server V6.70e,选择Cortex-M33,SWD接口,点击OK;

image.png

3、点击OK,连接如图:

image.png

注意,如果硬件连接没有问题,那么上图中的J-Link和 Device栏中显示绿色,GDB显示为红色(因为我们还没有运行GDB软件)。另外,请注意图中的“Listening on TCP/IP port 2331”,这个端口要我们在运行GDB时需要。

4、运行GDB,开始调试(例如:调试镜像为xx.elf):

a. 打开命令行,进入到镜像所在目录,执行命令 arm-none-eabi-gdb.exe  alios_kernel@haas100-mk.kernel.elf(举例)
b. 连接GDBServer的2331端口。在GDB命令行中执行命令 tar ext:2331

5、运行如图,这个时候仿真器已经连上开发板,并且已经停下,我们可以继续后面的调试工作了。

image.png

2.2、注意事项

由于HaaS100开发板硬件设计考虑了工业使用的需求,所以板上使用了硬件看门狗,喂狗时间是1.6s,并且无法用软件关闭,导致了开发者在使用仿真器连接的时候,由于不断触发了狗复位而一直无法连接仿真器的情况。这里笔者提供一种将硬件看门狗断开的解决方法——使用电烙铁去掉图中红圈标出的电阻,如图:

image.png

3、GDB常用操作命令

GDB的常用操作,网上也是有很多资料。这里例举一些供大家参考:

3.1、查看调用栈

bt

3.2、查看反汇编

查看反汇编
disassemble
 
查看main函数的反汇编
disassemble \m   main
 
查看main函数的15行反汇编
x/15i  main
 
查看pc附近的5条汇编
x/5i $pc

3.3、变量操作

查看变量值
p g_test
 
修改变量值
set g_test=1

3.4、内存操作

查看0x80000000 内存地址上的数据(以16进制,32位显示,打印4个)
x/4xw  0x80000000
 
打印 0x80000000处 的字符串数据
x/s  0x80000000

3.5、寄存器操作

查看寄存器信息
i r
 
改变寄存器
set $r0=1
 
打印所有寄存器信息
i all-registers
 
查看断点
i b

4、开发者技术支持

如需更多技术支持,可加入钉钉开发者群,或者关注微信公众号

image.png

更多技术与解决方案介绍,请访问阿里云AIoT首页https://iot.aliyun.com/

相关实践学习
阿里云图数据库GDB入门与应用
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。GDB非常适合社交网络、欺诈检测、推荐引擎、实时图谱、网络/IT运营这类高度互连数据集的场景。 GDB由阿里云自主研发,具备如下优势: 标准图查询语言:支持属性图,高度兼容Gremlin图查询语言。 高度优化的自研引擎:高度优化的自研图计算层和存储层,云盘多副本保障数据超高可靠,支持ACID事务。 服务高可用:支持高可用实例,节点故障迅速转移,保障业务连续性。 易运维:提供备份恢复、自动升级、监控告警、故障切换等丰富的运维功能,大幅降低运维成本。 产品主页:https://www.aliyun.com/product/gdb
相关文章
|
JavaScript 前端开发 索引
用Three.js搞个炫酷3D地球
地球人怎么可以不会画地球!从canvas画地球贴图开始,用Three.js手把手教你实现一个炫酷的3D地球!
用Three.js搞个炫酷3D地球
|
存储 监控 NoSQL
快速认识OTS
## 什么是OTS   OTS 是Open Table Service的简称,现在已更名为表格存储Table Store,官网对它的解释为:OTS是构建在阿里云飞天分布式系统之上的 NoSQL 数据库服务,提供海量结构化数据的存储和实时访问。OTS 以实例和表的形式组织数据,通过数据分片和负载均衡技术,达到规模的无缝扩展。OTS 向应用程序屏蔽底层硬件平台的故障和错误,能自动从各类错误中快速
49379 2
|
存储 人工智能 搜索推荐
解锁AI新境界:LangChain+RAG实战秘籍,让你的企业决策更智能,引领商业未来新潮流!
【10月更文挑战第4天】本文通过详细的实战演练,指导读者如何在LangChain框架中集成检索增强生成(RAG)技术,以提升大型语言模型的准确性与可靠性。RAG通过整合外部知识源,已在生成式AI领域展现出巨大潜力。文中提供了从数据加载到创建检索器的完整步骤,并探讨了RAG在企业问答系统、决策支持及客户服务中的应用。通过构建知识库、选择合适的嵌入模型及持续优化系统,企业可以充分利用现有数据,实现高效的商业落地。
680 6
|
数据采集 存储 监控
Python 原生爬虫教程:网络爬虫的基本概念和认知
网络爬虫是一种自动抓取互联网信息的程序,广泛应用于搜索引擎、数据采集、新闻聚合和价格监控等领域。其工作流程包括 URL 调度、HTTP 请求、页面下载、解析、数据存储及新 URL 发现。Python 因其丰富的库(如 requests、BeautifulSoup、Scrapy)和简洁语法成为爬虫开发的首选语言。然而,在使用爬虫时需注意法律与道德问题,例如遵守 robots.txt 规则、控制请求频率以及合法使用数据,以确保爬虫技术健康有序发展。
1526 31
|
存储 网络协议 网络安全
Hyper-V Win10虚拟机配置常见问题
在配置Hyper-V Win10虚拟机时,用户常面临网络连接、虚拟交换机配置、资源分配及其他问题。例如,虚拟机无法获取IP地址可能源于DHCP服务异常,需检查并启动该服务;外部虚拟交换机配置错误则需确保物理网络适配器正确连接。此外,内存不足或虚拟硬盘性能瓶颈也会影响运行效果。通过合理调整资源配置、优化设置及遵循最佳实践,可有效解决这些问题。
|
移动开发 JavaScript 数据管理
HTML5 拖放在游戏中的应用
HTML5的拖放功能在游戏开发中广泛应用,尤其在创建交互式网页游戏时。它支持多种场景,如拖动角色或物品、选择和装备物品、拼图或配对游戏以及自定义界面布局。通过简单的HTML和JavaScript代码,可实现流畅的拖放交互,并提供视觉反馈,增强用户体验。此外,还需考虑设备兼容性和数据管理,确保游戏在不同设备和浏览器上都能良好运行。总之,HTML5拖放功能使网页游戏更生动有趣。
|
前端开发 JavaScript 开发者
【前端革新力】React与CSS-in-JS完美邂逅:从styled-components到emotion,全面解析样式管理新趋势的实战应用与优势剖析!
【8月更文挑战第31天】CSS-in-JS 作为一种新兴的样式管理方式,近年来在前端社区受到广泛关注。它将样式嵌入 JavaScript,实现了样式与逻辑的高度耦合,提升了开发效率并解决了全局样式污染等问题。本文通过具体代码示例,探讨 CSS-in-JS 在 React 开发中的应用,并分享实践心得。首先介绍了 CSS-in-JS 的基本概念,然后详细展示了如何使用 styled-components 和 emotion 这两个流行库创建样式化组件。
837 0
|
JSON API Go
Go-Zero从0到1实现微服务项目开发(二)
继续更新GoZero微服务实战系列文章:上一篇被GoZero作者万总点赞了,本文将继续使用 Go-zero 提供的工具和组件,从零开始逐步构建一个基本的微服务项目。手把手带你完成:项目初始化+需求分析+表结构设计+api+rpc+goctl+apifox调试+细节处理。带你实现一个完整微服务的开发。
584 1
|
数据采集 数据可视化 定位技术
倾斜摄影教程:无人机航拍后使用ContextCapture生成 3D模型
倾斜摄影建模利用多角度影像生成高精度三维模型,广泛应用于城市规划、遗产保护等领域。通过无人机拍摄与专业软件处理,实现真实感强、自动化程度高的实景建模。
倾斜摄影教程:无人机航拍后使用ContextCapture生成 3D模型
|
机器人 开发工具 Android开发
flutter web 优化和flutter_admin_template
flutter web 优化和flutter_admin_template