問題タブ [arm9]

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

bootloader - arm9 ブートローダ IAR

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

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

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

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

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

ペドロ

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

mfc - レジストリからの DEVMODE 構造体の読み取り

デバイスからの印刷操作をプログラムする必要があるプロジェクトに取り組んでいます。WIN CE 6.0を搭載。Visual Studio 2005 (MFC) を使用しています。プリンターは、PCL 互換プリンターであればどれでもかまいません。

現在、プリンター DC を取得するには、CreateDC() を使用しています。

この呼び出しを使用して、正常に印刷できます。ここでは、DEVMODE 固有の入力パラメーターを NULL として渡しています。しかし、これらの印刷操作をより細かく制御するには、DEVMODE 情報を CreateDC() に渡す必要があります。

そのために、上記のように CreateDC() を呼び出して、レジストリに DEVMODE 固有の情報を生成することを計画しています。次に、この DEVMODE データをレジストリからローカル変数に読み取り、この変数の必要なフィールドのみを変更し、この変数を CreateDC() に渡して、実際の印刷操作を行うためのプリンター DC を取得します。

dmDriverExtra などの DEVMODE の特定のフィールドに関する十分な情報がないため、DEVMODE 構造体の直接の初期化を避けています。

レジストリから DEVMODE のような構造体を安全に読み取る方法を知る必要がありますか? 相対的な例は本当に役に立ちます。

敬具、 アフタブ

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

c - AT91SAM9G45 ボードの OPENCV との互換性を埋め込みます

こんにちは、組み込み分野の初心者です。OpenCv ファイルが Embest AT91SAM9G45、ARM9 ボードと互換性があるかどうか教えてください。

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

embedded - U-Boot 内で低電力モードに入り、割り込みでウェイクアップする

ボタンを押すと、低電力の「ディープスリープ」機能をubootに実装しようとしています。ボタンの押下は Linux によって処理され、u-boot がスリープ状態を認識して再起動しないようにするためのマジック コードが設定されています」

残念ながら、ホットスピニングが使用されているかどうかに関係なく、消費電力はまったく変化しません (消費電力の測定値がチップに関連付けられています)。さらに、Wait-For-Interrupt CP15 命令を使用すると、起動しません。ボタンは、GPIO の 1 つに接続されています。プラットフォームは Marvell Kirkwood ARM9EJ-S ベースです。

CONFIG_IRQ_*私はいくつかを手動で有効にし、arch_init_irq()同様に の実装を作成しましdo_irq()た。私の問題があると思います。

CP15命令ドキュメントによると、割り込みがトリガーされるだけで十分なはずです(マスクされているかどうかに関係なく!)。

私が間違っていること、または上記のコード以外に何をする必要があるかを誰か教えてもらえますか?

よろしくお願いします!

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

linux - LINUX で Console to TTY を動的に実行する

シリアル ライン TTY1 によって別のボードに接続されている ARM9 ボードに Linux を組み込みました。ARM9 ボードと通信する他の方法はありません (イーサネットなし、USB なし)。通常の状態のアプリケーションでは、ARM9 ボードは TTY1 上の他のボードとデータを交換します。メンテナンスモードでは、ARM9 Linux ボードでコンソールを実行したいので、私たちのアイデアは次のとおりです。

  • ソフトウェアに特別なコマンドを送信する
  • 私たちのソフトウェアは、次の再起動のために TTY1 でコンソールのアクティブ化を準備するために何かを行います
  • プログラムによるソフトウェアの再起動
  • コンソールモードで TTY1 に
  • 必要なものは何でも変更してください
  • 通常の再起動を要求し、通常のソフトウェアを実行します

ステップ2で助けが必要です.どこかに何を書くことができるか、またはLinuxにコンソールモードでTTY1に再起動するようにプログラムで実行できるコマンドはどれですか?

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

windows-ce - ARM で USB GPRS モデムを使用する方法 - Windows CE 6.0?

Windows CE 6.0 がインストールされた ARM ボード (RSC-W910) に USB GPRS モデムをインストールして使用する必要があるプロジェクトに参加しました。モデムは Sierra Wireless 製品の GL6110 ( GL61x0 ) であり、HttpWebRequests (TCP) で XML データを送受信するデータのみに使用する必要があります。推奨される開発ツールは、C# および .Net Framework 3.5 です。

モデムが USB 経由でボードに接続されている場合、表示されるエラー メッセージは「認識されていない USB デバイス」というもので、これは正常だと思います。

Siera Wireless(SW) は ARM920 用のドライバーを提供していますが、「wceload.exe」を使用してインストールできませんでした。エラーは、ボードに取り付けられた小さな LCD 画面に表示された "Setup Failed" でした。ドライバーをインストールするには、Telenet 経由でボードに接続し、CAB ファイルを SD カードに保存します。ドライバーのインストールに失敗したのは、Win CE イメージに RAM ベースのレジストリがあるという事実に関連している可能性があると考えるのは正しいですか?

SW がモデム用のドライバを提供していない場合、独自のドライバを開発する必要があるということでしょうか? または、代わりに使用できる汎用ドライバーはありますか?

ボードがモデムをサポートするには、新しい Win CE イメージを作成する必要がありますか? または、C# アプリケーション内のコードを使用してアクセスすることは可能ですか?

どんな助けでも大歓迎です!

ありがとう、

ニック

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

embedded-linux - PHYが接続されていません!! MAC:MII初期化中のエラー

「TFTP」サーバーと「U-boot」メニューを使用して、「rfsNV.gz」と「uImageNV」をARMボードにダウンロードしようとしています。私はderamCatcherによって開発されたボード、「tftp32.exe」を備えたWindows 7のtftpサーバー、ハイパーターミナル、クロスオーバーイーサネットケーブルおよびUSBシリアルケーブルを使用しています。ハイパーターミナルを使用してボードに接続すると、U-bootメニューが表示されます。サーバーのIPを192.168.0.123に設定し、ターゲットのボードのIPを192.168.0.1に設定しました。次に、「tftp32.exe」を起動してTFTPサーバーをセットアップし、ハイパーターミナルに書き込みます

しかし、ハイパーターミナルは次のように応答します

これは、イーサネット接続が正しく設定されていないことを意味しますか?私のローカルエリア接続は、この図のようなネットワークアクセスはありませんと言っています。ただし、ボード上のイーサネット接続LEDは、ケーブルが接続されていることを示します。私はEmbeddedLinuxにまったく慣れていないので、ボード上のファイルをダウンロードできない理由がわかりません。誰かが何が悪いのか理解できますか?

U-bootが起動するとコンソールが表示されます

'miiinfo'の出力は次のとおりです。

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

linux-device-driver - Linux カーネルの flush_cache_range() 呼び出しが何もしていないように見える

序章:

ARM 上で実行されている Linux が外部プロセッサからデータを受け取り、データを ARM のメモリ空間に DMA するアプリケーションがあります。次に、ARM はユーザー モード コードからそのデータにアクセスする必要があります。

外部プロセッサの DMA エンジンはスキャッター/ギャザーをサポートしていないため、アドレスの範囲は物理的に連続している必要があります。このメモリ範囲は、最初に __get_free_pages(GFP_KERNEL | __GFP_DMA,order) 呼び出しを介して ARM カーネルから割り当てられます。これにより、割り当てられたメモリが物理的に連続することが保証されます。次に、返されたポインターで virt_to_phys() を呼び出すと、プロセスの開始時に外部プロセッサーに提供される物理アドレスが得られます。

この物理アドレスは、(ユーザー モードで) これを使用して mmap() API を呼び出し、このメモリ領域へのユーザー モード ポインターを取得する Linux ユーザー モード コードにも認識されます。次に、Linux カーネル ドライバーは、ドライバーの file_operations 構造体で、対応する mmap ルーチンへの呼び出しを確認します。ドライバーは、後で使用するために、mmap ルーチンへの呼び出しで渡された vm_area_struct "vma" ポインターを保持します。

ユーザーモードコードは、新しいデータがこのメモリアドレスに DMA されたという信号を受信すると、上記の mmap() への呼び出しから取得したユーザーモードポインターを介して、ユーザーモードからアクセスする必要があります。もちろん、ユーザーモードコードがこれを行う前に、このメモリ範囲に対応するキャッシュをフラッシュする必要があります。このフラッシュを実行するために、ユーザー モード コードは (ioctl を介して) ドライバーを呼び出し、カーネル モードでは flush_cache_range() への呼び出しが行われます。

flush_cache_range (vma、開始、終了);

上記の呼び出しに渡された引数は、mmap ルーチンが呼び出されたときにドライバーがキャプチャした "vma" であり、"start" と "end" は、ドライバーに提供された構造体でユーザー モード コードからドライバーに渡されたユーザー モード アドレスです。 ioctl() 呼び出し。

問題:

ユーザー モードからのアクセスが行われたときに古いデータのように見えるものを確認しているため、バッファーがフラッシュされていないように見えます。ドライバーへの mmap() 呼び出しからユーザー モード アドレスを取得するのではなく、テストとして、代わりに mmap() API を /dev/mem に呼び出します。この場合、キャッシュされていないバッファーへのアクセス (フラッシュは必要ありません) が得られ、すべてが完全に機能します。

カーネル バージョンは 3.8.3 で、ARM 9 で実行されています。試みているアプローチに論理的なエラーはありますか?

ありがとう!

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

android - Android 実行可能ファイルが arm9 プロセッサ ボードで実行されない

Android.mk ファイルと ndk-build コマンドを使用して、サンプルの Android 実行可能ファイルを作成しました。arm8 プロセッサ ボードで正常に動作します。arm9 プロセッサ ボードでは動作しません。なんで?

Android.mk は次のコマンドで構成されます