[Add] software simulator add

This commit is contained in:
bLueriVerLHR
2023-05-11 17:55:41 +08:00
parent 4e39007d17
commit 0bf1c68d94
16 changed files with 535 additions and 10 deletions

36
include/common.h Normal file
View File

@@ -0,0 +1,36 @@
#pragma once
#include <cstdlib>
#include <cstdio>
#include <ctime>
#include <cstring>
#include <fstream>
#ifndef COMMON_H__
#define COMMON_H__
#ifdef DEBUG_MODE
#define Log(fmt, ...) printf("[%s@%d %ld] " fmt "\n", __FILE__, __LINE__, clock(), ## __VA_ARGS__)
#define panic(x) do { \
Log(x); \
exit(EXIT_FAILURE); \
} while (0)
#define panicifnot(cond) do { \
if (!(cond)) { \
Log(#cond " fail"); \
exit(EXIT_FAILURE); \
} \
} while (0)
#else
#define Log(...)
#define panic(x)
#define panicifnot(cond)
#endif
#endif

22
include/devaddr.h Normal file
View File

@@ -0,0 +1,22 @@
#pragma once
#ifndef DEVADDR_H__
#define DEVADDR_H__
#define RAM_ADDR 0x0000'0000
#define IMG_ADDR 0x0000'8000
#define STK_ADDR 0x2000'0000
#define DEVICE_BASE 0xa0000000
#define MMIO_BASE 0xa0000000
#define SERIAL_PORT (DEVICE_BASE + 0x00003f8)
#define KBD_ADDR (DEVICE_BASE + 0x0000060)
#define RTC_ADDR (DEVICE_BASE + 0x0000048)
#define VGACTL_ADDR (DEVICE_BASE + 0x0000100)
#define AUDIO_ADDR (DEVICE_BASE + 0x0000200)
#define DISK_ADDR (DEVICE_BASE + 0x0000300)
#define FB_ADDR (MMIO_BASE + 0x1000000)
#define AUDIO_SBUF_ADDR (MMIO_BASE + 0x1200000)
#endif