uses write_hex() in exit instead of tohost=0x1

This commit is contained in:
Hongyu Liu 2025-04-15 12:32:09 +02:00
parent 9909769c0a
commit 8b3dc54e5c
2 changed files with 16 additions and 15 deletions

View File

@ -17,6 +17,7 @@ Original Author: Shay Gal-on
*/ */
#include "core_portme.h" #include "core_portme.h"
#include "coremark.h" #include "coremark.h"
#include <unistd.h>
// Read cycle CSR // Read cycle CSR
unsigned long long _read_cycle() { unsigned long long _read_cycle() {
unsigned long long result; unsigned long long result;
@ -38,11 +39,14 @@ unsigned long long _read_cycle() {
return result; return result;
} }
extern volatile int tohost; // extern volatile int tohost;
extern volatile int fromhost; // extern volatile int fromhost;
void write_hex(int fd, uint32_t hex);
void exit(int n) { void exit(int n) {
tohost = 0x1; write_hex(STDERR_FILENO, 1);
// tohost = 0x1;
for (;;) for (;;)
; ;
} }

View File

@ -1,4 +1,5 @@
#include "platform.h" #include "platform.h"
#include <unistd.h>
#ifndef ITERATIONS #ifndef ITERATIONS
#define ITERATIONS 20000 #define ITERATIONS 20000
#endif #endif
@ -6,20 +7,16 @@
/* The functions in this file are only meant to support Dhrystone on an /* The functions in this file are only meant to support Dhrystone on an
* embedded RV32 system and are obviously incorrect in general. */ * embedded RV32 system and are obviously incorrect in general. */
long time(void) long time(void) { return get_timer_value(); }
{
return get_timer_value();
}
// set the number of dhrystone iterations // set the number of dhrystone iterations
void __wrap_scanf(const char* fmt, int* n) void __wrap_scanf(const char *fmt, int *n) { *n = ITERATIONS; }
{
*n = ITERATIONS;
}
extern volatile uint32_t tohost; // extern volatile uint64_t tohost;
void exit(int n) { void exit(int n) {
tohost = 0x1; // tohost = 0x1;
for (;;); write_hex(STDERR_FILENO, 1);
for (;;)
;
} }