int main(void) {
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USART3_UART_Init();
MX_FATFS_Init();
MX_USB_HOST_Init();
MX_LWIP_Init();
tftpd_init();
while (1) {
MX_LWIP_Process();
MX_USB_HOST_Process();
}
}
USB와 랜케이블 연결
아래경로에서 tftpd64 를 다운받아 설치한다.
https://bitbucket.org/phjounin/tftpd64/downloads/
TFTP Client 탭을 선택한 뒤 보드의 고정 IP와 포트 69번, 전송할 파일을 선택하고 Put을 클릭한다.
USB를 빼서 PC에 연결 후 확인하면 그림파일이 바이너리로 잘 전송된 것을 확인할 수 있다.
송신 확인
Wireshark에서 TFTP 패킷의 각 필드를 까서 보여준다.
처음 Client가 WRQ 패킷을 송신할 때 52047 포트를 사용했다.
다음 서버가 Block #0에 대한 ACK를 송신할때 62510포트를 사용해 클라이언트의 52047포트로 보냈다.
이후에는 계속 이 포트들을 사용해 transfer를 하게 된다.
last DATA packet과 last ACK
다음으로 서버로부터 파일을 수신받는 건 먼저 서버에 있는 Remote File Name을 지정해야하고, Local File 부분에 저장할 파일명을 풀 경로와 함께 써주어야 한다. 그리고 Get Button을 누른다.
수신확인 완료
이걸 사용해 부트로더를 만들어 보려고하는게 예제로 제공되는 방식을 사용하진 않고 변형하려고 한다.
'임베디드 개발 > STM32 (ARM Cortex-M)' 카테고리의 다른 글
STM32 ] TouchGFX 설치하고 여러 Widget과 Interaction 사용 해보기 (0) | 2023.07.17 |
---|---|
STM32 ] TFTP Bootloader (0) | 2023.04.16 |
STM32 ] TFTP Server (0) | 2023.04.14 |
STM32 ] USB Host MSC (0) | 2023.04.13 |
STM32 ] 유저 버튼 고장 수리하기 (0) | 2023.04.09 |