Skip to content

Commit 172f2d8

Browse files
committed
fix: resolve Windows compilation warnings (MSVC)
Signed-off-by: Vincent Jardin <vjardin@free.fr>
1 parent d44604c commit 172f2d8

File tree

5 files changed

+22
-20
lines changed

5 files changed

+22
-20
lines changed

meson.build

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ endif
6060
if host_machine.system() == 'windows'
6161
# Windows requires SetupAPI for USB device detection
6262
deps += cc.find_library('setupapi')
63+
# Suppress MSVC warnings about deprecated CRT functions (fopen, sscanf, getenv, etc.)
64+
add_project_arguments('-D_CRT_SECURE_NO_WARNINGS', language : 'c')
6365
elif host_machine.system() == 'darwin'
6466
# macOS requires IOKit and CoreFoundation for USB device detection
6567
deps += dependency('appleframeworks', modules : ['IOKit', 'CoreFoundation'])

src/formats.c

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ bin_parse(const char *filename, parsed_file_t *out) {
121121
return -1;
122122
}
123123

124-
ssize_t n = read(fd, out->data, out->size);
124+
ssize_t n = read(fd, out->data, (unsigned int)out->size);
125125
close(fd);
126126

127127
if (n < 0 || (size_t)n != out->size) {
@@ -186,31 +186,31 @@ ihex_parse(const char *filename, parsed_file_t *out) {
186186
goto fail;
187187
}
188188

189-
uint16_t addr = (addr_hi << 8) | addr_lo;
189+
uint16_t addr = (uint16_t)((addr_hi << 8) | addr_lo);
190190
size_t expected_len = 8 + byte_count * 2 + 2;
191191
if (len < expected_len) {
192192
warnx("%s:%d: line too short for byte count", filename, line_num);
193193
goto fail;
194194
}
195195

196-
uint8_t checksum = byte_count + addr_hi + addr_lo + rec_type;
196+
uint8_t checksum = (uint8_t)(byte_count + addr_hi + addr_lo + rec_type);
197197
uint8_t data[256];
198198
for (int i = 0; i < byte_count; i++) {
199199
int b = hex_byte(p + 8 + i * 2);
200200
if (b < 0) {
201201
warnx("%s:%d: invalid hex digits in data", filename, line_num);
202202
goto fail;
203203
}
204-
data[i] = b;
205-
checksum += b;
204+
data[i] = (uint8_t)b;
205+
checksum = (uint8_t)(checksum + b);
206206
}
207207

208208
int file_checksum = hex_byte(p + 8 + byte_count * 2);
209209
if (file_checksum < 0) {
210210
warnx("%s:%d: invalid checksum hex", filename, line_num);
211211
goto fail;
212212
}
213-
checksum += file_checksum;
213+
checksum = (uint8_t)(checksum + file_checksum);
214214
if (checksum != 0) {
215215
warnx("%s:%d: checksum mismatch", filename, line_num);
216216
goto fail;
@@ -377,16 +377,16 @@ srec_parse(const char *filename, parsed_file_t *out) {
377377
goto fail;
378378
}
379379

380-
uint8_t checksum = byte_count;
380+
uint8_t checksum = (uint8_t)byte_count;
381381
uint32_t addr = 0;
382382
for (int i = 0; i < addr_bytes; i++) {
383383
int b = hex_byte(p + 2 + i * 2);
384384
if (b < 0) {
385385
warnx("%s:%d: invalid address hex", filename, line_num);
386386
goto fail;
387387
}
388-
addr = (addr << 8) | b;
389-
checksum += b;
388+
addr = (addr << 8) | (uint32_t)b;
389+
checksum = (uint8_t)(checksum + b);
390390
}
391391

392392
int data_bytes = byte_count - addr_bytes - 1;
@@ -397,16 +397,16 @@ srec_parse(const char *filename, parsed_file_t *out) {
397397
warnx("%s:%d: invalid data hex", filename, line_num);
398398
goto fail;
399399
}
400-
data[i] = b;
401-
checksum += b;
400+
data[i] = (uint8_t)b;
401+
checksum = (uint8_t)(checksum + b);
402402
}
403403

404404
int file_checksum = hex_byte(p + 2 + addr_bytes * 2 + data_bytes * 2);
405405
if (file_checksum < 0) {
406406
warnx("%s:%d: invalid checksum hex", filename, line_num);
407407
goto fail;
408408
}
409-
checksum += file_checksum;
409+
checksum = (uint8_t)(checksum + file_checksum);
410410
if (checksum != 0xFF) {
411411
warnx("%s:%d: checksum mismatch", filename, line_num);
412412
goto fail;
@@ -517,7 +517,7 @@ ihex_write(const char *filename, const uint8_t *data, size_t size, uint32_t addr
517517
/* Emit extended linear address record if needed (type 04) */
518518
uint32_t ext_addr = line_addr >> 16;
519519
if (ext_addr != current_ext_addr) {
520-
uint8_t sum = 0x02 + 0x00 + 0x00 + 0x04 + (ext_addr >> 8) + (ext_addr & 0xFF);
520+
uint8_t sum = (uint8_t)(0x02 + 0x00 + 0x00 + 0x04 + (ext_addr >> 8) + (ext_addr & 0xFF));
521521
fprintf(fp, ":02000004%04X%02X\n", ext_addr, (uint8_t)(~sum + 1));
522522
current_ext_addr = ext_addr;
523523
}

src/main.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -806,8 +806,8 @@ main(int argc, char *argv[]) {
806806
if (best > 9600) {
807807
if (ra_set_baudrate(&dev, best) == 0) {
808808
/* Verify communication works at new rate */
809-
uint32_t verify;
810-
if (ra_get_rmb(&dev, &verify) < 0) {
809+
uint32_t rmb_check;
810+
if (ra_get_rmb(&dev, &rmb_check) < 0) {
811811
ra_close(&dev);
812812
errx(EXIT_FAILURE,
813813
"communication failed at %u bps, reset board and use -b 115200 or lower",

src/radfu.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1035,8 +1035,8 @@ ra_verify(
10351035
}
10361036
}
10371037

1038-
file_offset += cmp_len;
1039-
current_addr += chunk_len;
1038+
file_offset += (uint32_t)cmp_len;
1039+
current_addr += (uint32_t)chunk_len;
10401040

10411041
/* Send ACK for all packets except the last one (per spec 6.20.3) */
10421042
if (i < nr_packets) {
@@ -1114,7 +1114,7 @@ ra_blank_check(ra_device_t *dev, uint32_t start, uint32_t size) {
11141114
}
11151115
}
11161116

1117-
current_addr += chunk_len;
1117+
current_addr += (uint32_t)chunk_len;
11181118

11191119
/* Send ACK for all packets except the last one (per spec 6.20.3) */
11201120
if (i < nr_packets) {

src/rapacker.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ ra_strdesc(uint8_t code) {
5252

5353
uint8_t
5454
ra_calc_sum(uint8_t cmd, const uint8_t *data, size_t len) {
55-
uint16_t pkt_len = len + 1;
55+
uint16_t pkt_len = (uint16_t)(len + 1);
5656
uint8_t lnh = (pkt_len >> 8) & 0xFF;
5757
uint8_t lnl = pkt_len & 0xFF;
5858
uint32_t sum = lnh + lnl + cmd;
@@ -77,7 +77,7 @@ ra_pack_pkt(uint8_t *buf, size_t buflen, uint8_t cmd, const uint8_t *data, size_
7777
return -1;
7878
}
7979

80-
uint16_t data_len = len + 1; /* includes CMD in length */
80+
uint16_t data_len = (uint16_t)(len + 1); /* includes CMD in length */
8181
uint8_t lnh = (data_len >> 8) & 0xFF;
8282
uint8_t lnl = data_len & 0xFF;
8383
uint8_t sum = ra_calc_sum(cmd, data, len);

0 commit comments

Comments
 (0)