environment:
IDE:CCS V 5.5
MCU: Stellaris LM3S9B96
Running RTOS with NDK
I tried to updated firmware using ROM_UpdateEthernet() function in ROM. I wrote the code as following:
void FirmwareUpdate (void) { // Set the clocking to run from the PLL at 50 MHz // ROM_SysCtlClockSet( SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ ); // Disable all processor interrupts. HWREG(NVIC_DIS0) = 0xffffffff; HWREG(NVIC_DIS1) = 0xffffffff; ROM_SysTickIntDisable(); ROM_SysTickDisable(); // // Clear any active interrupts. If the boot loader uses any // interrupts, they will therefore respond as expected. // HWREG(NVIC_APINT) = NVIC_APINT_VECTKEY | NVIC_APINT_VECT_CLR_ACT; ROM_UpdateEthernet(ROM_SysCtlClockGet()); }
This function is executed inside a Task.
I configured LM Flash Programmer with with correct MAC addr. and then opened Tera Term and typed the cmd to update the firmware. The LM Flash Programmer starting programming. It is a good sign. However, It stopped during programming for some reasons. I believe some other Tasks crashed the programming.
I also tried use BIOS_exit(0) before FirmwareUpdate(). However, the FirmwareUpdate() wont execute.
Is there any solutions to successfully update firmware via Ethernet?
Thanks
madoka
Regards