This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Questions Regarding CMSIS-DAP

Note: This was originally posted on 25th July 2013 at http://forums.arm.com

Working on a project to support CMSIS on a third party board with an M4F processor.

Following the CMSIS documentation, it says an HID connection must be established, and then Keil should recognize a CMSIS-DAP connection. My problem is that Windows 7 is showing the HID connection, and the correct string representing the device is showing up in the "Devices and Printers" folder. According to the documentation the HID device just has to be recognized with "CMSIS-DAP" included in the product string, and then Keil should be able to establish a connection. Unfortunately when trying to view a CMSIS-DAP device in Keil, the boxes are grayed out, which I am assuming it means no CMSIS-DAP connection is available and it does not recognize my device. When switching Keil to ICDI connection, it recognizes our device right away (this is the old connection we use, were trying to also implement CMSIS-DAP as an additional USB connection).

Well here are a couple questions:

Since CMSIS uses an HID USB connection, what is the correct way to implement the Report Descriptor? Online examples just handle a mouse or keyboard but I am unsure how to handle an M4F processor that just needs to send packets of data. This is our current Report Descriptor, which returns no errors but may not be implemented correctly:

const unsigned char g_sHIDReportDescriptor[]={

    0x06,0xA0,0xFF,                      //UsagePage (Arbitrary Vendor Defined)

                    0x09,0x01,                                    //UsageID (Arbitrary Vendor Defined)

                    0xA1,0x01,                                                  //Collection(Application)



//InputReport

                          0x09,0x03,              //UsageID (Arbitrary Vendor Defined)

                          ReportSize(8),

                          ReportCount(64),

                          Input(USB_HID_INPUT_VARIABLE | USB_HID_INPUT_DATA | USB_HID_INPUT_ABS),



//OutputReport

                          0x09, 0x04,

                          ReportSize(8),

                          ReportCount(64),

                          Output(USB_HID_OUTPUT_VARIABLE | USB_HID_OUTPUT_DATA | USB_HID_OUTPUT_ABS),



                    0xC0 //endcollection


};



Does the CMSIS firmware absolutely have to be built in Keil MDK to work or can it be built by third party software? Currently it is being built in third party software and shows up as an HID device on Windows 7, but Keil does not recognize that any CMSIS-DAP device is connected.



If you need any more details in order to answer my questions please let me know.



Thank you.



-Jesse