ES1Y API¶
OS API¶
The official FreeRTOS API references can be found here: https://www.freertos.org/a00106.html
UART API¶
Only support module init and printf functions for now, more functions is under developing.
/********************************
uart
*********************************/
/*!
* @discussion initialize uart module.
*/
void __rvHal_uart_init(void);
/*!
* @discussion print log through uart.
* @param fmt fmt string.
* @param ... params corresponding to % in fmt string.
* this is a simplified version printf of standard printf in libc,
* only support below format params:
* %d, %u, %ld, %lu, %lld, %llu, %o, %x, %lo, %lx, %llo, %llx, %s, %c, %%
* and also support width and padding in params above
*/
int printf(const char* fmt, ...);
GPIO API¶
GPIO API is in the following code snippet
/********************************
gpio
*********************************/
struct irq_gpio_handler_t
{
void *context;
void (*hook)(void *context);
};
struct gpio_desc
{
unsigned int pin;
struct irq_gpio_handler_t handler;
};
enum RVHAL_gpio_type
{
GPIO_PIN_INPUT = 0,
GPIO_PIN_OUTPUT,
};
enum RVHAL_gpio_int_type
{
GPIO_INT_TYPE_LEVEL = 0,
GPIO_INT_TYPE_EDGE,
};
enum RVHAL_gpio_int_polarity
{
GPIO_INT_POLARITY_LOW = 0,
GPIO_INT_POLARITY_HIGH,
};
/*!
* @discussion initialize gpio module.
*/
void __rvHal_gpio_init(void);
/*!
* @discussion initialize gpio pin descriptior.
* @param dgpio gpio descriptor.
* @param pin pin number[0, 31].
* @param type see enum RVHAL_gpio_type.
* @param value if type is GPIO_PIN_OUTPUT, it is [0, 1] by default.
*/
void rvHal_gpio_init( struct gpio_desc *dgpio, unsigned int pin, unsigned int type, unsigned int value );
/*!
* @discussion set gpio pin interrupt attribution.
* @param dgpio gpio descriptor.
* @param level see enum RVHAL_gpio_int_type.
* @param polarity see enum RVHAL_gpio_int_polarity.
* @param irqHandler gpio pin callback handler.
* @param context context param for this gpio pin.
*/
void rvHal_gpio_set_interrupt( struct gpio_desc *dgpio, unsigned int level, unsigned int polarity, void (*irqHandler)(void*), void *context);
/*!
* @discussion remove gpio pin interrupt attribution.
* @param dgpio gpio descriptor.
*/
void rvHal_gpio_remove_interrupt( struct gpio_desc *dgpio );
/*!
* @discussion gpio pin output level.
* @param dgpio gpio descriptor.
* @param value [0, 1].
*/
void rvHal_gpio_write( struct gpio_desc *dgpio, unsigned int value );
/*!
* @discussion gpio pin input level.
* @param dgpio gpio descriptor.
* @return value [0, 1].
*/
unsigned int rvHal_gpio_read( struct gpio_desc *dgpio );
/*!
* @discussion toggle gpio pin output level.
* @param dgpio gpio descriptor.
*/
void rvHal_gpio_toggle( struct gpio_desc *dgpio );