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

보조 부트로더 예

보조 부트로더는 참조용 SDK 예제의 일부로 제공됩니다. 이 섹션에서는 이에 대해 자세히 설명합니다.

설명

이 샘플 보조 부트로더는 장치의 기본 BSL(ROM BSL)과 동일한 BSL 프로토콜 형식을 사용하여 메모리의 데이터 프로그래밍/확인을 지원하며 ROM BSL과 동일한 방식으로 호출할 수 있습니다.

다음과 같은 주요 기능을 지원합니다

  • 데이터 프로그래밍
  • 플래시 메모리 삭제
  • 데이터 다시 읽기
  • CRC 검증
  • 애플리케이션 시작

USB를 사용하여 PHY와 통신합니다.

이 예에서는 보조 부트로더 구현과 등록에 대해 다룹니다. 따라서 이 이미지가 장치에 로드되면 장치의 기본 부트로더를 사용할 수 없습니다. 보조 부트로더만 활성화됩니다. 기본 부트로더를 사용하도록 장치를 되돌리려면 SWD_Factory_Reset 명령을 사용해야 합니다(하위 시스템 디버그 사서함을 통해 공장 초기화). .

사용 예

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

소프트웨어 파일 세부 정보

파일 이름세부 정보

secondary_bsl.c

BSL 작동에 필요한 주변 기기를 초기화합니다. 통신 인터페이스에서 명령 패킷을 수신하여 명령 처리 계층으로 전달합니다.

또한 BSL 구성 메모리에 2차 부트로더를 등록하는 일도 수행합니다.

bsl_ci.c

명령 패킷을 해석하고, 명령을 처리하고, 응답을 호스트에 다시 보냅니다

bsl_ci.h

BSL 명령 및 응답의 정의가 포함되어 있습니다. bsl_ci.c의 함수 선언도 볼 수 있습니다.

bsl_uart.c

호스트와 BSL 코어 간의 통신을 처리합니다

bsl_uart.h

bsl_uart.c의 BSL 승인 및 함수 선언에 대한 정의가 포함되어 있습니다

ti_msp_dl_config.h

UART 핀, 사용된 주변 장치의 기본 주소 등과 같은 장치별 구성이 포함되어 있습니다

boot_config.h

BCR 및 BSL 구성 구조를 포함하고 있습니다

factory_config.c

SRAM 메모리 크기와 같이 출하 시 구성된 장치별 데이터를 가져오는 기능을 구현합니다.

factory_config.h

factory_config.c의 공장 구성 구조 및 함수 선언을 포함합니다

startup_mspm0x_ticlang

벡터 테이블, 재설정 처리기 및 기타 핸들러가 포함된 시작 파일입니다

mspm0x.cmd

보조 부트로더 이미지가 메모리 및 해당 이미지가 작동해야 하는 SRAM 영역에 있어야 하는 메모리 영역을 지정하는 링커 명령 파일입니다.

사용자화

이 예제는 보조 부트로더에 대한 레퍼런스 구현을 제공합니다. 필요에 따라 사용자 지정할 수 있습니다. BSL 코어 계층(secondary_bsl.c, bsl_ci.c) 또는 인터페이스 계층(bsl_uart.c)은 사용자 지정이 수행되는 주요 위치입니다.

따라야 할 단계

  • 필요에 따라 코드를 수정합니다

  • 변경이 완료되면 코드를 컴파일합니다

  • BCR 구성에서 플래시 쓰기 보호 설정을 적절하게 수정합니다

  • BCR 구성에 대한 CRC를 계산하고 새 CRC 값을 저장합니다

  • 코드를 다시 컴파일합니다

  • 사용자 지정된 BSL 이미지를 로드합니다