Which version of mbed os 6 and gcc arm compiler work best? I am working with the following combination
MBed os 6.17.0 (latest)
GCC Arm compiler version 6.3.1 (gcc-arm-none-eabi-6-2017q2). Have tried newer ones too like 10.3.1
mbed cli 1
I have issues with things like
CAN Interrupt not working (polling works)
InterruptIn ISR not being triggered (when defined inside a class; while it works if defined in main)
All these used to work fine in my previous code with mbed os 5. I have even tried the eventqueue but that also seems to not trigger my interrupt action.
I even tried switching back to mbed os 6.13.0. Still, no luck.
Some help would be very much appreciated. Thanks in advance.
I was using GCC 9.2.1 along with Mbed os 5.9.5 in an older project. It used to work fine.
My target is LPC1768
When I switched to Mbed Os 6.17.0, GCC 9.2.1 (gcc-arm-none-eabi-9-2019-q4-major) would not work. So, I switched to 6.3.1 (gcc-arm-none-eabi-6-2017q2) which was known to work from another internal project.
This example is only on CAN interrupt. I will post a separate one for InterruptIn issues. I have the other items in place only to have a realistic minimal code. Also, Ideally, I keep most codes separated in different files (can_handler, io_handler etc) but made a simple example in one file using those now.
I do not have LPC1768 so I do not know, but is popular target so I believe potential issues would be already reported here or on github.
I see just this
Mbed CLI 1 - Mbed OS 6.4 and older
Mbed CLI 2 - Mbed OS 6.5 and newer
About interrupt in general the Mbed OS 5.12 was game changer because all methods what have potential with manipulation through threads are covered by Mutex and mutex can not be used in ISR - read / write / printf / send / received and os on
Did you firmware updare of your LPC1768? That could be the magic.
Yes. I noted that Mbed CLI 2 is recommended for Mbed OS 6.5 or higher. But Mbed CLI 1 is also allowed. I did try Mbed CLI 2. I am able to build a simple file but then I need to add more CMakeLists.txt files etc for that. Hence, I have set aside that activity for later. May be, I will try MBed Os 6.4 with this.
Good to know that Mbed OS 5.12 was the game changer. In any case, I don’t have printf / read etc (which create mutex) in ISRs.
I don’t understand the concept of interface firmware. Looks like that was old. Those documentation pages do not look updated. Also, is that still required? Coz I never used it even with Mbed OS 5.9.5. And this certainly does not look like it was introduced with Mbed OS 6. Do you know if this is actually required?
I will test Mbed OS 6.4 and let you know. Thnx again.
Yes, I think it is necessary for newer versions of Mbed OS. I remember this was usually solution for strange behavior reported here on forum.
It was not introduced with MbedOS 6 because this page and info about firmware update there were long time before.