TFTP test updated
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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__
|
||||
|
||||
|
||||
@@ -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");
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user