問題タブ [iar]

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 に答える
967 参照

ide - IAR Embedded Workbench とカスタム ビルド

IAR Embedded Workbench で正常に動作するプロジェクトがあります。このプロジェクトには、別のツールによって自動的に作成されるソース ファイル (webpages.c) があります。このツールは、指定されたフォルダー webpages にあるファイルから始まるファイル webpages.c を作成します (したがって、一連のファイルから 1 つのファイルが生成されます)。

ビルド プロセスの前に、最後のビルド以降に webpages フォルダー内のファイルが変更された場合にツールが自動的に実行されるように、IAR でプロジェクトを構成したいと考えています。

ビルド前のステップを構成しましたが、Rebuild All で実際に機能します。しかし、webpages フォルダー内のファイルだけを変更して Make コマンドを発行すると、IDE はプロジェクトが最新であると判断し、ビルドを開始しません。

解決策はありますか?

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

c - IAR で通常のポインターを FLASH ポインターにキャストする

IAR は __flash キーワードを定義して、ポインターが次のように使用されたときに FLASH 空間を指していることを指定します。

通常のポインターを介して関数に渡されたアドレスを取得し、FLASH ポインターを使用して FLASH のそのアドレスを指そうとしています。移植性の理由から (他のアーキテクチャ間で)、通常のポインターを使用して渡すように制限されているため、関数の定義を変更することはできません。__flash 修飾子を「キャスト」する方法が見つからないようです。IAR にチケットを提出しましたが、今週末にこれをまとめようとしています。

誰にもアイデアはありますか?

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

checksum - xlinker の合計とチェックサムが一致しないのはなぜですか? (IAR 5.40)

IAR 5.40 と xlink を使用してチェックサムを生成しています。生成されたチェックサムと計算されたチェックサムが一致しません。私のメモリマップは次のようになります。

__checksumは次の場所にあります。FF7E - FF7F

IAR 提供のチェックサム計算機を使用しています。

とが一致しませんsum__checksum何かが足りないようです。助けが必要!!

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

stm32 - 省電力モードSTM32F205RG

STM32F205RGT6 Cortex-M3マイクロコントローラーを使用しており、IAREmbeddedWorkbenchでコーディングしています。

外部コンポーネントがSPI(STM32マイクロコントローラーはSPスレーブであることが意図されています)またはUSBを介して通信しようとする場合を除いて、ほとんどの場合、マイクロコントローラーを省電力モードに保つ予定です。

1つの外部コンポーネントはSPI(PB12-15)を介して接続され、PCはUSB(PA11-12)を介して接続されます。通信は正常に機能します-私はSPIとUSBの両方をテストしました。SPIとUSBのセットアップが完了したら、省電力関数を呼び出し、割り込みサービスルーチンの最後に同じ関数呼び出しを追加することにしました。PWR_EnterSTANDBYModeとPWR_EnterSTOPMode(stm32f2xx_pwr.h内)の両方を使用してみました。ただし、このような配置では、マイクロコントローラーとの通信(SPIまたはUSB)を確立できません。

構成する必要のある追加の何かがありますか(たとえば、どのピンがマイクロコントローラーをウェイクアップする必要があるか)?間違った機能を使用していますか?または間違ったヘッダーファイル?そのような場合に似た例を教えていただけますか(STのWebサイトで類似したものは見つかりませんでした)。

建設的なフィードバックを歓迎します。

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

jenkins - Jenkins、並列ジョブで Windows バッチ コマンドを実行できない

Jenkins の Windows バッチ コマンドから iarbuild を使用して個別のモジュールを構築する個別のワークスペースを持ついくつかのビルド ジョブがあります。これらのジョブを個別に実行すると問題なくビルドされますが、iarbuild を使用して 2 つの異なるジョブを並行して実行しようとすると (互いに 10 秒以内に開始)、少なくとも 1 つのビルドが失敗し、「ビルドが中止されました」というメッセージが表示されます。 .

それぞれの Jenkins ワークスペースで Windows コマンド プロンプトから直接同じ 2 つのビルドを並行して実行すると、正常にビルドされます。並行してビルドするのに問題があるのはJenkinsだけです。

この問題の原因を知っている人はいますか?

Jenkins の Windows バッチ コマンドは、ビルド ジョブ間でリソースを共有しますか?

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

c++ - 高度に最適化されたコードでのコードランタイムの計算

私はCortexM3に取り組んでおり、IAREWARMを使用しています。DWT_DYCCNTタイミング計算にはを使用します。問題は、(コンパイラオプションを使用して)速度を上げるためにコードを最適化すると、DWT_DYCCNTデバッグ中にの値が失われることです。コードはCおよびC++です。また、を使用して変数の値を出力しようとしましたprintfが、エラーも返されます。

変数を作ってみましたvolatileが、それも役に立ちません。

デバッグ中、私は常にunknown valueこの変数を取得します。

速度が最適化され、変数の値が失われないコードでコードのタイミングを計算する方法を知りたいです。コンパイラにこれらの変数の値を保持させるにはどうすればよいですか?

編集:

コードをデバッグするとき、の値countは「失われます」。

ありがとう

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

c - ステートメントスタイルによる実行/タイミングの違い

以下の2つのステートメントは、タイミング/実行によってどのように異なりますか。私はAT91CSAM7x512デバイスに取り組んでいます。以下の割り当てスタイルを変更することで、厄介なバグを解決することができました。

IAR Embedded WorkbenchVer4.41Aを使用しています。これは、コンパイラ指令またはその他の理由で発生していますか?



これは、スタックが@命令で処理される方法と関係がありますか?私はプロセッサに比較的慣れていないので、これについて支援が必要です。

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

inline-assembly - ARMインラインアセンブリでアドレスを取得する

ARM Cortex-M3用のIARコンパイラは、インラインアセンブリを提供します。特定の関数のアドレスをスタック上の場所に格納するにはどうすればよいですか?

Cコードはこれを望みます

これは一般的に機能しますが、リリースビルドのコンパイラによって最適化されます。インラインアセンブリでコーディングしようとしました

ldr命令はIARコンパイラによって受け入れられません。問題は、この命令にはレジスタとオフセットを備えたアドレッシングモードが必要なことです。関数の実際のアドレスは関数のtick後ろに格納され、ldr命令は実際のアドレスを保持するメモリ位置へのオフセットのみを保持します。分解は次のようになります。

tickスタック操作に使用するために、レジスタのアドレスをすぐに取得するにはどうすればよいですか?

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

c - Cコンパイラがこの条件付き代入を受け入れないのはなぜですか?

ビット単位の演算子で 2 進数を使用できないのはなぜですか?

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

c++ - エラー[Pe513]: タイプ「void *」の値は、タイプ「uint8_t *」のエンティティに割り当てることはできません

C プロジェクトを C++ に変換しようとしています。

C プロジェクトでは、C++ へのコンパイル中にこのエラーに対処しました。

エラー[Pe513]: タイプ「void *」の値は、タイプ「uint8_t *」のエンティティに割り当てることはできません

次のコードでは、このエラーが発生します。

これがCで何をしているのか、そしてそれをC ++に変換する方法を誰かが説明できますか?