Possibility to add an additional code generator?

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

Possibility to add an additional code generator?

跳至解决方案
1,551 次查看
The0
Contributor I

Hi 

I was wondering whether it is possible to generate additional .c/.h files with the MCUXpresso Config Tool?

So what I have in mind, the MCUXpresso Config Tool already generates very nice pin_mux.h header files including all the symbols for PORTs and GPIOs. E.g. for the GPIO where my red LED is connected to:

#define BOARD_INITPINS_LED_RED_GPIO GPIO0  /*!<@brief GPIO peripheral base pointer */

With that I would like to generate an additional header file containing same symbols as in pin_mux.h, but with a typecast:

#define LED_RED_PORT (GPIO::Port*)BOARD_INITPINS_LED_RED_GPIO

I fear MCUXpresso Config Tool isn't that flexible. But what do you think, are there any other good approaches/tools to generate such header files each time I run the code generator in MCUXpresso Config Tool?

Best,
THE0

 

 

 

0 项奖励
回复
1 解答
1,522 次查看
Harry_Zhang
NXP Employee
NXP Employee

Hi @The0 

You’re right that the MCUXpresso Config Tool doesn’t have built-in flexibility to generate additional customized .c or .h files with the kind of modifications you’re describing, such as adding typecasts or additional symbols based on the ones in pin_mux.h. However, you can still achieve this by setting up a custom post-processing script that runs after the code generation.

After running the MCUXpresso Config Tool, use a script (Python, Bash, etc.) to read the generated pin_mux.h file, extract the relevant symbols, and create your additional header file (custom_pin_mux.h or similar).

BR

Hang

在原帖中查看解决方案

0 项奖励
回复
2 回复数
1,523 次查看
Harry_Zhang
NXP Employee
NXP Employee

Hi @The0 

You’re right that the MCUXpresso Config Tool doesn’t have built-in flexibility to generate additional customized .c or .h files with the kind of modifications you’re describing, such as adding typecasts or additional symbols based on the ones in pin_mux.h. However, you can still achieve this by setting up a custom post-processing script that runs after the code generation.

After running the MCUXpresso Config Tool, use a script (Python, Bash, etc.) to read the generated pin_mux.h file, extract the relevant symbols, and create your additional header file (custom_pin_mux.h or similar).

BR

Hang

0 项奖励
回复
1,515 次查看
The0
Contributor I

Hi @Harry_Zhang 

Thank you very much for your feedback. I think the approach using a post-processing script should work well.

BR
The0

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-1978927%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E5%8F%AF%E4%BB%A5%E6%B7%BB%E5%8A%A0%E9%A2%9D%E5%A4%96%E7%9A%84%E4%BB%A3%E7%A0%81%E7%94%9F%E6%88%90%E5%99%A8%E5%90%97%EF%BC%9F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1978927%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%26nbsp%3B%3C%2FP%3E%3CP%3E%E6%88%91%E6%83%B3%E7%9F%A5%E9%81%93%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%20MCUXpresso%20%E9%85%8D%E7%BD%AE%E5%B7%A5%E5%85%B7%E7%94%9F%E6%88%90%E9%A2%9D%E5%A4%96%E7%9A%84%20.c%2F.h%20%E6%96%87%E4%BB%B6%EF%BC%9F%3C%2FP%3E%3CP%3E%E6%89%80%E4%BB%A5%E6%88%91%E6%83%B3%E7%9A%84%E6%98%AF%EF%BC%8CMCUXpresso%20%E9%85%8D%E7%BD%AE%E5%B7%A5%E5%85%B7%E5%B7%B2%E7%BB%8F%E7%94%9F%E6%88%90%E4%BA%86%E9%9D%9E%E5%B8%B8%E5%A5%BD%E7%9A%84%20pin_mux.h%E5%A4%B4%E6%96%87%E4%BB%B6%E5%8C%85%E6%8B%AC%20PORT%20%E5%92%8C%20GPIO%20%E7%9A%84%E6%89%80%E6%9C%89%E7%AC%A6%E5%8F%B7%E3%80%82%E4%BE%8B%E5%A6%82%EF%BC%8C%E6%88%91%E7%9A%84%E7%BA%A2%E8%89%B2%20LED%20%E8%BF%9E%E6%8E%A5%E5%88%B0%E7%9A%84%20GPIO%EF%BC%9A%3C%2FP%3E%3CP%3E%3CEM%3E%23define%20BOARD_INITPINS_LED_RED_GPIO%20GPIO0%20%2F*!%26lt%3B%40brief%20GPIO%20%E5%A4%96%E8%AE%BE%E5%9F%BA%E6%8C%87%E9%92%88%20*%2F%3C%2FEM%3E%3C%2FP%3E%3CP%3E%E5%9B%A0%E6%AD%A4%E6%88%91%E6%83%B3%E7%94%9F%E6%88%90%E4%B8%80%E4%B8%AA%E5%8C%85%E5%90%AB%E4%B8%8E%20pin_mux.h%20%E4%B8%AD%E7%9B%B8%E5%90%8C%E7%AC%A6%E5%8F%B7%E7%9A%84%E9%99%84%E5%8A%A0%E5%A4%B4%E6%96%87%E4%BB%B6%EF%BC%8C%E4%BD%86%E5%B8%A6%E6%9C%89%E7%B1%BB%E5%9E%8B%E8%BD%AC%E6%8D%A2%EF%BC%9A%3C%2FP%3E%3CP%3E%3CEM%3E%23%E5%AE%9A%E4%B9%89LED_RED_PORT%EF%BC%88GPIO%3A%3APort*%EF%BC%89BOARD_INITPINS_LED_RED_GPIO%3C%2FEM%3E%3C%2FP%3E%3CP%3E%E6%88%91%E6%8B%85%E5%BF%83%20MCUXpresso%20%E9%85%8D%E7%BD%AE%E5%B7%A5%E5%85%B7%E4%B8%8D%E5%A4%9F%E7%81%B5%E6%B4%BB%E3%80%82%E4%BD%86%E6%98%AF%E6%82%A8%E8%AE%A4%E4%B8%BA%EF%BC%8C%E6%AF%8F%E6%AC%A1%E6%88%91%E5%9C%A8%20MCUXpresso%20%E9%85%8D%E7%BD%AE%E5%B7%A5%E5%85%B7%E4%B8%AD%E8%BF%90%E8%A1%8C%E4%BB%A3%E7%A0%81%E7%94%9F%E6%88%90%E5%99%A8%E6%97%B6%EF%BC%8C%E8%BF%98%E6%9C%89%E5%85%B6%E4%BB%96%E5%A5%BD%E7%9A%84%E6%96%B9%E6%B3%95%2F%E5%B7%A5%E5%85%B7%E5%8F%AF%E4%BB%A5%E7%94%9F%E6%88%90%E8%BF%99%E6%A0%B7%E7%9A%84%E5%A4%B4%E6%96%87%E4%BB%B6%E5%90%97%EF%BC%9F%3C%2FP%3E%3CP%3E%E6%9C%80%E5%A5%BD%E7%9A%84%EF%BC%8C%3CBR%20%2F%3E%20THE0%3C%2FP%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1980038%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E5%9B%9E%E5%A4%8D%EF%BC%9A%E5%8F%AF%E4%BB%A5%E6%B7%BB%E5%8A%A0%E9%A2%9D%E5%A4%96%E7%9A%84%E4%BB%A3%E7%A0%81%E7%94%9F%E6%88%90%E5%99%A8%E5%90%97%EF%BC%9F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1980038%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%2F229957%22%20target%3D%22_blank%22%3E%40Harry_Zhang%3C%2FA%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E6%88%91%E8%AE%A4%E4%B8%BA%E4%BD%BF%E7%94%A8%E5%90%8E%E5%A4%84%E7%90%86%E8%84%9A%E6%9C%AC%E7%9A%84%E6%96%B9%E6%B3%95%E5%BA%94%E8%AF%A5%E6%95%88%E6%9E%9C%E5%BE%88%E5%A5%BD%E3%80%82%3C%2FP%3E%3CP%3EBR%3CBR%20%2F%3E%20The0%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1980032%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E5%9B%9E%E5%A4%8D%EF%BC%9A%E5%8F%AF%E4%BB%A5%E6%B7%BB%E5%8A%A0%E9%A2%9D%E5%A4%96%E7%9A%84%E4%BB%A3%E7%A0%81%E7%94%9F%E6%88%90%E5%99%A8%E5%90%97%EF%BC%9F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1980032%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%2F242345%22%20target%3D%22_blank%22%3E%40The0%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%E6%82%A8%E8%AF%B4%E5%BE%97%E5%AF%B9%EF%BC%8CMCUXpresso%20%E9%85%8D%E7%BD%AE%E5%B7%A5%E5%85%B7%E6%B2%A1%E6%9C%89%E5%86%85%E7%BD%AE%E7%81%B5%E6%B4%BB%E6%80%A7%E6%9D%A5%E7%94%9F%E6%88%90%E9%A2%9D%E5%A4%96%E7%9A%84%E5%AE%9A%E5%88%B6.c%E6%88%96%20.h%E6%96%87%E4%BB%B6%E5%85%B7%E6%9C%89%E6%82%A8%E6%89%80%E6%8F%8F%E8%BF%B0%E7%9A%84%E4%BF%AE%E6%94%B9%E7%B1%BB%E5%9E%8B%EF%BC%8C%E4%BE%8B%E5%A6%82%E6%B7%BB%E5%8A%A0%E7%B1%BB%E5%9E%8B%E8%BD%AC%E6%8D%A2%E6%88%96%E5%9F%BA%E4%BA%8E%20pin_mux.h%20%E4%B8%AD%E7%9A%84%E7%AC%A6%E5%8F%B7%E7%9A%84%E9%99%84%E5%8A%A0%E7%AC%A6%E5%8F%B7%E3%80%82%E4%BD%86%E6%98%AF%EF%BC%8C%E6%82%A8%E4%BB%8D%E7%84%B6%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%E8%AE%BE%E7%BD%AE%E5%9C%A8%E4%BB%A3%E7%A0%81%E7%94%9F%E6%88%90%E5%90%8E%E8%BF%90%E8%A1%8C%E7%9A%84%E8%87%AA%E5%AE%9A%E4%B9%89%E5%90%8E%E5%A4%84%E7%90%86%E8%84%9A%E6%9C%AC%E6%9D%A5%E5%AE%9E%E7%8E%B0%E8%BF%99%E4%B8%80%E7%82%B9%E3%80%82%3C%2FP%3E%0A%3CP%3E%E8%BF%90%E8%A1%8C%20MCUXpresso%20%E9%85%8D%E7%BD%AE%E5%B7%A5%E5%85%B7%E5%90%8E%EF%BC%8C%E4%BD%BF%E7%94%A8%E8%84%9A%E6%9C%AC%EF%BC%88Python%E3%80%81Bash%20%E7%AD%89%EF%BC%89%E8%AF%BB%E5%8F%96%E7%94%9F%E6%88%90%E7%9A%84%20pin_mux.h%E6%96%87%E4%BB%B6%EF%BC%8C%E6%8F%90%E5%8F%96%E7%9B%B8%E5%85%B3%E7%AC%A6%E5%8F%B7%EF%BC%8C%E5%B9%B6%E5%88%9B%E5%BB%BA%E9%99%84%E5%8A%A0%E5%A4%B4%E6%96%87%E4%BB%B6%EF%BC%88custom_pin_mux.h%E6%88%96%E7%B1%BB%E4%BC%BC%EF%BC%89%E3%80%82%3C%2FP%3E%0A%3CP%3EBR%3C%2FP%3E%0A%3CP%3E%E6%82%AC%E6%8C%82%3C%2FP%3E%3C%2FLINGO-BODY%3E