MCUXpresso SDK API thread safe

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

MCUXpresso SDK API thread safe

2,919 次查看
grzegorzkonopko
Contributor III

Dear community members/ NXP supporters

1. Is a API of MCUXpresso SDK thread safe, e.g.: I would like to use DbgConsole_Printf() from interrupt routine but there is nothing about in documentation: (MCUXpresso SDK API Reference Manual: Debug Console )

From code inspection seems it is not possible, however it is good idea to ask

2. what is general recommendation of using SDK API in threads environment (not RTOS only, very general), I can not find any guide yet and documentation (which API is safe, which is not)

3. What is recommended for new design, MCUXpresso SDK or Kinetis SDK?

0 项奖励
回复
2 回复数

1,319 次查看
nxp16
Contributor III

Actually, the blocking debug console functions are NOT thread safe.  Only the non-blocking RTOS ones are.  In the blocking implementation, multiple threads can end up writing to the UART at the same time causing interleaving (and possibly other problems).  I've proven this to be the true with a test case.

The non-blocking RTOS safe implementation may not be a good idea to call from inside an interrupt handler.  You really don't want to block inside an interrupt handler.

0 项奖励
回复

2,630 次查看
jorge_a_vazquez
NXP Employee
NXP Employee

Hi grzegorzkonopko

Answering your questions:

1. Actually the fsl_debug_console are already thread safe, if you check the code in DbgConsole_Printf() in our latest SDK, you will find some APIs like LOG_TAKE_MUTEX_SEMAPHORE_NONBLOCKING. Any case, if you want DbgConsole_Printf() with interrupt, you can look into the macro DEBUG_CONSOLE_TRANSFER_NON_BLOCKING.

3. MCUXpresso SDK is the latest SDK drivers for kinetis devices, so I would recommend you this.

Hope this could help
Have a great day,
TIC

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-745911%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EMCUXpresso%20SDK%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%8E%A5%E5%8F%A3%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-745911%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%26lt%3Bmeta%20http-equiv%3D%22Content-Type%22%20content%3D%22text%2Fhtml%3B%20charset%3Dutf-8%22%20%2F%26gt%3B%0A%3CP%3E%E4%BA%B2%E7%88%B1%E7%9A%84%E7%A4%BE%E5%8C%BA%E6%88%90%E5%91%98%2F%E6%81%A9%E6%99%BA%E6%B5%A6%E6%94%AF%E6%8C%81%E8%80%85%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E1%E3%80%82MCUXpresso%20SDK%20%E7%9A%84%20API%20%E6%98%AF%E5%90%A6%E6%98%AF%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8%E7%9A%84%EF%BC%8C%E4%BE%8B%E5%A6%82%EF%BC%9A%E6%88%91%E6%83%B3%E4%BD%BF%E7%94%A8%E4%B8%AD%E6%96%AD%E4%BE%8B%E7%A8%8B%E4%B8%AD%E7%9A%84%20dbgConsole_printf%20()%EF%BC%8C%E4%BD%86%E6%96%87%E6%A1%A3%E4%B8%AD%E6%B2%A1%E6%9C%89%E4%BB%BB%E4%BD%95%E5%86%85%E5%AE%B9%EF%BC%9A%EF%BC%88%3CA%20class%3D%22link-titled%22%20href%3D%22http%3A%2F%2Fmcuxpresso.nxp.com%2Fapi_doc%2Fdev%2F271%2Fgroup__debugconsole.html%23ga7f9e0678f4c708ed5640b0823c07dc35%22%20title%3D%22http%3A%2F%2Fmcuxpresso.nxp.com%2Fapi_doc%2Fdev%2F271%2Fgroup__debugconsole.html%23ga7f9e0678f4c708ed5640b0823c07dc35%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%20target%3D%22_blank%22%3Em%3C%2FA%3E%20cuxPresso%20SDK%20API%20%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C%EF%BC%9A%E8%B0%83%E8%AF%95%E6%8E%A7%E5%88%B6%E5%8F%B0%EF%BC%89%3C%2FP%3E%3CP%3E%E4%BB%8E%E4%BB%A3%E7%A0%81%E6%A3%80%E6%9F%A5%E6%9D%A5%E7%9C%8B%EF%BC%8C%E8%BF%99%E4%BC%BC%E4%B9%8E%E6%98%AF%E4%B8%8D%E5%8F%AF%E8%83%BD%E7%9A%84%EF%BC%8C%E4%BD%86%E6%9C%80%E5%A5%BD%E8%BF%98%E6%98%AF%E9%97%AE%E4%B8%80%E4%B8%8B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E2.%20%E5%9C%A8%E7%BA%BF%E7%A8%8B%E7%8E%AF%E5%A2%83%E4%B8%AD%E4%BD%BF%E7%94%A8%20SDK%20API%20%E7%9A%84%E4%B8%80%E8%88%AC%E5%BB%BA%E8%AE%AE%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%88%E4%B8%8D%E4%BB%85%E4%BB%85%E6%98%AF%20RTOS%EF%BC%8C%E9%9D%9E%E5%B8%B8%E7%AC%BC%E7%BB%9F%EF%BC%89%EF%BC%8C%E6%88%91%E8%BF%98%E6%B2%A1%E6%9C%89%E6%89%BE%E5%88%B0%E4%BB%BB%E4%BD%95%E6%8C%87%E5%8D%97%E5%92%8C%E6%96%87%E6%A1%A3%EF%BC%88%E5%93%AA%E4%BA%9B%20API%20%E6%98%AF%E5%AE%89%E5%85%A8%E7%9A%84%EF%BC%8C%E5%93%AA%E4%BA%9B%E6%98%AF%E4%B8%8D%E5%AE%89%E5%85%A8%E7%9A%84%EF%BC%89%E3%80%82%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E3.%E6%96%B0%E8%AE%BE%E8%AE%A1%E6%8E%A8%E8%8D%90%E4%BD%BF%E7%94%A8%3CSTRONG%3EMCUXpresso%20SDK%3C%2FSTRONG%3E%E8%BF%98%E6%98%AF%3CSTRONG%3EKinetis%20SDK%3C%2FSTRONG%3E%EF%BC%9F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2269289%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20MCUXpresso%20SDK%20API%20thread%20safe%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2269289%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E5%AE%9E%E9%99%85%E4%B8%8A%EF%BC%8C%E9%98%BB%E5%A1%9E%E5%BC%8F%E8%B0%83%E8%AF%95%E6%8E%A7%E5%88%B6%E5%8F%B0%E5%87%BD%E6%95%B0%E5%B9%B6%E4%B8%8D%E6%98%AF%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8%E7%9A%84%E3%80%82%20%E5%8F%AA%E6%9C%89%E9%9D%9E%E9%98%BB%E5%A1%9E%20RTOS%20%E6%89%8D%E6%98%AF%E8%BF%99%E6%A0%B7%E3%80%82%20%E5%9C%A8%E9%98%BB%E5%A1%9E%E5%BC%8F%E5%AE%9E%E7%8E%B0%E4%B8%AD%EF%BC%8C%E5%A4%9A%E4%B8%AA%E7%BA%BF%E7%A8%8B%E5%8F%AF%E8%83%BD%E4%BC%9A%E5%90%8C%E6%97%B6%E5%90%91%20UART%20%E5%86%99%E5%85%A5%E6%95%B0%E6%8D%AE%EF%BC%8C%E4%BB%8E%E8%80%8C%E5%AF%BC%E8%87%B4%E4%BA%A4%E9%94%99%EF%BC%88%E5%8F%AF%E8%83%BD%E8%BF%98%E6%9C%89%E5%85%B6%E4%BB%96%E9%97%AE%E9%A2%98%EF%BC%89%E3%80%82%20%E6%88%91%E9%80%9A%E8%BF%87%E4%B8%80%E4%B8%AA%E6%B5%8B%E8%AF%95%E6%A1%88%E4%BE%8B%E8%AF%81%E6%98%8E%E4%BA%86%E8%BF%99%E4%B8%80%E7%82%B9%E3%80%82%3C%2FP%3E%3CP%3E%E4%BB%8E%E4%B8%AD%E6%96%AD%E5%A4%84%E7%90%86%E7%A8%8B%E5%BA%8F%E5%86%85%E9%83%A8%E8%B0%83%E7%94%A8%E9%9D%9E%E9%98%BB%E5%A1%9E%20RTOS%20%E5%AE%89%E5%85%A8%E5%AE%9E%E7%8E%B0%E5%8F%AF%E8%83%BD%E4%B8%8D%E6%98%AF%E4%B8%80%E4%B8%AA%E5%A5%BD%E4%B8%BB%E6%84%8F%E3%80%82%20%E4%BD%A0%E7%9C%9F%E7%9A%84%E4%B8%8D%E6%83%B3%E5%9C%A8%E4%B8%AD%E6%96%AD%E5%A4%84%E7%90%86%E7%A8%8B%E5%BA%8F%E4%B8%AD%E9%98%BB%E5%A1%9E%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-745912%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20MCUXpresso%20SDK%20API%20thread%20safe%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-745912%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%26lt%3Bmeta%20http-equiv%3D%22Content-Type%22%20content%3D%22text%2Fhtml%3B%20charset%3Dutf-8%22%20%2F%26gt%3B%0A%3CP%3E%E4%BD%A0%E5%A5%BD%20grzegorzkonopko%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%E5%9B%9E%E7%AD%94%E6%82%A8%E7%9A%84%E9%97%AE%E9%A2%98%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E1.%E5%AE%9E%E9%99%85%E4%B8%8A%EF%BC%8Cfsl_debug_console%20%E5%B7%B2%E7%BB%8F%E6%98%AF%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8%E7%9A%84%E4%BA%86%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%82%A8%E6%9F%A5%E7%9C%8B%E6%88%91%E4%BB%AC%E6%9C%80%E6%96%B0%20SDK%20%E4%B8%AD%20DbgConsole_Printf()%20%E7%9A%84%E4%BB%A3%E7%A0%81%EF%BC%8C%E5%B0%B1%E4%BC%9A%E5%8F%91%E7%8E%B0%E4%B8%80%E4%BA%9B%20API%EF%BC%8C%E5%A6%82%20LOG_TAKE_MUTEX_SEMAPHORE_NONBLOCKING%E3%80%82%E6%97%A0%E8%AE%BA%E5%A6%82%E4%BD%95%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%82%A8%E6%83%B3%E4%BD%BF%E7%94%A8%E5%B8%A6%E4%B8%AD%E6%96%AD%E7%9A%84%20DbgConsole_Printf()%EF%BC%8C%E5%8F%AF%E4%BB%A5%E6%9F%A5%E7%9C%8B%E5%AE%8F%20DEBUG_CONSOLE_TRANSFER_NON_BLOCKING%E3%80%82%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E3.MCUXpresso%20SDK%20%E6%98%AF%20kinetis%20%E8%AE%BE%E5%A4%87%E7%9A%84%E6%9C%80%E6%96%B0%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7%E5%8C%85%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%EF%BC%8C%E6%89%80%E4%BB%A5%E6%88%91%E4%BC%9A%E6%8E%A8%E8%8D%90%E4%BD%A0%E8%BF%99%E4%B8%AA%E3%80%82%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%E5%B8%8C%E6%9C%9B%E8%83%BD%E5%AF%B9%3CBR%20%2F%3E%E6%9C%89%E6%89%80%E5%B8%AE%E5%8A%A9%EF%BC%8C%E7%A5%9D%E6%82%A8%E6%84%89%E5%BF%AB%EF%BC%81%3CBR%20%2F%3ETIC%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E-----------------------------------------------------------------------------------------------------------------------%3CBR%20%2F%3E%E6%B3%A8%EF%BC%9A%E5%A6%82%E6%9E%9C%E6%9C%AC%E5%B8%96%E5%9B%9E%E7%AD%94%E4%BA%86%E6%82%A8%E7%9A%84%E9%97%AE%E9%A2%98%EF%BC%8C%E8%AF%B7%E7%82%B9%E5%87%BB%E6%AD%A3%E7%A1%AE%E7%AD%94%E6%A1%88%E6%8C%89%E9%92%AE%E3%80%82Thank%20you!%3CBR%20%2F%3E-----------------------------------------------------------------------------------------------------------------------%3C%2FP%3E%3C%2FLINGO-BODY%3E