硬汉嵌入式论坛

 找回密码
 立即注册
查看: 256|回复: 3
收起左侧

[Embedded Studio] 请教一个问题,IMX6ULL使用JLINK无法查看变量值

[复制链接]

2

主题

4

回帖

10

积分

新手上路

积分
10
发表于 2025-11-2 17:50:53 | 显示全部楼层 |阅读模式
想请教大家一个问题,我使用SEGGER SEV8.24编译IMX6ULL的代码。
然后使用JLINK调试的时候,无法查看变量值,这是为什么呀。报的错误是Memory read failure。

回复

使用道具 举报

2

主题

4

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2025-11-2 22:59:35 | 显示全部楼层
我发现我使用J-Mem工具就能够读出内存中的数据,但是我使用SEGGER SE里面在线调试的话,打开memory窗口,我不管看哪个地址都是--,我用JLink的工具 J-Mem,都可以连接到板子后查看地址信息,那说明我的代码就算跑起来了,代码应该也是没有问题的,因为这个已经能看到了,只是SES里面看不到
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
119429
QQ
发表于 2025-11-3 14:13:22 | 显示全部楼层
帮顶。只用SES搞过M内核。
回复

使用道具 举报

2

主题

4

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2025-11-3 20:52:49 | 显示全部楼层
eric2013 发表于 2025-11-3 14:13
帮顶。只用SES搞过M内核。

感谢帮顶,我自己试出了一个解决办法了,但是我不知道是不是这个原因。
在Project->Option->Code->Linker中有个Memory Segment选项,里面会默认给我分一个段,并且在链接的时候用上
FLASH1 RX 0x60000000 0x02000000;RAM1 RWX 0x00900000 0x00020000;
但是我在DDR里面跑程序,所以我没用上这个段,我就在ICF里面新定义了一段内存空间,并用的这段空间编译代码。
define region FLASH2 = [from 0x86800000 to 0x86FFFFFF];
define region RAM2   = [from 0x80000000 to 0x8003FFFF];
这样定义的话,是可以编译并且执行的,但是就会遇到我提到的问题,使用JLink无法在SES中查看内存数据。
然后,我就在这个Memory Segment中定义了我的这段内存,同时把ICF中的定义注释,SEGGER SE V8.24定义这个空间是一行一个空间,其他版本可能会不同,但是应该也差不多。
FLASH2 RX 0x86800000 0x01000000
RAM2 RWX 0x80000000 0x01000000
这样后,就在编译的时候,链接信息中就会多出--add-region:RAM2=0x01000000@0x80000000 --add-region:FLASH2=0x01000000@0x86800000。
这样编译出来的代码,就可以使用JLink查看内存地址以及访问实时变量这些了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-11-21 21:01 , Processed in 0.062404 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表