問題タブ [coldfire]

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

linker - 2つ以上のELFファイルをマージする最も簡単な方法

現在(要件ごとに)多数のsrecファイルを作成し、それらをマージするクラスプロジェクトの埋め込みコードに取り組んでいます。このコードをQEMUにロードできるようにしたいのですが、通常はELFファイルでしか満足できません。srecの代わりに元のELFファイルをマージする最も簡単な方法は何ですか。また、srecをELFに変換し直して、結果のファイルをロード可能にする方法も受け入れられます(objcopyは、これを行うとかなり壊れたファイルを生成するようです(他のアーキテクチャはありません)。ツールはm68kバイナリで動作できる必要がありますが、ホストシステムはプレーンx86です。

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

embedded - Coldfireの高解像度タイマー(MCF5328)

いくつかの単純な関数ごとのパフォーマンスプロファイリングを必要とする組み込みプロジェクトを継承しました。これは、uClinux(2.6.17.7-uc1)を実行しているColdfire(MCF5328)で構成されています。

私はColdfire、uClinux(またはLinux)の専門家ではないので、無知です。

WindowsではQueryPerformanceCounter、x86高解像度タイマーにアクセスするために使用します。前後のカウンターを記録し、違いを比較します。

LinuxにはQueryPerformanceCounterにいくつかのバリエーションがあることを学びました。

  • clock_gettime / res
  • getnstimeofday
  • ktime_x

または、経由でタイムスタンプカウンターにアクセスすることもできます

  • get_cycles

このデバイスが実行されているuClinuxビルドでは、これらのいずれも使用できません。したがって、OSには高解像度のタイマーアクセスがないようです。

これは、Coldfire自体がそのような機能を提供しないことを意味しますか?それとも、uClinuxポートの作者はそれらを除外しましたか?ハードウェアに使用できるものはありますか?それをどのように使用しますか?

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

embedded-linux - Coldfire uCLinux でのページ割り当てエラーのデバッグ

Coldfire uCLinux システムで、以下のクラッシュ出力が表示されることがあります。問題の原因を突き止めるにはどうすればよいですか?

0 投票する
5 に答える
6113 参照

c++ - Codanがsize_tを見つけられないのはなぜですか

Eclipse Indigo(Galileoから提供)を使い始めたばかりですが、size_tを使用するたびに、ガターに小さな赤いバグが発生します。

ここに画像の説明を入力してください

コードは問題なくコンパイルされますが、インクルードディレクトリへのパスを明示的に追加する必要があると思います。私はすでにそこにいつもの容疑者がいます。私はGnuツールチェーンを使用してColdFireプロセッサ用にクロスコンパイルしているので、チップの製造からの標準インクルードに加えて、m68k-elfの下にインクルードがあります

アップデート

このツールチェーンにstddef.hが存在するのはlibディレクトリ内だけであることに気付きました

そのパス、親パス、および親\include-fixedからのパスを追加しましたが、問題はまだ存在します。

テストに関する注意

何が機能し、何が機能しないかをテストするとき、私はいくつかのことに気づきました

  1. コード分​​析の設定を変更してもコード分析は再トリガーされませんが、エディターを変更する必要があります(スペースを追加するだけで機能します)
  2. のコード分析設定をオフにしてSymbol is not resolvedも、エラーは解消されません。
  3. すべてSyntax and Semantic Errorsをオフにし、分析をトリガーし、戻ってすべてをオンに戻し、次にオフにするとSymbol is not resolved、エラーが再発するのを防ぎます。
0 投票する
2 に答える
465 参照

firefox - ColdFusion ColdFire プロジェクトは終了していますか?

http://coldfire.riaforge.org/

現在のバージョン (1.9.207.249) を Firefox 14.0.1 と Firebug 1.10.2 で動作させることができません。

プラグインが Firebug 1.10 のリリース用に更新されていないため、壊れていると思います。

これらの設定で動作するようになった人はいますか?

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

c - Coldfireツールチェーンのプログラムをどのようにコンパイルしますか?

Freescale Coldfire(MCF5280C)プロセッサを搭載したボード上で実行されているuCLinux(2.4)で実行されるように、単純なhelloworldアプリケーションをコンパイルしようとしています...ここで何をすべきかよくわかりません。

このハードウェアをターゲットにするには、Freescaleの正しいバージョン/ツールでコンパイルする必要があることを知っているので、Coldfireツールチェーンをダウンロードしてインストールし、自分のツールチェーンがターゲット用であることを確認しました。

gcc "file"単純なタイプのコマンドを試しました。

これはまったく機能しません。したがって、それよりも明らかに複雑です。出力は、使用する前にツールチェーンを構築する必要があるように見えますか?誰かがこれまでにこれをしたことがありますか?何をする必要があるのか​​、またはフラグが必要なだけなのかわからない。

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

c - スタック トレースを使用して GDB (Eclipse) の Coldfire MCF5235 で不明なプログラム例外をデバッグする

サードパーティ ライブラリ経由で CAN コントローラーを使用しているときに、C アプリケーション (ベア トゥ ザ メタル、スーパーバイザー モードで実行) のある時点で、ISR でキャッチされる不正な命令エラーが発生していました。その時点までに、ISR で使用可能な例外スタック フレームのプログラム カウンター、フォールト、およびリターン アドレスは、すでに 0 でした。最初に遭遇したとき、スタックを少しバックアップすることができ、このようなスタック トレースを見ました。 :

0x40000000 は、このプロセッサの IPSBAR です。

この問題をすばやく再現できる既知の状態でアプリケーションを数回実行しました。通常は、0x0 へのジャンプ前の割り込み/例外時に、まったく同じスタック トレース/保存された命令まで実行しました。テストを通じて、割り込みが無効化された後に再度有効化された後の命令、または割り込みがマスクされていないコードのセクションでのみジャンプが発生することに気付きました。したがって、これは問題の原因となっているユーザー割り込みであるに違いないと考えましたが、マスクで割り込みが有効になっていないときに、設定されていないハンドラーを呼び出そうとするように見える理由はわかりませんでした。ISR が呼び出される前の IPSBAR 範囲内のアドレスの意味を 100% 確信しているわけではありませんが、それらはその ISR の各呼び出しで同じであるため、

そこで、通常のハンドラを追加する前に、割り込みコントローラ 0 のすべての割り込みベクトルにデフォルトの割り込みハンドラを追加して、アプリケーションを再度実行しました。 、スタックは次のようになります):

その関数の SWIACK0 の値を観察すると、割り込みソースが 100 (ユーザー割り込み 36、PIT0 割り込み) であることがわかりました。まあ、それはすでにISR(上記のスタックにtimerInterrupt())を持っています。次に、ISR 関数ポインターが保存されている RAM の領域をチェックして、タイマー割り込みハンドラー関数ポインターが破損していないかどうかを確認しましたが、すべての割り込みハンドラーが設定された時点と、デフォルト ハンドラーのブレークポイントがヒットした時点との間に変化はありませんでした。

また、CAN コントローラーの割り込みハンドラーの割り込みレベルを 7 に設定すると (同じ割り込みが 18 の FlexCAN 割り込みソースすべてを処理する)、問題が発生しないことにも気付きました。まだどうすればいいのかわかりませんが、問題はCANライブラリまたはコントローラーのいずれかに問題があることを完全に示しています.

編集 - この時点では、どの ISR が割り込みを処理しているのか正確にはわかりませんでしたが、最初に疑われた割り込みソースに個々のハンドラーを追加しました。それは常に割り込みソース 63 です。ドキュメントによると、これは未使用の割り込みです。割り込みコントローラ0の最後のもの。

編集 2: SWIACK0 のアクティブな割り込みソースは実際には正しいと思いましたが、ベクター ベース アドレスが書き換えられているなど、別の問題がある可能性があります。残念ながら、書き込み専用の値であるため、読み戻す方法がわかりません。デフォルトの割り込みハンドラーがタイマー割り込みハンドラー内から呼び出されていたため、PIT0 の割り込みソースはそのレジスターにあると当初考えていましたが、タイマー割り込みがスタックにない場合に示されます。リファレンス マニュアルには、オンチップ デバッグ デバイスを使用して制御レジスタ、つまり VBR を読み戻すことができることが示されていますが、デバッグ マニュアルにはこれを行うための情報がありません。

とりとめのない話を短くするために、ハイパースペースへのジャンプのソース、またはそれを取得するために使用できる情報を見つけたい.

  • IPSBAR 範囲内のアドレスがスタックにプッシュされることの意味は何ですか?

  • アドレス指定されたものはソースに完全に関連付けられているように見えるため、スタック内の値 (最初の例では 0x41f42200 など) を使用して
    、スタックにプッシュされたこの割り込み/例外のソースを特定する方法はありますか?

  • 私はこれについて完全に間違っていますか?
    私は、この考え方のすべてを放棄することを非常に嬉しく思います.

助けや洞察に感謝します.2つの脳細胞をこすり合わせてそれを行うことができたら、より多くの(簡潔な)情報でこれを更新します.