diff --git a/21_m1284p_WIZNET_TFTP_client_FATFS/Internet/TFTP/tftp.c b/21_m1284p_WIZNET_TFTP_client_FATFS/Internet/TFTP/tftp.c index 4ab80c6..c2cc823 100644 --- a/21_m1284p_WIZNET_TFTP_client_FATFS/Internet/TFTP/tftp.c +++ b/21_m1284p_WIZNET_TFTP_client_FATFS/Internet/TFTP/tftp.c @@ -26,23 +26,18 @@ void save_data(uint8_t *data, uint32_t data_len, uint16_t block_number) //Nothing to do with received data yet.. //TODO: Add your own handler here //Print out data as string - /* - uint8_t _tmp_msg[256] = "\0"; - memset(_tmp_msg, 0x0, 256); - strncpy(_tmp_msg, data, data_len); - */ uint8_t * str; str = data; str += data_len; *str = 0x0; - PRINTF("++Data #%d-%lu:\r\n%s\r\n", block_number, data_len, data); + PRINTF("\r\n++Data #%d-%lu:\r\n%s\r\n", block_number, data_len, data); } #endif /* Global Variable ----------------------------------------------*/ static int g_tftp_socket = -1; -static uint8_t g_filename[FILE_NAME_SIZE]; +static uint8_t g_filename[TFTP_FILE_NAME_SIZE]; static uint32_t g_server_ip = 0; static uint16_t g_server_port = 0; @@ -66,7 +61,7 @@ static TFTP_OPTION default_tftp_opt = { uint8_t g_progress_state = TFTP_PROGRESS; #ifdef __TFTP_DEBUG__ -int dbg_level = (INFO_DBG | ERROR_DBG | IPC_DBG); +int dbg_level = (INFO_DBG | ERROR_DBG | IPC_DBG | DEBUG_DBG); #endif /* static function define ---------------------------------------*/ @@ -145,9 +140,9 @@ static int open_tftp_socket(uint8_t sock) { uint8_t sd, sck_state; - sd = socket(sock, Sn_MR_UDP, 51000, SF_IO_NONBLOCK); + sd = socket(sock, Sn_MR_UDP, TFTP_LOCAL_PORT, SF_IO_NONBLOCK); if(sd != sock) { - //DBG_PRINT(ERROR_DBG, "[%s] socket error\r\n", __func__); + DBG_PRINT(ERROR_DBG, "[%s] socket error\r\n", __func__); return -1; } @@ -155,7 +150,7 @@ static int open_tftp_socket(uint8_t sock) getsockopt(sd , SO_STATUS, &sck_state); } while(sck_state != SOCK_UDP); - return sd; + return (int)sd; } static int send_udp_packet(int socket, uint8_t *packet, uint32_t len, uint32_t ip, uint16_t port) @@ -593,8 +588,21 @@ void TFTP_init(uint8_t socket, uint8_t *buf) { init_tftp(); - g_tftp_socket = open_tftp_socket(socket); g_tftp_rcv_buf = buf; + g_tftp_socket = open_tftp_socket(socket); + if(g_tftp_socket == -1) + { + //Here when TFTP socket open OK + DBG_PRINT(ERROR_DBG, "--[%s] TFTP socket[%d] open error\r\nReboot the board..\r\n", __func__, socket); + while(1) + { + ; + } + } + else + { + DBG_PRINT(INFO_DBG, "++[%s] TFTP socket[%d]:%u open success\r\n", __func__, g_tftp_socket, TFTP_LOCAL_PORT); + } } void TFTP_exit(void) @@ -663,7 +671,7 @@ void TFTP_read_request(uint32_t server_ip, uint8_t *filename) { set_server_ip(server_ip); #ifdef __TFTP_DEBUG__ - DBG_PRINT(INFO_DBG, "[%s] Set Tftp Server : 0x%lx\r\n", __func__, server_ip); + DBG_PRINT(INFO_DBG, "[%s] Set Tftp Server : 0x%lX\r\n", __func__, server_ip); #endif g_progress_state = TFTP_PROGRESS; diff --git a/21_m1284p_WIZNET_TFTP_client_FATFS/Internet/TFTP/tftp.h b/21_m1284p_WIZNET_TFTP_client_FATFS/Internet/TFTP/tftp.h index 61644d7..49f64b7 100644 --- a/21_m1284p_WIZNET_TFTP_client_FATFS/Internet/TFTP/tftp.h +++ b/21_m1284p_WIZNET_TFTP_client_FATFS/Internet/TFTP/tftp.h @@ -36,7 +36,7 @@ FRESULT fr; // FatFs function common result code #define DBG_PRINT(level, format, args...) { \ if(dbg_level & level) \ - printf(format, ##args); \ + PRINTF(format, ##args); \ } #define NORMAL_MODE 0 @@ -71,10 +71,10 @@ extern int dbg_level; /* define */ #define TFTP_SERVER_PORT 69 -#define TFTP_TEMP_PORT 51000 +#define TFTP_LOCAL_PORT 51000 #define TFTP_BLK_SIZE 512 #define MAX_MTU_SIZE 1514 -#define FILE_NAME_SIZE 20 +#define TFTP_FILE_NAME_SIZE 20 //#define __TFTP_DEBUG__ diff --git a/21_m1284p_WIZNET_TFTP_client_FATFS/main.c b/21_m1284p_WIZNET_TFTP_client_FATFS/main.c index 1d8189c..2bcc3e4 100644 --- a/21_m1284p_WIZNET_TFTP_client_FATFS/main.c +++ b/21_m1284p_WIZNET_TFTP_client_FATFS/main.c @@ -218,7 +218,7 @@ uint16_t adc_read(uint8_t channel) //***************** TFTP client INIT: BEGIN uint8_t g_tftp_socket_rcv_buf[MAX_MTU_SIZE]; uint8_t g_tftp_op_mode = NORMAL_MODE; -uint8_t tftp_filename[50]; +uint8_t tftp_filename[TFTP_FILE_NAME_SIZE]; uint32_t tftp_server; //***************** TFTP client INIT: END @@ -564,11 +564,10 @@ int main() printf("\r\n########## SW1 was pressed.\r\n"); - //strncpy(tftp_filename, 0x00, 50); - memset(tftp_filename, 0x0, 50); - //strncpy(tftp_filename, "test.txt", 8); - //strncpy(tftp_filename, "README.md", 9); - strncpy(tftp_filename, "tftpd32.ini", 11); + memset(tftp_filename, 0x0, 20); + //strncpy(tftp_filename, "test.txt", TFTP_FILE_NAME_SIZE); + strncpy(tftp_filename, "README.md", TFTP_FILE_NAME_SIZE); + //strncpy(tftp_filename, "tftpd32.ini", TFTP_FILE_NAME_SIZE); tftp_server = ((uint32_t)tftp_destip[0] << 24) | ((uint32_t)tftp_destip[1] << 16) | ((uint32_t)tftp_destip[2] << 8) | ((uint32_t)tftp_destip[3]); @@ -587,12 +586,11 @@ int main() _ret = TFTP_run(); if(_ret != TFTP_PROGRESS) break; - _delay_ms(1);//Just for debug + //_delay_ms(1);//Just for debug } - _delay_ms(1000);//Just for debug + _delay_ms(1000); //!! Debug only - //PRINTF("SW1 is pressed\r\nADC0/PA0 is: %u\r\n", adc_read(0)); //PRINTF("SW1 is pressed\r\n");