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

설계

유효한 부트로더 호출 조건이 감지되면 부트로더가 부트코드에 의해 호출됩니다. BCR 구성의 BSL 모드 필드에서 부트로더가 활성화된 경우에만 호출됩니다.

부트로더가 시작되면 먼저 "Init" 단계를 실행합니다. 여기서 BSL 구성의 초기 확인이 수행되고 장치가 부트로더 작동에 맞게 구성됩니다.

다음으로 부트로더는 "인터페이스 자동 감지" 단계로 진입합니다. 이 단계에서 BSL은 사용 가능한 모든 BSL ROM 인터페이스 및 플래시 플러그인 인터페이스(등록된 경우)를 구성합니다. 그러면 BSL은 모든 인터페이스를 통해 데이터를 하나씩 폴링합니다. 인터페이스 중 하나에서 유효한 연결 패킷이 수신되면 해당 인터페이스는 추가 통신을 위한 활성 인터페이스로 간주되고 다른 모든 인터페이스는 비활성화됩니다. 인터페이스 검색은 10초 동안 수행되며, 감지된 인터페이스가 없으면 장치는 대기 모드로 전환됩니다.

다음으로 BSL은 "명령 수신" 단계로 진입합니다. 이 단계에서 BSL은 호스트의 명령을 무한 루프에서 대기하게 됩니다. 유효한 명령이 수신되면 명령이 처리되고 BSL 코어의 응답이 호스트로 다시 전송됩니다. 그런 다음 다시 루프로 돌아가 다음 명령을 기다리는 등의 작업을 수행합니다. 'Start Application' 명령이 수신되면 부트로더가 시스템 재설정을 트리거하고, 그 후에 부트코드가 실행되고 애플리케이션이 호출됩니다. 또한 이 단계의 시간 초과는 10초입니다. 유효한 명령이 수신되지 않으면 부트로더가 잠기고 절전 모드로 들어갑니다.

GUID-20221116-SS0I-QZM3-MFTH-L23MRZJCT8W7-low.png그림 3-1 BSL 아키텍처