問題タブ [sparc]

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

c - SolarixUnixBoxで実行している場合にのみバスエラー

コンパイルして、私のLinuxボックス(Ubuntu)とx86とx64の両方の他のLinuxボックスで実行しますが、SunOS Generic_142900-02 sun4u sparc unixボックスでは、回線でクラッシュします

バスエラーが発生しました。また、GCC -Gでコンパイルすると、GDBはデバッグシンボルを見つけることができません。

コードは次のとおりです。

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

linux-kernel - 外部のクロスコンパイルされた SPARC Linux モジュールを挿入する際の再配置エラー

まず第一に、私は専門家ではないので、自分自身を説明しようとして間違いがあった場合はご容赦ください。

Sparc を使用して、SPARC マシン用の外部 Linux モジュールをクロスコンパイルしようとしていますLinux-GCC-4.4.2。Linux カーネルのバージョンは2.6.36.4-00037-g059aa91-dirty. LEONプロセッサからのいくつかのファイルでパッチが適用されています。ビルド フローが提供されており、 、 、および が使用されてLinuxBuildBuildrootますBusybox。32ビットOSを作ろうとしています。

すべてが機能しているように見えますが、モジュールをコンパイルして SPARC システムに insmod しようとすると、次のエラーが発生します。

このエラーは~/linuxbuild-1.0.3/linux/linux-2.6-git/arch/sparc/kernel/module.c 、完全を期すためにメソッド全体を提供します:

したがって、デフォルトのケースが私が該当するケースであることを理解しています。ELF_R_TYPE(rel[i].r_info(SPARC Relocations) タイプは私の~/linuxbuild-1.0.3/dist/buildroot/build-br/staging/usr/include/elf.hファイルで定義されており、一部は次のとおりです。

したがって、再配置 6 はR_SPARC_DISP32別名PC相対 32 ビットに対応します。これはmodule.ccase ステートメントで定義されていますが、64 ビット セクションでのみ定義されています。再配置を自分で書くか、必要な再配置フラグを見つけて、コンパイル中にフラグを変更する必要があると思います。再配置コードで何が起こっているのかよくわかりません。これを修正する方法を教えてください。システムを壊すように見えるので、OS を 64 ビットとしてビルドすることはできないと思います。別の解決策を見つけるのを手伝ってください。

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

optimization - 機械語命令 fxtod はとてつもなく遅いはずです

ループの最適化を実行しようとしていたプログラムがあります。これは C++ で記述され、gcc を使用してコンパイルされています。

最終的にプロファイラーを使用して、ループの実行時間の半分以上を次の行まで追跡しました

long unsigned int 型のループ インデックス nn を除いて、この行のすべてが double 型です。

long unsigned int から double へのキャストは、プロファイラーがフラグを立てたアセンブリ命令 fxtod を生成します

テストとして、行から nn への参照を削除したため、unsigned int から double へのキャストが削除され、Ultrasparc IV で約 12 の浮動小数点演算を実行するループで、ループの実行時間がほぼ半分に短縮されました。プロセッサ。Ultrasparc II でも同様であることを確認しましたが、

int から double へのキャストが、浮動小数点の乗算は言うまでもなく、キャッシュ ミスよりもはるかにコストがかかるのは正常ですか? もしそうなら、他の人は通常それについて何をしますか?

nn のすべての可能な値のルックアップ テーブル (この場合、既知の制限された範囲がある) は、これよりも高速です。

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

buffer-overflow - これらのプログラムの一方が機能するのに、もう一方が機能しないのはなぜですか?

私は最近、SUN Sparc の「サーバー」を「攻撃」してバッファ オーバーフローを引き起こすプログラムを作成するプロジェクトを終了しました。目標は、基本的に、実行中の「サーバー」内から /bin/ksh を起動することでした。

最終的には機能しましたが、愚かな理由だと思いました.ユーザーがバッファとオフセット値を引数として入力した場合は機能しませんでしたが、値がハードコードされている場合は機能しました.

「厳格な」プログラムは次のとおりです。

そして、これが「柔軟な」バージョンです。

唯一の違いは、BUFSIZE と OFFSET を定義せずに宣言し、メインで設定することです。

後世のために、私が攻撃している「サーバー」は次のとおりです。

これらはすべて、私の Oracle Solaris 10 9/10 s10s_u9wos_14a SPARC マシンでコンパイルされました。

私の質問は:

BUFSIZE と OFFSET コマンド ライン引数を作成したからといって、柔軟なプログラムが機能しないのはなぜですか?

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

assembly - C関数をアセンブリに変換する

こんにちは私は私が書いたこのC関数をアセンブリコード(SPARCアーク)に変換しようとしていますが、セグメンテーション違反(コアダンプ)エラーが発生し続けます。この関数は、文字列を長い値に変換することになっています。私はそれをテストし、すべてのテストに合格したので、C関数を正しく実行したことを知っています。これが私が変換しようとしているC関数です。

これが私が書いたアセンブリコードです。

プログラムをデバッグしましたが、strtol関数を呼び出すとセグメンテーション違反が発生します。何が間違っているのかよくわかりません。パラメータを正しく渡していると思いますが、それでもエラーが発生します。ああ、私のメインでは、FILE * StdError = stderrのように宣言されており、fprintfにパラメーターとしてstderrを渡します。

どんな助けでも適用されるでしょう。

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

java - Sun solaris 8 への Java 1.6.31 のインストール

Solaris 8 Sparc に Java 1.6.0.31 をインストールしましたが、次のコマンドを入力すると:

インストールの何が問題になっていますか?

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

pthreads - pthread 同期プリミティブ (ロック/バリア) は、RMO で実行している場合、SPARC で安全に使用できますか?

RMO メモリ モデルの下で、いくつかの pthread ベースの並列アプリケーションを SPARC アーキテクチャ上で実行する予定です。pthread の実装がそのようなメモリ モデルに安全に使用できるのか、それともカスタム ロック ライブラリが必要なのか疑問に思っていました。

ありがとう、

E.

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

c - AES-128 と DES の単純な C 実装を探しています

組み込み SPARC プロセッサで実行するには、C バージョンの AES-128 と DES が必要です。ソフトウェアとハ​​ードウェアでこれらのアルゴリズムの電力を測定しようとしています。ソフトウェアの実装を見つけることができる Web サイトはありますか? 現在、クロスコンパイラで C コードをコンパイルできるので、C 以外の言語の実装は役に立ちません。

以前に DES をハードウェアに実装したことがあります。ソフトウェア バージョンを実装するために、人々はどのくらいの作業 (時間/コード行) を見積もるでしょうか?

crypto ディレクトリの Linux カーネルに組み込まれている aes_generic.c と des_generic.c の使用方法を知っている人はいますか?

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

linux - x86 CR3のSPARCアーキテクチャの対応するレジスタは何ですか?

x86アーキテクチャでは、カーネルコンテキストでCR3レジスタを読み取って、カーネルのページディレクトリをたどることができることを知っています。

今、私はSPARCアーキテクチャを使用してLinuxから同じ作業を行おうとしています。SPARCでカーネルのページディレクトリにアクセスするにはどうすればよいですか?

x86 CR3としてのSPARCの対応するレジスタは何ですか?

それらのページングメカニズムは同じですか?

ps。ARMはどうですか?、これらに関するドキュメントがいくつかありますが、もっと必要です...よろしくお願いします。

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

sparc - Solaris SPARC をリトル エンディアン モードで実行するように設定するにはどうすればよいですか?

SPARC で実行されている Solaris をリトル エンディアン モードで実行するように設定する方法はありますか?

v9 アーキテクチャ チップはバイ エンディアン チップであると読みましたが、デフォルトではシステムはビッグ エンディアンで動作します。リトルエンディアンに切り替えるには?

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