mirror of https://github.com/ARMmbed/mbed-os.git
Add missing documentation
Add documentation to the MbedTester class and the test_utils.h file.pull/10540/head
parent
45301ea718
commit
166ff13fe8
|
@ -23,6 +23,48 @@
|
|||
#include "platform/Callback.h"
|
||||
#include "drivers/DigitalInOut.h"
|
||||
|
||||
/**
|
||||
* The base class for controlling the FPGA CI Test Shield
|
||||
*
|
||||
* This is the primary interface to the FPGA CI Test Shield. It contains
|
||||
* all the code to communicate with the FPGA. It also provides high level
|
||||
* helper functions, such as functions to setup pin multiplexing, to
|
||||
* select the currently active peripheral and to perform software updates.
|
||||
*
|
||||
* Subclasses can inherit from this class and provide further functionality,
|
||||
* such as the ability to test SPI.
|
||||
*
|
||||
* @note Synchronization level: Not protected
|
||||
*
|
||||
* Example of how to toggle Arduino pin D6 from the FPGA cI Test Shield:
|
||||
* @code
|
||||
* #include "mbed.h"
|
||||
* #include "MbedTester.h"
|
||||
*
|
||||
* const PinList *form_factor = pinmap_ff_default_pins();
|
||||
* const PinList *restricted = pinmap_restricted_pins();
|
||||
* MbedTester tester(form_factor, restricted);
|
||||
*
|
||||
* int main() {
|
||||
* // Reset the FPGA CI Test Shield to put it into a known state
|
||||
* tester.reset();
|
||||
*
|
||||
* // Select the GPIO peripheral
|
||||
* tester.select_peripheral(MbedTester::PeripheralGPIO);
|
||||
*
|
||||
* // Map D6 to LogicalPinGPIO0
|
||||
* tester.pin_map_set(D6, MbedTester::LogicalPinGPIO0);
|
||||
*
|
||||
* // Toggle the LED
|
||||
* int toggle = 0;
|
||||
* while (1) {
|
||||
* tester.gpio_write(MbedTester::LogicalPinGPIO0, toggle, true);
|
||||
* wait(0.5);
|
||||
* toggle = !toggle;
|
||||
* }
|
||||
* }
|
||||
* @endcode
|
||||
*/
|
||||
class MbedTester {
|
||||
public:
|
||||
|
||||
|
|
|
@ -226,6 +226,17 @@ void test_all_peripherals(std::list<PortType> &matched_ports, std::list<PortType
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test function for all pinouts of all peripherals of a given type
|
||||
*
|
||||
* This template function takes in three template parameters:
|
||||
* - PortType - The type of peripheral to test
|
||||
* - FormFactorType - The form factor to test on
|
||||
* - f - The test function to run.
|
||||
*
|
||||
* This function is calls the test function multiple times with
|
||||
* the appropriate combinations of pins.
|
||||
*/
|
||||
template<typename PortType, typename FormFactorType, typename PortType::TestFunctionType f>
|
||||
void all_ports()
|
||||
{
|
||||
|
@ -236,6 +247,17 @@ void all_ports()
|
|||
test_all_ports<PortType, FormFactorType, typename PortType::TestFunctionType, f>(matched_ports, not_matched_ports);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test function for one pinout of all peripherals of a given type
|
||||
*
|
||||
* This template function takes in three template parameters:
|
||||
* - PortType - The type of peripheral to test
|
||||
* - FormFactorType - The form factor to test on
|
||||
* - f - The test function to run.
|
||||
*
|
||||
* This function is calls the test function once for each peripheral
|
||||
* of the given type.
|
||||
*/
|
||||
template<typename PortType, typename FormFactorType, typename PortType::TestFunctionType f>
|
||||
void all_peripherals()
|
||||
{
|
||||
|
@ -250,6 +272,17 @@ void all_peripherals()
|
|||
test_all_peripherals<PortType, typename PortType::TestFunctionType, f>(matched_ports, not_matched_ports);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test function for one pinout of one peripheral of a given type
|
||||
*
|
||||
* This template function takes in three template parameters:
|
||||
* - PortType - The type of peripheral to test
|
||||
* - FormFactorType - The form factor to test on
|
||||
* - f - The test function to run.
|
||||
*
|
||||
* This function is calls the test function once for one peripheral
|
||||
* of the given type.
|
||||
*/
|
||||
template<typename PortType, typename FormFactorType, typename PortType::TestFunctionType f>
|
||||
void one_peripheral()
|
||||
{
|
||||
|
@ -358,6 +391,13 @@ bool operator== (const Port<N, PinMapType, FormFactorType, FunctionType> &port1,
|
|||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* This is a convenience class for use with the above templates
|
||||
*
|
||||
* This class can be passed as a template parameter to all_ports,
|
||||
* all_peripherals or one_peripheral to choose test pins from
|
||||
* the default form factor.
|
||||
*/
|
||||
class DefaultFormFactor {
|
||||
public:
|
||||
static const PinList *pins()
|
||||
|
@ -376,6 +416,15 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
/*
|
||||
* Peripheral port declarations are given below
|
||||
*
|
||||
* Each Port type represents a set of pins used by a peripheral.
|
||||
* The Port typedef is used as a template parameter to the functions
|
||||
* all_ports, all_peripherals and one_peripheral to select the peripheral
|
||||
* pin set to use for testing.
|
||||
*/
|
||||
|
||||
#if DEVICE_SPI
|
||||
#include "spi_api.h"
|
||||
struct SPIMaps {
|
||||
|
|
Loading…
Reference in New Issue