@@ -1240,82 +1240,78 @@ unsigned long gEepromIndex;
1240
1240
void PrintDecInt (int theNumber , int digitCnt );
1241
1241
1242
1242
#ifdef _AVR_CPU_NAME_
1243
- prog_char gTextMsg_CPU_Name [] PROGMEM = _AVR_CPU_NAME_ ;
1243
+ const char gTextMsg_CPU_Name [] PROGMEM = _AVR_CPU_NAME_ ;
1244
1244
#else
1245
- prog_char gTextMsg_CPU_Name [] PROGMEM = "UNKNOWN" ;
1245
+ const char gTextMsg_CPU_Name [] PROGMEM = "UNKNOWN" ;
1246
1246
#endif
1247
1247
1248
- prog_char gTextMsg_Explorer [] PROGMEM = "Arduino explorer stk500V2 by MLS" ;
1249
- prog_char gTextMsg_Prompt [] PROGMEM = "Bootloader>" ;
1250
- prog_char gTextMsg_HUH [] PROGMEM = "Huh?" ;
1251
- prog_char gTextMsg_COMPILED_ON [] PROGMEM = "Compiled on = " ;
1252
- prog_char gTextMsg_CPU_Type [] PROGMEM = "CPU Type = " ;
1253
- prog_char gTextMsg_AVR_ARCH [] PROGMEM = "__AVR_ARCH__= " ;
1254
- prog_char gTextMsg_AVR_LIBC [] PROGMEM = "AVR LibC Ver= " ;
1255
- prog_char gTextMsg_GCC_VERSION [] PROGMEM = "GCC Version = " ;
1256
- prog_char gTextMsg_CPU_SIGNATURE [] PROGMEM = "CPU ID = " ;
1257
- prog_char gTextMsg_FUSE_BYTE_LOW [] PROGMEM = "Low fuse = " ;
1258
- prog_char gTextMsg_FUSE_BYTE_HIGH [] PROGMEM = "High fuse = " ;
1259
- prog_char gTextMsg_FUSE_BYTE_EXT [] PROGMEM = "Ext fuse = " ;
1260
- prog_char gTextMsg_FUSE_BYTE_LOCK [] PROGMEM = "Lock fuse = " ;
1261
- prog_char gTextMsg_GCC_DATE_STR [] PROGMEM = __DATE__ ;
1262
- prog_char gTextMsg_AVR_LIBC_VER_STR [] PROGMEM = __AVR_LIBC_VERSION_STRING__ ;
1263
- prog_char gTextMsg_GCC_VERSION_STR [] PROGMEM = __VERSION__ ;
1264
- prog_char gTextMsg_VECTOR_HEADER [] PROGMEM = "V# ADDR op code instruction addr Interrupt" ;
1265
- prog_char gTextMsg_noVector [] PROGMEM = "no vector" ;
1266
- prog_char gTextMsg_rjmp [] PROGMEM = "rjmp " ;
1267
- prog_char gTextMsg_jmp [] PROGMEM = "jmp " ;
1268
- prog_char gTextMsg_WHAT_PORT [] PROGMEM = "What port:" ;
1269
- prog_char gTextMsg_PortNotSupported [] PROGMEM = "Port not supported" ;
1270
- prog_char gTextMsg_MustBeLetter [] PROGMEM = "Must be a letter" ;
1271
- prog_char gTextMsg_SPACE [] PROGMEM = " " ;
1272
- prog_char gTextMsg_WriteToEEprom [] PROGMEM = "Writting EE" ;
1273
- prog_char gTextMsg_ReadingEEprom [] PROGMEM = "Reading EE" ;
1274
- prog_char gTextMsg_EEPROMerrorCnt [] PROGMEM = "EE err cnt=" ;
1275
- prog_char gTextMsg_PORT [] PROGMEM = "PORT" ;
1248
+ const char gTextMsg_Explorer [] PROGMEM = "Arduino explorer stk500V2 by MLS" ;
1249
+ const char gTextMsg_Prompt [] PROGMEM = "Bootloader>" ;
1250
+ const char gTextMsg_HUH [] PROGMEM = "Huh?" ;
1251
+ const char gTextMsg_COMPILED_ON [] PROGMEM = "Compiled on = " ;
1252
+ const char gTextMsg_CPU_Type [] PROGMEM = "CPU Type = " ;
1253
+ const char gTextMsg_AVR_ARCH [] PROGMEM = "__AVR_ARCH__= " ;
1254
+ const char gTextMsg_AVR_LIBC [] PROGMEM = "AVR LibC Ver= " ;
1255
+ const char gTextMsg_GCC_VERSION [] PROGMEM = "GCC Version = " ;
1256
+ const char gTextMsg_CPU_SIGNATURE [] PROGMEM = "CPU ID = " ;
1257
+ const char gTextMsg_FUSE_BYTE_LOW [] PROGMEM = "Low fuse = " ;
1258
+ const char gTextMsg_FUSE_BYTE_HIGH [] PROGMEM = "High fuse = " ;
1259
+ const char gTextMsg_FUSE_BYTE_EXT [] PROGMEM = "Ext fuse = " ;
1260
+ const char gTextMsg_FUSE_BYTE_LOCK [] PROGMEM = "Lock fuse = " ;
1261
+ const char gTextMsg_GCC_DATE_STR [] PROGMEM = __DATE__ ;
1262
+ const char gTextMsg_AVR_LIBC_VER_STR [] PROGMEM = __AVR_LIBC_VERSION_STRING__ ;
1263
+ const char gTextMsg_GCC_VERSION_STR [] PROGMEM = __VERSION__ ;
1264
+ const char gTextMsg_VECTOR_HEADER [] PROGMEM = "V# ADDR op code instruction addr Interrupt" ;
1265
+ const char gTextMsg_noVector [] PROGMEM = "no vector" ;
1266
+ const char gTextMsg_rjmp [] PROGMEM = "rjmp " ;
1267
+ const char gTextMsg_jmp [] PROGMEM = "jmp " ;
1268
+ const char gTextMsg_WHAT_PORT [] PROGMEM = "What port:" ;
1269
+ const char gTextMsg_PortNotSupported [] PROGMEM = "Port not supported" ;
1270
+ const char gTextMsg_MustBeLetter [] PROGMEM = "Must be a letter" ;
1271
+ const char gTextMsg_SPACE [] PROGMEM = " " ;
1272
+ const char gTextMsg_WriteToEEprom [] PROGMEM = "Writting EE" ;
1273
+ const char gTextMsg_ReadingEEprom [] PROGMEM = "Reading EE" ;
1274
+ const char gTextMsg_EEPROMerrorCnt [] PROGMEM = "EE err cnt=" ;
1275
+ const char gTextMsg_PORT [] PROGMEM = "PORT" ;
1276
1276
1277
1277
1278
1278
//************************************************************************
1279
1279
//* Help messages
1280
- prog_char gTextMsg_HELP_MSG_0 [] PROGMEM = "0=Zero addr" ;
1281
- prog_char gTextMsg_HELP_MSG_QM [] PROGMEM = "?=CPU stats" ;
1282
- prog_char gTextMsg_HELP_MSG_AT [] PROGMEM = "@=EEPROM test" ;
1283
- prog_char gTextMsg_HELP_MSG_B [] PROGMEM = "B=Blink LED" ;
1284
- prog_char gTextMsg_HELP_MSG_E [] PROGMEM = "E=Dump EEPROM" ;
1285
- prog_char gTextMsg_HELP_MSG_F [] PROGMEM = "F=Dump FLASH" ;
1286
- prog_char gTextMsg_HELP_MSG_H [] PROGMEM = "H=Help" ;
1287
- prog_char gTextMsg_HELP_MSG_L [] PROGMEM = "L=List I/O Ports" ;
1288
- // prog_char gTextMsg_HELP_MSG_Q[] PROGMEM = "Q=Quit & jump to user pgm";
1289
- prog_char gTextMsg_HELP_MSG_Q [] PROGMEM = "Q=Quit" ;
1290
- prog_char gTextMsg_HELP_MSG_R [] PROGMEM = "R=Dump RAM" ;
1291
- prog_char gTextMsg_HELP_MSG_V [] PROGMEM = "V=show interrupt Vectors" ;
1292
- prog_char gTextMsg_HELP_MSG_Y [] PROGMEM = "Y=Port blink" ;
1293
-
1294
- prog_char gTextMsg_END [] PROGMEM = "*" ;
1280
+ const char gTextMsg_HELP_MSG_0 [] PROGMEM = "0=Zero addr" ;
1281
+ const char gTextMsg_HELP_MSG_QM [] PROGMEM = "?=CPU stats" ;
1282
+ const char gTextMsg_HELP_MSG_AT [] PROGMEM = "@=EEPROM test" ;
1283
+ const char gTextMsg_HELP_MSG_B [] PROGMEM = "B=Blink LED" ;
1284
+ const char gTextMsg_HELP_MSG_E [] PROGMEM = "E=Dump EEPROM" ;
1285
+ const char gTextMsg_HELP_MSG_F [] PROGMEM = "F=Dump FLASH" ;
1286
+ const char gTextMsg_HELP_MSG_H [] PROGMEM = "H=Help" ;
1287
+ const char gTextMsg_HELP_MSG_L [] PROGMEM = "L=List I/O Ports" ;
1288
+ // const char gTextMsg_HELP_MSG_Q[] PROGMEM = "Q=Quit & jump to user pgm";
1289
+ const char gTextMsg_HELP_MSG_Q [] PROGMEM = "Q=Quit" ;
1290
+ const char gTextMsg_HELP_MSG_R [] PROGMEM = "R=Dump RAM" ;
1291
+ const char gTextMsg_HELP_MSG_V [] PROGMEM = "V=show interrupt Vectors" ;
1292
+ const char gTextMsg_HELP_MSG_Y [] PROGMEM = "Y=Port blink" ;
1293
+
1294
+ const char gTextMsg_END [] PROGMEM = "*" ;
1295
1295
1296
1296
1297
1297
//************************************************************************
1298
- void PrintFromPROGMEM (void * dataPtr , unsigned char offset )
1298
+ void PrintFromPROGMEM (const void * dataPtr , unsigned char offset )
1299
1299
{
1300
- uint8_t ii ;
1301
1300
char theChar ;
1302
1301
1303
- ii = offset ;
1304
- theChar = 1 ;
1302
+ dataPtr += offset ;
1305
1303
1306
- while (theChar != 0 )
1307
- {
1304
+ do {
1308
1305
#if (FLASHEND > 0x10000 )
1309
- theChar = pgm_read_byte_far ((uint32_t )dataPtr + ii );
1306
+ theChar = pgm_read_byte_far ((uint16_t )dataPtr ++ );
1310
1307
#else
1311
- theChar = pgm_read_byte_near ((uint32_t )dataPtr + ii );
1308
+ theChar = pgm_read_byte_near ((uint16_t )dataPtr ++ );
1312
1309
#endif
1313
1310
if (theChar != 0 )
1314
1311
{
1315
1312
sendchar (theChar );
1316
1313
}
1317
- ii ++ ;
1318
- }
1314
+ } while (theChar != 0 );
1319
1315
}
1320
1316
1321
1317
//************************************************************************
@@ -1327,7 +1323,7 @@ void PrintNewLine(void)
1327
1323
1328
1324
1329
1325
//************************************************************************
1330
- void PrintFromPROGMEMln (void * dataPtr , unsigned char offset )
1326
+ void PrintFromPROGMEMln (const void * dataPtr , unsigned char offset )
1331
1327
{
1332
1328
PrintFromPROGMEM (dataPtr , offset );
1333
1329
@@ -1523,7 +1519,7 @@ unsigned char *ramPtr;
1523
1519
break ;
1524
1520
1525
1521
case kDUMP_EEPROM :
1526
- theValue = eeprom_read_byte ((void * )myAddressPointer );
1522
+ theValue = eeprom_read_byte ((uint8_t * )( uint16_t )myAddressPointer );
1527
1523
break ;
1528
1524
1529
1525
case kDUMP_RAM :
@@ -1567,9 +1563,9 @@ int errorCount;
1567
1563
PrintNewLine ();
1568
1564
ii = 0 ;
1569
1565
#if (FLASHEND > 0x10000 )
1570
- while (((theChar = pgm_read_byte_far (gTextMsg_Explorer + ii )) != '*' ) && (ii < 512 ))
1566
+ while (((theChar = pgm_read_byte_far ((( uint16_t ) gTextMsg_Explorer ) + ii )) != '*' ) && (ii < 512 ))
1571
1567
#else
1572
- while (((theChar = pgm_read_byte_near (gTextMsg_Explorer + ii )) != '*' ) && (ii < 512 ))
1568
+ while (((theChar = pgm_read_byte_near ((( uint16_t ) gTextMsg_Explorer ) + ii )) != '*' ) && (ii < 512 ))
1573
1569
#endif
1574
1570
{
1575
1571
eeprom_write_byte ((uint8_t * )ii , theChar );
@@ -1592,9 +1588,9 @@ int errorCount;
1592
1588
errorCount = 0 ;
1593
1589
ii = 0 ;
1594
1590
#if (FLASHEND > 0x10000 )
1595
- while (((theChar = pgm_read_byte_far (gTextMsg_Explorer + ii )) != '*' ) && (ii < 512 ))
1591
+ while (((theChar = pgm_read_byte_far (( uint16_t ) gTextMsg_Explorer + ii )) != '*' ) && (ii < 512 ))
1596
1592
#else
1597
- while (((theChar = pgm_read_byte_near (gTextMsg_Explorer + ii )) != '*' ) && (ii < 512 ))
1593
+ while (((theChar = pgm_read_byte_near (( uint16_t ) gTextMsg_Explorer + ii )) != '*' ) && (ii < 512 ))
1598
1594
#endif
1599
1595
{
1600
1596
theEEPROMchar = eeprom_read_byte ((uint8_t * )ii );
0 commit comments