問題タブ [rvds]

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

linux - 共有ライブラリからシンボルをエクスポートする方法

Windows ホストで RVDS コンパイラを使用して、オブジェクト コード ファイル (C ソース コード) を使用して共有ライブラリ ( *.so) を作成しました。*.o

この共有オブジェクトをアプリケーション ( gccLinux ホスト上の ARM ターゲットに使用) にリンクし、実行時にセグメンテーション エラーを生成する実行可能ファイルを取得します。(私はそれをデバッグしなければならないことを知っています!)

共有ライブラリを作成する代わりに、同じソース ファイルを使用して静的ライブラリを作成し、アプリケーションとリンクしてアプリケーションを実行すると、期待どおりに動作します。

だから私の質問は:

  1. アプリケーションとリンクしたときに正常に動作するように、いくつかの構成を使用してソース ファイル内のシンボル (アプリケーションにエクスポートされた関数) またはその他のシンボルを明示的にエクスポートする必要がありますか? 何が必要で、どうすればよいですか?

  2. 共有ライブラリはどのように機能しますか? つまり、関数がロードされて実行されるアドレスは、ライブラリが作成されたときにライブラリに与えられます。main()アプリケーション ( ) は、ライブラリ関数が実行されるアドレスをどのように解決しますか?

  3. スタティック ライブラリはどのように機能しますか。つまり、スタティック ライブラリの場合、このアドレス指定と解決はどのように行われるのでしょうか?

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

beagleboard - BeagleBoard 用の Hello World 実行可能ファイルを作成する

BeagleBoard で HelloWorld プロジェクトを実行しようとしています。このために、私は RVDS を使用してライブラリを作成し、次に CodeSourcery を使用して BeagleBoard の実行可能ファイルを作成しています。

RVDS を介してライブラリを作成するには、以下のコマンド ラインを使用しています。

armcc --cpu cortex-a8 -c hello_world.c --c99 --apcs=/fpic --no_hide_all -O3 -Otime --vectorize --no_unaligned_access -I"D:\RVDS\hello_world" -I"C:\Program Files\ARM\RVCT\Data\4.1\713\include\windows"

ただし、このコマンド ラインはオブジェクト ファイルのみを作成し、ライブラリは作成しません。コマンドを使用してライブラリを作成しましたarmarが、これが正しいかどうかはわかりません。したがって、私の最初の質問は、RVDS コマンド ラインを使用してライブラリを作成する方法です。

また、新しいスタティック ライブラリ プロジェクトを選択して、RVDS Eclipse 環境を使用してライブラリを作成しようとしました。ライブラリが作成されたら、CodeSourcery を使用して、次を使用して実行可能ファイルを作成しました。

arm-none-linux-gnueabi-gcc -Wall -I. -L. test_hello_world.c -lhello_world -o test_hello_world

しかし、この実行可能ファイルを BeagleBoard で実行しようとしても、うまくいきません。したがって、ライブラリの作成方法に問題があると思います。

誰かが RVDS と CodeSourcery を組み合わせて BeagleBoard の実行可能ファイルを作成しようとした場合はお知らせください。

ご協力いただきありがとうございます。

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

neon - fpuをSoftVFPまたはnoneに設定して、CortexA8でNEONを有効にします。

RVDS4.0を使用してCortexA8の実行可能ファイルをビルドしようとしています。私のコードはNEONを使用していますが、fpuオプションをnoneまたはSoftVFPに設定したいと思います。ARM Webサイトには、fpuがSoftVFPに設定されている場合にNEONが無効になると記載されています。これは、VFPとNEONがレジスタを共有しているためですか?

fpuがSoftVFPに設定されている場合にNEONを使用できない理由、またはfpuがSOftVFPに設定されている場合でもNEONを有効にできるオプションがある場合は、誰かに説明してもらえますか?

ありがとう

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

integer-division - RVDS での Cortex-M0 による整数除算

64 ビットの整数型を 32 ビットの整数型に分割しようとしています。ツールチェーンとして RVDS 4.1 を使用しています。

Cortex-M0にはハードウェア除数がないので、以下の操作はできますか? もしそうなら、どのように?

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

makefile - ELF シンボル テーブルにソース ファイルがありません - それらを含める方法は?

私は自分に引き継がれたプロジェクトに取り組んでおり、構築とリンクの概念のいくつかは私にとって新しいものです。メイクファイル、いくつかのアセンブリ ファイルと C ソース ファイル、ELF ファイルとバイナリ ファイルがあります。ELF ファイルをターゲットにロードすると、アセンブリ ファイルではなく、C ファイルのみをステップ実行できます。

ELF ファイルで readelf を実行すると、アセンブリ (.S) ファイルがシンボル テーブルにないことがわかります。同様に、私のデバッガ (RealView Debugger 4.1) は、これらの .S ファイルを「イメージからのソース」ツリーにリストしません。これらのファイルのシンボルの一部 (ラベル名など) が readelf の出力に含まれていますが、ファイル タイプのシンボル自体は含まれていません。メイクファイルを調べて、何が含まれていない可能性があるかを見つけようとしましたが、何を探しているのかわかりません。誰でも私を正しい方向に向けることができますか? ありがとう!

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

arm - C コードを ARM に移植するには、どのコンパイラを使用する必要がありますか?

私はARMを初めて使用します。私は C コードを書きましたが、すべての ARM プロセッサで動作する ARM にコードを移植しようとしています。スマートフォンやタブレットで動作するようなハイエンドなアプリケーションを開発します。そのための最適なコンパイラを教えてください。RVDS について聞いたことがありますが、それは高価なようです。

もう 1 つの質問は、Microsoft Visual Studio 2008 を使用して、Neon のような ARM Intrinsic をプログラミングできますか? RVDS の他の代替手段はありますか?

あなたのアドバイスは大歓迎です。

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

c - if(a>0) を最適化し、if(*(&a)>0) を最適化しないコンパイラがあるのはなぜですか?

グローバルスコープで宣言したとしましょう:

メイン関数には、次の条件があります。

私が気づいた厄介なことは、RVDSコンパイラがifステートメントを削除し、オブジェクト ファイルにブランチ/jmp がないことです。

しかし、私が書くと:

if (cmpおよびbranch) は、コンパイルされたオブジェクト ファイルに含まれます。


対照的に、 do は (またはまたは)GCC を使用して両方を最適化します。-O1-O2-O3

-O3 でコンパイル:

そして、

あげる:

GCC は両方を同じように (あるべきように) 扱いますが、RVDS はそうではありませんか?


私は使用の影響を調べようとしvolatileましたが、RVDS では the を削除しましたif(a>333)が、gcc は削除しませんでした:

おそらく、私が使用した RVDS のコンパイラ バージョンにはいくつかのバグがあります。