ZestCode
 
Loading...
Searching...
No Matches
kapi.h
Go to the documentation of this file.
1
18
19#pragma once
20
21#include "api.h"
22#include "pros/apix.h"
23#include "rtos/FreeRTOS.h"
24#include "rtos/stream_buffer.h"
25
26#ifdef __cplusplus
27extern "C" {
28#define task_t pros::task_t
29#define task_fn_t pros::task_fn_t
30#define mutex_t pros::mutex_t
31#define sem_t pros::c::sem_t
32#define queue_t pros::c::queue_t
33#endif
34
35#define KDBG_FILENO 3
36
37#define warn_printf(fmt, ...) dprintf(STDERR_FILENO, "%s:%d -- " fmt "\n", __FILE__, __LINE__, ##__VA_ARGS__)
38#define warn_wprint(str) wprintf("%s", str)
39
40#define kprintf(fmt, ...) dprintf(KDBG_FILENO, "%s:%d -- " fmt "\n", __FILE__, __LINE__, ##__VA_ARGS__)
41#define kprint(str) kprintf("%s", str)
42
43#ifndef PROS_RELEASING
44#define kassert(cond) \
45 do { \
46 if (!(cond)) { \
47 kprint("Assertion failed: " #cond); \
48 } \
49 } while (0)
50#else
51#define kassert(cond)
52#endif
53
54typedef uint32_t task_stack_t;
55
67
77int32_t rtos_resume_all(void);
78
106task_t task_create_static(task_fn_t task_code, void* const param, uint32_t priority, const size_t stack_size,
107 const char* const name, task_stack_t* const stack_buffer, static_task_s_t* const task_buffer);
108
121mutex_t mutex_create_static(static_sem_s_t* mutex_buffer);
122
139sem_t sem_create_static(uint32_t max_count, uint32_t init_count, static_sem_s_t* semaphore_buffer);
140
159queue_t queue_create_static(uint32_t length, uint32_t item_size, uint8_t* storage_buffer,
160 static_queue_s_t* queue_buffer);
161
162
173void display_fatal_error(const char* text);
174
183void kprint_hex(uint8_t* s, size_t len);
184
185int32_t xTaskGetSchedulerState();
186#define taskSCHEDULER_SUSPENDED ((int32_t)0)
187#define taskSCHEDULER_NOT_STARTED ((int32_t)1)
188#define taskSCHEDULER_RUNNING ((int32_t)2)
189
190#ifdef __cplusplus
191#undef task_t
192#undef task_fn_t
193#undef mutex_t
194}
195#endif
void * task_t
Definition rtos.h:100
void * mutex_t
Definition rtos.h:184
void(* task_fn_t)(void *)
Definition rtos.h:108
void display_fatal_error(const char *text)
sem_t sem_create_static(uint32_t max_count, uint32_t init_count, static_sem_s_t *semaphore_buffer)
task_t task_create_static(task_fn_t task_code, void *const param, uint32_t priority, const size_t stack_size, const char *const name, task_stack_t *const stack_buffer, static_task_s_t *const task_buffer)
int32_t rtos_resume_all(void)
queue_t queue_create_static(uint32_t length, uint32_t item_size, uint8_t *storage_buffer, static_queue_s_t *queue_buffer)
mutex_t mutex_create_static(static_sem_s_t *mutex_buffer)
void kprint_hex(uint8_t *s, size_t len)
void rtos_suspend_all(void)