Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FW: Force the CPU to hang on errors #168

Merged
merged 2 commits into from
Mar 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion hw/application_fpga/application_fpga.bin.sha256
Original file line number Diff line number Diff line change
@@ -1 +1 @@
d2970828269b3ba7f09fb73b8592b08814dfe8c8087b00b0659feb516bb00f33 application_fpga.bin
84de63425720086b1a576e40d71a4a41eec5502736b732f4992d8f21829aec3e application_fpga.bin
2 changes: 1 addition & 1 deletion hw/application_fpga/firmware.bin.sha512
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3769540390ee3d990ea3f9e4cc9a0d1af5bcaebb82218185a78c39c6bf01d9cdc305ba253a1fb9f3f9fcc63d97c8e5f34bbb1f7bec56a8f246f1d2239867b623 firmware.bin
aad49235ab60b732a45bbedf5774c543df1b40d52b226ffc41bc6c3e2dbbb3963e810f0a52ccf7ba4689b414f1cb941076b896a47d2377fb61c1976bdbcebe17 firmware.bin
5 changes: 4 additions & 1 deletion hw/application_fpga/fw/tk1/assert.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ void assert_fail(const char *assertion, const char *file, unsigned int line,
htif_puts(function);
htif_lf();

forever_redflash();
// Force illegal instruction to halt CPU
asm volatile("unimp");

// Not reached
__builtin_unreachable();
}
12 changes: 0 additions & 12 deletions hw/application_fpga/fw/tk1/led.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,3 @@ void set_led(uint32_t led_value)
{
*led = led_value;
}

void forever_redflash()
{
int led_on = 0;

for (;;) {
*led = led_on ? LED_RED : LED_BLACK;
for (volatile int i = 0; i < 800000; i++) {
}
led_on = !led_on;
}
}
1 change: 0 additions & 1 deletion hw/application_fpga/fw/tk1/led.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,4 @@
// clang-format on

void set_led(uint32_t led_value);
void forever_redflash();
#endif
2 changes: 1 addition & 1 deletion hw/application_fpga/fw/tk1/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -431,7 +431,7 @@ int main()
htif_puts("firmware state 0x");
htif_puthex(state);
htif_lf();
forever_redflash();
assert(1 == 2);
break; // Not reached
}
}
Expand Down
Loading