Hi,
What are the capabilities that the ARM_CAN_OjectGetCapabilities() returns?
Are they the capabilities for the object as programmed by ARM_CAN_ObjectConfigure()? Or are they capabilities representing what the hardware is capable of?
I am guessing that these refer to HW capabilities but I could almost guess the other way...
Thanks, Tony
OK I guess it is freezing over again...
So why is there an object index passed in the call? How do you instantiate the object to start with? Configure object? But then how do you know what you are allowed to configure?
Are the objects inherently part of the driver and do not need to be created? Following that line of thinking I would use the ARM_CAN_CAPABILITIES() call to find out how many objects there are, use the object capabilities call on each of these, and configure accordingly...
Suppose that makes sense but I have been backwards before...
Objects are a hardware entities, usually there are a few of controller types mostly they are an IP from Bosch which is source of CAN specification anyways.
So for example one controller has 32 objects which can be used for reception or transmission each depending on how they are configured. However, there are others which have only 1 object capable of transimission and 2 available for reception (with FIFOs).
So, to make your code portable you would go through capabilities of all objects and then assign what you need to specific objects.
BTW, why don't you take a look at existing examples in middleware for example one such can be found in c:\Keil\ARM\PACK\Keil\LPC4300_DFP\2.6.0\Boards\Keil\MCB4300\Middleware\CAN\CAN_Data\ where CAN_Data.c file contains example of CAN CMSIS driver usage.
Thanks!
I will take a look at the middleware example.
Tony