問題タブ [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 に答える
305 参照

embedded - SPIは本当に待機ループを必要としますか?

IAREmbeddedワークベンチ5.10でmsp430f5418を使用しています。

グラフィカルLCD(ST7565R)は、SPIを介してMSPに接続されています。

MSPマスターは、SMCLKで8ビットのMSBファーストモードを使用します。

通常、SPIを使用してバイトを転送する前に、ビジービットをチェックする必要がありますよね?

しかし、私の場合、ビジービットをチェックせずに連続してデータを送信しても正常に動作し、表示データを正しく表示できます。

なぜそれが機能しているのか誰かが説明できますか?

レディビットをチェックする必要がありますか、それとも安全ですか?

ありがとうございました、

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

c - 8051 (8 ビット) マイクロコントローラでの予期しないビット シフト結果

次のコードを検討してください。

このコードは TI CC1111 SoC (8051 コアを搭載) で実行され、最適化なしで C99 方言を使用するように構成された IAR EW8051 8.10.3 を使用してコンパイル/デバッグされています。コメント内の値は、IAR デバッガーで観察されたものです (シミュレーターまたは実際のデバイスを使用した同じ結果)。

aftercrc16 = crc16 << 8;は ではなくcrc16の値になると思います。 0x43000x0000

C99 標準 (まあ、2005 年 5 月 6 日ドラフト) のセクション 6.5.7.3-4 によると。

整数昇格は各オペランドで実行されます。結果の型は、昇格された左オペランドの型です。右オペランドの値が負の値であるか、プロモートされた左オペランドの幅以上である場合、動作は未定義です。

E1 << E2 の結果は、E1 左シフトされた E2 ビット位置です。空いたビットはゼロで埋められます。E1 が unsigned 型の場合、結果の値は E1 × 2^E2 となり、結果の型で表現可能な最大値より 1 を法として減じられます。E1 に符号付きの型と非負の値があり、E1 × 2^E2 が結果の型で表現できる場合、それが結果の値です。それ以外の場合、動作は未定義です。

これに対する私の見解は、結果の型は符号なしの 16 ビット整数で、値が((0x0043)*(2^8)) % 0x10000 == 0x4300.

何か不足していますか?ありがとう。

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

bootloader - arm9 ブートローダ IAR

Atmel Arm9 のブートローダーを探しています。

Atmel には「安全でセキュアなブートローダー」がありますが、これは ARM7 用であり、かなり古いものです (最新の IAR ツールチェーンを使用してビルドされていません)。

これは以前に行う必要があり、車輪を再発明したくないと想定しています

ボーナスは、ブートローダーが最新の IAR Embedded ワークベンチ (バージョン 6.x) 用である場合です。

商用製品が利用できる場合は、それも問題ありません。

ペドロ

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

linux - Linux でドングルを使用して Arm 用の IAR Embedded Workbench を実行するためのアドバイス

Ubuntu 10.04 と Wine 1.2 を実行しています。IAR ソフトウェアをインストールできましたが、ドングル ライセンスが見つかりません。Ubuntu で Wine でドングル ライセンスを使用する方法はありますか、それとも PC ライセンスを使用する必要がありますか?

前もって感謝します..

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

msp430 - MSP430 RTC キャリブレーションの問題

IAR EW 5.10 で MSP430F5418 を使用しています。

MSPの29番ピンから周波数1HzでRTCCLK信号を出力しようとしています。

信号を出力すると、ポートを通過します。

しかし、RTC時間を書き直したら信号が止まりました。

再度有効にしようとしましたが、うまくいきませんでした。

誰か理由を教えてくれませんか??

RTC 時間を設定するために TI から提供された回避策コードを使用しています。

私のRTC構成は次のとおりです。

0 投票する
4 に答える
45302 参照

c - enum 定義を unsigned int にキャストする

この SO 投稿によると:
C の列挙型のサイズは?
列挙型にはsigned inttype があります。

signed int列挙型定義を からに変換したいと思いunsigned intます。

たとえば、私のプラットフォームでは、anunsigned intは 32 ビット幅です。列挙型を作成したい:

私のコンパイラは、上記の定義が範囲外であると不平を言っています(これは a の場合ですsigned int)。

unsigned int enum値 を宣言するにはどうすればよいですか?

編集1:

  1. 64 ビットに拡張しないことをお勧めします (コードが組み込みシステムに存在するため)。
  2. スキルの制限により、このプロジェクトでは C++ は使用できません。:-(

編集2:

  • コンパイラは、ARM7 用の IAR Embedded Workbench です。
0 投票する
5 に答える
9635 参照

c - ARMcortexm3でのコールスタックの巻き戻し

アプリケーションをより適切にデバッグするのに役立つデバッグツールを作成したいと思います。私は(OSなしで)必要最低限​​の作業をしています。AtmelのSAM3でIAR組み込みワークベンチを使用します。

タイムアウトの場合に特定のIRQを呼び出すウォッチドッグタイマーがあります(これはリリース時にソフトウェアリセットに置き換えられます)。IRQハンドラーで、ウォッチドッグタイムアウトが発生した正確な場所のスタックトレースを出力(UART)したいと思います。

Webを調べましたが、その機能の実装は見つかりませんでした。

誰もがこの種のものにアプローチする方法についての考えを持っていますか?

編集:OK、スタックからリターンアドレスを取得できたので、WDTタイムアウトが発生した場所を正確に把握できます。各関数が異なる量のローカル変数をスタックにプッシュするため、スタック全体の巻き戻しは最初に表示されるように単純ではありません。

私が最終的に得たコードはこれです(他の人にとっては、それが役に立つと思うかもしれません)

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

enums - IAREmbeddedWorkbenchウォッチウィンドウ

IAR Embedded Workbenchでは、ウォッチウィンドウにいくつかの列(式、値、場所、タイプ)が表示されます。特定の式の値を、実際の値ではなく列挙として表示したいと思います。意味...

とは対照的に...

ucFruitAPPLEと入力するだけで値を変更できるので、これは可能だと思われます。

助言がありますか?

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

linker - IAREmbeddedWorkbenchでのリンカー構成の自動化

フラッシュの整合性についてcrc16チェックを実行する必要があるファームウェアプロジェクトに取り組んでいます。

crcは、IAR Xlinkリンカーを使用して計算され、フラッシュの最後に保持されます。この場合も、crcは実行時にコードから計算され、フラッシュに保存されている値と比較されて整合性がチェックされます。ただし、crcはフラッシュメモリのコードセグメントでしか計算できません。コードに変更を加えるたびに、サイズが変わる可能性があります。現在手動で行っているこのプロセスを自動化できますか?

.xclリンカーファイルから:

ここで、2番目のコードセグメントの終了値を変更する必要があります。これは現在0x20A13です。この値は、.mapファイルから取得します。つまり、コードがフラッシュ内に存在するメモリ範囲の量を取得します。これは私が行う最初の変更です。

ここで私はコードから2番目の変更を加える必要があります:

このプロセスの自動化にご協力ください!!