Resolve review comments

This commit is contained in:
feelfree69
2026-03-05 08:55:51 +01:00
parent 7a0f248424
commit 494320b191
4 changed files with 23 additions and 31 deletions
+1 -2
View File
@@ -17,7 +17,6 @@
// #define DEBUG // #define DEBUG
#include "debug.h" #include "debug.h"
extern __xdata char flash_size_str[10];
#define L2_MAX_TRANSFER 30 #define L2_MAX_TRANSFER 30
@@ -241,7 +240,7 @@ void send_basic_info(void)
slen += strtox(outbuf + slen, "\",\"hw_ver\":\""); slen += strtox(outbuf + slen, "\",\"hw_ver\":\"");
slen += strtox(outbuf + slen, machine.machine_name); slen += strtox(outbuf + slen, machine.machine_name);
slen += strtox(outbuf + slen, "\",\"flash_size\":\""); slen += strtox(outbuf + slen, "\",\"flash_size\":\"");
string_to_html(flash_size_str); string_to_html(get_flash_size_str());
slen += strtox(outbuf + slen, "\",\"sfp_slot_0\":\""); slen += strtox(outbuf + slen, "\",\"sfp_slot_0\":\"");
send_sfp_info(0); send_sfp_info(0);
+17 -17
View File
@@ -9,8 +9,11 @@
__xdata uint8_t dio_enabled; __xdata uint8_t dio_enabled;
__xdata struct flash_region_t flash_region; __xdata struct flash_region_t flash_region;
__xdata uint32_t flash_size; __xdata uint32_t flash_size;
__xdata char flash_size_str[16]; __xdata uint8_t flash_capacity_code;
__code char * __code flash_size_text[] = { "256 KB", "512 KB", "1 MB", "2 MB", "4 MB", "8 MB", "16 MB" };
// For the flash commands, see e.g. Windbond W25Q32JV datasheet // For the flash commands, see e.g. Windbond W25Q32JV datasheet
#define CMD_WRITE_STATUS 0x01 #define CMD_WRITE_STATUS 0x01
@@ -135,6 +138,13 @@ void flash_read_uid(void)
flash_configure_mmio(); flash_configure_mmio();
} }
__code char* get_flash_size_str(void)
{
if (flash_capacity_code >= 0x12 && flash_capacity_code <= 0x18)
return flash_size_text[flash_capacity_code - 0x12];
else
return "unknown";
}
void flash_read_jedecid(void) void flash_read_jedecid(void)
{ {
@@ -151,26 +161,16 @@ void flash_read_jedecid(void)
SFR_FLASH_EXEC_GO = 1; SFR_FLASH_EXEC_GO = 1;
while(SFR_FLASH_EXEC_BUSY); while(SFR_FLASH_EXEC_BUSY);
print_string("Maufacturer ID: 0x"); print_string("Flash information:\n");
print_string(" Manufacturer ID: 0x");
print_byte(SFR_FLASH_DATA0); print_byte(SFR_FLASH_DATA0);
print_string("\n Memory Type: 0x"); print_string("\n Memory Type: 0x");
print_byte(SFR_FLASH_DATA8); print_byte(SFR_FLASH_DATA8);
print_string("\n Capacity: 0x"); print_string("\n Capacity: 0x");
uint8_t cap = SFR_FLASH_DATA16; flash_capacity_code = SFR_FLASH_DATA16;
flash_size = 1UL << cap; flash_size = 1UL << flash_capacity_code;
print_byte(cap); print_byte(flash_capacity_code);
print_string(" = "); print_string(" = "); print_string(get_flash_size_str()); write_char('\n');
switch(cap) {
case 0x12: memcpyc(flash_size_str, "256 KB", 7); break;
case 0x13: memcpyc(flash_size_str, "512 KB", 7); break;
case 0x14: memcpyc(flash_size_str, "1 MB", 5); break;
case 0x15: memcpyc(flash_size_str, "2 MB", 5); break;
case 0x16: memcpyc(flash_size_str, "4 MB", 5); break;
case 0x17: memcpyc(flash_size_str, "8 MB", 5); break;
case 0x18: memcpyc(flash_size_str, "16 MB", 6); break;
default: memcpyc(flash_size_str, "unknown", 8); break;
}
print_string_x(flash_size_str); write_char('\n');
flash_configure_mmio(); flash_configure_mmio();
} }
+2
View File
@@ -10,4 +10,6 @@ void flash_read_security(void);
void flash_sector_erase(void); void flash_sector_erase(void);
void flash_read_bulk(__xdata uint8_t *dst); void flash_read_bulk(__xdata uint8_t *dst);
void flash_write_bytes(__xdata uint8_t *ptr); void flash_write_bytes(__xdata uint8_t *ptr);
__code char* get_flash_size_str(void);
#endif #endif
+1 -10
View File
@@ -25,7 +25,6 @@
extern __code const struct machine machine; extern __code const struct machine machine;
extern __xdata uint32_t flash_size; extern __xdata uint32_t flash_size;
extern __xdata char flash_size_str[10];
extern __xdata uint16_t crc_value; extern __xdata uint16_t crc_value;
__xdata struct machine_runtime machine_detected; __xdata struct machine_runtime machine_detected;
@@ -241,14 +240,6 @@ uint16_t strtox(register __xdata uint8_t *dst, register __code const char *s)
return dst - b; return dst - b;
} }
uint16_t strcpy(register __xdata uint8_t *dst, register const char *s)
{
__xdata uint8_t *b = dst;
while (*s)
*dst++ = *s++;
*dst = 0;
return dst - b;
}
uint16_t strlen(register __code const char *s) uint16_t strlen(register __code const char *s)
{ {
@@ -1871,7 +1862,7 @@ void check_and_flash_update_image(void)
{ {
flash_read_jedecid(); // This initializes also __xdata flash_size variable flash_read_jedecid(); // This initializes also __xdata flash_size variable
print_string_x(flash_size_str); print_string(" flash size detected. (1 MB is needed for image updating)\n"); print_string(get_flash_size_str()); print_string(" flash size detected. (1 MB is needed for image updating)\n");
if (flash_size < FIRMWARE_UPLOAD_START*2) { if (flash_size < FIRMWARE_UPLOAD_START*2) {
print_string("Flash too small for updating; skipping update check\n"); print_string("Flash too small for updating; skipping update check\n");
return; return;