硬汉嵌入式论坛

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

[RT1050] RT1050无法从FLASH启动

[复制链接]

1

主题

0

回帖

3

积分

新手上路

积分
3
发表于 2021-6-29 14:26:25 | 显示全部楼层 |阅读模式
自己画的板,主控RT1052,无外置RAM,FLASH为W25Q64JVST,IDE为McuXpresso V11.3,SDK为V2.9.1
硬件方面:Flash接FlexSPI_A(GPIO_SD_B1_06~11),DQS已悬空,BOOT_CFG1和BOOT_CFG2均接地。
软件方面:跑一个HelloWorld,已配置XIP的三个宏,已配置flexspi_nor_config_t结构体并确定参数正确,程序在开发板上跑通并正确。
现状:BOOT_MODE设置为[00],通过CMSIS-DAP(或ULINK2)连接SWD,下载程序正常(通过工具回读Flash的结果与二进制文件做过比较),DEBUG时无法进入到Main函数,提示错误:
  1. Program stopped.
  2. 0x0020d138 in ?? ()
复制代码
GDB trace信息如下:
  1. 748,874 2-list-thread-groups
  2. 748,889 2^done,groups=[{id="i1",type="process"}]
  3. 748,889 (gdb)
  4. 752,035 3-gdb-version
  5. 752,049 ~"GNU gdb (GNU Arm Embedded Toolchain 9-2020-q2-update) 8.3.1.20191211-git\n"
  6. 752,049 ~"Copyright (C) 2019 Free Software Foundation, Inc.\n"
  7. 752,049 ~"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\nThis is fre\
  8. e software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitt\
  9. ed by law."
  10. 752,049 ~"\nType "show copying" and "show warranty" for details.\n"
  11. 752,049 ~"This GDB was configured as "--host=i686-w64-mingw32 --target=arm-none-eabi".\n"
  12. 752,049 ~"Type "show configuration" for configuration details.\n"
  13. 752,049 ~"For bug reporting instructions, please see:\n"
  14. 752,049 ~"<http://www.gnu.org/software/gdb/bugs/>.\n"
  15. 752,049 ~"Find the GDB manual and other documentation resources online at:\n    <http://www.gnu.org/\
  16. software/gdb/documentation/>."
  17. 752,049 ~"\n\n"
  18. 752,049 ~"For help, type "help".\n"
  19. 752,049 ~"Type "apropos word" to search for commands related to "word".\n"
  20. 752,049 3^done
  21. 752,049 (gdb)
  22. 752,050 4-environment-cd E:/McuXpresso/evkbimxrt1050_hello_world
  23. 752,064 4^done
  24. 752,064 (gdb)
  25. 752,065 5-gdb-set breakpoint pending on
  26. 752,080 5^done
  27. 752,080 (gdb)
  28. 752,080 6-gdb-set detach-on-fork on
  29. 752,096 6^done
  30. 752,096 (gdb)
  31. 752,096 7-enable-pretty-printing
  32. 752,111 7^done
  33. 752,111 (gdb)
  34. 752,111 8-gdb-set python print-stack none
  35. 752,127 8^done
  36. 752,127 (gdb)
  37. 752,127 9-gdb-set print object on
  38. 752,142 9^done
  39. 752,142 (gdb)
  40. 752,142 10-gdb-set print sevenbit-strings on
  41. 752,157 10^done
  42. 752,157 (gdb)
  43. 752,157 11-gdb-set host-charset UTF-8
  44. 752,173 11^done
  45. 752,173 (gdb)
  46. 752,173 12-gdb-set target-charset GBK
  47. 752,189 12^done
  48. 752,189 (gdb)
  49. 752,189 13-gdb-set target-wide-charset UTF-16
  50. 752,205 13^done
  51. 752,205 (gdb)
  52. 752,205 14-gdb-set dprintf-style call
  53. 752,220 14^done
  54. 752,220 (gdb)
  55. 752,220 15-gdb-set target-async on
  56. 752,235 15^done
  57. 752,235 (gdb)
  58. 752,235 16-gdb-set record full stop-at-limit off
  59. 752,250 16^done
  60. 752,250 (gdb)
  61. 752,250 17-gdb-set non-stop on
  62. 752,266 17^done
  63. 752,266 (gdb)
  64. 752,266 18-gdb-set auto-solib-add on
  65. 752,281 18^done
  66. 752,281 (gdb)
  67. 752,283 19-file-exec-and-symbols --thread-group i1 E:/McuXpresso/evkbimxrt1050_hello_world/Debug/evk\
  68. bimxrt1050_hello_world.axf
  69. 752,353 19^done
  70. 752,353 (gdb)
  71. 752,354 20-interpreter-exec console "set non-stop on"
  72. 752,374 20^done
  73. 752,374 (gdb)
  74. 752,374 21-interpreter-exec console "set pagination off"
  75. 752,390 =cmd-param-changed,param="pagination",value="off"
  76. 752,390 21^done
  77. 752,390 (gdb)
  78. 752,391 22-interpreter-exec console "set mi-async"
  79. 752,406 22^done
  80. 752,406 (gdb)
  81. 752,406 23-interpreter-exec console "set remotetimeout 60000"
  82. 752,421 =cmd-param-changed,param="remotetimeout",value="60000"
  83. 752,421 23^done
  84. 752,421 (gdb)
  85. 752,477 24-target-select extended-remote | crt_emu_cm_redlink -msg-port=56371 -g -mi -2 -pMIMXRT1052\
  86. xxxxB -vendor=NXP --connectscript=RT1050_connect.scp  -ProbeHandle=1 -CoreIndex=0 -cache=disable --f\
  87. lash-hashing --flash-driver= -x E:/McuXpresso/evkbimxrt1050_hello_world/Debug --flash-dir C:/nxp/MCU\
  88. XpressoIDE_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.bin.win32_11.3.0.202101111546/binaries/F\
  89. lash --flash-dir E:/McuXpresso/.mcuxpressoide_packages_support/MIMXRT1052xxxxB_support/Flash --telne\
  90. [message truncated to 5 lines. More lines can be set in the Preference->Debug->GDB eclipse preference page.]
  91. 754,765 =thread-group-started,id="i1",pid="42000"
  92. 754,765 =thread-created,id="1",group-id="i1"
  93. 754,765 *running,thread-id="1"
  94. 754,894 ~"\nProgram"
  95. 754,894 ~" stopped.\n"
  96. 754,896 ~"0x0020d138 in ?? ()\n"
  97. 754,896 *stopped,reason="signal-received",signal-name="0",signal-meaning="Signal 0",frame={addr="0x0\
  98. 020d138",func="??",args=[],arch="armv7e-m"},thread-id="1",stopped-threads=["1"]
  99. 754,896 24^connected
  100. 754,896 (gdb)
  101. 754,897 25-interpreter-exec console "set mem inaccessible-by-default on"
  102. 754,897 25^done
  103. 754,897 (gdb)
  104. 754,898 26-interpreter-exec console "mon ondisconnect cont"
  105. 754,923 26^done
  106. 754,923 (gdb)
  107. 754,923 27-interpreter-exec console "set arm force-mode thumb"
  108. 754,923 =cmd-param-changed,param="arm force-mode",value="thumb"
  109. 754,923 27^done
  110. 754,923 (gdb)
  111. 754,924 28-interpreter-exec console "set remote hardware-breakpoint-limit 6"
  112. 754,924 =cmd-param-changed,param="remote hardware-breakpoint-limit",value="6"
  113. 754,924 28^done
  114. 754,924 (gdb)
  115. 754,924 29set range-stepping on
  116. 754,925 &"set range-stepping on\n"
  117. 754,925 29^done
  118. 754,925 (gdb)
  119. 754,925 30-interpreter-exec console "mon semihost enable"
  120. 754,939 30^done
  121. 754,939 (gdb)
  122. 754,939 31-target-download
  123. 754,970 31+download,{section=".boot_hdr",section-size="8192",total-size="1779440"}
  124. 754,970 31+download,{section=".boot_hdr",section-sent="8192",section-size="8192",total-sent="8192",t\
  125. otal-size="1779440"}
  126. 754,986 31+download,{section=".text",section-size="17948",total-size="1779440"}
  127. 754,986 31+download,{section=".data",section-size="104",total-size="1779440"}
  128. 755,502 32-list-thread-groups
  129. 755,616 31^done,address="0x600022f0",load-size="26244",transfer-rate="361984",write-rate="6561"
  130. 755,616 (gdb)
  131. 755,616 33-interpreter-exec console "mon SWO datasource"
  132. 755,617 32^done,groups=[{id="i1",type="process",pid="42000",executable="E:\\McuXpresso\\evkbimxrt105\
  133. 0_hello_world\\Debug\\evkbimxrt1050_hello_world.axf"}]
  134. 755,617 (gdb)
  135. 755,623 34-list-thread-groups i1
  136. 755,631 33^done
  137. 755,631 (gdb)
  138. 755,635 35-gdb-show --thread-group i1 language
  139. 755,663 34^done,threads=[{id="1",target-id="Thread 1",details="Runnable",frame={level="0",addr="0x60\
  140. 0022f0",func="ResetISR",args=[],file="../startup/startup_mimxrt1052.c",fullname="E:\\McuXpresso\\evk\
  141. bimxrt1050_hello_world\\startup\\startup_mimxrt1052.c",line="638",arch="armv7e-m"},state="stopped"}]\

  142. 755,663 (gdb)
  143. 755,664 35^done,value="auto"
  144. 755,664 (gdb)
  145. 755,665 36-gdb-set --thread-group i1 language c
  146. 755,665 36^done
  147. 755,665 (gdb)
  148. 755,665 37-interpreter-exec --thread-group i1 console "p/x (char)-1"
  149. 755,666 ~"$1 = 0xff\n"
  150. 755,666 37^done
  151. 755,666 (gdb)
  152. 755,666 38-data-evaluate-expression --thread-group i1 "sizeof (void*)"
  153. 755,667 38^done,value="4"
  154. 755,667 (gdb)
  155. 755,667 39-gdb-set --thread-group i1 language auto
  156. 755,667 39^done
  157. 755,667 (gdb)
  158. 755,668 40-interpreter-exec --thread-group i1 console "show endian"
  159. 755,668 ~"The target endianness is set automatically (currently little endian)\n"
  160. 755,668 40^done
  161. 755,668 (gdb)
  162. 755,671 41-break-insert -t -h -f main
  163. 755,671 42-stack-info-depth --thread 1 11
  164. 755,709 41^done,bkpt={number="1",type="hw breakpoint",disp="del",enabled="y",addr="0x6000266e",func=\
  165. "main",file="../source/hello_world.c",fullname="E:\\McuXpresso\\evkbimxrt1050_hello_world\\source\\h\
  166. ello_world.c",line="36",thread-groups=["i1"],times="0",original-location="main"}
  167. 755,709 (gdb)
  168. 755,709 43-gdb-show --thread-group i1 new-console
  169. 755,709 42^done,depth="1"
  170. 755,710 (gdb)
  171. 755,710 43^error,msg="Undefined show command: "new-console".  Try "help show"."
  172. 755,710 (gdb)
  173. 755,711 44-exec-continue --thread-group i1
  174. 755,711 44^running
  175. 755,711 *running,thread-id="1"
  176. 755,773 (gdb)
  177. 756,047 45-thread-info 1
  178. 756,117 45^done,threads=[{id="1",target-id="Thread 1",details="Running",state="running"}]
  179. 756,117 (gdb)
  180. 756,134 46-thread-select 1
  181. 756,159 47-thread-select 1
  182. 756,165 46^done,new-thread-id="1"
  183. 756,165 (gdb)
  184. 756,166 48-thread-select 1
  185. 756,229 47^done,new-thread-id="1"
  186. 756,229 (gdb)
  187. 756,276 48^done,new-thread-id="1"
  188. 756,276 (gdb)
复制代码
貌似RESET后BOOTROM程序在ROMCP段因某个逻辑判断异常后终止。
因烧写的程序数据是对的,于是将BOOT_MODE切到[10]位置,再次上电启动,串口未能正常输出HelloWorld,也就是说,程序仍旧未能正确执行。
请问各位大佬,有遇到过这样的问题吗?可能的原因何在?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107463
QQ
发表于 2021-6-30 09:42:49 | 显示全部楼层
帮顶。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-2 21:11 , Processed in 0.152139 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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