Skip to content

Commit b132fac

Browse files
Merge pull request #88 from riscv/read0
Fix assertion failure when reading from address 0.
2 parents 97ea540 + efcfcf5 commit b132fac

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

src/target/riscv/riscv-013.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1353,12 +1353,14 @@ static int read_memory(struct target *target, target_addr_t address,
13531353
riscv_addr_t cur_addr = 0xbadbeef;
13541354
riscv_addr_t fin_addr = address + (count * size);
13551355
riscv_addr_t prev_addr = ((riscv_addr_t) address) - size;
1356+
bool first = true;
13561357
LOG_DEBUG("writing until final address 0x%" PRIx64, fin_addr);
13571358
while (count > 1 && (cur_addr = riscv_read_debug_buffer_x(target, d_addr)) < fin_addr) {
13581359
LOG_DEBUG("transferring burst starting at address 0x%" TARGET_PRIxADDR
13591360
" (previous burst was 0x%" TARGET_PRIxADDR ")", cur_addr,
13601361
prev_addr);
1361-
assert(prev_addr < cur_addr);
1362+
assert(first || prev_addr < cur_addr);
1363+
first = false;
13621364
prev_addr = cur_addr;
13631365
riscv_addr_t start = (cur_addr - address) / size;
13641366
assert (cur_addr >= address);

0 commit comments

Comments
 (0)