Commit 0a9bce42 authored by Daniel Friesel's avatar Daniel Friesel
Browse files

add TC1796 and TC397 mock architectures

only usable for ELF benchmarks, flashing is not supported
parent 5c82c62d
Loading
Loading
Loading
Loading
+31 −0
Original line number Diff line number Diff line
/*
 * Copyright 2022 Daniel Friesel
 *
 * SPDX-License-Identifier: BSD-2-Clause
 */
#ifndef COUNTER_H
#define COUNTER_H

typedef unsigned int counter_value_t;
typedef unsigned int counter_overflow_t;

class Counter {
	private:
		Counter(const Counter &copy);

	public:
		counter_value_t value;
		volatile counter_overflow_t overflow;

		Counter() : overflow(0) {}

		inline void start() {
		}

		inline void stop() {
		}
};

extern Counter counter;

#endif
+47 −0
Original line number Diff line number Diff line
/*
 * Copyright 2022 Daniel Friesel
 *
 * SPDX-License-Identifier: BSD-2-Clause
 */
#ifndef GPIO_H
#define GPIO_H

class GPIO {
	private:
		GPIO(const GPIO &copy);

	public:
		GPIO () {}

		enum Pin : unsigned char {
			PIN_INVALID
		};

		inline void setup() {
		}
		inline void led_on(unsigned char id = 0) {
		}
		inline void led_off(unsigned char id = 0) {
		}
		inline void led_toggle(unsigned char id = 0) {
		}
		inline void input(unsigned char const pin) {
		}
		inline void input(unsigned char const pin, unsigned char const pull) {
		}
		inline void output(unsigned char const pin) {
		}
		inline void output(unsigned char const pin, unsigned char const value) {
		}
		inline unsigned char read(unsigned char const pin) {
			return 0;
		}
		inline void write(unsigned char const pin, unsigned char value) {
		}
		inline void write_mask(unsigned char const pin_base, unsigned char set_mask, unsigned char clear_mask) {
		}
};

extern GPIO gpio;

#endif
+24 −0
Original line number Diff line number Diff line
/*
 * Copyright 2022 Daniel Friesel
 *
 * SPDX-License-Identifier: BSD-2-Clause
 */
#ifndef STANDARDOUTPUT_H
#define STANDARDOUTPUT_H

#include "object/outputstream.h"

class StandardOutput : public OutputStream {
	private:
		StandardOutput(const StandardOutput &copy);

	public:
		StandardOutput () {}
		void setup();

		virtual void put(char c) override;
};

extern StandardOutput kout;

#endif
+32 −0
Original line number Diff line number Diff line
/*
 * Copyright 2022 Daniel Friesel
 *
 * SPDX-License-Identifier: BSD-2-Clause
 */
#ifndef UPTIME_H
#define UPTIME_H

class Uptime {
	private:
		Uptime(const Uptime &copy);
#ifdef TIMER_S
		uint16_t seconds;
#endif

	public:
#ifdef TIMER_S
		Uptime () : seconds(0) {}
#else
		Uptime () {}
#endif
		inline uint16_t get_us() { return 0; }
		inline uint16_t get_cycles() { return 0; }
#ifdef TIMER_S
		inline uint16_t get_s() { return seconds; }
		inline void tick_s() { seconds++; }
#endif
};

extern Uptime uptime;

#endif
+31 −0
Original line number Diff line number Diff line
/*
 * Copyright 2022 Daniel Friesel
 *
 * SPDX-License-Identifier: BSD-2-Clause
 */
#ifndef COUNTER_H
#define COUNTER_H

typedef unsigned int counter_value_t;
typedef unsigned int counter_overflow_t;

class Counter {
	private:
		Counter(const Counter &copy);

	public:
		counter_value_t value;
		volatile counter_overflow_t overflow;

		Counter() : overflow(0) {}

		inline void start() {
		}

		inline void stop() {
		}
};

extern Counter counter;

#endif
Loading