問題タブ [armclang]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
599 参照

stm32 - Breakpoint instruction inside ARM v6 compiler startup code

I am developping a new project for STM32 on Keil MDK 5.28, using ARM compiler V6 (the "new" armclang compiler). It's the first time I'm using armclang.

My reset handler is calling the __main symbol. As expected, this is executing some startup code of the Keil C library and then is calling my main function (later on, I will remove the calls to the startup code but right now I want to understand the issue).

The problem is the following: there is a BKPT instruction inside one of the C library function (_sys_open). I didn't set this breakpoint and it doesn't appear in the breakpoint list. I cannot remove it (tried obviously to rebuild everything). So I cannot start a debug session without breaking at this location.

I also tried to uncheck the option "Run to Main".

enter image description here

Do you know where this BKPT instruction comes from and how to remove it ?

0 投票する
1 に答える
42 参照

arm - armclang/armcc は copy-elision のオプションを提供しますか?

copy-elision の gcc に関するドキュメントをいくつか読みましたが、copy-elision を無効にするオプション「-fno-elide-constructors」が提供されています。アームもこれをサポートしているかどうか疑問に思っています。アームのユーザーガイドとリファレンスガイドで答えが見つかりませんでした...

0 投票する
1 に答える
57 参照

c++ - armclang は必要なすべてのレジスタを属性 ("IRQ") でスタックに保存しますか?

Keil ARMCompiler 6.15 (armclang.exe) を使用していますが、生成されたアセンブラ コードの正確性に疑問があります。属性 'interrupt("IRQ")' が無視されているようです。私にとっては、r1 と r2 もスタックに保存する必要があります。「使用済み」属性を削除すると、完全な機能が削除されます(最適化)。

私が犯した過ちや忘れたことを誰かに見られますか?

もともとコードは gcc 用に作成されました。

割り込みルーチンに使用される属性:

C++ コード:

アセンブラー コード: