I have 4 interconnected boards, all with Kinetis K22 processors communicating over FlexCAN. When I use UART console, they communicate freely and correctly. When I switch to Semihost console and use a P&E Multilink module connected to JTAG, they stop working.
For example, I have a special board configured to respond to CAN RTR request for data. (Request data with message ID 0x1F0, receive 7 bytes of data with message ID 0x1F0.)
When I send an RTR request for data from a board that uses UART console, I can see the RTR request at the special board, the special board sends back a message with 7 bytes of data, and I get back an ordinary CAN frame with 7 bytes of data at the UART-console board.
When I send an RTR request for data from a board that uses Semihost console, I can see the RTR request at the special board, the special board sends back a message with 7 bytes of data. However, the Semihost-console board never seems to see the reply.
I have tried it numerous different ways and the bottom line is that the board does not receive CAN messages when it is in Semihost console (and when the debugger is plugged in and running in Debug mode). Also note that the MCR register settings are identical in UART versus Semihost -- it's not like the "FRZ" bit is set differently.
Is there some "trick" to getting FlexCAN to work correctly in debug mode?
Hi @Sruss
I hope that you are doing well, I replied to your other post with a similar description.
Using FlexCAN with P&E Multilink on Kinetis K22 - NXP Community
Please write any reply there.
Many thanks for your understanding.
Diego.