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

UART 인터페이스 플래시 플러그인 예

UART 통신을 사용하는 샘플 플래시 플러그인은 참조할 수 있도록 SDK 예제 SDK의 일부로 제공됩니다. 이 섹션에서는 이에 대해 자세히 설명합니다.

설명

UART 인터페이스 플래시 플러그인은 다음 4개의 API 후크를 통해 BSL 호스트와 ROM BSL 간 데이터 트랜잭션을 처리합니다.

  • BSL_PI_UART_init
  • BSL_PI_UART_receive
  • BSL_PI_UART_send
  • BSL_PI_UART_deinit

UART 플래시 플러그인은 주로 필요할 때 사용자 지정 구현으로 ROM BSL UART 인터페이스를 재정의하는 데 사용됩니다.

사용 예

  • UART_RX 및 UART_TX를 BSL 호스트에 연결합니다(UART 인터페이스를 사용하는 모든 마이크로컨트롤러).
  • 예제를 컴파일하고 로드합니다.
  • BSL 호출 핀 또는 기타 호출 메서드를 사용하여 BSL 호출 조건을 만듭니다.
  • 호스트에서 연결 명령을 전송합니다. 성공하면 BSL 승인이 수신됩니다.
  • 호스트에서 GetDeviceInfo 명령을 전송합니다.
  • BSL은 UART 인터페이스 플래시 플러그인 버전 정보로 응답합니다.
  • 마찬가지로 메모리에 있는 데이터를 프로그래밍하기 위해 삭제, 프로그램, 검증 명령을 전송합니다.

소프트웨어 파일 세부 정보

파일 이름세부 정보
bsl_uart.c호스트와 BSL 코어 간의 통신을 처리합니다. 4개의 인터페이스 API Init, Receive, Send 및 Deinit을 정의합니다.
bsl_uart.hbsl_uart.c의 BSL 승인 및 함수 선언에 대한 정의가 포함되어 있습니다
ti_msp_dl_config.hUART 핀, 클록 구성 등과 같은 장치별 구성이 포함되어 있습니다.
boot_config.hBCR 및 BSL 구성 구조를 포함하고 있습니다
startup_mspm0x_ticlang기본 처리기 함수 정의만 포함하는 시작 파일입니다. 일반적인 시작 파일과는 달리 인터럽트 벡터 테이블 또는 재설정 처리기가 없습니다. 이러한 기능은 플래시 플러그인에서 사용되지 않으며 메모리 소비를 줄이기 위해 제거되기 때문입니다.
mspm0x.cmd플래시 플러그인 이미지가 메모리와 SRAM에서 상주하는 메모리 영역을 지정하는 링커 명령 파일입니다.

사용자화

이 예에서는 플래시 플러그인에 대한 레퍼런스 구현을 제공합니다. 필요에 따라 사용자 지정할 수 있습니다. 인터페이스 플래시 플러그인 API가 중요한 변경 영역입니다.

따라야 할 단계:

  • 필요에 따라 플래시 플러그인 API를 수정합니다
  • 변경이 완료되면 코드를 컴파일합니다
  • API 포인터가 업데이트된 경우 BSL 구성에 대한 CRC를 계산합니다
  • BCR 구성에서 플래시 쓰기 보호 설정을 적절하게 수정합니다
  • BCR 구성에 대한 CRC를 계산합니다
  • 새 CRC를 BCR 및 BSL 구성에 저장합니다.
  • 코드를 다시 컴파일합니다.
  • 플래시 플러그인 이미지를 로드합니다