問題タブ [nios]

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

c - キャッシュメモリと C 関数

関数、strcpy、デフォルトの最適化があります

もう 1 つ、matirsadd、高度な最適化 (3)

MATRIXSIZE (および w/e) = 16

キャッシュ サイズが 128 バイト、ブロック サイズが 8 バイト、結合性が 1 の場合、最初の関数は命令キャッシュで 86% のヒット率を獲得するのに、matrisadd は命令キャッシュで 99% のヒット率を獲得するのはなぜですか?

編集: str_cpy はループごとに 18 個のアセンブリ命令を構成し、キャッシュには 32 個の命令用のスペースがあることがわかっています。したがって、それをキャッシュにロードして時間局所性を利用するまで、最初の「起動」ミスのみが生成されます。しかし、matrisadd には同じ必要なスタートアップ ミスがあるため、余分なミスは str_cpy のどこから来るのでしょうか?

解決策:私たちはそれを解決しました。各プログラムが取らなければならなかったループの量に関係していました...

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

c - 締め切りを守るための良いシステムテストは何ですか?

RTOS について読むと、「ハード」な RTOS の特徴は、決定論的に期限を守ることができるということですが、システムが実際に要件を満たしていることをどのようにテストまたは証明すればよいのでしょうか?

MicroC/OS II RTOS はハード RTOS として特徴付けられていますが、その主張をどのように検証できますか? C プログラムを実行し、RTOS と同様にセマフォを使用してスレッド間でコンテキスト スイッチを実行できる FPGA 用の C コードと ISR がある場合、OS/RTOS が「ハード」RTOS か「ソフト」RTOS かをどのように確認できますか?

アプリケーションに依存し、タイマーが必要なため、組み込みのハードウェア タイマー (たとえば、Altera DE2 には 50 Mhz オシレーターがあります) をハードウェア割り込みと共に使用することが推奨されます。締め切りに間に合ったかどうかを確認しますか?

それとも、オペレーティング システム、リアルタイム オペレーティング システム、ハード RTOS とソフト RTOS を区別するために含めなければならない一般的な慣行はありますか?

「ハードRTOS」というラベルの典型的な要件を備えた「典型的なテスト」はありますか?

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

intel-fpga - Altera NIOS II への移植中のファイル操作の問題

私は最近、自分のプロジェクトの C 実装を NIOS II システムに移植し始めましたが、問題が発生したようです。私のオリジナルの実装では、ファイル操作 (fopen、fscanf、fgets など) を使用しています。ただし、大学プログラムの IP コアを使用しているため、アルテラが提供する HAL 関数を使用する必要があります。

問題は、フォーマットされたテキストを読み込んでバイトごとに読み込んでからフォーマットする部分を書き直す必要があるかどうかです。または、現在のコードを保持することは可能ですか?

PS

Quartus II 13.0 と Eclipse Build Tools を使用しており、開発ボードは Altera DE1 です。

私が考えることができる唯一の解決策は、テキスト ファイル全体を配列に保存し、フォーマットされたファイル操作を対応する文字列に変更することですが、これはおそらく多くのスペースを占有します。NIOS II で OS を使用することも、私にとって選択肢ではないと思います。

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

assembly - NIOS 2 アセンブリの遅延

説明:
レディセットを作っています!NIOS 2 アセンブリのプログラム。フローは次のようになります。

質問:
Nios 2 アセンブリで遅延をプログラムする方法がわかりません。良い例が見つからず、途方に暮れています。

My Work:
以下のコードは、Altera Monitor Program でコンパイル可能です。タイマーの実験を始めましたが、役に立つものは何も作成できませんでした。コード内のブロックされたセクションを参照してください。

私のコード:

遅延コードの例を教えてください。または私のコードを修正することによって。また、あなたの論理を理解できるように、建設的なコメントを提供してください。ありがとう

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

c - 配列データの処理

解決できないように見える処理のために配列間でデータを渡すことに問題があります。(Nios II プロセッサでコードを実行しています)

HAL タイプの定義: alt_u8 : 符号なし 8 ビット整数。alt_u32 : 符号なし 32 ビット整数。

私の FPGA のコアは、データ処理のために一度に 128 ビットを取り込みます。関数に 4 x 32 ビットの unsigned int を渡すことで、元のコードでこれを機能させています。

関数はこのデータを処理し、別の配列を使用して情報を取得します。

上記は完全に機能しますが、2番目の部分と組み合わせようとすると機能しません。

データの保存に使用するバッファがあります: alt_u8 rbuf[512];

データ バッファがいっぱいになると、「rbuf」の内容を配列「load」に転送しようとしています。主な問題は、load[4] が 4 × 32 ビットの unsigned int を処理に使用することです。したがって、これらの 4 x 32 ビット符号なし int を rbuf からのデータで「埋め」、データを処理し、結果を配列に保存したいと考えています。次に、再度ループして、配列 load[4] に (rbuf からの) 次のデータ セットを入力し、rbuf が空になるまで続けます。(必要に応じてゼロで埋めます)

最終的な目標は次のとおりです。

符号なし 8 ビットの Array_A を符号なし 32 ビットの Array_B[4] にコピーします >> Array_B[4] を HDL コードで処理します。入力が 128 ビットである必要があります。次にループバックし、次の 128 ビットを取得して処理します。

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

cygwin - Windows 7 で管理者として Nios II シェルを実行しているときに samba 共有を表示する方法

Windows 7 で動作する Quartus Web Edition 13.1 を使用して実行しようとしている Nios II コードで問題が発生しています。

私が見ている問題の 1 つは、Nios II シェルを管理者として起動してから「df」コマンドを実行すると、samba 共有がマウントされていないことです。通常のユーザー (たまたま管理者でもある) としてシェルを実行すると、共有が表示され、問題なくアクセスできます。

Nios II シェルは cygwin bash シェルを使用します。管理者としてシェルを実行したときに共有が表示されるようにするために必要な cygwin セットアップはありますか?