Announcements
IMPORTANT: Cypress Developer Community is transitioning on October 20th. To learn more and be prepared for this change, check out our latest announcement.
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Translations

MotooTanaka
Esteemed Contributor

Hi,

I'd like to translate KBA97708 into Japanese.

Please confirm to my work.

moto

Original KBA: KBA97708

Known Issues with GCC Link Time Optimization (LTO) Feature in PSoC ® Creator™ 3.1 - KBA97708

0 Likes
2 Replies
JennaJo
Moderator
Moderator

Hello, Tanaka-san

Approve to work.

Thanks,

jenna

Jenna Jo
MotooTanaka
Esteemed Contributor

Original KBA: KBA97708

Known Issues with GCC Link Time Optimization (LTO) Feature in PSoC ® Creator™ 3.1 - KBA97708

Translated by: https://community.cypress.com/people/MoTa_728816

==============================

タイトル:PSoC® Creator™ 3.1 GCC リンク タイム オプティマイゼーション (LTO) 機能における既知の問題 - KBA97708

ヴァージョン:*A

質問:

PSoC Creator プロジェクトで GCC LTO が機能しないのはなぜですか?

回答:

PSoC Creator (ヴァージョン 3.0およびそれ以降) に含まれている GCC は下記の説明のように GCC LTO 機能に関する問題の影響を受けやすいことが知られています。

デザインが GCC LTO を使用しているのかを確認する方法は?

  • PSoC Creator 3.1 で GCC ツールチェーンを使用していて、Build Settings ダイアログで下記の設定を行っている場合、問題が発生する可能性があります:

    Compiler > Optimization Link Time Optimization が “True”に設定されている 

    Linker > OptimizationOptimization Level が “None”以外に設定されている。

    注意:これらの設定は問題の発生を回避するために、PSoC Creator 3.2 からは削除されています。

  • どのヴァージョンであっても PSoC Creator を GCC ツールチェーンで使用していて、Build Settings ダイアログの Compiler または Linker > Command Line > Custom Flags でコマンド引数 -flto を手動で入力することにより、LTO を有効にしている場合、問題が発生する可能性があります。

問題 1 - GCC リンカエラー :  Referenced Symbol Defined in Discarded Section

デザインで GCC LTO が有効に設定されていると、リンカ(Linker)がデザインに誤った最適化を行う可能性があります。この場合下記のようなリンカエラーが発生します:

`_sbrk' referenced in section `.text._sbrk_r' of <path>/arm-none-eabi/lib/armv6-m\libg_s.a(lib_a-sbrkr.o): defined in discarded section `.text' of .\CortexM0\ARM_GCC_484\Release\Cm0Start.o (symbol from plugin)

注意:例え現状でデザインが問題なくコンパイルされていても、一見無関係な変更を行うことで問題が発生してしまう場合があります。

合わせて https://answers.launchpad.net/gcc-arm-embedded/+question/261316 もご参照ください。

問題 2 - PSoC 4/ PSoC 5LP 初期化時のハードフォールト

PSoC 4 または PSOC 5LP ファミリのデバイスを使用したデザインで GCC LTO を有効にしていると、CPU が初期化時にハードフォールトを発生する可能性があります。

これはクロスモジュール インラインと cy_boot コンポーネント 4.20 またはそれ以前のヴァージョンの ISR のリマッピングの衝突が原因です。

この問題を解決するには PSoC Creator 3.2 では cy_boot コンポーネントをヴァージョン 5.0 にアップデートしてください。

PSoC Creator 3.1 またはそれ以前のヴァージョンでこの問題を解決するのには、Generated_Source/<PSOC4 / PSoC5>/cy_boot/Cm0Start.c ファイルの LTO を無効にしてください。Workspace Explorer でこのファイルを右クリックして、Compiler の Link Time Optimization 設定を無効にしてください;“デザインが GCC LTO を使用しているのかを確認する方法は?”参照。

==============================

26-May-2020

moto

0 Likes
Top labels