你好。我们有一个基于 RT1176 的定制设计,其中处理器不运行。请提供故障排除建议。我们已尝试遵循 MIMRT1170HDUG(MIMXRT1170 处理器的硬件开发指南)。为了调出
电路板,我们使用 SDK 示例中的 LED Blinky 代码。
RT1176 电路和相关部分如 SDRAM 和串行闪存与 RT1170-EVK 板相同。我们只是删除了一些不需要的东西,并更改了 I2C、SPI 和 GPIO 的使用,但保留了与 EVK 上相同的基本 RT1176、SDRAM、QSPI 闪存和 uSD 卡连接。我们甚至为 SDRAM、串行闪存和 uSD 卡连接复制了 EVK 的
电源和布局。我们的定制板具有工业版 RT1170 (MIMXRT1176CVM8A),而不是 EVK 上使用的商业版。我们将 M7 核心时钟速度降低到 792MHZ。我们目前没有使用 M4 内核。
请注意,我们确实有几个 RT1176-EVK 板在运行,我们已将其用于参考和开发。
在我们的定制板上,我们尝试通过 USB1 连接的串行下载器启动模式,但是运行 MCUBootU
tility 的 PC 看不到 USB 连接。即,未找到 1FC9/013D 的常用 VendorID/ProductID。接下来我们将尝试 UART 连接。
我们还尝试通过 Segger J-Link 将程序加载到 QSPI Flash 中。找到 ID 为 0x6BA02477 的 SW-IP。它还找到 CPUID 0x411FC272 并报告它是一个 Cortex-M7,这似乎表明 RT1176 有点活跃并且 DAP 接口正在工作。设置PC/SP,复位target,启动target后报CPU运行时无法读取寄存器的错误。Segger J-Link GDB 服务器输出如下,以防它为我们的问题提供任何线索。
我们检查了电源电压、上电电源和信号序列。引导模式级别看起来不错。我们有与 RT1176-EVK 相同的拨码开关,因此我们可以轻松地在启动模式之间切换。24MHZ和32KHZ晶振运行。POR_B 在上电时看起来还不错。RT1176 没有变热,供电电流似乎合理。
已经在多个表现相同的板上进行了测试,因此看起来我们在所有板上都有相同的问题。
您可以提供的任何建议将不胜感激。谢谢你!
Segger J-Link 输出:
I-Cache L1:32 KB,512 组,32 字节/行,2 路
D-Cache L1:32 KB,256 组,32 字节/行,4 路
Found SW-DP with ID 0x6BA02477
DPIDR:0x6BA02477
CoreSight SoC -400 或更早的
AP 地图检测被跳过。找到手动配置的 AP 映射。
AP[0]:AHB-AP(IDR:未设置)
AP[0]:内核找到
AP[0]:AHB-AP ROM 基址:0xE00FD000
CPUID 寄存器:0x411FC272。实施者代码:0x41 (ARM)
发现 Cortex-M7 r1p2,小端。
FPUnit:8 个代码 (BP) 槽和 0 个文字槽
CoreSight 组件:
ROMTbl[0] @ E00FD000
[0][0]:E00FE000 CID B105100D PID 000BB4C8 ROM 表
ROMTbl[1] @ E00FE000
[1][0]:E00FF000 CID B105100D PID 000BB4C7 ROM 表
ROMTbl[2] @ E00FF000
[2][0]:E000E000 CID B105E00D PID 000BB00C SCS-M7 [
2][1]:E0001000 CID
B105E00D PID 000BB002 DWT [2][2]:E0002000 CID B105E00D PID 000BB-
M07E 2][3]:E0000000 CID B105E00D PID 000BB001 ITM
[1][1]:E0041000 CID B105900D PID 001BB975 ETM-M7 [1][2]:E0042000
CID B105900D PID 004BB906 CTI
[0][1]:E09 CID0430 PID 001BB908 CSTF
缓存:独立的 I 缓存和 D 缓存。
I-Cache L1: 32 KB, 512 Sets, 32 Bytes/Line, 2-Way
D-Cache L1: 32 KB, 256 Sets, 32 Bytes/Line, 4-Way
连接到目标等待
GDB 连接...连接到127.0.0.1
读取所有寄存器
读取 4 个字节@地址 0x00223104(数据 = 0xF7DEE7FE)
读取 2 个字节@地址 0x00223104(数据 = 0xE7FE)
连接到 127.0.0.1
读取所有寄存器
读取 4 个字节@地址 0x00223104(数据 = 0xF7DEE7FE)
读取 2 个字节@ 地址 0x00223104(数据 = 0xE7FE)
收到监控命令:重置
重置:通过 DEMCR.VC_CORERESET 重置后暂停内核。
重置:通过 AIRCR.SYSRESETREQ 重置设备。
AfterResetTarget() 启动
检测到有效应用程序。手动设置 PC/SP。
AfterResetTarget() 结束
重置目标
下载 8192 字节@地址 0x30000000 - 验证正常
下载 15952 字节@地址 0x30002000 - 验证正常
下载 11288 字节@地址 0x30005E50 - 验证正常
下载 4 字节@地址 0x30008A68 - 验证正常
J-Link:闪存下载:银行0 @ 0x30000000:1 个受影响的范围(65536 字节)
J-Link:Flash 下载:总计:0.722s(准备:0.032s,比较:0.019s,擦除:0.113s,编程和验证:0.285s,恢复:0.271s)
J-Link:闪存下载:编程和验证速度:224 KB/s
写入寄存器(PC = 0x300024e8)
读取 4 个字节@地址 0x300024E8(数据 = 0x4B10B672)
读取 64 个字节@地址 0x00223100
读取 4 个字节@地址 0x300024E8(数据 = 0x4B10B672)
读取所有寄存器
读取 4 个字节@地址 0x300024E8(数据 = 0x4B10B672)
读取 64 个字节@地址 0x30002900
读取 2 个字节@地址 0x30002930(数据 = 0xF002)读取
64 个字节0 @地址 024x30
bytes @ address 0x30002500
Received monitor command: semihosting enable
Semi-hosting enabled (Handle on breakpoint instruction hit)
收到监控命令:exec SetRestartOnClose=1
执行 SetRestartOnClose=1
收到监控命令:重置
重置:通过 DEMCR.VC_CORERESET 重置后暂停内核。
重置:通过 AIRCR.SYSRESETREQ 重置设备。
AfterResetTarget() 开始
检测到有效应用程序。手动设置 PC/SP。
PC = 0x300024E9
SP = 0x20040000
清理并使缓存的 CPU 寄存器无效
AfterResetTarget() 结束
重置目标
设置断点 @ 地址 0x30002930,大小 = 2,BPHandle = 0x0001
启动目标 CPU...
错误:CPU 运行时无法读取寄存器 15(R15)
读取所有寄存器
错误:CPU 运行时无法读取寄存器 0 (R0)
错误:CPU 运行时无法读取寄存器 1 (R1)
错误:CPU 运行时无法读取寄存器 2 (R2)
错误:无法读取寄存器 3 (R3 ) while CPU is running
ERROR: Cannot read register 4 (R4) while CPU is running
错误:CPU 运行时无法读取寄存器 5 (R5)
错误:CPU 运行时无法读取寄存器 6 (R6)
错误:CPU 运行时无法读取寄存器 7 (R7) 错误:CPU 运行时
无法读取寄存器 8 (R8)正在运行
错误:CPU 运行时无法读取寄存器 9 (R9)
错误:CPU 运行时无法读取寄存器 10 (R10)
错误:CPU 运行时无法读取寄存器 11 (R11)
错误:无法读取寄存器 12 (R12) CPU 运行时
错误:CPU 运行时无法读取寄存器 13 (R13)
错误:CPU 运行时无法读取寄存器 14 (R14)
错误:CPU 运行时无法读取寄存器 15 (R15) 错误
:无法读取寄存器 16 ( XPSR)在 CPU 运行时
错误:CPU 运行时无法读取寄存器 17 (MSP)
错误:CPU 运行时无法读取寄存器 18 (PSP)
错误:CPU 运行时无法读取寄存器 24 (PRIMASK) 错误:CPU 运行时
无法读取寄存器 25 (BASEPRI)正在运行
错误:CPU 运行时无法读取寄存器 26 (FAULTMASK)
错误:CPU 运行时无法读取寄存器 27 (CONTROL)
错误:CPU 运行时无法读取寄存器 32 (FPSCR)
错误:无法读取寄存器 33 (FPS0) CPU 运行时
错误:CPU 运行时无法读取寄存器 34 (FPS1)
错误:CPU 运行时无法读取寄存器 35 (FPS2)
错误:CPU 运行时无法读取寄存器 36 (FPS3)
错误:CPU 运行时无法读取寄存器 37 (FPS4)
错误:CPU 运行时无法读取寄存器 38 (FPS5)
错误:CPU 运行时无法读取寄存器 39 (FPS6) 错误:CPU 运行时
无法读取寄存器 40 (FPS7)正在运行
错误:CPU 运行时无法读取寄存器 41 (FPS8)
错误:CPU 运行时无法读取寄存器 42 (FPS9)
错误:CPU 运行时无法读取寄存器 43 (FPS10)
错误:无法读取寄存器 44 (FPS11) CPU 运行时
错误:CPU 运行时无法读取寄存器 45 (FPS12)
错误:CPU 运行时无法读取寄存器 46 (FPS13)
错误:CPU 运行时无法读取寄存器 47 (FPS14) 错误
:无法读取寄存器 48 ( FPS15) CPU 运行时
错误:CPU 运行时无法读取寄存器 49 (FPS16)
错误:CPU 运行时无法读取寄存器 50 (FPS17)
错误:CPU 运行时无法读取寄存器 51 (FPS18) 错误:CPU 运行时
无法读取寄存器 52 (FPS19)正在运行
错误:CPU 运行时无法读取寄存器 53 (FPS20)
错误:CPU 运行时无法读取寄存器 54 (FPS21)
错误:CPU 运行时无法读取寄存器 55 (FPS22)
错误:无法读取寄存器 56 (FPS23) CPU 运行时
错误:CPU 运行时无法读取寄存器 57 (FPS24)
错误:CPU 运行时无法读取寄存器 58 (FPS25)
错误:CPU 运行时无法读取寄存器 59 (FPS26)
错误:CPU 运行时无法读取寄存器 60 (FPS27)
错误:CPU 运行时无法读取寄存器 61 (FPS28)
错误:CPU 运行时无法读取寄存器 62 (FPS29) 错误:CPU 运行时
无法读取寄存器 63 (FPS30)正在运行
错误:CPU 运行时无法读取寄存器 64 (FPS31)
错误:CPU 运行时无法读取寄存器 33 (FPS0)
错误:CPU 运行时无法读取寄存器 34 (FPS1)
错误:无法读取寄存器 35 (FPS2) CPU 运行时
错误:CPU 运行时无法读取寄存器 36 (FPS3)
错误:CPU 运行时无法读取寄存器 37 (FPS4)
错误:CPU 运行时无法读取寄存器 38 (FPS5) 错误
:无法读取寄存器 39 ( FPS6) CPU 运行时
错误:CPU 运行时无法读取寄存器 40 (FPS7)
错误:CPU 运行时无法读取寄存器 41 (FPS8)
错误:CPU 运行时无法读取寄存器 42 (FPS9) 错误:CPU 运行时
无法读取寄存器 43 (FPS10)正在运行
错误:CPU 运行时无法读取寄存器 44 (FPS11)
错误:CPU 运行时无法读取寄存器 45 (FPS12)
错误:CPU 运行时无法读取寄存器 46 (FPS13)
错误:无法读取寄存器 47 (FPS14) CPU 运行时
错误:CPU 运行时无法读取寄存器 48 (FPS15)
错误:CPU 运行时无法读取寄存器 49 (FPS16)
错误:CPU 运行时无法读取寄存器 50 (FPS17)
错误:CPU 运行时无法读取寄存器 51 (FPS18)
错误:CPU 运行时无法读取寄存器 52 (FPS19)
错误:CPU 运行时无法读取寄存器 53 (FPS20) 错误:CPU 运行时
无法读取寄存器 54 (FPS21)正在运行
错误:CPU 运行时无法读取寄存器 55 (FPS22)
错误:CPU 运行时无法读取寄存器 56 (FPS23)
错误:CPU 运行时无法读取寄存器 57 (FPS24)
错误:无法读取寄存器 58 (FPS25) CPU 运行时
错误:CPU 运行时无法读取寄存器 59 (FPS26)
错误:CPU 运行时无法读取寄存器 60 (FPS27)
错误:CPU 运行时无法读取寄存器 61 (FPS28)
错误:CPU 运行时无法读取寄存器 62 (FPS29)
错误:CPU 运行时无法读取寄存器 63 (FPS30)
错误:CPU 运行时无法读取寄存器 64 (FPS31)
删除断点 @ 地址 0x30002930,大小 = 2
警告:无法读取内存@地址 0xDEADBEEE
警告:无法读取内存@地址 0xDEADBEEE
警告:无法读取内存@地址 0xE00FDFF4
警告:无法读取内存@地址 0xE00FDFF4
警告:无法读取内存@地址 0xE00FDFF7
读取 64 字节@地址 0xDEADBEC0
警告:无法读取内存 @ 地址 0xDEADBEC0
警告:无法读取内存 @ 地址 0xDEADBEEE
警告:无法读取内存 @ 地址 0xDEADBEEE
错误:CPU 正在运行时无法读取寄存器 18 (PSP)
读取寄存器 (PSP = 0xDEADBEEF)
0