diff options
| author | hathach <[email protected]> | 2013-06-12 21:06:43 +0700 |
|---|---|---|
| committer | hathach <[email protected]> | 2013-06-12 21:06:43 +0700 |
| commit | 4103cc374f8ee94a2d4d308cad5c1e24221b8ae7 (patch) | |
| tree | ed563dabfbbd69e6199302642badf18a13a08017 /tests | |
| parent | ee57a6f13fcd8b75611713e3bec5a07202cc8f5a (diff) | |
add coreid to hidd_init
temporarily implement hidd_init using dcd from lpc17xx
add more test for dcd lp176x
implement dcd_endpoint_configure
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/lpc175x_6x/test/test_dcd_lpc175x_6x.c | 72 | ||||
| -rw-r--r-- | tests/lpc175x_6x/test/test_usbd.c | 2 |
2 files changed, 72 insertions, 2 deletions
diff --git a/tests/lpc175x_6x/test/test_dcd_lpc175x_6x.c b/tests/lpc175x_6x/test/test_dcd_lpc175x_6x.c index abbd408d5..0847a2f5e 100644 --- a/tests/lpc175x_6x/test/test_dcd_lpc175x_6x.c +++ b/tests/lpc175x_6x/test/test_dcd_lpc175x_6x.c @@ -44,12 +44,16 @@ #include "mock_usbd_dcd.h" #include "dcd_lpc175x_6x.h" +LPC_USB_TypeDef lpc_usb; usbd_device_info_t usbd_devices[CONTROLLER_DEVICE_NUMBER]; extern dcd_dma_descriptor_t* dcd_udca[32]; +extern dcd_dma_descriptor_t dcd_dd[DCD_MAX_DD]; void setUp(void) { - + memclr_(dcd_udca, 32*4); + memclr_(dcd_dd, sizeof(dcd_dma_descriptor_t)*DCD_MAX_DD); + memclr_(&lpc_usb, sizeof(LPC_USB_TypeDef)); } void tearDown(void) @@ -88,3 +92,69 @@ void test_dd_structure(void) //------------- word 4 -------------// } +void test_dcd_init(void) +{ + + //------------- Code Under Test -------------// + dcd_init(); + + //------------- slave check -------------// + TEST_ASSERT_EQUAL_HEX( BIN8(11), LPC_USB->USBEpIntEn ); + TEST_ASSERT_EQUAL_HEX( DEV_INT_DEVICE_STATUS_MASK | DEV_INT_ENDPOINT_SLOW_MASK | DEV_INT_ERROR_MASK, + LPC_USB->USBDevIntEn ); + TEST_ASSERT_EQUAL_HEX( 0, LPC_USB->USBEpIntPri); + + //------------- DMA check -------------// + for (uint32_t i=0; i<32; i++) + { + TEST_ASSERT_EQUAL_HEX(dcd_dd+i, dcd_udca[i]); + } + + TEST_ASSERT_EQUAL_HEX(dcd_udca, LPC_USB->USBUDCAH); + TEST_ASSERT_EQUAL_HEX(DMA_INT_END_OF_XFER_MASK | DMA_INT_NEW_DD_REQUEST_MASK | DMA_INT_ERROR_MASK, + LPC_USB->USBDMAIntEn); + +} + +void test_dcd_configure_endpoint_in(void) +{ + tusb_descriptor_endpoint_t const desc_endpoint = + { + .bLength = sizeof(tusb_descriptor_endpoint_t), + .bDescriptorType = TUSB_DESC_TYPE_ENDPOINT, + .bEndpointAddress = 0x83, + .bmAttributes = { .xfer = TUSB_XFER_INTERRUPT }, + .wMaxPacketSize = { .size = 0x08 }, + .bInterval = 0x0A + }; + + dcd_init(); + memclr_(&lpc_usb, sizeof(LPC_USB_TypeDef)); // clear to examine register after CUT + + //------------- Code Under Test -------------// + dcd_endpoint_configure(0, &desc_endpoint); + + uint8_t const phy_ep = 2*3 + 1; + TEST_ASSERT_EQUAL_HEX( BIT_(phy_ep), LPC_USB->USBReEp); + TEST_ASSERT_EQUAL_HEX( phy_ep, LPC_USB->USBEpInd); + TEST_ASSERT_EQUAL( desc_endpoint.wMaxPacketSize.size, LPC_USB->USBMaxPSize); + + TEST_ASSERT_FALSE( dcd_dd[phy_ep].is_next_valid ); + TEST_ASSERT_EQUAL_HEX( 0, dcd_dd[phy_ep].next ); + TEST_ASSERT_EQUAL( 0, dcd_dd[phy_ep].mode); + TEST_ASSERT_FALSE( dcd_dd[phy_ep].is_isochronous ); + TEST_ASSERT_EQUAL( 0, dcd_dd[phy_ep].buffer_length); + TEST_ASSERT_EQUAL_HEX( 0, dcd_dd[phy_ep].buffer_start_addr); + TEST_ASSERT_TRUE( dcd_dd[phy_ep].is_retired ); + TEST_ASSERT_EQUAL( DD_STATUS_NOT_SERVICED, dcd_dd[phy_ep].status); + TEST_ASSERT_FALSE( dcd_dd[phy_ep].iso_last_packet_valid ); + TEST_ASSERT_FALSE( dcd_dd[phy_ep].atle_is_lsb_extracted ); + TEST_ASSERT_FALSE( dcd_dd[phy_ep].atle_is_msb_extracted ); + TEST_ASSERT_FALSE( dcd_dd[phy_ep].atle_message_length_position ); + TEST_ASSERT_FALSE( dcd_dd[phy_ep].present_count ); +} + +void test_dcd_configure_endpoint_out(void) +{ + TEST_IGNORE(); +} diff --git a/tests/lpc175x_6x/test/test_usbd.c b/tests/lpc175x_6x/test/test_usbd.c index d2e73ee28..9f28c0ec8 100644 --- a/tests/lpc175x_6x/test/test_usbd.c +++ b/tests/lpc175x_6x/test/test_usbd.c @@ -84,7 +84,7 @@ tusb_error_t stub_hidd_init(tusb_descriptor_interface_t const* p_interface_desc, void class_init_epxect(void) { #if DEVICE_CLASS_HID - hidd_init_StubWithCallback(stub_hidd_init); +// hidd_init_StubWithCallback(stub_hidd_init); #endif } |
