2017-08-02 76 views
2

在MPLAB中,我需要使用PIC32MX795F512L的引導加載程序。我能夠將引導段編程到kseg引導內存中,直到0x8fc00000和應用程序代碼放入0x9d000000處的kseg0_program_mem中。我可以使用跳轉到addr命令從bootloader跳轉到應用程序,但是我在從應用程序跳轉到引導加載程序時遇到問題。我嘗試跳轉到地址(引導程序地址),但它不起作用。請幫助我嵌入式C,PIC32MX795F512L的引導加載程序配置

回答

0

只需使用重置命令,它會將您設置回處理器的起始地址。檢查POR位是否有復位,以確定是否導致復位或電路板是否剛啓動。

+0

檢查了相同的程序。但它沒有得到復位到引導程序地址 –

+0

使用:asm(「reset」);並在bootloader中檢查是否(RCONbits.SWR)/ *我觸發bootloader */ – blsmit5728

+0

它工作正常。謝謝 –

0

我發現這在許多PDF格式的我PIC32MX270之一,我相信這是對整個PIC32MX系列一致:

/* The following code illustrates a software Reset */ 
// assume interrupts are disabled 
// assume the DMA controller is suspended 
// assume the device is locked 
/* perform a system unlock sequence */ 
// starting critical sequence 
SYSKEY = 0x00000000; //write invalid key to force lock 
SYSKEY = 0xAA996655; //write key1 to SYSKEY 
SYSKEY = 0x556699AA; //write key2 to SYSKEY 
// OSCCON is now unlocked 
/* set SWRST bit to arm reset */ 
RSWRSTSET = 1; 
/* read RSWRST register to trigger reset */ 
_excep_code = RSWRST; 
/* prevent any unwanted code execution until reset occurs*/ 
while(1); 

的同時(1)也將鎖住的uC使看門狗,則應如果一切都失敗,請重置設備。在異常處理程序中也有這個代碼(system_exceptions.c,如果你使用Harmony的話),這樣當某些東西變得不可思議時(DMA災難或者你嘗試sprintf(foo_string,「%f」,NAN)),設備將重置,而不是成爲鎮紙。