KOKU005 February   2023

 

  1.   요약
  2.   상표
  3. 1BSL 기능 개요
  4. 2용어
  5. 3BSL 아키텍처
    1. 3.1 설계
      1. 3.1.1 타임아웃 기능
        1. 3.1.1.1 인터페이스 자동 감지
        2. 3.1.1.2 명령 수신
    2. 3.2 BSL 호출
      1. 3.2.1 빈 장치
      2. 3.2.2 애플리케이션 요청
      3. 3.2.3 GPIO 기반 호출
      4. 3.2.4 사서함 디버그 명령
      5. 3.2.5 기타
        1. 3.2.5.1 부팅 전 애플리케이션 확인
    3. 3.3 메모리
      1. 3.3.1 SRAM 메모리 사용량
    4. 3.4 BSL 구성
    5. 3.5 BSL 상태
  6. 4부트로더 프로토콜
    1. 4.1 패킷 형식
    2. 4.2 UART 및 I2C BSL 프로토콜
      1. 4.2.1 BSL 승인
      2. 4.2.2 주변 기기 구성
        1. 4.2.2.1 UART
        2. 4.2.2.2 I2C
        3. 4.2.2.3 CRC
    3. 4.3 부트로더 코어 명령
      1. 4.3.1  Connection
      2. 4.3.2  장치 정보 가져오기
      3. 4.3.3  부트로더 잠금 해제
      4. 4.3.4  데이터 프로그래밍
      5. 4.3.5  빠른 데이터 프로그래밍
      6. 4.3.6  데이터 다시 읽기
      7. 4.3.7  플래시 범위 삭제
      8. 4.3.8  대량 삭제
      9. 4.3.9  공장 초기화
      10. 4.3.10 독립 실행형 검증
      11. 4.3.11 애플리케이션 시작
      12. 4.3.12 전송 속도 변경
    4. 4.4 BSL 코어 응답
      1. 4.4.1 BSL 코어 메시지
      2. 4.4.2 자세한 오류
      3. 4.4.3 메모리 다시 읽기
      4. 4.4.4 장치 정보
      5. 4.4.5 독립 실행형 검증
    5. 4.5 부트로더 보안
      1. 4.5.1 암호로 보호된 명령
        1. 4.5.1.1 보안 경고
      2. 4.5.2 BSL 입력
  7. 5부트로더를 사용한 샘플 프로그램 흐름
  8. 6보조 부트로더
    1. 6.1 보조 부트로더 예
  9. 7인터페이스 플러그인
    1. 7.1 구현
      1. 7.1.1 Init
      2. 7.1.2 Receive
      3. 7.1.3 Transmit
      4. 7.1.4 Deinit
      5. 7.1.5 중요 참고
    2. 7.2 플래시 플러그인 유형
    3. 7.3 기존 인터페이스 재정의
      1. 7.3.1 UART 인터페이스 플래시 플러그인 예
  10. 8참고 문헌
  11. 9개정 내역

BSL 승인

BSL 소프트웨어의 주변 기기 인터페이스 섹션은 BSL 데이터 패킷의 래퍼 섹션을 구문 분석합니다. 데이터 전송에 오류가 있으면 오류 메시지가 즉시 전송됩니다. 모든 데이터가 성공적으로 수신된 후에 ACK가 전송되며, 이는 명령이 올바르게 실행되었음을 의미하지 않고(또는 명령이 유효하다는 의미도 아님), 데이터 패킷이 올바르게 포맷되어 해석을 위해 BSL 코어 소프트웨어로 전달되었음을 의미합니다.

BSL 프로토콜은 전송된 모든 BSL 데이터 패킷 외에 싱글 바이트 확인으로 응답하도록 명령합니다. 에는 BSL의 승인 응답이 나열되어 있습니다. ACK가 아닌 승인 바이트가 전송되면 BSL은 BSL 데이터 패킷을 보내지 않습니다. 호스트 프로그래머는 승인 오류를 확인하고 전송을 재시도해야 합니다.

데이터의미
0x00BSL_ACK(패킷 수신 성공)
0x51BSL_ERROR_HEADER_INCORRECT
0x52BSL_ERROR_CHECKSUM_INCORRECT
0x53BSL_ERROR_PACKET_SIZE_ZERO
0x54BSL_ERROR_PACKET_SIZE_TOO_BIG
0x55BSL_ERROR_UNKNOWN_ERROR
0x56BSL_ERROR_UNKNOWN_BAUD_RATE