我想在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的示例代码如下所示
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有什么建议吗?
发布于 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()方法将通过电子邮件发送给您。
您可以实现以下代码(请注意,您的电子邮件地址的解锁参数不同):
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,希望有人能找到这个问答有用的。
https://stackoverflow.com/questions/15011088
复制相似问题