작성
·
389
1
Error! Failed to read target status
Debugger connection lost.
Shutting down...
이라는 오류를 만나고 정상적으로 디버깅이 되지 않는 문제를 만났습니다.
해당 오류에 대해 구글링을 해봤지만, 마땅한 해결책이 나오지 않아 실습에 어려움을 겪고 있습니다.
ST-LINK를 지웠다가 다시 설치해도 동일한 문제가 반복됩니다.
CubeIDE의 'Build Analyzer'를 보니 빌드된 프로그램이 RAM을 18.35KB, flash는 17.3KB를 사용하는 것 같습니다.
F103RB는 20KB SRAM과 128KB flash를 가지고 있고, L053R8은 8KB SRAM과 64KB flash를 가지고 있는데, 메모리 부족 때문에 디버깅 문제가 생기는 것일까요? Debug console 전문을 올립니다! 감사합니다!
STMicroelectronics ST-LINK GDB server. Version 5.9.1
Copyright (c) 2021, STMicroelectronics. All rights reserved.
Starting server with the following options:
Persistent Mode : Disabled
Logging Level : 31
Listen Port Number : 61234
Status Refresh Delay : 15s
Verbose Mode : Enabled
SWD Debug : Enabled
InitWhile : Enabled
COM frequency = 4000 kHz
Target connection mode: Under reset
Reading ROM table for AP 0 @0xf0000fd0
Hardware watchpoint supported by the target
ST-LINK Firmware version : V2J38M27
Device ID: 0x417
PC: 0x8002ae8
ST-LINK device status: HALT_MODE
ST-LINK detects target voltage = 3.26 V
ST-LINK device status: HALT_MODE
ST-LINK device initialization OK
Waiting for debugger connection...
Waiting for connection on port 61234...
Waiting for connection on port 61235...
Accepted connection on port 61234...
Debugger connected
------ Switching to STM32CubeProgrammer -----
-------------------------------------------------------------------
STM32CubeProgrammer v2.8.0
-------------------------------------------------------------------
ST-LINK SN : 066DFF565653756687162247
ST-LINK FW : V2J38M27
Board : NUCLEO-L053R8
Voltage : 3.25V
SWD freq : 4000 KHz
Connect mode: Under Reset
Reset mode : Hardware reset
Device ID : 0x417
Revision ID : Rev X
Device name : STM32L05x/L06x/L010
Flash size : 64 KBytes
Device type : MCU
Device CPU : Cortex-M0+
BL Version : 0x__
Memory Programming ...
Opening and parsing file: ST-LINK_GDB_server_a05200.srec
File : ST-LINK_GDB_server_a05200.srec
Size : 17720 Bytes
Address : 0x08000000
Erasing memory corresponding to segment 0:
Erasing internal memory sectors [0 138]
Download in Progress:
�������������������������������������������������� 0%
������������� 26%������������� 52%������������� 78%����������� 100%
File download complete
Time elapsed during download operation: 00:00:01.752
Verifying ...
Read progress:
�������������������������������������������������� 50%
����� 11%������ 23%������ 34%������ 46%����� 57%������ 69%������ 80%������ 92%���� 100%
Download verified successfully
------ Switching context -----
COM frequency = 4000 kHz
Target connection mode: Under reset
Reading ROM table for AP 0 @0xf0000fd0
Hardware watchpoint supported by the target
ST-LINK Firmware version : V2J38M27
Device ID: 0x417
PC: 0x8002ae8
ST-LINK detects target voltage = 3.26 V
ST-LINK device status: HALT_MODE
ST-LINK device initialization OK
SWV poll delay set to 3413µs for baudrate 0Hz
Accepted connection on port 61235...
handle_vCont_c, continue thread
ST-LINK device status: LOCKUP
Enter STM32_SystemReset() function
NVIC_DFSR_REG = 0x0000000B
NVIC_CFGFSR_REG = 0x00000000
Error! Failed to read target status
Debugger connection lost.
Shutting down...
Stopping port 61235
답변 1
1
Embedded June님!!! 우선 FreeRTOS 프로그래밍 강좌에 관심을 가져주셔서 감사드립니다.
말씀하신 것처럼 F103RB 과 L053R8 은 서로 다른 STM32 보드입니다.
따라서, 해당 보드에서 FreeRTOS 을 사용하시려면 포팅 작업을 먼저 진행해주셔야합니다.
자세한 포팅 가이드는 제 영상 중 PART3. FreeRTOS 포팅 실습 영상을 참고해주시면 되요.
PART3. FreeRTOS 포팅 실습 영상(약 12개)을 모두 보시고, 직접 포팅을 해보시는 것을 추천드립니다.
포팅이 잘 안되거나, 직접 하시기 부담스러우시면 메일(guileschool@gmail.com) 주세요.
Zoom 이나 Webex 같은 화상 채팅 앱을 이용해서 원격으로 도와드릴 수 있습니다.
제가 가능한 날짜는 8월6일부터이고요, 시간대는 월,수,금 오후 8시~11시 사이입니다.
원격미팅을 원하시는 희망 날짜와 시간을 1순위, 2순위, 3순위까지 알려주시면 회신드릴게요.
정말 빠르게 답변주셔서 정말정말 감사합니다!
우선 친절하게 설명해주신 영상대로 포팅 완료했고, 기존의 문제는 해결했습니다.
기존 프로젝트를 import할 때 MCU도 일치해야 문제가 안생긴다는 점을 배웠습니다. 정말 감사합니다.
printf()와 관련된 많은 오류를 새롭게 발견했습니다. 결과적으로 두 MCU의 UART와 HAL에 대한 코드가 달라서 발생하는 문제인 것 같습니다.
`printf()`를 하기 위해 `__io_putchar()`를 main.c에 넣으니
console에 위와 같은 에러가 발생했습니다.
'01_TASKMAN/Src/main.c'을 그대로 저의 'main.c'에 복사한 뒤 디버깅을 하면,
위와 같이 UART와 HAL과 관련된 무수한 오류가 뜨는 것을 확인할 수 있습니다.
선생님의 예제파일인 '01_TASKMAN/Src/main.c'와 자동생성된 저의 'main.c'의 내용물이 많이 다르고, MCU를 다른 걸 사용하다보니 '01_TASKMAN/Src/stm32f1xx~~.c'와 저의 'stm32l0xx~~.c'의 내용이 달라서 발생하는 문제인 것 같습니다.
빠르게 해결할 수 있는 문제가 아닌 것 같아 우선 F103RB 보드를 구매해서 강의를 수강하겠습니다
만일 보드를 바꿔도 문제가 생긴다면 이쪽과 메일로 추가문의 드리겠습니다! 감사합니다!