From 264119822b44eaf8ec2d7c959fd863a74196d412 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Tue, 28 Jun 2022 16:03:26 +0200 Subject: add TC299 mock arch --- include/arch/infineon-tc299-mock/driver/counter.h | 31 +++++++++++++++ include/arch/infineon-tc299-mock/driver/gpio.h | 47 +++++++++++++++++++++++ include/arch/infineon-tc299-mock/driver/stdout.h | 24 ++++++++++++ include/arch/infineon-tc299-mock/driver/uptime.h | 32 +++++++++++++++ 4 files changed, 134 insertions(+) create mode 100644 include/arch/infineon-tc299-mock/driver/counter.h create mode 100644 include/arch/infineon-tc299-mock/driver/gpio.h create mode 100644 include/arch/infineon-tc299-mock/driver/stdout.h create mode 100644 include/arch/infineon-tc299-mock/driver/uptime.h (limited to 'include/arch/infineon-tc299-mock/driver') diff --git a/include/arch/infineon-tc299-mock/driver/counter.h b/include/arch/infineon-tc299-mock/driver/counter.h new file mode 100644 index 0000000..b7330db --- /dev/null +++ b/include/arch/infineon-tc299-mock/driver/counter.h @@ -0,0 +1,31 @@ +/* + * 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 ©); + + public: + counter_value_t value; + volatile counter_overflow_t overflow; + + Counter() : overflow(0) {} + + inline void start() { + } + + inline void stop() { + } +}; + +extern Counter counter; + +#endif diff --git a/include/arch/infineon-tc299-mock/driver/gpio.h b/include/arch/infineon-tc299-mock/driver/gpio.h new file mode 100644 index 0000000..83689b6 --- /dev/null +++ b/include/arch/infineon-tc299-mock/driver/gpio.h @@ -0,0 +1,47 @@ +/* + * Copyright 2022 Daniel Friesel + * + * SPDX-License-Identifier: BSD-2-Clause + */ +#ifndef GPIO_H +#define GPIO_H + +class GPIO { + private: + GPIO(const GPIO ©); + + 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 diff --git a/include/arch/infineon-tc299-mock/driver/stdout.h b/include/arch/infineon-tc299-mock/driver/stdout.h new file mode 100644 index 0000000..b701dc1 --- /dev/null +++ b/include/arch/infineon-tc299-mock/driver/stdout.h @@ -0,0 +1,24 @@ +/* + * 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 ©); + + public: + StandardOutput () {} + void setup(); + + virtual void put(char c) override; +}; + +extern StandardOutput kout; + +#endif diff --git a/include/arch/infineon-tc299-mock/driver/uptime.h b/include/arch/infineon-tc299-mock/driver/uptime.h new file mode 100644 index 0000000..6f52f8f --- /dev/null +++ b/include/arch/infineon-tc299-mock/driver/uptime.h @@ -0,0 +1,32 @@ +/* + * Copyright 2022 Daniel Friesel + * + * SPDX-License-Identifier: BSD-2-Clause + */ +#ifndef UPTIME_H +#define UPTIME_H + +class Uptime { + private: + Uptime(const Uptime ©); +#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 -- cgit v1.2.3