MK64FN1M0VMD12 freescale freedom bootloader (FSL 1.0.2) with WinUpdater issue (Over serial)t

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

MK64FN1M0VMD12 freescale freedom bootloader (FSL 1.0.2) with WinUpdater issue (Over serial)t

1,259 Views
nitinharish
Contributor V

Folks

I am facing an issue (CPU resetting) with MK64FN1M0VMD12 freescale freedom bootloader (FSL 1.0.2) and WinUpdater communicating over Serial port.

K64's boot loader boots up fine and when I ping it from Winupdater it gets into "bootloader_run" which is expected but then after a little while CPU resets.

When I say ping from Winupdater what it means is (I have disabled erasing and writing flash functions from Winupdater code) after I press "Update" button on Winupdater GUI (This is for debugging only) it just sends a serial ping message.

I have verified K64 receives the serial ping message and gets into "bootlader_run" function (verified with IAR IDE) but after that it takes <= 5-6 seconds and the CPU resets.

Any ideas ?


HW: I-JET Probe (JTAG)

SW: IAR IDE v7.20, FSL 1.0.2 (Freescale Boot loader for MK64FN1M0VMD12), Winupdater (FSL 1.0.2)

Labels (1)
6 Replies

890 Views
nitinharish
Contributor V

Does anyone know how to disable auto baud detection in FSL 1.0.2 ?

0 Kudos
Reply

890 Views
mjbcswitzerland
Specialist V

Hi

Have you tried loading and using the pre-built binary for this board (in FSL_Kinetis_Bootloader_1_0_2\targets\k64f12\binaries). This will possibly distinguish between a problem with the board and a problem with the project that you have built.

Regards

Mark

890 Views
nitinharish
Contributor V

Mark

Can you please throw a little light on to this code (BOLD):

// See flash.h for documentation of this function.

status_t flash_get_property(flash_driver_t * driver, flash_property_t whichProperty, uint32_t * value)

{

    if ((driver == NULL) ||

        (value == NULL))

    {

        return kStatus_InvalidArgument;

    }

    switch (whichProperty)

    {

        case kFlashProperty_SectorSize:

           *value = driver->PFlashSectorSize;

           break;

        case kFlashProperty_TotalFlashSize:

           *value = driver->PFlashTotalSize;

           break;

        case kFlashProperty_BlockSize:

           *value = driver->PFlashTotalSize;

           break;

        case kFlashProperty_BlockCount:

           *value = driver->PFlashBlockCount;

           break;

        case kFlashProperty_FlashBlockBaseAddr:

           *value = driver->PFlashBlockBase;

           break;

        default:  // catch inputs that are not recognized

            return kStatus_FlashUnknownProperty;

    }

    return kStatus_Success;

}

Shouldn't BLOCK SIZE (*value in case of kFlashProperty_BlockSize) be equal to the Total flash size / No. of blocks ?

What are your thoughts ?

0 Kudos
Reply

890 Views
mjbcswitzerland
Specialist V

Nitin

The KBOOT loader (HID or UART) presently only makes use of the kFlashProperty_SectorSize request to discover the flash granularity of the device to be programmed. The block size request response does look suspect but won't cause a problem (at the moment) - if it is not correct it will presumably be corrected when the PC SW starts using it.

If you search for the location of the definition of the enums or the driver struct you may find some comments that make it clear what the actual values are representing. Maybe a block is indeed equal to the total memory size in this device (if block count is also 1) (?)

Regards

Mark

890 Views
nitinharish
Contributor V

Mark, thanks for your suggestion.

Whenever I try to download that binary with IAR IDE using flash loader, I get an error saying the corresponding SIM file could not be found/generated.

0 Kudos
Reply

890 Views
mjbcswitzerland
Specialist V

Hi

I would install the Freescale KDS because it will load binary files - I don't actually know whether IAR allows it.

Or just use the (original) mbed boot loader on the FRDM-K64F to drag and drop the binary file to the board as it appears as a harddrive.

Regards

Mark