fix #if in hardware/structs/dma.h (#9)
* fix #if in hardware/structs/dma.h * move dma driver code from register definitions to dma drivers Co-authored-by: Peter Lawrence <12226419+majbthrd@users.noreply.github.com>
This commit is contained in:
parent
27c833ae28
commit
78190a5e27
@ -10,13 +10,6 @@
|
|||||||
#include "hardware/address_mapped.h"
|
#include "hardware/address_mapped.h"
|
||||||
#include "hardware/platform_defs.h"
|
#include "hardware/platform_defs.h"
|
||||||
#include "hardware/regs/dma.h"
|
#include "hardware/regs/dma.h"
|
||||||
#include "pico/assert.h"
|
|
||||||
|
|
||||||
|
|
||||||
// PICO_CONFIG: PARAM_ASSERTIONS_ENABLED_DMA, Enable/disable DMA assertions, type=bool, default=0, group=hardware_dma
|
|
||||||
#ifndef PARAM_ASSERTIONS_ENABLED_DMA
|
|
||||||
#define PARAM_ASSERTIONS_ENABLED_DMA 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
io_rw_32 read_addr;
|
io_rw_32 read_addr;
|
||||||
@ -68,17 +61,4 @@ typedef struct {
|
|||||||
#define dma_hw ((dma_hw_t *const)DMA_BASE)
|
#define dma_hw ((dma_hw_t *const)DMA_BASE)
|
||||||
#define dma_debug_hw ((dma_debug_hw_t *const)(DMA_BASE + DMA_CH0_DBG_CTDREQ_OFFSET))
|
#define dma_debug_hw ((dma_debug_hw_t *const)(DMA_BASE + DMA_CH0_DBG_CTDREQ_OFFSET))
|
||||||
|
|
||||||
static inline void check_dma_channel_param(uint channel) {
|
|
||||||
#if PARAM_ASSERTIONS_ENABLED(DMA)
|
|
||||||
// this method is used a lot by inline functions so avoid code bloat by deferring to function
|
|
||||||
extern void check_dma_channel_param_impl(uint channel);
|
|
||||||
check_dma_channel_param_impl(channel);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
inline static dma_channel_hw_t *dma_channel_hw_addr(uint channel) {
|
|
||||||
check_dma_channel_param(channel);
|
|
||||||
return &dma_hw->ch[channel];
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
#include "pico.h"
|
#include "pico.h"
|
||||||
#include "hardware/structs/dma.h"
|
#include "hardware/structs/dma.h"
|
||||||
#include "hardware/regs/dreq.h"
|
#include "hardware/regs/dreq.h"
|
||||||
|
#include "pico/assert.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
@ -36,6 +37,24 @@ extern "C" {
|
|||||||
// this is not defined in generated dreq.h
|
// this is not defined in generated dreq.h
|
||||||
#define DREQ_FORCE 63
|
#define DREQ_FORCE 63
|
||||||
|
|
||||||
|
// PICO_CONFIG: PARAM_ASSERTIONS_ENABLED_DMA, Enable/disable DMA assertions, type=bool, default=0, group=hardware_dma
|
||||||
|
#ifndef PARAM_ASSERTIONS_ENABLED_DMA
|
||||||
|
#define PARAM_ASSERTIONS_ENABLED_DMA 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static inline void check_dma_channel_param(uint channel) {
|
||||||
|
#if PARAM_ASSERTIONS_ENABLED(DMA)
|
||||||
|
// this method is used a lot by inline functions so avoid code bloat by deferring to function
|
||||||
|
extern void check_dma_channel_param_impl(uint channel);
|
||||||
|
check_dma_channel_param_impl(channel);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
inline static dma_channel_hw_t *dma_channel_hw_addr(uint channel) {
|
||||||
|
check_dma_channel_param(channel);
|
||||||
|
return &dma_hw->ch[channel];
|
||||||
|
}
|
||||||
|
|
||||||
/*! \brief Mark a dma channel as used
|
/*! \brief Mark a dma channel as used
|
||||||
* \ingroup hardware_dma
|
* \ingroup hardware_dma
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user