Silence min()/max() compiler warnings, fix urclock.c typo etc

This commit is contained in:
Stefan Rueger 2022-11-12 13:31:33 +00:00
parent e2b69dec75
commit ff9c8bbe46
No known key found for this signature in database
GPG Key ID: B0B4F1FD86B1EC55
1 changed files with 18 additions and 12 deletions

View File

@ -219,8 +219,8 @@
#include "urclock.h" #include "urclock.h"
#include "urclock_private.h" #include "urclock_private.h"
#define max(a, b) ((a) > (b)? (a): (b)) #define urmax(a, b) ((a) > (b)? (a): (b))
#define min(a, b) ((a) < (b)? (a): (b)) #define urmin(a, b) ((a) < (b)? (a): (b))
static int ur_initstruct(const PROGRAMMER *pgm, const AVRPART *p); static int ur_initstruct(const PROGRAMMER *pgm, const AVRPART *p);
static int ur_readEF(const PROGRAMMER *pgm, const AVRPART *p, uint8_t *buf, uint32_t addr, int len, static int ur_readEF(const PROGRAMMER *pgm, const AVRPART *p, uint8_t *buf, uint32_t addr, int len,
@ -1161,9 +1161,9 @@ static int ur_initstruct(const PROGRAMMER *pgm, const AVRPART *p) {
if(ur.xbootsize % ur.uP.pagesize) if(ur.xbootsize % ur.uP.pagesize)
Return("-xbootsize=%d size not a multiple of flash page size %d", Return("-xbootsize=%d size not a multiple of flash page size %d",
ur.xbootsize, ur.uP.pagesize); ur.xbootsize, ur.uP.pagesize);
if(ur.xbootsize < 64 || ur.xbootsize > min(2048, ur.uP.flashsize/4)) if(ur.xbootsize < 64 || ur.xbootsize > urmin(2048, ur.uP.flashsize/4))
Return("implausible -xbootsize=%d, should be in [64, %d]", Return("implausible -xbootsize=%d, should be in [64, %d]",
ur.xbootsize, min(2048, ur.uP.flashsize/4)); ur.xbootsize, urmin(2048, ur.uP.flashsize/4));
ur.blstart = ur.uP.flashsize - ur.xbootsize; ur.blstart = ur.uP.flashsize - ur.xbootsize;
} }
@ -1549,16 +1549,16 @@ static int ur_readEF(const PROGRAMMER *pgm, const AVRPART *p, uint8_t *buf, uint
if(mchr == 'E' && !ur.bleepromrw && !ur.xeepromrw) if(mchr == 'E' && !ur.bleepromrw && !ur.xeepromrw)
Return("bootloader does not %shave EEPROM access capability", ur.blurversion? "": "seem to "); Return("bootloader does not %shave EEPROM access capability", ur.blurversion? "": "seem to ");
if(len < 1 || len > max(ur.uP.pagesize, 256)) if(len < 1 || len > urmax(ur.uP.pagesize, 256))
Return("len %d exceeds range [1, %d]", len, max(ur.uP.pagesize, 256)); Return("len %d exceeds range [1, %d]", len, urmax(ur.uP.pagesize, 256));
// Odd byte address under word-address protocol for "classic" parts (optiboot, avrisp etc) // Odd byte address under word-address protocol for "classic" parts (optiboot, avrisp etc)
int odd = !ur.urprotocol && classic && (badd&1); int odd = !ur.urprotocol && classic && (badd&1);
if(odd) { // Need to read one extra byte if(odd) { // Need to read one extra byte
len++; len++;
badd &= ~1; badd &= ~1;
if(len > max(ur.uP.pagesize, 256)) if(len > urmax(ur.uP.pagesize, 256))
Return("len+1 = %d odd address exceeds range [1, %d]", len, max(ur.uP.pagesize, 256)); Return("len+1 = %d odd address exceeds range [1, %d]", len, urmax(ur.uP.pagesize, 256));
} }
if(urclock_paged_rdwr(pgm, p, Cmnd_STK_READ_PAGE, badd, len, mchr, NULL) < 0) if(urclock_paged_rdwr(pgm, p, Cmnd_STK_READ_PAGE, badd, len, mchr, NULL) < 0)
@ -2104,9 +2104,9 @@ static int urclock_parseextparms(const PROGRAMMER *pgm, LISTID extparms) {
{"showvector", &ur.showvector, NA, "Show vector bootloader vector # and name and exit"}, {"showvector", &ur.showvector, NA, "Show vector bootloader vector # and name and exit"},
{"id", NULL, sizeof ur.iddesc, ur.iddesc, 1, "Location of Urclock ID, eg, F.12345.6"}, {"id", NULL, sizeof ur.iddesc, ur.iddesc, 1, "Location of Urclock ID, eg, F.12345.6"},
{"title", NULL, sizeof ur.title, ur.title, 1, "Title stored and shown in lieu of a filename"}, {"title", NULL, sizeof ur.title, ur.title, 1, "Title stored and shown in lieu of a filename"},
{"bootsize", &ur.xbootsize, ARG, "Manual override for bootloader size"}, {"bootsize", &ur.xbootsize, ARG, "Override/set bootloader size"},
{"vectornum", &ur.xvectornum, ARG, "Manual override for vector number"}, {"vectornum", &ur.xvectornum, ARG, "Treat bootloader as vector b/loader using this vector"},
{"eepromrw", &ur.xeepromrw, NA, "Asssertion of bootloader EEPROM read/write capability"}, {"eepromrw", &ur.xeepromrw, NA, "Assert bootloader EEPROM read/write capability"},
{"emulate_ce", &ur.xemulate_ce, NA, "Emulate chip erase"}, {"emulate_ce", &ur.xemulate_ce, NA, "Emulate chip erase"},
{"restore", &ur.restore, NA, "Restore a flash backup as is trimming the bootloader"}, {"restore", &ur.restore, NA, "Restore a flash backup as is trimming the bootloader"},
{"initstore", &ur.initstore, NA, "Fill store with 0xff on writing to flash"}, {"initstore", &ur.initstore, NA, "Fill store with 0xff on writing to flash"},
@ -2175,7 +2175,7 @@ static int urclock_parseextparms(const PROGRAMMER *pgm, LISTID extparms) {
msg_error("%s -c %s extended options:\n", progname, (char *) ldata(lfirst(pgm->id))); msg_error("%s -c %s extended options:\n", progname, (char *) ldata(lfirst(pgm->id)));
for(size_t i=0; i<sizeof options/sizeof*options; i++) { for(size_t i=0; i<sizeof options/sizeof*options; i++) {
msg_error(" -x%s%s%*s%s\n", options[i].name, options[i].assign? "=<arg>": "", msg_error(" -x%s%s%*s%s\n", options[i].name, options[i].assign? "=<arg>": "",
max(0, 16-(long) strlen(options[i].name)-(options[i].assign? 6: 0)), "", options[i].help); urmax(0, 16-(long) strlen(options[i].name)-(options[i].assign? 6: 0)), "", options[i].help);
} }
if(rc == 0) if(rc == 0)
exit(0); exit(0);
@ -2235,4 +2235,10 @@ void urclock_initpgm(PROGRAMMER *pgm) {
pgm->flash_readhook = urclock_flash_readhook; pgm->flash_readhook = urclock_flash_readhook;
disable_trailing_ff_removal(); disable_trailing_ff_removal();
#if defined(HAVE_LIBREADLINE)
pmsg_notice2("libreadline is used; avrdude -t -c urclock should work");
#else
pmsg_warning("compiled without readline library, cannot use avrdude -t -c urclock");
#endif
} }