S32K1 weak cannot be overridden by strong definitions.

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

S32K1 weak cannot be overridden by strong definitions.

1,131 次查看
wuxianlong
Senior Contributor I

Hi,NXP

We encountered an issue where a weakly defined interrupt handling function could not be replaced by a strong definition in the library. When we compiled the SDK into a static library and added it to the APP, we found that the CAN0 interrupt handling function could not be strongly defined.
The IDE I am using is S32DS ARM 2.2, the SDK version is 3.0.0, and the compiler version is gcc 6.3.
Below is the situation of my Demo test:
① If I keep the weakly defined interrupt handling functions in the startup, the content of the interrupt vector table will be the weakly defined functions.
image.pngimage.png
② If I comment out the weakly defined interrupt handling functions in the startup, the CAN interrupt handling function can be correctly defined.
image.pngimage.png
What is the reason for this phenomenon? The source files of my test Demo and the files after compiling the static library are attached.
标记 (1)
0 项奖励
回复
4 回复数

1,100 次查看
Senlent
NXP TechSupport
NXP TechSupport

Hi@wuxianlong

I didn't fully understand your question.

I tested the project you provided, "S32K146_UJA1169_SDK300.zip," and followed your method to disable "def_irq_handler CAN0_ORed_0_15_MB_IRQHandler."

The compilation results for both were exactly the same, with no difference whatsoever.

 

0 项奖励
回复

1,095 次查看
wuxianlong
Senior Contributor I

Hi,@Senlent 

Thanks for your support. The problem that a weak definition cannot be replaced by a strong definition only occurs when using the static library file .a and using a strong definition in the static library.

Based on S32K146_UJA1169_SDK300, I compiled the SDK into a static library (.a file) and loaded it into the application, such as my S32K146_UJA1169_Lib_SDK300. Then I can reproduce the problem. The CAN0_ORed_0_15_MB_IRQHandler will not be loaded into the interrupt vector table unless I comment out the weak definition.

Best Regards,
xianlong

0 项奖励
回复

1,090 次查看
Senlent
NXP TechSupport
NXP TechSupport

Hi@wuxianlong

This is probably related to some compiler settings. I will deal with your problem when I have time; it's not an urgent issue.

0 项奖励
回复

1,128 次查看
wuxianlong
Senior Contributor I
What is the reason for this phenomenon? The source files of my test Demo and the files after compiling the static library are attached.
 
 
 
 
 
 
 
 
 
0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-2348835%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ES32K1%20%E5%BC%B1%E5%AE%9A%E4%B9%89%E4%B8%8D%E8%83%BD%E8%A2%AB%E5%BC%BA%E5%AE%9A%E4%B9%89%E8%A6%86%E7%9B%96%E3%80%82%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2348835%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%EF%BC%8C%E6%81%A9%E6%99%BA%E6%B5%A6%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CDIV%20class%3D%22%22%3E%E6%88%91%E4%BB%AC%E9%81%87%E5%88%B0%E8%BF%87%E8%BF%99%E6%A0%B7%E4%B8%80%E4%B8%AA%E9%97%AE%E9%A2%98%EF%BC%8C%E5%8D%B3%E4%B8%80%E4%B8%AA%E5%BC%B1%E5%AE%9A%E4%B9%89%E7%9A%84%E4%B8%AD%E6%96%AD%E5%A4%84%E7%90%86%E5%87%BD%E6%95%B0%E6%97%A0%E6%B3%95%E8%A2%AB%E5%BA%93%E4%B8%AD%E7%9A%84%E5%BC%BA%E5%AE%9A%E4%B9%89%E6%89%80%E6%9B%BF%E4%BB%A3%E3%80%82%E5%BD%93%E6%88%91%E4%BB%AC%E5%B0%86%20SDK%20%E7%BC%96%E8%AF%91%E6%88%90%E9%9D%99%E6%80%81%E5%BA%93%E5%B9%B6%E5%B0%86%E5%85%B6%E6%B7%BB%E5%8A%A0%E5%88%B0%20APP%20%E6%97%B6%EF%BC%8C%E5%8F%91%E7%8E%B0%20CAN0%20%E4%B8%AD%E6%96%AD%E5%A4%84%E7%90%86%E5%87%BD%E6%95%B0%E6%97%A0%E6%B3%95%E8%BF%9B%E8%A1%8C%E5%BC%BA%E5%AE%9A%E4%B9%89%E3%80%82%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%E6%88%91%E4%BD%BF%E7%94%A8%E7%9A%84%20IDE%20%E6%98%AF%20S32DS%20ARM%202.2%EF%BC%8CSDK%20%E7%89%88%E6%9C%AC%E6%98%AF%203.0.0%EF%BC%8C%E7%BC%96%E8%AF%91%E5%99%A8%E7%89%88%E6%9C%AC%E4%B8%BA%20gcc%206.3%E3%80%82%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%E4%BB%A5%E4%B8%8B%E6%98%AF%E6%88%91%E7%9A%84%20Demo%20%E6%B5%8B%E8%AF%95%E6%83%85%E5%86%B5%EF%BC%9A%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%E5%A6%82%E6%9E%9C%E5%9C%A8%E5%90%AF%E5%8A%A8%E6%97%B6%E4%BF%9D%E7%95%99%E5%BC%B1%E5%AE%9A%E4%B9%89%E7%9A%84%E4%B8%AD%E6%96%AD%E5%A4%84%E7%90%86%E5%87%BD%E6%95%B0%EF%BC%8C%E4%B8%AD%E6%96%AD%E5%90%91%E9%87%8F%E8%A1%A8%E7%9A%84%E5%86%85%E5%AE%B9%E5%B0%86%E6%98%AF%E5%BC%B1%E5%AE%9A%E4%B9%89%E7%9A%84%E5%87%BD%E6%95%B0%E3%80%82%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22image.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22image.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F381871iBDCAA5F5CA1E4B86%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22image.png%22%20alt%3D%22image.png%22%20%2F%3E%3Cspan%20class%3D%22lia-inline-image-caption%22%20onclick%3D%22event.preventDefault()%3B%22%3Eimage.png%3C%2Fspan%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%E2%91%A1%20%E5%A6%82%E6%9E%9C%E6%88%91%E6%B3%A8%E9%87%8A%E6%8E%89%E5%90%AF%E5%8A%A8%E6%97%B6%E5%AE%9A%E4%B9%89%E8%BE%83%E5%BC%B1%E7%9A%84%E4%B8%AD%E6%96%AD%E5%A4%84%E7%90%86%E5%87%BD%E6%95%B0%EF%BC%8C%E5%B0%B1%E5%8F%AF%E4%BB%A5%E6%AD%A3%E7%A1%AE%E5%AE%9A%E4%B9%89%20CAN%20%E4%B8%AD%E6%96%AD%E5%A4%84%E7%90%86%E5%87%BD%E6%95%B0%E3%80%82%3CBR%20%2F%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22image.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22image.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F381872i29B60054FF568AA8%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22image.png%22%20alt%3D%22image.png%22%20%2F%3E%3Cspan%20class%3D%22lia-inline-image-caption%22%20onclick%3D%22event.preventDefault()%3B%22%3Eimage.png%3C%2Fspan%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%E9%80%A0%E6%88%90%E8%BF%99%E7%A7%8D%E7%8E%B0%E8%B1%A1%E7%9A%84%E5%8E%9F%E5%9B%A0%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F%E6%B5%8B%E8%AF%95%20Demo%20%E7%9A%84%E6%BA%90%E6%96%87%E4%BB%B6%E5%92%8C%E7%BC%96%E8%AF%91%E9%9D%99%E6%80%81%E5%BA%93%E5%90%8E%E7%9A%84%E6%96%87%E4%BB%B6%E9%99%84%E5%90%8E%E3%80%82%3C%2FDIV%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2349055%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20S32K1%20weak%20cannot%20be%20overridden%20by%20strong%20definitions.%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2349055%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%3CSPAN%3E%40%3C%2FSPAN%3E%E6%AD%A6%E4%BB%99%E9%BE%99%3C%2FP%3E%0A%3CP%3E%E8%BF%99%E5%8F%AF%E8%83%BD%E4%B8%8E%E7%BC%96%E8%AF%91%E5%99%A8%E7%9A%84%E6%9F%90%E4%BA%9B%E8%AE%BE%E7%BD%AE%E6%9C%89%E5%85%B3%E3%80%82%E6%88%91%E6%9C%89%E6%97%B6%E9%97%B4%E5%B0%B1%E4%BC%9A%E5%A4%84%E7%90%86%E4%BD%A0%E7%9A%84%E9%97%AE%E9%A2%98%EF%BC%8C%E8%BF%99%E4%B8%8D%E6%98%AF%E4%B8%80%E4%B8%AA%E7%B4%A7%E6%80%A5%E9%97%AE%E9%A2%98%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2349013%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20S32K1%20weak%20cannot%20be%20overridden%20by%20strong%20definitions.%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2349013%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%2F188029%22%20target%3D%22_blank%22%3E%EF%BC%8C%40Senlent%3C%2FA%3E%20%3CBR%20%2F%3E%3CBR%20%2F%3E%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E6%94%AF%E6%8C%81%E3%80%82%E5%8F%AA%E6%9C%89%E5%9C%A8%E4%BD%BF%E7%94%A8%E9%9D%99%E6%80%81%E5%BA%93%E6%96%87%E4%BB%B6%20.a%20%E6%97%B6%EF%BC%8C%E6%89%8D%E4%BC%9A%E5%87%BA%E7%8E%B0%E5%BC%B1%E5%AE%9A%E4%B9%89%E4%B8%8D%E8%83%BD%E8%A2%AB%E5%BC%BA%E5%AE%9A%E4%B9%89%E6%9B%BF%E6%8D%A2%E7%9A%84%E9%97%AE%E9%A2%98%E3%80%82%E5%B9%B6%E5%9C%A8%E9%9D%99%E6%80%81%E5%BA%93%E4%B8%AD%E4%BD%BF%E7%94%A8%E5%BC%BA%E5%AE%9A%E4%B9%89%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E5%9F%BA%E4%BA%8E%20S32K146_UJA1169_SDK300%EF%BC%8C%E6%88%91%E5%B0%86%20SDK%20%E7%BC%96%E8%AF%91%E6%88%90%E9%9D%99%E6%80%81%E5%BA%93%EF%BC%88.a%20%E6%96%87%E4%BB%B6%EF%BC%89%E5%B9%B6%E5%8A%A0%E8%BD%BD%E5%88%B0%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E4%B8%AD%EF%BC%8C%E4%BE%8B%E5%A6%82%E6%88%91%E7%9A%84%20S32K146_UJA1169_Lib_SDK300%E3%80%82%E8%BF%99%E6%A0%B7%E6%88%91%E5%B0%B1%E8%83%BD%E9%87%8D%E7%8E%B0%E9%97%AE%E9%A2%98%E4%BA%86%E3%80%82%E9%99%A4%E9%9D%9E%E6%88%91%E6%B3%A8%E9%87%8A%E6%8E%89%E5%BC%B1%E5%AE%9A%E4%B9%89%EF%BC%8C%E5%90%A6%E5%88%99%20CAN0_ORed_0_15_MB_IRQHandler%20%E4%B8%8D%E4%BC%9A%E8%A2%AB%E5%8A%A0%E8%BD%BD%E5%88%B0%E4%B8%AD%E6%96%AD%E5%90%91%E9%87%8F%E8%A1%A8%E4%B8%AD%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E6%95%AC%E4%B8%8A%EF%BC%8C%3CBR%20%2F%3Exianlong%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2348983%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20S32K1%20weak%20cannot%20be%20overridden%20by%20strong%20definitions.%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2348983%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%3CSPAN%3E%40%3C%2FSPAN%3E%E6%AD%A6%E4%BB%99%E9%BE%99%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%E6%88%91%E6%B2%A1%E6%9C%89%E5%AE%8C%E5%85%A8%E7%90%86%E8%A7%A3%E4%BD%A0%E7%9A%84%E9%97%AE%E9%A2%98%E3%80%82%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%E6%88%91%E6%B5%8B%E8%AF%95%E4%BA%86%E6%82%A8%E6%8F%90%E4%BE%9B%E7%9A%84%E9%A1%B9%E7%9B%AE%22S32K146_UJA1169_SDK300.zip%2C%22%20%E5%B9%B6%E6%8C%89%E7%85%A7%E6%82%A8%E7%9A%84%E6%96%B9%E6%B3%95%E7%A6%81%E7%94%A8%22def_irq_handler%20CAN0_ORed_0_15_MB_IRQHandler%E3%80%82%22%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%E4%B8%A4%E8%80%85%E7%9A%84%E7%BC%96%E8%AF%91%E7%BB%93%E6%9E%9C%E5%AE%8C%E5%85%A8%E7%9B%B8%E5%90%8C%EF%BC%8C%E6%B2%A1%E6%9C%89%E4%BB%BB%E4%BD%95%E5%B7%AE%E5%88%AB%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%0A%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2348837%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20S32K1%20weak%20cannot%20be%20overridden%20by%20strong%20definitions.%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2348837%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%E9%80%A0%E6%88%90%E8%BF%99%E7%A7%8D%E7%8E%B0%E8%B1%A1%E7%9A%84%E5%8E%9F%E5%9B%A0%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F%E6%B5%8B%E8%AF%95%20Demo%20%E7%9A%84%E6%BA%90%E6%96%87%E4%BB%B6%E5%92%8C%E7%BC%96%E8%AF%91%E9%9D%99%E6%80%81%E5%BA%93%E5%90%8E%E7%9A%84%E6%96%87%E4%BB%B6%E9%99%84%E5%90%8E%E3%80%82%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%26nbsp%3B%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%26nbsp%3B%3C%2FDIV%3E%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%26nbsp%3B%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FLINGO-BODY%3E