수행기록퀘스트3

STM32 퀘스트 챌린지 Q3 B-L475E-IOT01A 보드에 바이너리 파일 라이팅하기
2022. 9. 8 (목) 22:16 최종수정 2022. 9. 15 (목) 17:10 Elliot 조회 426 좋아요 0 스크랩 0 댓글 0

1. CleanSensing1.bat 실행

B-L475E-IOT01A1보드의 펌웨어를 클리어 하기 위한 Batch파일을 실해하기 위해서는 몇가지 수정이 필요합니다.
그리고, STM32툴을 사용하다보면 256자가 넘는 긴~ 폴더명으로 인해 오류가 생기는 일이 잦습니다.
다음 파일들을 D:\Temp 와 같이 루트 디렉토리에 임시 폴더를 만들어 복사 한 후
BATCH파일의 내용을 다음과 같이 수정하고 실행 하시면 됩니다.

* CleanSENSING1.BAT
* SENSING1.BIN
* sensing1_bl.bin

 

@echo off
set CUBE_PROG="C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin\STM32_Programmer_CLI.exe"
set NAMESENSING1=D:\Temp\sensing1
set BOOTLOADER="D:\Proj\STM32CubeFunctionPack_SENSING1_V4.0.3\Utilities\BootLoader\STM32L476RG\BootLoaderL4.bin"
color 0F
echo                /******************************************/
echo                           Clean FP-AI-SENSING1
echo                /******************************************/
echo                              Full Chip Erase
echo                /******************************************/
%CUBE_PROG% -c port=swd mode=UR reset=HWrst -e all
echo                /******************************************/
echo                              Install BootLoader
echo                /******************************************/
%CUBE_PROG% -c port=swd mode=UR reset=HWrst -d %BOOTLOADER% 0x08000000 -v
echo                /******************************************/
echo                          Install FP-AI-SENSING1
echo                /******************************************/
%CUBE_PROG% -c port=swd mode=UR reset=HWrst -d %NAMESENSING1%.bin 0x08004000 -v
echo                /******************************************/
echo                      Dump FP-AI-SENSING1 + BootLoader
echo                /******************************************/
set offset_size=0x4000
for %%I in (%NAMESENSING1%.bin) do set application_size=%%~zI
echo %NAMESENSING1%.bin size is %application_size% bytes
set /a size=%offset_size%+%application_size%
echo Dumping %offset_size% + %application_size% = %size% bytes ...
echo ..........................
%CUBE_PROG% -c port=swd mode=UR reset=HWrst -u 0x08000000 %size% %NAMESENSING1%_BL.bin
echo                /******************************************/
echo                                 Reset STM32
echo                /******************************************/
%CUBE_PROG% -c port=swd mode=UR reset=HWrst -rst
if NOT "%1" == "SILENT" pause

2.STM32CubeIDE에서 FP-AI-SENSING1프로젝트를 Import 하고, Build를 완료

*Build 전 부팅 메시지
UART Initialized
OK Accelero/Gyroscope Sensor
OK Magneto Sensor
OK Humidity/Temperature1 Sensor
OK Pressure/Temperature2 Sensor
Disabled Accelero Sensor
Disabled Gyroscope Sensor
Disabled Magneto Sensor
Disabled Humidity Sensor
Disabled Temperature Sensor1
Disabled Pressure Sensor
Disabled Temperature Sensor2
Attempting to read STM32.TXT...
FatFs volume ready
------------------------------------------------------------
STMicroelectronics AI-SENSING1
        Version 4.0.3
        STM32L475R-IoT01A1 board
        (HAL 1.10.0_0)
        Compiled Apr 13 2021 10:25:31 (IAR)
------------------------------------------------------------
Meta Data Manager read from Flash
Meta Data Manager version=1.0.0
        Generic Meta Data found:
                 NODE_NAME Size=8 [bytes]
SERVER: BLE Stack Initialized
                BoardName= IAI_403
                BoardMAC = c2:55:05:07:9a:9f
HW & SW Service W2ST added successfully
Console Service W2ST added successfully
Config  Service W2ST added successfully
Testing BootLoaderCompliance:
        Version  2.0.0
        MagicNum    OK
        MaxSize = 507904
        OTAStartAdd OK
        OTADoneAdd  OK
BootLoader Compliant with FOTA

Console command server.
Type 'help' to view a list of registered commands.
$

3.STM32CubeProgrammer를 실행하고 B-L475E-IOT01A1 보드를 연결하고 \STM32CubeFunctionPack_SENSING1_V4.0.3\Projects\B-L475E-IOT01A\Applications\SENSING1\Binary 의 경로에 부트로더 바이너리 “SENSING1_BL.bin” 파일을 라이팅

* Build후 부팅 메시지

------------------------------------------------------------
STMicroelectronics AI-SENSING1
        Version 4.0.3
        STM32L475R-IoT01A1 board

        (HAL 1.10.0_0)
        Compiled Sep  8 2022 11:22:05 (GCC)  <<< BUILD완료
------------------------------------------------------------
Meta Data Manager read from Flash
Meta Data Manager version=1.0.0
        Generic Meta Data found:
                 NODE_NAME Size=8 [bytes]

4.B-L475E-IOT01A1 보드에 연결된 BLE 모듈인 BlueNRG의 Device Name을 Code에서 최대 7개의 글자 내에서 설정합니다. 설정 후 STBLESensor App에서 본인이 설정한 Device Name이 보이도록 아래와 같이 보드와 호스트 디바이스가 보이도록 촬영후에 제출

static void Init_BlueNRG_Stack(void)
{
  char BoardName[8] = {'E','L','L','I','O','T','7'};
  uint16_t service_handle, dev_name_char_handle, appearance_char_handle;
  int ret;

  for(int i=0; i<7; i++) {
    NodeName[i+1] = BoardName[i];
  }

  //BoardName[7]= 0;

#ifdef MAC_SENSING1
  {
    uint8_t tmp_bdaddr[6]= {MAC_SENSING1};
    int32_t i;
    for(i=0;i<6;i++) {
      bdaddr[i] = tmp_bdaddr[i];
    }
  }
#endif /* MAC_SENSING1 */

 

 

 

5. 스마트폰의 Mobile App Store에서 STBLESensor Application을 다운로드 받습니다. STBLESensor App에서 Activity Recognition을 클릭합니다. 아래와 같이 B-L475-IOT01A1 보드를 손으로 흔들어 보면서 Activity Recognition의 결과가 달라지는 과정을 담은 동영상을 촬영하여 제출합니다. ( 보드를 흔들면서 Activity Recognition 결과가 달라지는 과정이 포함된 10초 이내의 동영상으로 촬영)

 

 

 

 

 

첨부파일
STM32quest.mp4 다운로드

로그인 후
참가 상태를 확인할 수 있습니다.