We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
I am looking into using a CMSIS standard driver model for a microcontroller peripherals. I am working with CMSIS-SP-00300-r4p3-00rel0.zip. It seems that the ARM Driver model does not support the channels for the peripherals. Even if the channels are explicitly instantiated using, for example - the ARM_DRIVER_I2C structure - there is no way to identify the device context when the drivers functions are called. It would be useful if the Driver will allow a handle to a device context that linked to a channel and mode of operation. I'd like to know if anybody came across this problem in their development.
Hello Tanya,
can you please send this question to cmsis@arm.com?
Kind regards,
Christopher
thank you.
Hi Tanya,
Your request is not fully clear to us. What exactly do you mean by “device context”?
Just in case that you refer to the fact that we serve one fixed channel per driver struct, this was deliberately implemented in this way as:
For real-world implementations that sever more than one I/O channel, you may take a look to the CMSIS software pack. It contains reference implementations in the folder CMSIS\4.3.0\CMSIS\Pack\Example\CMSIS_Driver. The I2C_LPC18xx.c file handles for example two I2C channels.
I hope this helps.
Reinhard