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
Parents
  • Note: This was originally posted on 31st July 2013 at http://forums.arm.com

    There has been no response from the support email so I will just post here again.

    Reinhard that Usage Page address fixed the USB problem. Now the HID device communicates properly.

    The device is recognized by Keil Debugger in CMSIS-DAP mode, but when going to option->debug->settings an error occurs next to TDO. I am attaching an image of this so you know exactly what I am seeing.

    It would be very helpful it you could note some problems that may be causing this error.

    Thank you

    -Jesse
Reply
  • Note: This was originally posted on 31st July 2013 at http://forums.arm.com

    There has been no response from the support email so I will just post here again.

    Reinhard that Usage Page address fixed the USB problem. Now the HID device communicates properly.

    The device is recognized by Keil Debugger in CMSIS-DAP mode, but when going to option->debug->settings an error occurs next to TDO. I am attaching an image of this so you know exactly what I am seeing.

    It would be very helpful it you could note some problems that may be causing this error.

    Thank you

    -Jesse
Children
No data