Delete testbench/tests/cmark_dccm directory
This directory is redundant due to the reworking of test flow in release 1.9
This commit is contained in:
parent
5e23462bd0
commit
f3da044f15
|
@ -1,6 +0,0 @@
|
|||
export TEST = cmark_dccm
|
||||
export OFILES = crt0.o cmark_dccm.o printf.o
|
||||
export BUILD_DIR = ../snapshots/default
|
||||
|
||||
clean .DEFAULT:
|
||||
$(MAKE) -e -f $(RV_ROOT)/tools/MakeHex $@
|
File diff suppressed because it is too large
Load Diff
|
@ -1,12 +0,0 @@
|
|||
OUTPUT_ARCH( "riscv" )
|
||||
ENTRY(_start)
|
||||
|
||||
SECTIONS {
|
||||
.text : { *(.text*) }
|
||||
_end = .;
|
||||
. = 0xf0040000;
|
||||
.data : { *(.*data) *(.rodata*) *(.sbss) STACK = ALIGN(16) + 0x1000;}
|
||||
.bss : { *(.bss) }
|
||||
. = 0xfffffff8;
|
||||
.data.ctl : { LONG(0xf0040000); LONG(STACK) }
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
extern int STACK;
|
||||
void main();
|
||||
|
||||
|
||||
#define STDOUT 0xd0580000
|
||||
|
||||
__asm (".section .text");
|
||||
__asm (".global _start");
|
||||
__asm ("_start:");
|
||||
|
||||
// Enable Caches in MRAC
|
||||
__asm ("li t0, 0x5f555555");
|
||||
__asm ("csrw 0x7c0, t0");
|
||||
|
||||
// Set stack pointer.
|
||||
__asm ("la sp, STACK");
|
||||
|
||||
__asm ("jal main");
|
||||
|
||||
// Write 0xff to STDOUT for TB to termiate test.
|
||||
__asm (".global _finish");
|
||||
__asm ("_finish:");
|
||||
__asm ("li t0, 0xd0580000");
|
||||
__asm ("addi t1, zero, 0xff");
|
||||
__asm ("sb t1, 0(t0)");
|
||||
__asm ("beq x0, x0, _finish");
|
||||
__asm (".rept 10");
|
||||
__asm ("nop");
|
||||
__asm (".endr");
|
|
@ -1,191 +0,0 @@
|
|||
#include <stdarg.h>
|
||||
|
||||
// This should be in some .h file.
|
||||
#define STDOUT 0xd0580000
|
||||
|
||||
static int
|
||||
whisperPutc(char c)
|
||||
{
|
||||
// __whisper_console_io = c;
|
||||
// __whisper_console_io = c;
|
||||
*(volatile char*)(STDOUT) = c;
|
||||
return c;
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
whisperPuts(const char* s)
|
||||
{
|
||||
while (*s)
|
||||
whisperPutc(*s++);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
whisperPrintDecimal(int value)
|
||||
{
|
||||
char buffer[20];
|
||||
int charCount = 0;
|
||||
|
||||
unsigned neg = value < 0;
|
||||
if (neg)
|
||||
{
|
||||
value = -value;
|
||||
whisperPutc('-');
|
||||
}
|
||||
|
||||
do
|
||||
{
|
||||
char c = '0' + (value % 10);
|
||||
value = value / 10;
|
||||
buffer[charCount++] = c;
|
||||
}
|
||||
while (value);
|
||||
|
||||
char* p = buffer + charCount - 1;
|
||||
for (unsigned i = 0; i < charCount; ++i)
|
||||
whisperPutc(*p--);
|
||||
|
||||
if (neg)
|
||||
charCount++;
|
||||
|
||||
return charCount;
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
whisperPrintInt(int value, int base)
|
||||
{
|
||||
if (base == 10)
|
||||
return whisperPrintDecimal(value);
|
||||
|
||||
char buffer[20];
|
||||
int charCount = 0;
|
||||
|
||||
unsigned uu = value;
|
||||
|
||||
if (base == 8)
|
||||
{
|
||||
do
|
||||
{
|
||||
char c = '0' + (uu & 7);
|
||||
buffer[charCount++] = c;
|
||||
uu >>= 3;
|
||||
}
|
||||
while (uu);
|
||||
}
|
||||
else if (base == 16)
|
||||
{
|
||||
do
|
||||
{
|
||||
int digit = uu & 0xf;
|
||||
char c = digit < 10 ? '0' + digit : 'a' + digit - 10;
|
||||
buffer[charCount++] = c;
|
||||
uu >>= 4;
|
||||
}
|
||||
while (uu);
|
||||
}
|
||||
else
|
||||
return -1;
|
||||
|
||||
char* p = buffer + charCount - 1;
|
||||
for (unsigned i = 0; i < charCount; ++i)
|
||||
whisperPutc(*p--);
|
||||
|
||||
return charCount;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
whisperPrintfImpl(const char* format, va_list ap)
|
||||
{
|
||||
int count = 0; // Printed character count
|
||||
|
||||
for (const char* fp = format; *fp; fp++)
|
||||
{
|
||||
if (*fp != '%')
|
||||
{
|
||||
whisperPutc(*fp);
|
||||
++count;
|
||||
continue;
|
||||
}
|
||||
|
||||
++fp; // Skip %
|
||||
|
||||
if (*fp == 0)
|
||||
break;
|
||||
|
||||
if (*fp == '%')
|
||||
{
|
||||
whisperPutc('%');
|
||||
continue;
|
||||
}
|
||||
|
||||
if (*fp == '-')
|
||||
{
|
||||
fp++; // Pad right not yet implemented.
|
||||
}
|
||||
|
||||
while (*fp == '0')
|
||||
{
|
||||
fp++; // Pad zero not yet implented.
|
||||
}
|
||||
|
||||
if (*fp == '*')
|
||||
{
|
||||
int width = va_arg(ap, int);
|
||||
fp++; // Width not yet implemented.
|
||||
}
|
||||
else
|
||||
{
|
||||
while (*fp >= '0' && *fp <= '9')
|
||||
++fp; // Width not yet implemented.
|
||||
}
|
||||
|
||||
switch (*fp)
|
||||
{
|
||||
case 'd':
|
||||
count += whisperPrintDecimal(va_arg(ap, int));
|
||||
break;
|
||||
|
||||
case 'u':
|
||||
count += whisperPrintDecimal((unsigned) va_arg(ap, unsigned));
|
||||
break;
|
||||
|
||||
case 'x':
|
||||
case 'X':
|
||||
count += whisperPrintInt(va_arg(ap, int), 16);
|
||||
break;
|
||||
|
||||
case 'o':
|
||||
count += whisperPrintInt(va_arg(ap, int), 8);
|
||||
break;
|
||||
|
||||
case 'c':
|
||||
whisperPutc(va_arg(ap, int));
|
||||
++count;
|
||||
break;
|
||||
|
||||
case 's':
|
||||
count += whisperPuts(va_arg(ap, char*));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
whisperPrintf(const char* format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, format);
|
||||
int code = whisperPrintfImpl(format, ap);
|
||||
va_end(ap);
|
||||
|
||||
return code;
|
||||
}
|
||||
|
Loading…
Reference in New Issue