我想在Fez Panda II板的USBizi芯片上使用.net微框架中的Runtime Loadable Procedures
。 RLP用於在託管代碼中運行時執行C或彙編代碼(例如,來自enlf文件)。用於CPU密集型或時間關鍵型操作。如何在USBizi上使用RLP
我有一些PIC32和Atmega芯片的經驗,所以我有一些本地代碼芯片的經驗。託管代碼非常棒,我相信這是一個強大的功能,可以將其與本機代碼混合使用(以充分發揮芯片本身的潛力,如DMA或ISR)。所以我明確想要使用RLP。
例子僅適用於GHI的EMX平臺(的somekind的由GHI由另一微控制器/板/ platoform),非斯熊貓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.6kHz的上升沿使用中斷。對於用戶按下按鈕,1毫秒的響應是很好的。但是爲了計算@〜50kHz的頻率,它太慢了。好吧,我可以使用(7位?)數字分頻器(觸發器IC),但會降低分辨率。
有關如何在USBizi上實現RLP的任何提示?