fix Makefile bug dont need bal

This commit is contained in:
reccetear 2017-04-26 01:16:37 +08:00
parent 6e61a2f520
commit afcf062044
6 changed files with 37 additions and 45 deletions

View File

@ -54,9 +54,9 @@ ASFLAGS += -I./am/ -I./$(AM_PATH)/include -I./$(APP_PATH)/include -M
# Arch-dependent compilation flags
ifeq ($(ARCH), mips32-npc)
CXX = $(CROSS_COMPILE)g++-5
CFLAGS += -fno-pic -static -fno-strict-aliasing -fno-builtin -fno-stack-protector -fno-delayed-branch -mno-abicalls -march=mips32 -mno-check-zero-division -EL
CFLAGS += -MD -fno-pic -static -fno-strict-aliasing -fno-builtin -fno-stack-protector -fno-delayed-branch -mno-abicalls -march=mips32 -mno-check-zero-division -EL
CXXFLAGS += -fno-pic -static -fno-strict-aliasing -fno-builtin -fno-stack-protector -fno-delayed-branch -mno-abicalls -march=mips32 -ffreestanding -fno-rtti -fno-exceptions -mno-check-zero-division -EL
ASFLAGS += -march=mips32 -EL
ASFLAGS += -march=mips32 -EL -MD -mno-check-zero-division -O0 -mno-abicalls -fno-pic -fno-delayed-branch
endif
ifeq ($(ARCH), x86-qemu)
CFLAGS += -m32 -fno-builtin -fno-stack-protector -fno-omit-frame-pointer

View File

@ -1,2 +1,2 @@
start.o: start.S
mips-linux-gnu-as -EL -march=mips32 start.S -o start.o
mips-linux-gnu-gcc -EL -march=mips32 -fno-pic -MD -mno-abicalls -fno-delayed-branch -c start.S -o start.o

View File

@ -6,9 +6,7 @@
_start:
li $sp, 0x0000fffc
jal main
nop
_qemu:
nop
jal main
nop

View File

@ -2,12 +2,18 @@
#include <npc.h>
#include <arch.h>
void _asye_init(){
u32 count= GetCount();
_putc('g');
SetCompare(count + 20000);
}
void _listen(_RegSet* (*l)(int ex, _RegSet *regs)){
}
_RegSet *_make(_Area kstack, void *entry){
_RegSet *r = (void *)0;
return r;
_RegSet *r = (void *)0;
return r;
}
void _trap(){
@ -28,19 +34,19 @@ int _istatus(){
void irq_handle(struct TrapFrame *tf){
//TODO:handle
u32 arg = 0;
asm volatile("add %0,$k1,$zero\n\t":"=r"(arg));
tf = (void *)arg;
u32 intr = 0;
asm volatile("add %0,$k0,$zero\n\t":"=r"(intr));
switch(intr){
case 0x80://time interrupt
{
u32 count= GetCount();
_putc('g');
SetCompare(count + 20000);
}break;
default:_putc('0' + intr);
}
asm volatile("nop");
u32 arg = 0;
asm volatile("add %0,$k1,$zero\n\t":"=r"(arg));
tf = (void *)arg;
u32 intr = 0;
asm volatile("add %0,$k0,$zero\n\t":"=r"(intr));
switch(intr){
case 0x80://time interrupt
{
u32 count= GetCount();
_putc('g');
SetCompare(count + 20000);
}break;
default:_putc('0' + intr);
}
asm volatile("nop");
}

View File

@ -1,22 +0,0 @@
#include <am.h>
#include <npc.h>
u32 GetCount(){
u32 tick = 0;
asm volatile("mfc0 %0, $9\n\t":"=r"(tick));
return tick;
}
void SetCompare(u32 compare){
asm volatile("mtc0 %0, $11\n\t"::"r"(compare));
}
ulong npc_time = 0;
ulong _uptime() {
return npc_time ++;
}
ulong _cycles(){
return 0;
}

View File

@ -25,12 +25,22 @@ void _halt(int code) {
while(1);
}
u32 GetCount(){
u32 tick = 0;
asm volatile("mfc0 %0, $9\n\t":"=r"(tick));
return tick;
}
void SetCompare(u32 compare){
asm volatile("mtc0 %0, $11\n\t"::"r"(compare));
}
ulong _uptime() {
return npc_time ++;
}
ulong _cycles(){
return npc_cycles ++;
return 0;
}
void memory_init(){