HaaS100开发调试系列 之 如何使用J-Link仿真器调试代码
来源 | HaaS技术社区
1、前言
今年阿里云官方推出的HaaS100开发板引起了嵌入式开发者的极大关注,阿里云IOT部门提供的开发者7*24小时咨询答疑服务,也受到了广大开发人员的欢迎。
在钉钉开发者群里,很多爱好者问了下面的问题:
(福利推荐:阿里云、腾讯云、华为云服务器最新限时优惠活动,云服务器1核2G仅88元/年、2核4G仅698元/3年,点击这里立即抢购>>>)
在基于AliOS Things 的RTOS上,HaaS100上如何开发调试?
AliOS Things的shell 系统是什么样的?
如何获得系统内存大小?
为了解答这些开发调试相关的问题,我们给大家带来了《带你上手HaaS100 开发调试》系列,计划推出一系列文章,帮助开发者进一步了解AliOS Things,了解HaaS100,从而快速开发应用。
今天首先推出的是HaaS100 J-Link仿真器的连接和使用。
对于嵌入式开发者来说,使用仿真器进行代码调试是很常见的操作,关于仿真器的原理网上也有很多的学习资料,这里不再赘述,直接上正文。
2、HaaS100如何连接仿真器
2.1、连接方法
HaaS100支持SWD接口连接仿真器,如图所示:
排针的引脚定义如下
连接步骤为:
1、按照图中所示用线将SWDIO(图中白色线)、SWCLK(图中紫色线),加上电源3V3(使用排针1脚或2脚)和地GND(图中黑色线,或者排针上任一GND均可)共四根线与仿真器连接。笔者使用的是较常见的V9仿真器,如下图:
2、上电,打开Jlink GDB Server,笔者使用的是SEGGER GDB Server V6.70e,选择Cortex-M33,SWD接口,点击OK;
3、点击OK,连接如图:
注意,如果硬件连接没有问题,那么上图中的J-Link和 Device栏中显示绿色,GDB显示为红色(因为我们还没有运行GDB软件)。另外,请注意图中的“Listening on TCP/IP port 2331”,这个端口要我们在运行GDB时需要。
4、运行GDB,开始调试(例如:调试镜像为xx.elf):
a. 打开命令行,进入到镜像所在目录,执行命令 arm-none-eabi-gdb.exe [email protected](举例) b. 连接GDBServer的2331端口。在GDB命令行中执行命令 tar ext:2331
5、运行如图,这个时候仿真器已经连上开发板,并且已经停下,我们可以继续后面的调试工作了。
2.2、注意事项
由于HaaS100开发板硬件设计考虑了工业使用的需求,所以板上使用了硬件看门狗,喂狗时间是1.6s,并且无法用软件关闭,导致了开发者在使用仿真器连接的时候,由于不断触发了狗复位而一直无法连接仿真器的情况。这里笔者提供一种将硬件看门狗断开的解决方法——使用电烙铁去掉图中红圈标出的电阻,如图:
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、相关文档
一文轻松入门HaaS100诊断调试系统
5、开发者技术支持
如需更多技术支持,可加入钉钉开发者群,或者关注微信公众号
更多技术与解决方案介绍,请访问阿里云AIoT首页https://iot.aliyun.com/
你还在原价购买阿里云、腾讯云、华为云、天翼云产品?那就亏大啦!现在申请成为四大品牌云厂商VIP用户,可以3折优惠价购买云服务器等云产品,并且可享四大云服务商产品终身VIP优惠价,还等什么?赶紧点击下面对应链接免费申请VIP客户吧:
相关文章
- Neo4j宣布下一代图数据平台Neo4j 5上线
- 观远数据荣膺Gartner2022中国分析平台Cool Vendor
- 完整指南:使用 VirtualBox 在 Windows 上安装 Ubuntu
- 32 图 | 手摸手 Spring Cloud Gateway + JWT 实现登录认证
- 如何从边缘分析中推动业务价值
- EndeavourOS:你对完美的 Arch 发行版的搜寻到此为止
- 谈谈如何跨越数据架构的漩涡
- 在 Linux 上用 zram 替代传统交换空间
- 这才是真正的数据分析项目,而不是爬表
- Linux 中相对比较小众的命令:gunzip
- 程序员积累的编程知识十年后有多少变得没用?
- 文字间的战斗与其救世主 Unicode
- 简单的单例模式,Go版本的实现你写对了吗?
- 微软 OneNote Windows 11 预览版新增支持左侧垂直导航,不支持 Windows 10
- 阿里终面:说说OAuth2.0 与 单点登录的区别?
- 微软延长 Windows Server 2012 和 R2 上的 Edge 浏览器支持,至 2023 年 10 月
- 伙计,Go项目怎么使用枚举?
- 一款好用的 Go 调用链可视化工具
- Windows 11 隐藏功能:无需介质直接通过 Windows Update 更新重装系统
- 安全运行 Linux 服务器的初学者指南