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개정 내역

Receive

시제품

uint32_t receive(void);

return - 수신된 데이터 패킷의 32비트 시작 주소를 반환합니다. 데이터 패킷은 ROM BSL 프로토콜 Topic Link Label4에 설명된 것과 동일한 형식을 가져야 합니다.

설명

수신 기능은 BSL 호스트에서 데이터 패킷을 읽는 것을 처리해야 합니다. 완전한 패킷이 수신되어 데이터의 정확성 확인(데이터의 CRC 검증)이 된 경우에만 BSL 코어와 패킷을 공유해야 합니다. 또한 주소는 데이터 패킷당 한 번만 공유해야 합니다. 이 함수가 BSL 코어에 의해 호출되는 경우, 수신된 데이터 패킷이 없거나 진행 중일 때 '0'을 반환해야 합니다.

데이터 패킷이 아무런 문제 없이 성공적으로 수신된 경우 ROM BSL 플러그인이 제공하는 것과 같이 호스트에 ACK가 전송됩니다(ROM BSL acknowledgments 참조). 문제가 발생할 경우 NACK를 통해 호스트로 보고되어야 하며 패킷은 ROM BSL 코어와 공유되어서는 안 됩니다.