Add asserts in existing code
This commit is contained in:
parent
a20acf4031
commit
e47ec840b8
27
srv/assert.h
Normal file
27
srv/assert.h
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
/** @file assert.h
|
||||||
|
* Module providing assert macro
|
||||||
|
*
|
||||||
|
* The module implements the assert macro intended to allow catching critical
|
||||||
|
* issues during debug while having no influence in the release code
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _ASSERT_H_
|
||||||
|
#define _ASSERT_H_
|
||||||
|
|
||||||
|
//--includes--------------------------------------------------------------------
|
||||||
|
|
||||||
|
#include "debug.h"
|
||||||
|
|
||||||
|
|
||||||
|
//--type definitions------------------------------------------------------------
|
||||||
|
|
||||||
|
//--functions-------------------------------------------------------------------
|
||||||
|
|
||||||
|
#if ASSERT
|
||||||
|
#define assert(condition) _assert
|
||||||
|
#else
|
||||||
|
#define assert(condition) do {} while (0)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif //_ASSERT_H_
|
||||||
|
|
||||||
@ -8,6 +8,7 @@
|
|||||||
//--includes--------------------------------------------------------------------
|
//--includes--------------------------------------------------------------------
|
||||||
|
|
||||||
#include "dma_cbuf.h"
|
#include "dma_cbuf.h"
|
||||||
|
#include "error.h"
|
||||||
|
|
||||||
|
|
||||||
//--local definitions-----------------------------------------------------------
|
//--local definitions-----------------------------------------------------------
|
||||||
@ -31,7 +32,9 @@ void dma_cbuf_configure(volatile struct DmaCircBuffer* buffer,
|
|||||||
const struct DmaParam* param, enum DmaConfig priority,
|
const struct DmaParam* param, enum DmaConfig priority,
|
||||||
volatile void* raw_buffer, uint16_t buffer_size)
|
volatile void* raw_buffer, uint16_t buffer_size)
|
||||||
{
|
{
|
||||||
#warning "check for null ptr"
|
error_assert(buffer != nullptr);
|
||||||
|
error_assert(param != nullptr);
|
||||||
|
error_assert(raw_buffer != nullptr);
|
||||||
|
|
||||||
buffer->buffer = raw_buffer;
|
buffer->buffer = raw_buffer;
|
||||||
|
|
||||||
@ -52,6 +55,9 @@ void dma_cbuf_configure(volatile struct DmaCircBuffer* buffer,
|
|||||||
uint32_t dma_cbuf_read_byte(volatile struct DmaCircBuffer* buffer,
|
uint32_t dma_cbuf_read_byte(volatile struct DmaCircBuffer* buffer,
|
||||||
uint8_t* byte)
|
uint8_t* byte)
|
||||||
{
|
{
|
||||||
|
error_assert(buffer != nullptr);
|
||||||
|
error_assert(byte != nullptr);
|
||||||
|
|
||||||
//retreive the current end of the buffer based on the DMA's progress
|
//retreive the current end of the buffer based on the DMA's progress
|
||||||
uint16_t end = buffer->size
|
uint16_t end = buffer->size
|
||||||
- dma_get_remaining(buffer->dma, buffer->channel);
|
- dma_get_remaining(buffer->dma, buffer->channel);
|
||||||
@ -86,6 +92,8 @@ uint32_t dma_cbuf_read_byte(volatile struct DmaCircBuffer* buffer,
|
|||||||
static void cbuf_callback(enum DmaIRQSource src, volatile void* param)
|
static void cbuf_callback(enum DmaIRQSource src, volatile void* param)
|
||||||
{
|
{
|
||||||
(void)src; //only transfer complete expected
|
(void)src; //only transfer complete expected
|
||||||
|
error_assert(param != nullptr);
|
||||||
|
|
||||||
volatile struct DmaCircBuffer* buffer = param;
|
volatile struct DmaCircBuffer* buffer = param;
|
||||||
buffer->dma_looped = true;
|
buffer->dma_looped = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,6 +8,7 @@
|
|||||||
//--includes--------------------------------------------------------------------
|
//--includes--------------------------------------------------------------------
|
||||||
|
|
||||||
#include "dma_mbuf.h"
|
#include "dma_mbuf.h"
|
||||||
|
#include "error.h"
|
||||||
|
|
||||||
|
|
||||||
//--local definitions-----------------------------------------------------------
|
//--local definitions-----------------------------------------------------------
|
||||||
@ -30,7 +31,9 @@ void dma_mbuf_configure(volatile struct DmaMultiBuffer* buffer,
|
|||||||
const struct DmaParam* param, enum DmaConfig priority,
|
const struct DmaParam* param, enum DmaConfig priority,
|
||||||
void* raw_buffer, uint16_t buffer_size)
|
void* raw_buffer, uint16_t buffer_size)
|
||||||
{
|
{
|
||||||
#warning "check for null ptr"
|
error_assert(buffer != nullptr);
|
||||||
|
error_assert(param != nullptr);
|
||||||
|
error_assert(raw_buffer != nullptr);
|
||||||
|
|
||||||
buffer->raw_buffer = raw_buffer;
|
buffer->raw_buffer = raw_buffer;
|
||||||
|
|
||||||
@ -51,6 +54,8 @@ void dma_mbuf_configure(volatile struct DmaMultiBuffer* buffer,
|
|||||||
uint32_t dma_mbuf_write_byte(volatile struct DmaMultiBuffer* buffer,
|
uint32_t dma_mbuf_write_byte(volatile struct DmaMultiBuffer* buffer,
|
||||||
uint8_t byte)
|
uint8_t byte)
|
||||||
{
|
{
|
||||||
|
error_assert(buffer != nullptr);
|
||||||
|
|
||||||
//if the current buffer is full, give up
|
//if the current buffer is full, give up
|
||||||
if (buffer->byte_index >= buffer->buffer_size) {
|
if (buffer->byte_index >= buffer->buffer_size) {
|
||||||
return 1;
|
return 1;
|
||||||
@ -65,6 +70,8 @@ uint32_t dma_mbuf_write_byte(volatile struct DmaMultiBuffer* buffer,
|
|||||||
|
|
||||||
uint32_t dma_mbuf_switch(volatile struct DmaMultiBuffer* buffer)
|
uint32_t dma_mbuf_switch(volatile struct DmaMultiBuffer* buffer)
|
||||||
{
|
{
|
||||||
|
error_assert(buffer != nullptr);
|
||||||
|
|
||||||
//no data to send, stop here
|
//no data to send, stop here
|
||||||
if (buffer->byte_index == 0) {
|
if (buffer->byte_index == 0) {
|
||||||
return 0;
|
return 0;
|
||||||
@ -100,6 +107,8 @@ uint32_t dma_mbuf_switch(volatile struct DmaMultiBuffer* buffer)
|
|||||||
static void mbuf_callback(enum DmaIRQSource src, volatile void* param)
|
static void mbuf_callback(enum DmaIRQSource src, volatile void* param)
|
||||||
{
|
{
|
||||||
(void)src; //only transfer complete expected
|
(void)src; //only transfer complete expected
|
||||||
|
error_assert(param != nullptr);
|
||||||
|
|
||||||
volatile struct DmaMultiBuffer* buffer = param;
|
volatile struct DmaMultiBuffer* buffer = param;
|
||||||
dma_stop(buffer->dma, buffer->channel);
|
dma_stop(buffer->dma, buffer->channel);
|
||||||
buffer->dma_running = false;
|
buffer->dma_running = false;
|
||||||
|
|||||||
@ -7,6 +7,7 @@
|
|||||||
//--includes--------------------------------------------------------------------
|
//--includes--------------------------------------------------------------------
|
||||||
|
|
||||||
#include "format.h"
|
#include "format.h"
|
||||||
|
#include "error.h"
|
||||||
|
|
||||||
|
|
||||||
//--local definitions-----------------------------------------------------------
|
//--local definitions-----------------------------------------------------------
|
||||||
@ -68,6 +69,8 @@ uint32_t format_vfctprintf(FormatCallback callback, void* arg,
|
|||||||
*/
|
*/
|
||||||
static uint32_t buffer_write(uint8_t byte, void* arg)
|
static uint32_t buffer_write(uint8_t byte, void* arg)
|
||||||
{
|
{
|
||||||
|
error_assert(arg != nullptr);
|
||||||
|
|
||||||
struct BufferArg* buffer_arg = (struct BufferArg*)arg;
|
struct BufferArg* buffer_arg = (struct BufferArg*)arg;
|
||||||
if (buffer_arg->byte_index >= buffer_arg->buffer_size) {
|
if (buffer_arg->byte_index >= buffer_arg->buffer_size) {
|
||||||
return 1;
|
return 1;
|
||||||
@ -87,6 +90,8 @@ static uint32_t buffer_write(uint8_t byte, void* arg)
|
|||||||
static uint32_t render_format(FormatCallback callback, void* arg,
|
static uint32_t render_format(FormatCallback callback, void* arg,
|
||||||
const char* restrict format, va_list va)
|
const char* restrict format, va_list va)
|
||||||
{
|
{
|
||||||
|
error_assert(format != nullptr);
|
||||||
|
|
||||||
uint8_t width = 0;
|
uint8_t width = 0;
|
||||||
bool in_format = false;
|
bool in_format = false;
|
||||||
bool zero_padding = false;
|
bool zero_padding = false;
|
||||||
@ -148,7 +153,7 @@ static uint32_t render_format(FormatCallback callback, void* arg,
|
|||||||
width += (*c - '0');
|
width += (*c - '0');
|
||||||
continue;
|
continue;
|
||||||
default:
|
default:
|
||||||
//TODO manage error
|
error_trigger("unsupported option: %c in %s", c, format);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user