49 lines
2.3 KiB
Diff
49 lines
2.3 KiB
Diff
diff -Naurw ./old/microgdbstub.h ./new/microgdbstub.h
|
|
--- ./old/microgdbstub.h 2025-02-05 14:31:54.679397633 +0100
|
|
+++ ./new/microgdbstub.h 2025-02-05 12:22:13.979925751 +0100
|
|
@@ -286,6 +286,7 @@
|
|
int mslen = strlen( MICROGDBSTUB_MEMORY_MAP ) + 32;
|
|
char map[mslen];
|
|
struct InternalState * iss = (struct InternalState*)(((struct ProgrammerStructBase*)dev)->internal);
|
|
+ printf("flash=0x%X, ss=%d, ram=0x%X\n", iss->flash_size, iss->sector_size, iss->ram_size);
|
|
snprintf( map, mslen, MICROGDBSTUB_MEMORY_MAP, iss->flash_size, iss->sector_size, iss->ram_size );
|
|
SendReplyFull( map );
|
|
}
|
|
diff -Naurw ./old/minichlink.c ./new/minichlink.c
|
|
--- ./old/minichlink.c 2025-02-05 14:31:54.683397570 +0100
|
|
+++ ./new/minichlink.c 2025-02-05 13:59:27.185611922 +0100
|
|
@@ -78,7 +78,7 @@
|
|
struct InternalState * iss = calloc( 1, sizeof( struct InternalState ) );
|
|
((struct ProgrammerStructBase*)dev)->internal = iss;
|
|
iss->ram_base = 0x20000000;
|
|
- iss->ram_size = 2048;
|
|
+ iss->ram_size = 4*0x400; // minimal size for CH32V003
|
|
iss->sector_size = 64;
|
|
iss->flash_size = 16384;
|
|
iss->target_chip_type = 0;
|
|
diff -Naurw ./old/pgm-wch-linke.c ./new/pgm-wch-linke.c
|
|
--- ./old/pgm-wch-linke.c 2025-02-05 14:31:54.683397570 +0100
|
|
+++ ./new/pgm-wch-linke.c 2025-02-05 13:40:17.011872846 +0100
|
|
@@ -413,7 +413,8 @@
|
|
fprintf( stderr, "Error: could not get part status\n" );
|
|
return -1;
|
|
}
|
|
- fprintf( stderr, "Flash Storage: %d kB\n", (rbuff[2]<<8) | rbuff[3] ); // Is this Flash size?
|
|
+ const uint32_t flskb = ((uint32_t)rbuff[2]<<8) | rbuff[3];
|
|
+ fprintf( stderr, "Flash Storage: %d kB\n", flskb ); // Is this Flash size?
|
|
fprintf( stderr, "Part UUID : %02x-%02x-%02x-%02x-%02x-%02x-%02x-%02x\n", rbuff[4], rbuff[5], rbuff[6], rbuff[7], rbuff[8], rbuff[9], rbuff[10], rbuff[11] );
|
|
fprintf( stderr, "PFlags : %02x-%02x-%02x-%02x\n", rbuff[12], rbuff[13], rbuff[14], rbuff[15] );
|
|
fprintf( stderr, "Part Type (B): %02x-%02x-%02x-%02x\n", rbuff[16], rbuff[17], rbuff[18], rbuff[19] );
|
|
@@ -431,7 +432,11 @@
|
|
fprintf(stderr, "Read protection: disabled\n");
|
|
}
|
|
|
|
- iss->flash_size = ((rbuff[2]<<8) | rbuff[3])*1024;
|
|
+ iss->flash_size = flskb * 0x400u;
|
|
+ if (chip == CHIP_CH32V20x) { // diferent version chip
|
|
+ if (flskb > 32u) iss->ram_size = 20u * 0x400u; // 64K
|
|
+ else iss->ram_size = 10u * 0x400u; // 32K
|
|
+ }
|
|
|
|
return 0;
|
|
}
|