bsp/atsam: Fix cache / DMA handling in SPI.

This patch fixes the cache handling for the atsam SPI driver. Note that
this solution might doesn't have the best performance for small packets.
This commit is contained in:
Christian Mauderer
2018-02-06 16:28:28 +01:00
parent 538a0a836a
commit 6878519aea
6 changed files with 287 additions and 44 deletions

View File

@@ -11,6 +11,7 @@ include_bsp_HEADERS += ../../../../../../bsps/arm/atsam/include/bsp/atsam-clock-
include_bsp_HEADERS += ../../../../../../bsps/arm/atsam/include/bsp/atsam-i2c.h
include_bsp_HEADERS += ../../../../../../bsps/arm/atsam/include/bsp/atsam-spi.h
include_bsp_HEADERS += ../../../../../../bsps/arm/atsam/include/bsp/i2c.h
include_bsp_HEADERS += ../../../../../../bsps/arm/atsam/include/bsp/iocopy.h
include_bsp_HEADERS += ../../../../../../bsps/arm/atsam/include/bsp/irq.h
include_bsp_HEADERS += ../../../../../../bsps/arm/atsam/include/bsp/pin-config.h
include_bsp_HEADERS += ../../../../../../bsps/arm/atsam/include/bsp/power.h

View File

@@ -0,0 +1,37 @@
/*
* Copyright (c) 2018 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
* Dornierstr. 4
* 82178 Puchheim
* Germany
* <rtems@embedded-brains.de>
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.org/license/LICENSE.
*/
#ifndef ATSAM_IOCOPY_H
#define ATSAM_IOCOPY_H
#include <rtems.h>
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/*
* Note: This functions are for copying from or to memory that is marked as
* Peripheral memory. In this regions a misaligned access is not allowed.
* Therefore memcopy would not work in all cases.
*/
void atsam_copy_to_io(void *dst, const void *src, size_t n);
void atsam_copy_from_io(void *dst, const void *src, size_t n);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* ATSAM_IOCOPY_H */