Building the RTD with GCC Space Optimization

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

Building the RTD with GCC Space Optimization

360 次查看
greenwichmeanie
Contributor III

We're using the NXP GCC 11.4 compiler and have created our own CMake build. The compilation flags were lifted from the Design Studio project. It builds and runs but if we remove the `-Os` flag we see hard faults. I wouldn't expect the removal of an optimization to change the behavior of the code (let along cause it to crash). I'd like to understand why this is. We have a functional safety application and it'll be important to understand and document this.

Thanks.

0 项奖励
回复
3 回复数

311 次查看
greenwichmeanie
Contributor III

Thanks VaneB. Point taken. We'll take a look at the release notes but I have no reason not to believe you.

For what it's worth we tracked this down. If a couple of specific optimization flags are removed (from the collection included when using -Os) then the variable below is not initialized by the C runtime initialization. It remains set to null by the time `main()` is reached (which is obviously a problem). Happens with GCC 10.2 and 11.4. If we halt the debugger and punch that address in then things are fine.

That assignment was happening before the definition of Clock_Ip_CodeInRamSetFlashWaitStates. If we move the assignment after all is well.

#ifdef CLOCK_IP_HAS_FLASH_WAIT_STATES
static SetFlashWaitStatesCallbackType Clock_Ip_SetFlashWaitStatesCallback = &Clock_Ip_CodeInRamSetFlashWaitStates;   /* Set Flash Wait States callback */
#endif

281 次查看
VaneB
NXP TechSupport
NXP TechSupport

Hi @greenwichmeanie 

Thank you for sharing your findings.

0 项奖励
回复

326 次查看
VaneB
NXP TechSupport
NXP TechSupport

Hi @greenwichmeanie 

Please note that none of the currently available RTD versions for S32K devices (S32K1 and S32K3) support NXP GCC 11.4. Additionally, each RTD release note specifies the optimization level used during development and testing; most RTD releases have been validated with -Os/-Osize.

Therefore, we cannot guarantee the functionality of the drivers when using different optimization levels or toolchains than those originally tested. Furthermore, any modifications to the RTD fall outside the scope of our support.

 

BR, VaneB

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-2204641%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E5%88%A9%E7%94%A8%20GCC%20%E7%A9%BA%E9%97%B4%E4%BC%98%E5%8C%96%E6%9E%84%E5%BB%BA%20RTD%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2204641%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%88%91%E4%BB%AC%E6%AD%A3%E5%9C%A8%E4%BD%BF%E7%94%A8%E6%81%A9%E6%99%BA%E6%B5%A6%E7%9A%84GCC%2011.4%E7%BC%96%E8%AF%91%E5%99%A8%EF%BC%8C%E5%B9%B6%E5%88%9B%E5%BB%BA%E4%BA%86%E8%87%AA%E5%B7%B1%E7%9A%84CMake%E7%89%88%E6%9C%AC%E3%80%82%E7%BC%96%E8%AF%91%E6%97%97%E5%B8%9C%E5%8F%96%E8%87%AA%E8%AE%BE%E8%AE%A1%E5%B7%A5%E4%BD%9C%E5%AE%A4%E9%A1%B9%E7%9B%AE%E3%80%82%E5%AE%83%E5%8F%AF%E4%BB%A5%E7%89%88%E6%9C%AC%E5%B9%B6%E8%BF%90%E8%A1%8C%EF%BC%8C%E4%BD%86%E6%98%AF%E5%A6%82%E6%9E%9C%E6%88%91%E4%BB%AC%E5%88%A0%E9%99%A4%20%60-Os%60%20%E6%A0%87%E5%BF%97%EF%BC%8C%E6%88%91%E4%BB%AC%E4%BC%9A%E7%9C%8B%E5%88%B0%E7%A1%AC%E6%95%85%E9%9A%9C%E3%80%82%E6%88%91%E4%B8%8D%E4%BC%9A%E6%8C%87%E6%9C%9B%E5%8F%96%E6%B6%88%E4%BC%98%E5%8C%96%E4%BC%9A%E6%94%B9%E5%8F%98%E4%BB%A3%E7%A0%81%E7%9A%84%E8%A1%8C%E4%B8%BA%EF%BC%88%E6%9B%B4%E4%B8%8D%E4%BC%9A%E5%AF%BC%E8%87%B4%E5%B4%A9%E6%BA%83%EF%BC%89%E3%80%82%E6%88%91%E6%83%B3%E7%9F%A5%E9%81%93%E8%BF%99%E6%98%AF%E4%B8%BA%E4%BB%80%E4%B9%88%E3%80%82%E6%88%91%E4%BB%AC%E6%9C%89%E4%B8%80%E4%B8%AA%E5%8A%9F%E8%83%BD%E5%AE%89%E5%85%A8%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%EF%BC%8C%E4%BA%86%E8%A7%A3%E5%92%8C%E8%AE%B0%E5%BD%95%E8%BF%99%E4%B8%80%E7%82%B9%E5%BE%88%E9%87%8D%E8%A6%81%E3%80%82%3C%2FP%3E%3CP%3E%E8%B0%A2%E8%B0%A2%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2205346%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Building%20the%20RTD%20with%20GCC%20Space%20Optimization%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2205346%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E5%97%A8%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F251884%22%20target%3D%22_blank%22%3E%EF%BC%8C%40%E6%A0%BC%E6%9E%97%E5%A8%81%E6%B2%BB%E6%88%91%E5%A6%AE%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%E6%84%9F%E8%B0%A2%E6%82%A8%E5%88%86%E4%BA%AB%E6%82%A8%E7%9A%84%E5%8F%91%E7%8E%B0%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2204743%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Building%20the%20RTD%20with%20GCC%20Space%20Optimization%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2204743%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E8%B0%A2%E8%B0%A2%20VaneB%E3%80%82%E6%9C%89%E9%81%93%E7%90%86%E3%80%82%E6%88%91%E4%BB%AC%E4%BC%9A%E7%9C%8B%E4%B8%80%E4%B8%8B%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E%EF%BC%8C%E4%BD%86%E6%88%91%E6%B2%A1%E6%9C%89%E7%90%86%E7%94%B1%E4%B8%8D%E7%9B%B8%E4%BF%A1%E4%BD%A0%E3%80%82%3C%2FP%3E%3CP%3E%E6%97%A0%E8%AE%BA%E5%A6%82%E4%BD%95%EF%BC%8C%E6%88%91%E4%BB%AC%E6%89%BE%E5%88%B0%E4%BA%86%E8%BF%99%E4%B8%AA%E3%80%82%E5%A6%82%E6%9E%9C%E5%88%A0%E9%99%A4%E4%BA%86%E5%87%A0%E4%B8%AA%E7%89%B9%E5%AE%9A%E7%9A%84%E4%BC%98%E5%8C%96%E6%A0%87%E5%BF%97%EF%BC%88%E4%BB%8E%E4%BD%BF%E7%94%A8%20-Os%20%E6%97%B6%E5%8C%85%E5%90%AB%E7%9A%84%E9%9B%86%E5%90%88%E4%B8%AD%E5%88%A0%E9%99%A4%EF%BC%89%EF%BC%8C%E9%82%A3%E4%B9%88%E4%B8%8B%E9%9D%A2%E7%9A%84%E5%8F%98%E9%87%8F%E5%B0%B1%E4%B8%8D%E4%BC%9A%E8%A2%AB%20C%20%E8%BF%90%E8%A1%8C%E6%97%B6%E5%88%9D%E5%A7%8B%E5%8C%96%E3%80%82%E5%88%B0%E8%BE%BE%20%60main()%60%20%E6%97%B6%EF%BC%8C%E5%AE%83%E4%BB%8D%E8%A2%AB%E8%AE%BE%E7%BD%AE%E4%B8%BA%E7%A9%BA%EF%BC%88%E8%BF%99%E6%98%BE%E7%84%B6%E6%98%AF%E4%B8%AA%E9%97%AE%E9%A2%98%EF%BC%89%E3%80%82%E5%9C%A8%E4%BD%BF%E7%94%A8%20GCC%2010.2%20%E5%92%8C%2011.4%20%E6%97%B6%E5%87%BA%E7%8E%B0%E8%BF%99%E7%A7%8D%E6%83%85%E5%86%B5%E3%80%82%E5%A6%82%E6%9E%9C%E6%88%91%E4%BB%AC%E5%81%9C%E6%AD%A2%E8%B0%83%E8%AF%95%E5%99%A8%E5%B9%B6%E8%BE%93%E5%85%A5%E8%AF%A5%E5%9C%B0%E5%9D%80%EF%BC%8C%E9%82%A3%E4%B9%88%E4%B8%80%E5%88%87%E9%83%BD%E4%BC%9A%E5%A5%BD%E8%B5%B7%E6%9D%A5%E3%80%82%3C%2FP%3E%3CP%3E%E8%AF%A5%E8%B5%8B%E5%80%BC%E5%8F%91%E7%94%9F%E5%9C%A8%3CSPAN%3EClock_Ip_CodeInRamSetFlashWaitStates%3C%2FSPAN%3E%E5%AE%9A%E4%B9%89%E4%B9%8B%E5%89%8D%E3%80%82%E5%A6%82%E6%9E%9C%E6%88%91%E4%BB%AC%E5%B0%86%E8%B5%8B%E5%80%BC%E7%A7%BB%E5%88%B0%E5%90%8E%E9%9D%A2%EF%BC%8C%E4%B8%80%E5%88%87%E9%83%BD%E4%BC%9A%E5%A5%BD%E8%B5%B7%E6%9D%A5%E3%80%82%3C%2FP%3E%3CBLOCKQUOTE%3E%3CP%3E%3CSPAN%20class%3D%22%22%3E%23ifdef%20CLOCK_IP_HAS_FLASH_WAIT_STATES%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%E9%9D%99%E6%80%81%3C%2FSPAN%3E%3CSPAN%3ESetFlashWaitStatesCallbackType%20Clock_Ip_SetFlashWaitStatesCallback%20%3D%26amp%3BClock_Ip_CodeInRamSetFlashWaitStates%EF%BC%9B%20%20%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%2F*%20%E8%AE%BE%E7%BD%AE%E9%97%AA%E5%AD%98%E7%AD%89%E5%BE%85%E7%8A%B6%E6%80%81%E5%9B%9E%E8%B0%83%20*%2F%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%23endif%3C%2FSPAN%3E%3C%2FP%3E%3C%2FBLOCKQUOTE%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2204697%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Building%20the%20RTD%20with%20GCC%20Space%20Optimization%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2204697%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E5%97%A8%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F251884%22%20target%3D%22_blank%22%3E%EF%BC%8C%40%E6%A0%BC%E6%9E%97%E5%A8%81%E6%B2%BB%E6%88%91%E5%A6%AE%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%E8%AF%B7%E6%B3%A8%E6%84%8F%EF%BC%8C%E7%9B%AE%E5%89%8D%E5%8F%AF%E7%94%A8%E4%BA%8E%20S32K%20%E8%AE%BE%E5%A4%87%EF%BC%88S32K1%20%E5%92%8C%20S32K3%EF%BC%89%E7%9A%84%20RTD%20%E7%89%88%E6%9C%AC%E5%9D%87%E4%B8%8D%E6%94%AF%E6%8C%81%E6%81%A9%E6%99%BA%E6%B5%A6%20GCC%2011.4%E3%80%82%E6%AD%A4%E5%A4%96%EF%BC%8C%E6%AF%8F%E4%B8%AA%20RTD%20%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E%E9%83%BD%E6%8C%87%E5%AE%9A%E4%BA%86%E5%BC%80%E5%8F%91%E5%92%8C%E6%B5%8B%E8%AF%95%E6%9C%9F%E9%97%B4%E4%BD%BF%E7%94%A8%E7%9A%84%E4%BC%98%E5%8C%96%E7%BA%A7%E5%88%AB%EF%BC%9B%E5%A4%A7%E5%A4%9A%E6%95%B0%20RTD%20%E7%89%88%E6%9C%AC%E5%B7%B2%E9%80%9A%E8%BF%87-Os%2F-Osize%20%E9%AA%8C%E8%AF%81%E3%80%82%3C%2FP%3E%0A%3CP%3E%E5%9B%A0%E6%AD%A4%EF%BC%8C%E5%9C%A8%E4%BD%BF%E7%94%A8%E4%B8%8E%E6%9C%80%E5%88%9D%E6%B5%8B%E8%AF%95%E7%9A%84%E4%BC%98%E5%8C%96%E7%BA%A7%E5%88%AB%E6%88%96%E5%B7%A5%E5%85%B7%E9%93%BE%E4%B8%8D%E5%90%8C%E7%9A%84%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%E6%97%B6%EF%BC%8C%E6%88%91%E4%BB%AC%E6%97%A0%E6%B3%95%E4%BF%9D%E8%AF%81%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%E7%9A%84%E5%8A%9F%E8%83%BD%E3%80%82%E6%AD%A4%E5%A4%96%EF%BC%8C%E5%AF%B9%20RTD%20%E7%9A%84%E4%BB%BB%E4%BD%95%E4%BF%AE%E6%94%B9%E9%83%BD%E4%B8%8D%E5%9C%A8%E6%88%91%E4%BB%AC%E7%9A%84%E6%94%AF%E6%8C%81%E8%8C%83%E5%9B%B4%E4%B9%8B%E5%86%85%E3%80%82%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3EBR%E3%80%81VaneB%3C%2FP%3E%3C%2FLINGO-BODY%3E