NXP Kinetis K22 USB Issues When Using USB Stack In C++

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

NXP Kinetis K22 USB Issues When Using USB Stack In C++

467 次查看
prabhutravels
Contributor I

Does anyone have any experience when using the NXP/Freescale C USB Stack in C++?

I'm facing a issue whereby when the CDC device attempts to enumerate, the device descriptor requests are failing. I've debugged as far as I can and I can see that the USB OTG interrupt is being entered for SLEEP, RESET and SOF states but no others.

What I'm assuming is that I've missed something subtle however in the grand scheme of things, the only thing I've really changed is adding an `extern "C"` to the USB ISR function. Clocking is correct, interrupts have been configured and enabled.

I have an existing C project which works absolutely fine, using the same USB stack source code. This is what I'm moving over from.

My target hardware is a Kinetis MK22FN1M0AVLH12 device, running from a 16MHz crystal.

I've not posted any code as I don't really know what to post at the moment - I can post anything which would be relevant.

标签 (1)
0 项奖励
回复
2 回复数

342 次查看
prabhutravels
Contributor I
Does anyone have any experience when using the NXP/Freescale C USB Stack in C++?

I'm facing a issue whereby when the CDC device attempts to enumerate, the device descriptor requests are failing. I've debugged as far as I can and I can see that the USB OTG interrupt is being entered for SLEEP, RESET and SOF states but no others.

What I'm assuming is that I've missed something subtle however in the grand scheme of things, the only thing I've really changed is adding an `extern "C"` to the USB ISR function. Clocking is correct, interrupts have been configured and enabled.

I have an existing C project which works absolutely fine, using the same USB stack source code. This is what I'm moving over from.

My target hardware is a Kinetis MK22FN1M0AVLH12 device, running from a 16MHz crystal.

I've not posted any code as I don't really know what to post at the moment - I can post anything which would be relevant. https://routerlogin.uno/

I got this,...
0 项奖励
回复

370 次查看
Alice_Yang
NXP TechSupport
NXP TechSupport

Hello @prabhutravels 

  • Please verify that extern "C" is added to the correct ISR function. Also add a GPIO toggle inside the ISR to confirm whether the interrupt is actually entered.

  • Try moving your USB-related C++ source file back to a pure C file and test again. If the device enumerates successfully, it indicates that the issue is related to the C++ environment.

 

BR

Alice

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-2340286%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E5%9C%A8%20C%2B%2B%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20USB%20%E6%A0%88%E6%97%B6%E5%87%BA%E7%8E%B0%20NXP%20Kinetis%20K22%20USB%20%E9%97%AE%E9%A2%98%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2340286%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%9C%89%E4%BA%BA%E5%9C%A8%20C%2B%2B%20%E4%B8%AD%E4%BD%BF%E7%94%A8%E6%81%A9%E6%99%BA%E6%B5%A6%2FFreescale%20C%20USB%20%E6%A0%88%E6%97%B6%E6%9C%89%E7%BB%8F%E9%AA%8C%E5%90%97%EF%BC%9F%3C%2FP%3E%3CP%3E%E6%88%91%E9%9D%A2%E4%B8%B4%E7%9A%84%E9%97%AE%E9%A2%98%E6%98%AF%EF%BC%8C%E5%BD%93CDC%E8%AE%BE%E5%A4%87%E5%B0%9D%E8%AF%95%E6%9E%9A%E4%B8%BE%E6%97%B6%EF%BC%8C%E8%AE%BE%E5%A4%87%E6%8F%8F%E8%BF%B0%E7%AC%A6%E8%AF%B7%E6%B1%82%E5%A4%B1%E8%B4%A5%E3%80%82%E6%88%91%E5%B7%B2%E7%BB%8F%E5%B0%BD%E6%88%91%E6%89%80%E8%83%BD%E8%B0%83%E8%AF%95%E8%BF%87%E4%BA%86%EF%BC%8C%E6%88%91%E5%8F%AF%E4%BB%A5%E7%9C%8B%E5%88%B0%20USB%20OTG%20%E4%B8%AD%E6%96%AD%E6%98%AF%E9%92%88%E5%AF%B9%20SLEEP%E3%80%81RESET%20%E5%92%8C%20SOF%20%E7%8A%B6%E6%80%81%E8%BE%93%E5%85%A5%E7%9A%84%EF%BC%8C%E4%BD%86%E6%B2%A1%E6%9C%89%E5%85%B6%E4%BB%96%E7%8A%B6%E6%80%81%E3%80%82%3C%2FP%3E%3CP%3E%E6%88%91%E6%83%B3%E6%88%91%E6%98%AF%E6%BC%8F%E6%8E%89%E4%BA%86%E4%B8%80%E4%BA%9B%E5%BE%AE%E5%A6%99%E7%9A%84%E4%B8%9C%E8%A5%BF%EF%BC%8C%E4%BD%86%E4%BB%8E%E6%95%B4%E4%BD%93%E4%B8%8A%E7%9C%8B%EF%BC%8C%E6%88%91%E7%9C%9F%E6%AD%A3%E6%94%B9%E5%8F%98%E7%9A%84%E5%8F%AA%E6%98%AF%E5%9C%A8%20USB%20ISR%20%E5%87%BD%E6%95%B0%E4%B8%AD%E6%B7%BB%E5%8A%A0%E4%BA%86%E4%B8%80%E4%B8%AA%20%22%E5%A4%96%E9%83%A8%22C%22%22%E3%80%82%E6%97%B6%E9%92%9F%E6%AD%A3%E7%A1%AE%EF%BC%8C%E5%B7%B2%E9%85%8D%E7%BD%AE%E5%B9%B6%E5%90%AF%E7%94%A8%E4%B8%AD%E6%96%AD%E3%80%82%3C%2FP%3E%3CP%3E%E6%88%91%E6%9C%89%E4%B8%80%E4%B8%AA%E7%8E%B0%E6%9C%89%E7%9A%84%20C%20%E9%A1%B9%E7%9B%AE%EF%BC%8C%E4%BD%BF%E7%94%A8%E7%9B%B8%E5%90%8C%E7%9A%84%20USB%20%E6%A0%88%E6%BA%90%E4%BB%A3%E7%A0%81%EF%BC%8C%E8%BF%90%E8%A1%8C%E5%AE%8C%E5%85%A8%E6%AD%A3%E5%B8%B8%E3%80%82%E6%88%91%E5%B0%B1%E6%98%AF%E4%BB%8E%E8%BF%99%E9%87%8C%E6%90%AC%E8%BF%87%E6%9D%A5%E7%9A%84%E3%80%82%3C%2FP%3E%3CP%3E%E6%88%91%E7%9A%84%E7%9B%AE%E6%A0%87%E7%A1%AC%E4%BB%B6%E6%98%AF%E5%9F%BA%E4%BA%8E%2016MHz%20%E6%99%B6%E4%BD%93%E8%BF%90%E8%A1%8C%E7%9A%84%20Kinetis%20MK22FN1M0AVLH12%20%E8%AE%BE%E5%A4%87%E3%80%82%3C%2FP%3E%3CP%3E%E6%88%91%E6%B2%A1%E6%9C%89%E5%8F%91%E5%B8%83%E4%BB%BB%E4%BD%95%E4%BB%A3%E7%A0%81%EF%BC%8C%E5%9B%A0%E4%B8%BA%E6%88%91%E7%8E%B0%E5%9C%A8%E7%9C%9F%E7%9A%84%E4%B8%8D%E7%9F%A5%E9%81%93%E8%AF%A5%E5%8F%91%E5%B8%83%E4%BB%80%E4%B9%88--%E6%88%91%E5%8F%AF%E4%BB%A5%E5%8F%91%E5%B8%83%E4%BB%BB%E4%BD%95%E7%9B%B8%E5%85%B3%E7%9A%84%E5%86%85%E5%AE%B9%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2340286%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3EKinetis%20K%E7%B3%BB%E5%88%97MCU%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2341994%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20NXP%20Kinetis%20K22%20USB%20Issues%20When%20Using%20USB%20Stack%20In%20C%2B%2B%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2341994%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F261061%22%20target%3D%22_blank%22%3E%40prabhutravels%3C%2FA%3E%3C%2FP%3E%0A%3CDIV%3E%0A%3CUL%3E%0A%3CLI%3E%0A%3CP%3E%3CFONT%20size%3D%224%22%20color%3D%22%23000000%22%3E%E8%AF%B7%E7%A1%AE%E8%AE%A4%3CCODE%20translate%3D%22no%22%3Eextern%20%22C%22%3C%2FCODE%3E%20%E5%B7%B2%E6%B7%BB%E5%8A%A0%E5%88%B0%E6%AD%A3%E7%A1%AE%E7%9A%84%20ISR%20%E5%8A%9F%E8%83%BD%E4%B8%AD%E3%80%82%E5%90%8C%E6%97%B6%EF%BC%8C%E5%9C%A8%20ISR%20%E5%86%85%E9%83%A8%E6%B7%BB%E5%8A%A0%20GPIO%20%E5%BC%80%E5%85%B3%EF%BC%8C%E4%BB%A5%E7%A1%AE%E8%AE%A4%E4%B8%AD%E6%96%AD%E6%98%AF%E5%90%A6%E7%9C%9F%E6%AD%A3%E8%BF%9B%E5%85%A5%E3%80%82%3C%2FFONT%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%3E%0A%3CP%3E%3CFONT%20size%3D%224%22%20color%3D%22%23000000%22%3E%E5%B0%9D%E8%AF%95%E5%B0%86%20USB%20%E7%9B%B8%E5%85%B3%E7%9A%84%20C%2B%2B%20%E6%BA%90%E6%96%87%E4%BB%B6%E7%A7%BB%E5%9B%9E%E7%BA%AF%20C%20%E6%96%87%E4%BB%B6%EF%BC%8C%E7%84%B6%E5%90%8E%E5%86%8D%E6%AC%A1%E6%B5%8B%E8%AF%95%E3%80%82%E5%A6%82%E6%9E%9C%E8%AE%BE%E5%A4%87%E6%88%90%E5%8A%9F%E6%9E%9A%E4%B8%BE%EF%BC%8C%E5%88%99%E8%A1%A8%E6%98%8E%E9%97%AE%E9%A2%98%E4%B8%8E%20C%2B%2B%20%E7%8E%AF%E5%A2%83%E6%9C%89%E5%85%B3%E3%80%82%3C%2FFONT%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%3CFONT%20size%3D%224%22%20color%3D%22%23000000%22%3EBR%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3E%3CFONT%20size%3D%224%22%20color%3D%22%23000000%22%3E%E7%88%B1%E4%B8%BD%E4%B8%9D%3C%2FFONT%3E%3C%2FP%3E%0A%3C%2FDIV%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2343076%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20NXP%20Kinetis%20K22%20USB%20Issues%20When%20Using%20USB%20Stack%20In%20C%2B%2B%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2343076%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E6%9C%89%E4%BA%BA%E5%9C%A8%20C%2B%2B%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20NXP%2FFreescale%20C%20USB%20%E5%A0%86%E6%A0%88%E6%97%B6%E6%9C%89%E4%BB%BB%E4%BD%95%E7%BB%8F%E9%AA%8C%E5%90%97%EF%BC%9F%3CBR%20%2F%3E%3CBR%20%2F%3E%E6%88%91%E9%9D%A2%E4%B8%B4%E7%9A%84%E9%97%AE%E9%A2%98%E6%98%AF%EF%BC%8C%E5%BD%93CDC%E8%AE%BE%E5%A4%87%E5%B0%9D%E8%AF%95%E6%9E%9A%E4%B8%BE%E6%97%B6%EF%BC%8C%E8%AE%BE%E5%A4%87%E6%8F%8F%E8%BF%B0%E7%AC%A6%E8%AF%B7%E6%B1%82%E5%A4%B1%E8%B4%A5%E3%80%82%E6%88%91%E5%B7%B2%E7%BB%8F%E5%B0%BD%E6%88%91%E6%89%80%E8%83%BD%E8%B0%83%E8%AF%95%E8%BF%87%E4%BA%86%EF%BC%8C%E6%88%91%E5%8F%AF%E4%BB%A5%E7%9C%8B%E5%88%B0%20USB%20OTG%20%E4%B8%AD%E6%96%AD%E6%98%AF%E9%92%88%E5%AF%B9%20SLEEP%E3%80%81RESET%20%E5%92%8C%20SOF%20%E7%8A%B6%E6%80%81%E8%BE%93%E5%85%A5%E7%9A%84%EF%BC%8C%E4%BD%86%E6%B2%A1%E6%9C%89%E5%85%B6%E4%BB%96%E7%8A%B6%E6%80%81%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E6%88%91%E6%83%B3%E6%88%91%E6%98%AF%E6%BC%8F%E6%8E%89%E4%BA%86%E4%B8%80%E4%BA%9B%E5%BE%AE%E5%A6%99%E7%9A%84%E4%B8%9C%E8%A5%BF%EF%BC%8C%E4%BD%86%E4%BB%8E%E6%95%B4%E4%BD%93%E4%B8%8A%E7%9C%8B%EF%BC%8C%E6%88%91%E7%9C%9F%E6%AD%A3%E6%94%B9%E5%8F%98%E7%9A%84%E5%8F%AA%E6%98%AF%E5%9C%A8%20USB%20ISR%20%E5%87%BD%E6%95%B0%E4%B8%AD%E6%B7%BB%E5%8A%A0%E4%BA%86%E4%B8%80%E4%B8%AA%20%22%E5%A4%96%E9%83%A8%22C%22%22%E3%80%82%E6%97%B6%E9%92%9F%E6%AD%A3%E7%A1%AE%EF%BC%8C%E5%B7%B2%E9%85%8D%E7%BD%AE%E5%B9%B6%E5%90%AF%E7%94%A8%E4%B8%AD%E6%96%AD%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E6%88%91%E6%9C%89%E4%B8%80%E4%B8%AA%E7%8E%B0%E6%9C%89%E7%9A%84%20C%20%E9%A1%B9%E7%9B%AE%EF%BC%8C%E4%BD%BF%E7%94%A8%E7%9B%B8%E5%90%8C%E7%9A%84%20USB%20%E6%A0%88%E6%BA%90%E4%BB%A3%E7%A0%81%EF%BC%8C%E8%BF%90%E8%A1%8C%E5%AE%8C%E5%85%A8%E6%AD%A3%E5%B8%B8%E3%80%82%E6%88%91%E5%B0%B1%E6%98%AF%E4%BB%8E%E8%BF%99%E9%87%8C%E6%90%AC%E8%BF%87%E6%9D%A5%E7%9A%84%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E6%88%91%E7%9A%84%E7%9B%AE%E6%A0%87%E7%A1%AC%E4%BB%B6%E6%98%AF%E5%9F%BA%E4%BA%8E%2016MHz%20%E6%99%B6%E4%BD%93%E8%BF%90%E8%A1%8C%E7%9A%84%20Kinetis%20MK22FN1M0AVLH12%20%E8%AE%BE%E5%A4%87%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E6%88%91%E6%B2%A1%E6%9C%89%E5%8F%91%E5%B8%83%E4%BB%BB%E4%BD%95%E4%BB%A3%E7%A0%81%EF%BC%8C%E5%9B%A0%E4%B8%BA%E6%88%91%E7%8E%B0%E5%9C%A8%E7%9C%9F%E7%9A%84%E4%B8%8D%E7%9F%A5%E9%81%93%E8%AF%A5%E5%8F%91%E5%B8%83%E4%BB%80%E4%B9%88--%E6%88%91%E5%8F%AF%E4%BB%A5%E5%8F%91%E5%B8%83%E4%BB%BB%E4%BD%95%E7%9B%B8%E5%85%B3%E7%9A%84%E5%86%85%E5%AE%B9%E3%80%82%3CA%20href%3D%22https%3A%2F%2Frouterlogin.uno%2F%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Frouterlogin.uno%2F%3C%2FA%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%E6%88%91%E5%BE%97%E5%88%B0%E4%BA%86%E8%BF%99%E4%B8%AA%EF%BC%8C...%3C%2FLINGO-BODY%3E