0

Runtime Loadable ProceduresFezPandaIIボードのUSBiziチップ上の.Netmicroframeworkで使用したい。RLPは、マネージコードで実行時にCまたはアセンブリコード(たとえば、en elfファイルから)を実行するために使用されます。CPUを集中的に使用する操作やタイムクリティカルな操作に役立ちます。

私はPIC32とAtmegaチップの経験があるので、チップのネイティブコードの経験があります。マネージコードは素晴らしいものであり、ネイティブコードと混合することは強力な機能だと思います(DMAやISRなどのチップ自体の可能性を最大限に活用するため)。だから私は間違いなくRLPを使いたいです。

今、私はこれらのリソースを見つけました:http ://www.ghielectronics.com/downloads/NETMF/Library%20Documentation%20v4.1/html/f608e398-6573-8adc-5d59-b904dfa3fcee.htm

例は、GHIのEMXプラットフォーム(GHI製の別のマイクロコントローラー/ボード/プラットフォーム)でのみ使用できます。FezPandaIIはGHIの製品です。したがって、Fez Panda IIはEMXではなくUSBiziで実行されているため、与えられた例に従うほど簡単ではありません。Fez Panda IIのユーザーマニュアルには、RLPを使用できると記載されています。

RLP.hファイルのプラットフォームに応じて、RLPのアドレスとサイズを設定する必要があることを理解しています。USBiziプラットフォームの次の設定を見つけましたRLP Address: 0x40000440. RLP Size: 0x000027FC.。これまでのところ良好です。

今、私は次のことに遭遇します: USBizi: by default, RLP is not enabled and locked.さらに数行、ドキュメントには次のように書かれています:To enable RLP call RLP.Enable()。それは1つ下、もう1つです。

では、RLPのロックを解除する方法は?

USBiziのサンプルコードが提供されています。以下を参照してください。

public static void Main()
{
    // Program start up on USBizi

    // Unlock RLP if needed

    // Load ELF file first because it might be large
    byte[] elf_file = Resources.GetBytes(Resources.BinaryResources.RLP_test);
    RLP.LoadELF(elf_file);
    // now load all RLP.Procedure(s)
    // ......

    // dispose of the elf file to reclaim memory
    elf_file = null;
    Debug.GC(true);

    // start the application
    // ...

さて、その方法はどこにあり// Unlock RLP if neededますか?それは私が立ち往生しているところです。

マネージコードでは、立ち上がりエッジ@〜3.6kHzで割り込みを使用できます。ボタンを押すユーザーにとって、1ミリ秒未満の応答は素晴らしいです。しかし、〜50kHzの周波数を数えるには、遅すぎます。わかりました。(7ビット?)デジタル周波数分周器(フリップフロップIC)を使用できますが、解像度が低下します。

USBiziにRLPを実装する方法に関するヒントはありますか?

4

1 に答える 1

0

まず、サンプルコードをダウンロードする必要があります:http ://www.ghielectronics.com/downloads/NETMF/Library%20Documentation%20v4.1/RLP_User.zip

上記のパッケージには、USBiziの例が含まれています。そうでないRLP_user.zipパッケージがあります。したがって、正しいパッケージをダウンロードしたことを確認してください。

次に、コードでRLP.Enable()を呼び出す必要があります 。デバイスが再起動します。そうすれば、ファームウェアのアップグレード/修復を行わない限り、再度呼び出す必要はありません。次に、GHIにアカウントをまだ持っていない場合は、アカウントを作成する必要はありません。http ://www.ghielectronics.com/ 次に、アカウントに移動してこのタブをクリックし、同意して、RLP.Unlock()メソッドを使用します。コードに実装するために、電子メールで送信されます。

次のコードを実装できます(ロック解除引数はメールアドレスによって異なることに注意してください)。

try
{
            //If unlocking succeeds, RLP is enable.d
    RLP.Unlock("YOUR@EMILADDRESS.COMSOMEMOREBOGUS", new byte[] { 0xB7, 0xE0, some more bytes });
}
catch (Exception ex)
{
            //If unlocking fails, it means RLP is not enabled yet, do so now, assuming your unlock credentials are correct.
    RLP.Enable();
}

次に、ダウンロードパッケージから取得したUSBiziプラットフォームのサンプルソリューションを続行します。

私はRLPのロックを解除するのに行き詰まりました。うまくいけば、誰かがこのQ&Aが役立つと思うでしょう。

于 2013-02-22T12:53:24.870 に答える