You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
HiFive1 initialization complete. Entering main loop
...
---| App Status |---
App: - [Running]
Events Queued: 0 Syscall Count: 5 Dropped Callback Count: 0
Restart Count: 0
Last Syscall: None
╔═══════════╤══════════════════════════════════════════╗
║ Address │ Region Name Used | Allocated (bytes) ║
╚0x800036F8═╪══════════════════════════════════════════╝
│ ▼ Grant 756 | 756
0x80003404 ┼───────────────────────────────────────────
│ Unused
0x80003004 ┼───────────────────────────────────────────
│ ▲ Heap 1024 | 2048 S
0x80002C04 ┼─────────────────────────────────────────── R
│ Data 4 | 4 A
0x80002C00 ┼─────────────────────────────────────────── M
│ ▼ Stack 3136 | 2048 EXCEEDED!
0x80001FC0 ┼───────────────────────────────────────────
│ Unused
0x80002400 ┴───────────────────────────────────────────
.....
0x20440000 ┬─────────────────────────────────────────── F
│ App Flash 65472 L
0x20430040 ┼─────────────────────────────────────────── A
│ Protected 64 S
0x20430000 ┴─────────────────────────────────────────── H
...
If you enable debug options for the Tock kernel you will see this:
HiFive1 initialization complete. Entering main loop
Loading processes from flash=0x20430000 into sram=[0x80002400:0x80003800]
Loaded process[0] from flash=[0x20430000:0x20440000] into sram=[0x80002400:0x800036F8] = Some("")
[!] flash=0x20440000 - not a valid TBF header
Loaded process[1] from flash=[0x20440000:0x20440000] into sram=[0x800036F8:0x800036F8] = None
Kernel panic at /scratch/alistair/software/tock/tock/chips/e310x/src/chip.rs:152:
"load fault 10
"
Kernel version release-1.4-627-gc94059d3
---| RISC-V Machine State |---
Cause (mcause): Load access fault (interrupt=false, exception code=5)
Value (mtval): 0x00000010
...
If you enable PMP on Tock then you can't even load the app
HiFive1 initialization complete. Entering main loop
Loading processes from flash=0x20430000 into sram=[0x80002400:0x80003800]
[!] flash=[0x20430000:0x20440000] process=Some("") - couldn't allocate memory region of size >= 0x13A0
Loaded process[0] from flash=[0x20430000:0x20440000] into sram=[0x80002400:0x80002400] = None
[!] flash=0x20440000 - not a valid TBF header
Loaded process[1] from flash=[0x20440000:0x20440000] into sram=[0x80002400:0x80002400] = None
Basically it's really hard to fit the libtock-rs apps with Tock for the HiFive1. As it's the only board supported in QEMU this is a pain. It might be worth looking at trying to shrink the app sizes.
The text was updated successfully, but these errors were encountered:
Increasing the RAM size (in QEMU and Tock) and then the application size and Tock stack size fixes all of the memory issues, but that won't work on HW.
Currently libtock-rs apps barely fit on the HiFive1 board.
Build the libtock-rs examples
Create a tbf file for the hello_world example
Run the TBF file with master Tock (
c94059d3e25dc635e682facff4894ef43b9aca0e
and no debug) and QEMU:It works and runs correctly :)
Now try to run the timer app
and you will see this:
If you enable debug options for the Tock kernel you will see this:
If you enable PMP on Tock then you can't even load the app
Basically it's really hard to fit the libtock-rs apps with Tock for the HiFive1. As it's the only board supported in QEMU this is a pain. It might be worth looking at trying to shrink the app sizes.
The text was updated successfully, but these errors were encountered: