agileRTOS (zrtos)  Version 0.8.0 (ghostbuster)
board.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2024 ykat UG (haftungsbeschraenkt) - All Rights Reserved
3  *
4  * Permission for non-commercial use is hereby granted,
5  * free of charge, without warranty of any kind.
6  */
7 #ifndef ZRTOS_BOARD_H
8 #define ZRTOS_BOARD_H
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12 
13 #define ZRTOS_BOARD__ON_TICK_CALLBACK(name,code) \
14  void name(void){ \
15  code \
16  ZRTOS_ARCH__RETURN_FROM_INTERRUPT(); \
17  }
18 
19 #define ZRTOS_BOARD__ON_TICK_NAKED_CALLBACK(name,code) \
20  __attribute__((naked)) void name(void){ \
21  code \
22  ZRTOS_ARCH__RETURN_FROM_INTERRUPT(); \
23  }
24 
25 ZRTOS_BOARD__ON_TICK_CALLBACK(zrtos_board__empty_on_tick_callback,{
26  //empty callback
27 });
28 
29 ZRTOS_BOARD__ON_TICK_NAKED_CALLBACK(zrtos_board__empty_on_tick_naked_callback,{
30  //empty callback
31 });
32 
33 void (*zrtos_board__on_tick)(void) = zrtos_board__empty_on_tick_callback;
34 void (*zrtos_board__on_tick_naked)(void)__attribute__((naked)) = zrtos_board__empty_on_tick_naked_callback;
35 
36 #define ZRTOS_BOARD__SET_ON_TICK_CALLBACK(callback) \
37  zrtos_board__on_tick = callback;
38 
39 #define ZRTOS_BOARD__SET_ON_TICK_NAKED_CALLBACK(callback) \
40  zrtos_board__on_tick_naked = callback;
41 
42 /*
43 #define ZRTOS_BOARD__FOUND
44 #define ZRTOS_BOARD__TICK_PERIOD_MS
45 #define ZRTOS_BOARD__ON_TICK()
46 #define ZRTOS_BOARD__ON_TICK_NAKED()
47 #define ZRTOS_BOARD__ON_WATCH_DOG()
48 #define ZRTOS_BOARD__WATCH_DOG_START()
49 #define ZRTOS_BOARD__WATCH_DOG_STOP()
50 #define ZRTOS_BOARD__WATCH_DOG_RESET()
51 
52 uint64_t zrtos_board__get_ticks();
53 uint64_t zrtos_board__get_microseconds();
54 uint64_t zrtos_board__get_milliseconds();
55 uint64_t zrtos_board__get_seconds();
56 */
57 
58 #ifdef ZRTOS_BOARD__FOUND
59 #error "ZRTOS_BOARD__FOUND defined"
60 #endif
61 
62 //#include <board/arduino.h>
63 #include <zrtos/board/ansi_c.h>
65 //#define ZRTOS_BOARD__FOUND
66 
67 #ifndef ZRTOS_BOARD__FOUND
68 #error "board/*.h not found"
69 #endif
70 
71 #ifdef __cplusplus
72 }
73 #endif
74 #endif
void(* zrtos_board__on_tick_naked)(void)
Definition: board.h:34
#define ZRTOS_BOARD__ON_TICK_NAKED_CALLBACK(name, code)
Definition: board.h:19
#define ZRTOS_BOARD__ON_TICK_CALLBACK(name, code)
Definition: board.h:13
void(* zrtos_board__on_tick)(void)
Definition: board.h:33