CMSIS-DAP Interface Firmware for W7500 ( 2/2 )

3
1750

본 포스팅에서는 CMSIS-DAP interface firmware를 이용하여 새로운 Target MCU를 추가하기 위한 Software 작업에 대해 정리한다.

Source Download

CMSIS-DAP interface firmare를 download 하면, 크게 두 가지의 firmware 프로젝트를 확인 할 수 있다.

  • bootloader
    • Onboard interface 의 firmware를 Upload 하기 위해 사용
  • interface
    • Onboard interface를 통해 Target MCU의 firmware를 Upload 및 Dubugging을 하기 위해 사용
    • Onboard interface의 USB를 통해 Target MCU의 UART 통신을 하기 위해 사용

내가 진행하는 프로젝트에서는, Onboard interface 인 TG-LPC11U35-501 board에 이미 ISP 기능이 있고 Evaluation Board를 만든 다음 Onboard interface의 firmware를 변경 할 일이 별도로 없기 때문에 bootloader 기능은 생략 하였다.

CMSIS-DAP interface firmware 빌드

다운 받은 Software의 CMSIS-DAP\interface\mdk\lpc11u35 폴더에 가면 lpc11u35_w7500x_interface.uvproj 프로젝트가 존재 한다. 해당 프로젝트를 Keil IDE로 열고 컴파일하면 Obj\lpc11u35_w7500x 폴더에lpc11u35_w7500x_if.bin 파일이 생성 된다. 아래는 lpc11u35_w7500x_interface.uvproj 프로젝트의 속성들을 저장한 사진이다. 20150120_092543 20150120_092531 20150120_092552  20150120_092601 20150120_092611  20150120_092642 20150120_092654  20150120_092703 주의 :  Linker 탭에서 LPC11U35.sct 파일을 사용해야 한다. 다른 Scatter File의 경우, bootloader와 같이 사용하는 것을 대비하여 Interface firmware의 시작 주소가 0x00005000번지로 설정되어 있을 수 있다. 사용하는 Scatter File 이 아래와 같으면 된다.

 

Upload CMSIS-DAP Interface Firmware to TG-LPC11U35-501

  • TG-LPC11U35-501을 ISP Mode로 변경
    • TG-LPC11U35-501 보드에 USB를 연결하여 전원을 인가 한 후, 아래 그림의 ISP 버튼을 누른 상태에서 RESET 버튼을 누르면 ISP Mode로 진입 한다.

20150120_125438

  • TG-LPC11U35-501 보드가 정상적으로 ISP Mode로 진입 하면, Windows 탐색기에서 아래와 같은 저장장치로 인식 된다.

20150120_125825

  • 해당 저장장치에 있는 firmware.bin 파일을 삭제 하고, 위에서 생성된 lpc11u35_w7500x_if.bin 파일을 복사 한 후, TG-LPC11U35-501 보드를 Reset 한다.
  • Reset 후 Windows 탐색기를 다시 보면 아래와 같은 저장 장치로 인식되면 정상 동작이다.

20150120_130356

  • W7500 용 펌웨어를 컴파일 후, 생성된 Binary를 MBED 저장장치에 복사 하면 W7500의 펌웨어를 변경 할 수 있다.

Target Board를 추가 할 때, 수정 포인트

Flash Algorithms

CMSIS-Interface Firmware에는 Target MCU에 대한 Flash Algorithm 이 포함되어 있어야 한다. CMSIS-Interface Firmware를 구동하면, 해당 Flash Algorithm은 Target MCU의 RAM 영역에 업로드 후 실행 된다. W7500 Flash Algorithm 프로젝트에 대한 자세한 설명은 Keil IDE에 Flash Algorithm 추가 하기를 참고 하기 바란다. ( W7500 Flash Algorithm 프로젝트의 경로 : CMSIS-DAP\interface\flash_algo_mdk\W7500_flash_algo_mdk ) Flash Algorithm Binary를 텍스트로 만들 때, W7500 정보(W7500 RAM 시작 주소)를 기입하기 위해 CMSIS-DAP\tools\flash_algo_gen.py를 아래와 같이 수정하고, 생성된 Flash info를 확인하기 위한 출력 구문을 추가 한다. 20150116_181522 위 설정을 마친 후, Keil에서 W7500 Flash Algoritm 프로젝트를 컴파일 하면 Obj 폴더에 flash_algo.axf 파일이 생성된다. 생성된 flash_algo.axf 파일을 CMSIS-DAP\tools\tmp 에 복사 한 후, CMSIS-DAP/tools 경로에서 아래 명령을 수행 한다.   20150120_111333 위 과정이 정상적으로 완료되면, CMSIS-DAP\tools\tmp 폴더에 flash_algo.txt 파일이 생성된다.

위에 생성된 정보를 이용하여 CMSIS-DAP\interface\target\hal\DBG_Wiznet\DBG_W7500x\target_flash.h를 작성한다.

추가로 동일한 폴더 위치에 target_reset_W7500x.c를 아래와 같이 작성한다.

 

W7500 Target 정보 추가

usbd_user_msc.c에 Debugging을 위한 W7500의 Flash Size를 추가 한다. 20150116_181354 board.c에 W7500을 위한 Board 정보를 추가 한다. ( 현재는 Evaluation Board가 없는 상태이므로 임의의 Board ID와 Security 정보를 기입 하였다. ) 20150116_181324

CMSIS-DAP Interface Firmware for W7500 ( 1/2 ) 로 이동하기