All my debug code in tftp.c replace PRINTF(..) to DBG_PRINT(INFO_DBG,

..)
master
maxxir 7 years ago
parent 8f5fa0a833
commit c99b2d6822

@ -39,7 +39,7 @@ void close_tftp_file(void)
{ {
tftp_fr = f_close(&tftp_fil); tftp_fr = f_close(&tftp_fil);
if(tftp_fr != FR_OK){ if(tftp_fr != FR_OK){
PRINTF("--f_close failed\r\n"); DBG_PRINT(INFO_DBG,"--f_close failed\r\n");
} }
} }
} }
@ -55,7 +55,7 @@ uint8_t save_data(uint8_t *data, uint32_t data_len, uint16_t block_number)
str = data; str = data;
str += data_len; str += data_len;
*str = 0x0; *str = 0x0;
PRINTF("\r\n++Data #%d-%lu:\r\n%s\r\n", block_number, data_len, data); DBG_PRINT(INFO_DBG,"\r\n++Data #%d-%lu:\r\n%s\r\n", block_number, data_len, data);
#endif #endif
//Calculate received data size //Calculate received data size
g_tftp_save_data += data_len; g_tftp_save_data += data_len;
@ -65,7 +65,7 @@ uint8_t save_data(uint8_t *data, uint32_t data_len, uint16_t block_number)
uint16_t _blocklen; uint16_t _blocklen;
tftp_fr = f_write(&tftp_fil, data, (UINT)data_len, &_blocklen); tftp_fr = f_write(&tftp_fil, data, (UINT)data_len, &_blocklen);
if(tftp_fr != FR_OK){ if(tftp_fr != FR_OK){
PRINTF("--f_write failed #2\r\n"); DBG_PRINT(INFO_DBG,"--f_write failed #2\r\n");
save_data_result = 2; save_data_result = 2;
} }
else else
@ -75,7 +75,7 @@ uint8_t save_data(uint8_t *data, uint32_t data_len, uint16_t block_number)
} }
else else
{ {
PRINTF("--f_write failed #1\r\n"); DBG_PRINT(INFO_DBG,"--f_write failed #1\r\n");
save_data_result = 1; save_data_result = 1;
} }
return save_data_result; return save_data_result;
@ -120,7 +120,7 @@ static void set_filename(uint8_t *file, uint32_t file_size)
//Rewrite file onto SD-card //Rewrite file onto SD-card
tftp_fr = f_open(&tftp_fil, (const char *)g_filename, FA_CREATE_ALWAYS | FA_WRITE); tftp_fr = f_open(&tftp_fil, (const char *)g_filename, FA_CREATE_ALWAYS | FA_WRITE);
if(tftp_fr != FR_OK){ if(tftp_fr != FR_OK){
PRINTF("--f_open failed\r\n"); DBG_PRINT(INFO_DBG,"--f_open failed\r\n");
} }
#endif #endif
} }

@ -26,4 +26,6 @@ wiz_NetInfo netInfo = { .mac = {0x00, 0x08, 0xdc, 0xab, 0xcd, 0xef}, // Mac add
.dns = {8,8,8,8}, // DNS address (google dns) .dns = {8,8,8,8}, // DNS address (google dns)
.gw = {192, 168, 1, 1}, // Gateway address .gw = {192, 168, 1, 1}, // Gateway address
.dhcp = NETINFO_STATIC}; //Static IP configuration .dhcp = NETINFO_STATIC}; //Static IP configuration
//PC TFTP server IP
uint8_t tftp_destip[4] = {192, 168, 1, 81};
#endif #endif

@ -39,7 +39,7 @@ static FATFS Fatfs; //File system object for each logical drive. >= 2
#define PRINTF(...) #define PRINTF(...)
#endif #endif
#define IP_WORK //#define IP_WORK
//SPI CLOCK 4 or 8Mhz //SPI CLOCK 4 or 8Mhz
#define SPI_4_MHZ #define SPI_4_MHZ

@ -15,11 +15,13 @@
* OK(v1.4) 4. Print out "test.txt" contents head (from SD-Card ) in a serial terminal. * OK(v1.4) 4. Print out "test.txt" contents head (from SD-Card ) in a serial terminal.
* OK(v1.5) 5. Add handlers for CHK_RAM_LEAKAGE && CHK_UPTIME. * OK(v1.5) 5. Add handlers for CHK_RAM_LEAKAGE && CHK_UPTIME.
* 6. Add FSM for TFTP client in main loop * 6. Add FSM for TFTP client in main loop
* 7. All my debug code in tftp.c replace PRINTF(..) to DBG_PRINT(INFO_DBG, ..) * OK(v1.6) 7. All my debug code in tftp.c replace PRINTF(..) to DBG_PRINT(INFO_DBG, ..)
* 8.?? Clear the code from the loopback sockets (Is it really need to do?)
* *
* Remark: * Remark:
* Checked with PC tftp-server (WIN7) - tftpd64.exe * Checked with PC tftp-server (WIN7) - tftpd64.exe
*
* Author of unofficial porting to AVR Mega1284p/644p + W5500 Ethernet NIC (Wiznet sockets library using without Arduino):
* Ibragimov Maxim aka maxxir, Russia Togliatty 31.03.2019
*/ */
#include <avr/io.h> #include <avr/io.h>
@ -65,7 +67,7 @@ volatile unsigned long _millis; // for millis tick !! Overflow every ~49.7 days
//*********Program metrics //*********Program metrics
const char compile_date[] PROGMEM = __DATE__; // Mmm dd yyyy - Дата компиляции const char compile_date[] PROGMEM = __DATE__; // Mmm dd yyyy - Дата компиляции
const char compile_time[] PROGMEM = __TIME__; // hh:mm:ss - Время компиляции const char compile_time[] PROGMEM = __TIME__; // hh:mm:ss - Время компиляции
const char str_prog_name[] PROGMEM = "\r\nAtMega1284p v1.5 Static IP TFTP Client && FATFS SDCARD WIZNET_5500 ETHERNET 29/03/2019\r\n"; // Program name const char str_prog_name[] PROGMEM = "\r\nAtMega1284p v1.6 Static IP TFTP Client && FATFS SDCARD WIZNET_5500 ETHERNET 31/03/2019\r\n"; // Program name
#if defined(__AVR_ATmega128__) #if defined(__AVR_ATmega128__)
const char PROGMEM str_mcu[] = "ATmega128"; //CPU is m128 const char PROGMEM str_mcu[] = "ATmega128"; //CPU is m128
@ -434,64 +436,9 @@ void fatfs_init(void)
} }
} }
// Blocking (~3.5sec) receive one symbol from uart
/*
char uart0_receive(void)
{
unsigned int c;
uint32_t wait_start = millis();
do
{
wdt_reset();
c = uart_getc();
if (( c & UART_NO_DATA ) == 0)
{
uart_putc( (unsigned char)c );
return (char)c ;
}
//After 3.5 sec waiting return with no symbol
if((millis()-wait_start) > 3500)
{
return 0;
}
}
while(( c & UART_NO_DATA ));
return 0;
}
*/
//****************************FAT FS initialize: END //****************************FAT FS initialize: END
/*
void spi_speed_tst(void)
{
// Here on SPI pins: MOSI 400Khz freq out, on SCLK 3.2MhzOUT
while(1)
{
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
}
}
*/
int main() int main()
{ {
uint8_t prev_sw1 = 1; // VAR for sw1 pressing detect uint8_t prev_sw1 = 1; // VAR for sw1 pressing detect
@ -557,13 +504,14 @@ int main()
//!! Здесь по факту нажатия кнопки (1->0 SW1) //!! Здесь по факту нажатия кнопки (1->0 SW1)
printf("\r\n########## SW1 was pressed.\r\n"); PRINTF("\r\n########## SW1 was pressed.\r\n");
memset(tftp_filename, 0x0, TFTP_FILE_NAME_SIZE); memset(tftp_filename, 0x0, TFTP_FILE_NAME_SIZE);
//!!Don't forget about 8.3 file name rule!! //!!Don't forget about 8.3 file name rule!!
strncpy(tftp_filename, "test.txt", TFTP_FILE_NAME_SIZE); strncpy(tftp_filename, "test.txt", TFTP_FILE_NAME_SIZE); //pattern#1 test
//strncpy(tftp_filename, "README.md", TFTP_FILE_NAME_SIZE); //strncpy(tftp_filename, "README.md", TFTP_FILE_NAME_SIZE);//pattern#2 test
//strncpy(tftp_filename, "tftpd32.ini", TFTP_FILE_NAME_SIZE); //strncpy(tftp_filename, "tftpd32.ini", TFTP_FILE_NAME_SIZE);//pattern#3 test
//strncpy(tftp_filename, "ff_lfn.txt", TFTP_FILE_NAME_SIZE); //strncpy(tftp_filename, "ff_lfn.txt", TFTP_FILE_NAME_SIZE);//pattern#4 test
strncpy(tftp_filename, "dir.txt", TFTP_FILE_NAME_SIZE);//pattern#5 test
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]); 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]);