해결 : 사용자 코드가 플래시 기반일 경우에만 플래시롬 대화상자에서 처리가능하며, 램 기반일 경우에만 램부팅 대화상자에서 처리 가능합니다. 기타의 경우에는 처리할 수 없습니다.
문제 : 부트로더 진입 실패
해결 : 이 문제는 대부분 잘못된 하드웨어 연결(easyDSP pod와 MCU 보드간)에 의한 것입니다.
스텝 1 : 도움말을 기반으로 현재 연결이 올바른 지 다시 한번 확인해 주십시요. 만약 오류가 발견되지 않는 다면 스텝2로 넘어갑니다.
스텝 2 : 아래 그림을 참조하여 부팅시 easyDSP핀의 실제 파형을 관찰하여 주십시요. easyDSP의 /RESET 신호가 DSP에 직결되지 않을 경우에는 (예를 들어, 전원 감시 IC가 그 중간에 위치할 경우), DSP의 리셋 신호를 직접 관찰하여 주십시오.
확인 1 : MCU 리셋 입력 신호(NRST)가 Low->High로 변경될 때, easyDSP의 BOOT신호가 High이어야 합니다.
easyDSP /RESET 신호가 MCU에 직결된 경우에는 하기 그림처럼 이 조건이 보장됨.
직결되지 않고 중간에 전원 감시 IC가 있을 경우에는 전원 감시 IC의 동작 조건에 따라 이 조건이 만족되지 않을 수 있음.
확인 2 : easyDSP RX핀에 0x7F 값이 송출된 후 TX핀에 0x79값이 송출됨./RESET핀이 High가 된 이후 약 1.050sec 이후에 RX를 통해 easyDSP로부터 MCU에게 0x7F(even parity)가 전달됩니다. 보딩 bps는 보통 115200bps 또는 57600bps이지만 MCU종류에 따라 다를 수 있습니다. 전달된 0x7F을 기반으로 MCU는 bps를 파악하여, TX를 통해 파악된 bps로 다시 easyDSP에 0x79(even parity)값을 보내줍니다. 이러한 작업을 통해, 상호간에 bps를 공유하는 auto bauding이 완료되는 것입니다.
오토보딩이 실패할 수 있는 경우는 하기와 같습니다.
경우 1 : 0x79가 관찰되지 않은 경우. 이 경우 보통 Option Byte를 제대로 설정하지 않아서 리셋 이후 MCU가 부트로더로 진입하지 않는 경우이므로 Option Byte를 재 설정하시기 바랍니다.
경우 2 : 0x79가 관찰되나 0x7F와 다른 bps를 보이는 경우. 이 경우는 MCU가 정확한 bps로 오토보딩하지 못한 예이며, easydsp@gmail.com 으로 리포팅하여 주시기 바랍니다.
![]()
STM32 MCU는 부트로더 진입후 여러 통신 채널 중 입력이 들어오는 곳을 찾아 해당 채널을 기반으로 부트로더를 작동시킵니다. 만약 easyDSP는 USART1에, 다른 통신 디바이스가 USART2에 연결되어 있다면, easyDSP가 부트로더에 진입하기 위해 MCU에 리셋을 걸고 나서, USART2 RX에 신호가 발생하게 되면 부트로더가 USART2를 기반으로 동작할 수 있고 이는 곧 부트로더 실패를 의미합니다.
해결 : easyDSP 버전 12.7부터 부트로더 진입을 위한 MCU 리셋 약 5초 전에 MCU에 이러한 상황을 알립니다. MCU는 상황을 인지하고 필요한 조치를 취할 수 있습니다. 필요한 조치는 사용자가 직접 easyStm32LL.c의 아래 부분을 코딩해야 합니다.
본 문제의 경우 USART2에 연결되어 있는 통신 디바이스의 통신을 중지합니다. 이로써 리셋 이후 easyDSP가 연결된 USART1에만 유효한 신호가 발생되어 부트로더 진입을 성공하게 됩니다.