Mistake on this page?
Report an issue in GitHub or email us
fpga_spi_slave_test.h
1 /* mbed Microcontroller Library
2  * Copyright (c) 2019 ARM Limited
3  * SPDX-License-Identifier: Apache-2.0
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 /** \addtogroup hal_spi_tests */
19 /** @{*/
20 
21 #ifndef MBED_FPGA_SLAVE_SPI_TEST_H
22 #define MBED_FPGA_SLAVE_SPI_TEST_H
23 
24 #if DEVICE_SPI
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
30 typedef enum {
31  BUFFERS_COMMON, // common case rx/tx buffers are defined and have the same size
32  BUFFERS_TX_UNDEF, // tx buffer is undefined
33  BUFFERS_RX_UNDEF, // rx buffer is undefined
34  BUFFERS_TX_GT_RX, // tx buffer length is greater than rx buffer length
35  BUFFERS_TX_LT_RX, // tx buffer length is less than rx buffer length
36  BUFFERS_ONE_SYM, // one symbol only is transmitted in both directions
37 } test_buffers_t;
38 
39 typedef struct {
40  PinName mosi;
41  PinName miso;
42  PinName sclk;
43  PinName ssel;
44  SPITester::SpiMode spi_mode;
45  SPITester::SpiBitOrder spi_bit_order;
46  uint32_t sym_size;
47  uint32_t spi_freq;
48  test_buffers_t test_buffers;
49  bool sync_mode;
50  SPITester::SpiDuplex duplex;
52 
53 /** Test that the spi-Slave can be initialized/de-initialized using all possible
54  * SPI pins.
55  *
56  * Given board provides SPI-Slave support.
57  * When SPI-Slave is initialized (and then de-initialized) using valid set of SPI pins.
58  * Then the operation is successfull.
59  *
60  */
61 void fpga_spi_slave_test_init_free(PinName mosi, PinName miso, PinName sclk, PinName cs);
62 
63 /** Test that the SPI-Slave transfer can be performed in various configurations.
64  *
65  * Given board provides SPI-Slave support.
66  * When SPI transmission is performed using different settings.
67  * Then data is successfully transferred.
68  *
69  */
70 void fpga_spi_slave_test_common(const test_config_t *tc_config);
71 
72 /**@}*/
73 
74 #ifdef __cplusplus
75 }
76 #endif
77 
78 #endif
79 
80 #endif
81 
82 /**@}*/
void fpga_spi_slave_test_init_free(PinName mosi, PinName miso, PinName sclk, PinName cs)
Test that the spi-Slave can be initialized/de-initialized using all possible SPI pins.
void fpga_spi_slave_test_common(const test_config_t *tc_config)
Test that the SPI-Slave transfer can be performed in various configurations.
Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.