mirror of https://github.com/ARMmbed/mbed-os.git
				
				
				
			Add new CAN API test MBED_A30
							parent
							
								
									6c1fc983b7
								
							
						
					
					
						commit
						f027cf429b
					
				| 
						 | 
				
			
			@ -0,0 +1,85 @@
 | 
			
		|||
#include "mbed.h"
 | 
			
		||||
#include "test_env.h"
 | 
			
		||||
 | 
			
		||||
#if !DEVICE_CAN
 | 
			
		||||
#error [NOT_SUPPORTED] CAN not supported
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(TARGET_LPC1549)
 | 
			
		||||
#define CAN_RD D9
 | 
			
		||||
#define CAN_TD D8
 | 
			
		||||
#elif defined(TARGET_LPC1768) || defined(TARGET_LPC4088)
 | 
			
		||||
#define CAN_RD p9
 | 
			
		||||
#define CAN_TD p10
 | 
			
		||||
#elif defined(TARGET_B96B_F446VE)
 | 
			
		||||
#define CAN_RD PD_0
 | 
			
		||||
#define CAN_TD PD_1
 | 
			
		||||
#elif defined(TARGET_VK_RZ_A1H)
 | 
			
		||||
#define CAN_RD P5_9
 | 
			
		||||
#define CAN_TD P5_10
 | 
			
		||||
#elif defined(TARGET_NUCLEO_F042K6) || \
 | 
			
		||||
      defined(TARGET_NUCLEO_F072RB) || \
 | 
			
		||||
      defined(TARGET_NUCLEO_F091RC) || \
 | 
			
		||||
      defined(TARGET_NUCLEO_F302R8) || \
 | 
			
		||||
      defined(TARGET_NUCLEO_F303RE) || \
 | 
			
		||||
      defined(TARGET_NUCLEO_F303K8) || \
 | 
			
		||||
      defined(TARGET_NUCLEO_F334R8) || \
 | 
			
		||||
      defined(TARGET_NUCLEO_F412ZG) || \
 | 
			
		||||
      defined(TARGET_DISCO_F429ZI)  || \
 | 
			
		||||
      defined(TARGET_NUCLEO_F446RE) || \
 | 
			
		||||
      defined(TARGET_NUCLEO_F746ZG) || \
 | 
			
		||||
      defined(TARGET_NUCLEO_L432KC) || \
 | 
			
		||||
      defined(TARGET_DISCO_L476VG)  || \
 | 
			
		||||
      defined(TARGET_NUCLEO_L476RG)
 | 
			
		||||
#define CAN_RD PA_11
 | 
			
		||||
#define CAN_TD PA_12
 | 
			
		||||
#elif defined(TARGET_NUCLEO_F103RB) || \
 | 
			
		||||
      defined(TARGET_NUCLEO_F207ZG) || \
 | 
			
		||||
      defined(TARGET_DISCO_F303VC)  || \
 | 
			
		||||
      defined(TARGET_NUCLEO_F303ZE) || \
 | 
			
		||||
      defined(TARGET_NUCLEO_F412ZG) || \
 | 
			
		||||
      defined(TARGET_NUCLEO_F429ZI) || \
 | 
			
		||||
      defined(TARGET_NUCLEO_F439ZI) || \
 | 
			
		||||
      defined(TARGET_NUCLEO_F446ZE) || \
 | 
			
		||||
      defined(TARGET_DISCO_F469NI)  || \
 | 
			
		||||
      defined(TARGET_DISCO_F746NG)  || \
 | 
			
		||||
      defined(TARGET_NUCLEO_F756ZG) || \
 | 
			
		||||
      defined(TARGET_NUCLEO_F767ZI) || \
 | 
			
		||||
      defined(TARGET_DISCO_F769NI)  || \
 | 
			
		||||
      defined(TARGET_NUCLEO_L486RG)
 | 
			
		||||
#define CAN_RD PB_8
 | 
			
		||||
#define CAN_TD PB_9
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
int result = true;
 | 
			
		||||
 | 
			
		||||
void Check_CAN_Frequency(int CanFrequency)
 | 
			
		||||
{
 | 
			
		||||
    printf("Init CAN at %d Hz\n", CanFrequency);
 | 
			
		||||
 | 
			
		||||
    CAN can_object(CAN_RD, CAN_TD, CanFrequency);
 | 
			
		||||
 | 
			
		||||
#if !defined(TARGET_VK_RZ_A1H)
 | 
			
		||||
    can_object.mode(CAN::Reset);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    if (!can_object.mode(CAN::LocalTest)) {
 | 
			
		||||
        printf("CAN MODE_TEST_LOCAL failed\n");
 | 
			
		||||
        result = false;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int main()
 | 
			
		||||
{
 | 
			
		||||
    MBED_HOSTTEST_TIMEOUT(20);
 | 
			
		||||
    MBED_HOSTTEST_SELECT(dev_null);
 | 
			
		||||
    MBED_HOSTTEST_DESCRIPTION(CAN API at different frequency);
 | 
			
		||||
    MBED_HOSTTEST_START("MBED_A30");
 | 
			
		||||
 | 
			
		||||
    const int frequency_table[] = {10000, 50000, 100000, 500000, 1000000};
 | 
			
		||||
    for (uint32_t i = 0; i < sizeof(frequency_table)/sizeof(int); i++) {
 | 
			
		||||
        Check_CAN_Frequency(frequency_table[i]);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    MBED_HOSTTEST_RESULT(result);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -339,6 +339,19 @@ TESTS = [
 | 
			
		|||
        "automated": True,
 | 
			
		||||
        "peripherals": ["i2c_loop"]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "id": "MBED_A30", "description": "CAN API",
 | 
			
		||||
        "source_dir": join(TEST_DIR, "mbed", "can_api"),
 | 
			
		||||
        "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB],
 | 
			
		||||
        "automated": True,
 | 
			
		||||
        "mcu": ["LPC1549", "LPC1768","B96B_F446VE", "VK_RZ_A1H",
 | 
			
		||||
                "NUCLEO_F091RC", "NUCLEO_F072RB", "NUCLEO_F042K6", "NUCLEO_F334R8", "NUCLEO_F207ZG",
 | 
			
		||||
                "NUCLEO_F303RE", "NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE","NUCLEO_F446ZE",
 | 
			
		||||
                "DISCO_F469NI", "DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG",
 | 
			
		||||
                "NUCLEO_F429ZI", "NUCLEO_F439ZI", "NUCLEO_F756ZG", "NUCLEO_L486RG",
 | 
			
		||||
                "DISCO_F746NG", "DISCO_L476VG", "NUCLEO_L476RG", "NUCLEO_L432KC",
 | 
			
		||||
                "DISCO_F769NI", "NUCLEO_F767ZI", "DISCO_F303VC", "NUCLEO_F412ZG"]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "id": "MBED_BLINKY", "description": "Blinky",
 | 
			
		||||
        "source_dir": join(TEST_DIR, "mbed", "blinky"),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue