首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在USBizi上使用RLP

如何在USBizi上使用RLP
EN

Stack Overflow用户
提问于 2013-02-22 03:57:43
回答 1查看 564关注 0票数 0

我想在Fez Panda II板的USBizi芯片上使用.Net微框架中的Runtime Loadable Procedures。RLP用于在运行时在托管代码中执行C或汇编代码(例如,来自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制造的另一种微控制器/板/平台),Fez Panda II是GHI的产品。因此,它并不像遵循给出的例子那么简单,因为Fez Panda II是在USBizi上运行的,而不是在EMX上。Fez Panda II的用户手册上说可以使用RLP。

我知道我必须设置RLP的地址和大小,这取决于RLP.h文件中的平台。到目前为止,我发现USBizi平台:RLP Address: 0x40000440. RLP Size: 0x000027FC.的这些设置都很好。

现在我遇到以下代码:USBizi: by default, RLP is not enabled and locked.再过几行,文档就会显示:To enable RLP call RLP.Enable()。少了一个,还剩一个。

现在如何解锁RLP?

USBizi的示例代码如下所示

代码语言:javascript
复制
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.6 the使用中断。对于按下按钮的用户来说,<1ms的响应就很好了。但对于计数@~50 for的频率来说,它太慢了。好的,我可以使用(7位?)数字分频器(触发器IC),但这会降低分辨率。

关于如何在USBizi上实现RLP有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-22 20:53:25

首先,您必须下载示例代码:http://www.ghielectronics.com/downloads/NETMF/Library%20Documentation%20v4.1/RLP_User.zip

上面的包确实包含USBizi的示例。有一些RLP_user.zip包并不支持。因此,请确保您下载了正确的包。

然后,在您的代码中,您必须调用RLP.Enable(),设备将重新启动。这样你就再也不用调用它了,除非你进行了固件升级/修复。不,下一步,如果您还没有帐户,则必须在GHI上创建一个帐户:http://www.ghielectronics.com/,然后转到your account并单击this tab,同意,您必须在代码中实现的RLP.Unlock()方法将通过电子邮件发送给您。

您可以实现以下代码(请注意,您的电子邮件地址的解锁参数不同):

代码语言:javascript
复制
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,希望有人能找到这个问答有用的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15011088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档