問題タブ [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.
ide - IAR Embedded Workbench とカスタム ビルド
IAR Embedded Workbench で正常に動作するプロジェクトがあります。このプロジェクトには、別のツールによって自動的に作成されるソース ファイル (webpages.c) があります。このツールは、指定されたフォルダー webpages にあるファイルから始まるファイル webpages.c を作成します (したがって、一連のファイルから 1 つのファイルが生成されます)。
ビルド プロセスの前に、最後のビルド以降に webpages フォルダー内のファイルが変更された場合にツールが自動的に実行されるように、IAR でプロジェクトを構成したいと考えています。
ビルド前のステップを構成しましたが、Rebuild All で実際に機能します。しかし、webpages フォルダー内のファイルだけを変更して Make コマンドを発行すると、IDE はプロジェクトが最新であると判断し、ビルドを開始しません。
解決策はありますか?
c - IAR で通常のポインターを FLASH ポインターにキャストする
IAR は __flash キーワードを定義して、ポインターが次のように使用されたときに FLASH 空間を指していることを指定します。
通常のポインターを介して関数に渡されたアドレスを取得し、FLASH ポインターを使用して FLASH のそのアドレスを指そうとしています。移植性の理由から (他のアーキテクチャ間で)、通常のポインターを使用して渡すように制限されているため、関数の定義を変更することはできません。__flash 修飾子を「キャスト」する方法が見つからないようです。IAR にチケットを提出しましたが、今週末にこれをまとめようとしています。
誰にもアイデアはありますか?
checksum - xlinker の合計とチェックサムが一致しないのはなぜですか? (IAR 5.40)
IAR 5.40 と xlink を使用してチェックサムを生成しています。生成されたチェックサムと計算されたチェックサムが一致しません。私のメモリマップは次のようになります。
__checksum
は次の場所にあります。FF7E - FF7F
IAR 提供のチェックサム計算機を使用しています。
とが一致しませんsum
。__checksum
何かが足りないようです。助けが必要!!
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サイトで類似したものは見つかりませんでした)。
建設的なフィードバックを歓迎します。
jenkins - Jenkins、並列ジョブで Windows バッチ コマンドを実行できない
Jenkins の Windows バッチ コマンドから iarbuild を使用して個別のモジュールを構築する個別のワークスペースを持ついくつかのビルド ジョブがあります。これらのジョブを個別に実行すると問題なくビルドされますが、iarbuild を使用して 2 つの異なるジョブを並行して実行しようとすると (互いに 10 秒以内に開始)、少なくとも 1 つのビルドが失敗し、「ビルドが中止されました」というメッセージが表示されます。 .
それぞれの Jenkins ワークスペースで Windows コマンド プロンプトから直接同じ 2 つのビルドを並行して実行すると、正常にビルドされます。並行してビルドするのに問題があるのはJenkinsだけです。
この問題の原因を知っている人はいますか?
Jenkins の Windows バッチ コマンドは、ビルド ジョブ間でリソースを共有しますか?
c++ - 高度に最適化されたコードでのコードランタイムの計算
私はCortexM3に取り組んでおり、IAREWARMを使用しています。DWT_DYCCNT
タイミング計算にはを使用します。問題は、(コンパイラオプションを使用して)速度を上げるためにコードを最適化すると、DWT_DYCCNT
デバッグ中にの値が失われることです。コードはCおよびC++です。また、を使用して変数の値を出力しようとしましたprintf
が、エラーも返されます。
変数を作ってみましたvolatile
が、それも役に立ちません。
デバッグ中、私は常にunknown value
この変数を取得します。
速度が最適化され、変数の値が失われないコードでコードのタイミングを計算する方法を知りたいです。コンパイラにこれらの変数の値を保持させるにはどうすればよいですか?
編集:
コードをデバッグするとき、の値count
は「失われます」。
ありがとう
c - ステートメントスタイルによる実行/タイミングの違い
以下の2つのステートメントは、タイミング/実行によってどのように異なりますか。私はAT91CSAM7x512デバイスに取り組んでいます。以下の割り当てスタイルを変更することで、厄介なバグを解決することができました。
IAR Embedded WorkbenchVer4.41Aを使用しています。これは、コンパイラ指令またはその他の理由で発生していますか?
これは、スタックが@命令で処理される方法と関係がありますか?私はプロセッサに比較的慣れていないので、これについて支援が必要です。
inline-assembly - ARMインラインアセンブリでアドレスを取得する
ARM Cortex-M3用のIARコンパイラは、インラインアセンブリを提供します。特定の関数のアドレスをスタック上の場所に格納するにはどうすればよいですか?
Cコードはこれを望みます
これは一般的に機能しますが、リリースビルドのコンパイラによって最適化されます。インラインアセンブリでコーディングしようとしました
ldr
命令はIARコンパイラによって受け入れられません。問題は、この命令にはレジスタとオフセットを備えたアドレッシングモードが必要なことです。関数の実際のアドレスは関数のtick
後ろに格納され、ldr
命令は実際のアドレスを保持するメモリ位置へのオフセットのみを保持します。分解は次のようになります。
tick
スタック操作に使用するために、レジスタのアドレスをすぐに取得するにはどうすればよいですか?
c - Cコンパイラがこの条件付き代入を受け入れないのはなぜですか?
ビット単位の演算子で 2 進数を使用できないのはなぜですか?
c++ - エラー[Pe513]: タイプ「void *」の値は、タイプ「uint8_t *」のエンティティに割り当てることはできません
C プロジェクトを C++ に変換しようとしています。
C プロジェクトでは、C++ へのコンパイル中にこのエラーに対処しました。
エラー[Pe513]: タイプ「void *」の値は、タイプ「uint8_t *」のエンティティに割り当てることはできません
次のコードでは、このエラーが発生します。
これがCで何をしているのか、そしてそれをC ++に変換する方法を誰かが説明できますか?