From b60811b9849d8d17efb75cc26dfd7a6ebafea823 Mon Sep 17 00:00:00 2001 From: feelfree69 Date: Sat, 28 Feb 2026 18:22:21 +0100 Subject: [PATCH] initialize all vars; remove unused code --- rtlplayground.c | 15 ++++++--------- syslog.c | 19 ++++++------------- syslog.h | 3 ++- 3 files changed, 14 insertions(+), 23 deletions(-) diff --git a/rtlplayground.c b/rtlplayground.c index 7baa8cd..293f23d 100644 --- a/rtlplayground.c +++ b/rtlplayground.c @@ -38,7 +38,6 @@ extern __xdata char logbuf[LOGBUF_SIZE]; extern __xdata uint16_t logptr_w; extern __xdata uint8_t full_line_available; extern __xdata uint8_t syslog_enabled; -extern __xdata char char_to_write; // See setup_serial_timer1() for valid baudrate settings! #define SERIAL_BAUD_RATE 115200 @@ -193,9 +192,6 @@ void write_char(char c) tx_buf_empty = 0; SBUF = c; - char_to_write = c; - // syslog_write_char(); // why does this gives a linker error? - if (syslog_enabled) { logbuf[logptr_w++] = c; logptr_w &= (LOGBUF_SIZE - 1); @@ -330,7 +326,7 @@ void print_byte(uint8_t a) void isr_ext0(void) __interrupt(0) { EX0 = 0; // Disable interrupt for the moment - write_char('X'); + //write_char('X'); IT0 = 1; // Trigger on falling edge of external interrupt EX0 = 1; // Re-enable interrupt } @@ -345,7 +341,7 @@ void isr_ext1(void) __interrupt(2) { // This flag should only be reset after all packets have been read EX1 = 0; - write_char('Y'); + //write_char('Y'); EX1 = 1; } @@ -356,7 +352,7 @@ void isr_ext1(void) __interrupt(2) void isr_ext2(void) __interrupt(8) { EXIF &= 0xef; // Clear IRQ flag (bit 7) in EXIF - write_char('Z'); + //write_char('Z'); PCON |= 1; // Enter Idle mode until interrupt occurs } @@ -367,7 +363,7 @@ void isr_ext2(void) __interrupt(8) void isr_ext3(void) __interrupt(9) { EXIF &= 0xdf; // Clear IRQ flag (bit 6) in EXIF - write_char('W'); + //write_char('W'); } // Timer2: handles system tick. @@ -2169,6 +2165,8 @@ void main(void) check_and_flash_update_image(); + syslog_init(); + #ifdef DEBUG // This register seems to work on the RTL8373 only if also the SDS // Is correctly configured. Therefore, we can test it, here... @@ -2195,7 +2193,6 @@ void main(void) uip_init(); uip_arp_init(); httpd_init(); - syslog_init(); management_vlan = 0; // Disabled diff --git a/syslog.c b/syslog.c index 7690691..4e2239f 100644 --- a/syslog.c +++ b/syslog.c @@ -13,7 +13,6 @@ __xdata uint16_t logptr_w = 0; __xdata uint16_t logptr_r = 0; __xdata uint8_t full_line_available = 0; __xdata uint8_t syslog_enabled = 0; -__xdata char char_to_write = 0; __xdata uip_ipaddr_t syslog_addr; #define DEST_OFFSET (0) @@ -25,19 +24,13 @@ __xdata uip_ipaddr_t syslog_addr; void syslog_init(void) __banked { + syslog_enabled = 0; + logptr_w = 0; + logptr_r = 0; + full_line_available = 0; syslog_addr[0] = 0xffff; syslog_addr[1] = 0xffff; // Default to broadcast } -void syslog_write_char(void) __banked -{ - if (syslog_enabled) { - logbuf[logptr_w++] = char_to_write; - logptr_w &= (LOGBUF_SIZE - 1); - if (char_to_write == '\n') - full_line_available = 1; - } -} - void handle_syslog(void) __banked { if ((logptr_r != logptr_w) && full_line_available) @@ -60,7 +53,7 @@ void handle_syslog(void) __banked SYSLOG_O[ETHERTYPE_OFFSET] = 0x08; SYSLOG_O[ETHERTYPE_OFFSET + 1] = 0x00; // Ethertype: IPv4 SYSLOG_O[IP_HEADER_OFFSET ] = 0x45; SYSLOG_O[IP_HEADER_OFFSET + 1] = 0x00; // IPv4, no options - SYSLOG_O[IP_HEADER_OFFSET + 2] = (20+8+4+log_size)>>8; SYSLOG_O[IP_HEADER_OFFSET + 3] = (20+8+4+log_size)&0xff; // Total Length + SYSLOG_O[IP_HEADER_OFFSET + 2] = (20+8+4+log_size) >> 8; SYSLOG_O[IP_HEADER_OFFSET + 3] = (20+8+4+log_size) & 0xff; // Total Length (IP header + UDP header + payload) SYSLOG_O[IP_HEADER_OFFSET + 4] = 0x00; SYSLOG_O[IP_HEADER_OFFSET + 5] = 0x00; // Identification SYSLOG_O[IP_HEADER_OFFSET + 6] = 0x00; SYSLOG_O[IP_HEADER_OFFSET + 7] = 0x00; // Flags, Fragment Offset SYSLOG_O[IP_HEADER_OFFSET + 8] = 0x40; SYSLOG_O[IP_HEADER_OFFSET + 9] = 0x11; // TTL, Protocol (UDP) @@ -72,7 +65,7 @@ void handle_syslog(void) __banked SYSLOG_O[UDP_HEADER_OFFSET ] = 0x02; SYSLOG_O[UDP_HEADER_OFFSET + 1] = 0x02; // Source Port SYSLOG_O[UDP_HEADER_OFFSET + 2] = 0x02; SYSLOG_O[UDP_HEADER_OFFSET + 3] = 0x02; // Destination Port - SYSLOG_O[UDP_HEADER_OFFSET + 4] = (8+4+log_size)>>8; SYSLOG_O[UDP_HEADER_OFFSET + 5] = (8+4+log_size)&0xff; // Length + SYSLOG_O[UDP_HEADER_OFFSET + 4] = (8+4+log_size) >> 8; SYSLOG_O[UDP_HEADER_OFFSET + 5] = (8+4+log_size) & 0xff; // Length (UDP header + payload) SYSLOG_O[UDP_HEADER_OFFSET + 6] = 0x00; SYSLOG_O[UDP_HEADER_OFFSET + 7] = 0x00; // Header Checksum (not calculated) memcpyc(SYSLOG_O + UDP_PAYLOAD_OFFSET, "<14>", 4); // Syslog priority prefix diff --git a/syslog.h b/syslog.h index c622343..4bb633c 100644 --- a/syslog.h +++ b/syslog.h @@ -5,8 +5,9 @@ #define LOGBUF_SIZE 512 +extern __xdata char logbuf[LOGBUF_SIZE]; + void syslog_init(void) __banked; -void syslog_write_char(void) __banked; void handle_syslog(void) __banked; #endif