問題タブ [armcc]

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 投票する
2 に答える
3405 参照

c++ - 例外をサポートしないC++コンパイラを使用していますか?

ホストされているmbedC ++コンパイラを使用してC++ライブラリをmbedに移植しています。これは、基本的にARMCCであり、実際には変更できない構成になっています。彼らが決定した構成オプションの1つは(何らかの理由で)、例外がサポートされていないことです。したがって、athrowとacatchはコンパイラエラーを生成します。

例外なく標準C++ライブラリをどの程度正確に使用できますか?ライブラリでいくつかのベクトルを使用しています。push_back関数が実際に成功したかどうかはどうすればわかりますか?例外が発生したかどうかを知るための標準的な方法はありますか、exit(1)それとも単に何かをするだけですか?

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

time - armcc (keil uVision4): RTC から時間を返すために time() を取得する方法は?

私は、無料のツールを使用して Linux 上の組み込みシステムを操作することにかなり慣れている開発者です。今、私は Windows で Keil コンパイラを使用するプロジェクトに参加しています (armcc、uVision4... この分野の名前付けは少し混乱しています :)。

使用されるハードウェアにはリアルタイム クロックがありますが、常に I2C インターフェイス経由で直接アクセスされます。time()さまざまな理由 (主にコードの移植性) から、標準関数に接続したいと考えています。

どうすればこれを行うことができますか?

0 投票する
3 に答える
2294 参照

c++ - コンパイル エラー: 2574: の明示的な特殊化最初の使用の前に行う必要があります ()

armcc4.1 を使用してコードをコンパイルすると、次のエラーが報告されます。

"access/qnetworkrequest_p.h"、94 行目: エラー: #2574: クラス "QTypeInfo>" の明示的な特殊化は、最初の使用の前に行う必要があります ("../../include/QtCore/../.. /src/corelib/tools/qlist.h") Q_DECLARE_TYPEINFO(QNetworkHeadersPrivate::RawHeaderPair, Q_MOVABLE_TYPE);

しかし、このエラーを無効にするかバイパスする方法はありますか?

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

c - enum_is_int オプション

現在、arm env を使用して Intel x118 プラットフォームで作業しています。リンクに問題がないことを確認するには、このオプションを強制的に開く必要があることがわかりました。そうしないと、次のようなエラーが発生します。

--enum_is_intこのオプションが私のターゲットファイルに重大な影響を与えるかどうか、誰か教えてもらえますか?

さらに詳しい情報:

ARMに関するコメントを見つけました:

このオプションは、すべての列挙型のサイズを少なくとも 4 バイトに強制します。

このオプションはデフォルトでオフになっており、すべての列挙子の値を保持できる最小のデータ型が使用されます。

コマンド ラインで ARM Linux 構成ファイルを指定すると、このオプションはデフォルトでオンになります。

この--enum_is_intオプションは、一般的な使用にはお勧めできません。

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

gcc - 「armcc」コンパイラを使用して関数呼び出しをトレースする方法は?

以前はgcc -fdump-rtl-expandを使用-finstrument-functionsして関数呼び出しのトレースを行っていましたが、armccにはこの種の同様の機能がありますか?

gccの場合、次を使用します。

armccには同様のコンパイラ オプションがありますか? 私は同じものを試しましたが、うまくいかないようです:

0 投票する
2 に答える
1064 参照

arm - ARM - armcc で r9 レジスタを保存する方法

ARM AAPCS (ARM EABI) を読んで、見つけました: レジスタ r9 の役割はプラットフォーム固有です。仮想プラットフォームは、このレジスターに任意の役割を割り当てることができ、この使用法を文書化する必要があります。たとえば、位置に依存しないデータ モデルで静的ベース (SB) として指定することも、スレッド ローカル ストレージを使用する環境でスレッド レジスタ (TR) として指定することもできます。このレジスタを使用するには、保持されている値がすべての呼び出しで永続的であることが必要になる場合があります。このような特殊レジスターを必要としない仮想プラットフォームでは、r9 を追加の呼び出し先保存変数レジスター v6 として指定できます。

特定のアビオニクス プリエンプティブル OS の PID ホルダーとして r9 を使用したいのですが、それを保存する方法がわかりません。armcc C コンパイラは常にそれを変数レジスタとして使用するため、その値は常にアプリケーション SW によって変化します。

何か案が ?armcc で可能ですか?GCC ? ディアブ?...

助けてくれてありがとう。

よろしく

クリストフ

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

c - 埋め込まれたarmasmの即値を利用するCマクロ-armcc

私の質問に最も近いスレッドは、#defineマクロで#記号をエスケープすることですか?Cプリプロセッサを介してポンド/ハッシュを印刷する方法は?、しかし彼らは私の質問に正確に答えていません。より明確に言えば、2番目はarmccコンパイラでは機能しないようです。hashで定義されたシンボルではなく、hash4を出力するだけです。Chris Lutzは、2番目の投稿でこの機能にマクロを使用しようとすることを特に軽蔑していたので、おそらくこれはすべて一緒に間違った方法です。ただ一人よりももっと考えてほしいです。

問題は次のとおりです。マクロを利用して組み込みasmC関数を定義するマクロを作成しようとしています。私は、1つの問題を除いて、基本的にそれを実装しました...即時の価値を表現します。イミディエイト値の構文には、プリプロセッサの「文字列化」記号でもあるポンド記号が必要です(私は信じています)。では、Cマクロで#記号をエスケープすることは可能ですか?

この背後にある主な目的は、isrをpicoカーネルスレッドコンテキスト管理プロシージャでラップすることであり、その新しいプロシージャの関数ポインタは、最終的にはベクトル化された割り込みコントローラに渡されます。

コードは次のとおりです。

私はすべてを十分に詳細に説明したと思います。そうでない場合は、遠慮なく詳細をお尋ねください。

0 投票する
2 に答える
1483 参照

c - ARMCCは未使用の変数を削除します

ARMCCコンパイラを使用するKeilARMツールを使用して未使用のコードを削除しようとしています。以前、ARM用にGCCベースのコンパイラを使用しましたが、次の方法で未使用のコードを簡単に削除できました。

ARMCCの場合、同様のフラグが見つかりました

ただし、関数でのみ機能し、変数では機能しません。

ARMCCで未使用の変数を削除する方法はありますか?


編集:

たとえば、次のライブラリコードを指定します。

と私のプロジェクトコード:

コンパイラ/リンカーの最適化を使用してfunc2()とveryBigArrayを削除したいと思います。

0 投票する
0 に答える
769 参照

c - 割り込みハンドラの宣言: armcc と gcc

割り込みルーチン関数を宣言したい。

もともとarmcc用に次のように書かれていました:

私は次のように書いています:

次のエラーが表示されました:line XXX : Error: #1207-D: attribute "interrupt" ignored. 何が問題なのですか?

0 投票する
3 に答える
181 参照

c - このファイルをコンパイルしたコンパイラはどれですか?

私はgnugccとarmccを使用していくつかのCファイルをコンパイルしています。どのコンパイラがどのファイルをコンパイルしたかに関する情報を取得するにはどうすればよいですか?

例:test.cppはarmccまたはgnugccによってコンパイルされています。

makefileは非常に複雑で、どのコンパイラがどのファイルをコンパイルしたかを確認できるコマンドを探しています。

何か案は?