This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

F28M35H52C: Unknown behavior after a jump made from C28 Bootloader application to C28 blinky application.

Part Number: F28M35H52C
Other Parts Discussed in Thread: UNIFLASH, C2000WARE

Hi guys,

I am almost done with developing a custom second stage C28 bootloader application for Concerto controllers. But having trouble to debug a scenario where after i program blinky c28 application to respective flash sectors of C28 and make a jump to blinky application start address at 0x13A000 the blinky application does not seem to be executing from there on but instead it somehow gets stuck in a loop which could be seen from the disassembly view of ccs.

 

Now if i run the blinky application as stand alone using JTAG i could write to the same FLASH sectors and also run the application which executes perfectly fine. But when i perform a program using bootloader i end up in this above situation. 

To give a gist of my application:

I receive .hex from my laptop to M3 UART1 and then pass this data to C28 through IPC. So i do not see any discrepancy of data as i validate what i receive on C28 side and then program.   

Can i get some hints on what could i possibly check or debug on either my M3 bootloader side or C28 bootloader side ?  

I might have provided less details here, but please let me know what more i could share from my side.

Thanks 

  • Hi,

    Did you verify that what your bootloader loads matches with what CCS loads when you tell it to load just app without bootloader? By default hex utility creates two hex files, *.hex and *.i01, one for high order bytes and another one for lower order bytes. If you have any const data/code in PAGE 1 in cmd file, then you will have more hex files, *.i10 and *.i11. Most likely code won't work if you ignore those *.i1? files.

    If download is OK, then there should be no problem debugging app+bootloader, you may load or add debug symbols from different *.out file at any time, debugging shouldn't be a problem.

    Edward
  • Hi Edward,

    Thanks for providing those hints. 

    As of now i do have shared RAM memories aligned in PAGE 1 MEMORY section. But i do not see any files with *.i10 or *.i11 extensions ? All i see is one *.hex file. 

    Here is my *.cmd file from Blinky Application 

     

    /*
    //###########################################################################
    // FILE: F28M35H52C1_c28.cmd
    // TITLE: Linker Command File For F28M35H52C1 Device
    //###########################################################################
    // $TI Release: F28M35x Support Library v201 $
    // $Release Date: Fri Jun 7 10:51:13 CDT 2013 $
    //###########################################################################
    */

    /* ======================================================
    // For Code Composer Studio V2.2 and later
    // ---------------------------------------
    // In addition to this memory linker command file,
    // add the header linker command file directly to the project.
    // The header linker command file is required to link the
    // peripheral structures to the proper locations within
    // the memory map.
    // The header linker files are found in <base>\F28M35x_headers\cmd
    // For BIOS applications add: F28M35x_Headers_BIOS.cmd
    // For nonBIOS applications add: F28M35x_Headers_nonBIOS.cmd
    ========================================================= */

    /* Define the memory block start/length for the F28M35x
    PAGE 0 will be used to organize program sections
    PAGE 1 will be used to organize data sections

    Notes:
    Memory blocks on F28M35x are uniform (ie same
    physical memory) in both PAGE 0 and PAGE 1.
    That is the same memory region should not be
    defined for both PAGE 0 and PAGE 1.
    Doing so will result in corruption of program
    and/or data.

    Contiguous SARAM memory blocks or flash sectors can be
    be combined if required to create a larger memory block.
    */

    MEMORY
    {
    PAGE 0: /* Program Memory */
    /* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE1 for data allocation */
    RAML0 : origin = 0x008000, length = 0x001000 /* on-chip RAM block L0 */
    RAML1 : origin = 0x009000, length = 0x001000 /* on-chip RAM block L1 */

    FLASHN : origin = 0x100000, length = 0x002000 /* on-chip FLASH */
    FLASHM : origin = 0x102000, length = 0x002000 /* on-chip FLASH */
    FLASHL : origin = 0x104000, length = 0x002000 /* on-chip FLASH */
    FLASHK : origin = 0x106000, length = 0x002000 /* on-chip FLASH */
    FLASHJ : origin = 0x108000, length = 0x008000 /* on-chip FLASH */
    FLASHI : origin = 0x110000, length = 0x008000 /* on-chip FLASH */
    FLASHH : origin = 0x118000, length = 0x008000 /* on-chip FLASH */
    FLASHG : origin = 0x120000, length = 0x008000 /* on-chip FLASH */
    FLASHF : origin = 0x128000, length = 0x008000 /* on-chip FLASH */
    FLASHE : origin = 0x130000, length = 0x008000 /* on-chip FLASH */
    FLASHD : origin = 0x138000, length = 0x002000 /* on-chip FLASH */
    BEGIN : origin = 0x13A000, length = 0x000002 /*0x002000*/

    BOOTROM : origin = 0x3FEDA8, length = 0x001200 /* Boot ROM */
    PIEMISHNDLR : origin = 0x3FFFBE, length = 0x000002 /* part of boot ROM */
    RESET : origin = 0x3FFFC0, length = 0x000002 /* part of boot ROM */
    VECTORS : origin = 0x3FFFC2, length = 0x00003E /* part of boot ROM */

    PAGE 1 :
    /* Data Memory */
    /* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE0 for program allocation */
    /* Registers remain on PAGE1 */
    BOOT_RSVD : origin = 0x000000, length = 0x000050 /* Part of M0, BOOT rom will use this for stack */
    RAMM0 : origin = 0x000050, length = 0x0003B0 /* on-chip RAM block M0 */
    RAMM1 : origin = 0x000400, length = 0x000400 /* on-chip RAM block M1 */
    RAML2 : origin = 0x00A000, length = 0x001000 /* on-chip RAM block L2 */
    RAML3 : origin = 0x00B000, length = 0x001000 /* on-chip RAM block L3 */
    RAMS0 : origin = 0x00C000, length = 0x001000 /* on-chip Shared RAM block S0 */
    RAMS1 : origin = 0x00D000, length = 0x001000 /* on-chip Shared RAM block S1 */
    RAMS2 : origin = 0x00E000, length = 0x001000 /* on-chip Shared RAM block S2 */
    RAMS3 : origin = 0x00F000, length = 0x001000 /* on-chip Shared RAM block S3 */
    RAMS4 : origin = 0x010000, length = 0x001000 /* on-chip Shared RAM block S4 */
    RAMS5 : origin = 0x011000, length = 0x001000 /* on-chip Shared RAM block S5 */
    RAMS6 : origin = 0x012000, length = 0x001000 /* on-chip Shared RAM block S6 */
    RAMS7 : origin = 0x013000, length = 0x001000 /* on-chip Shared RAM block S7 */

    CTOMRAM : origin = 0x03F800, length = 0x000380 /* C28 to M3 Message RAM */
    MTOCRAM : origin = 0x03FC00, length = 0x000380 /* M3 to C28 Message RAM */
    }

    /* Allocate sections to memory blocks.
    Note:
    codestart user defined section in DSP28_CodeStartBranch.asm used to redirect code
    execution when booting to flash
    ramfuncs user defined section to store functions that will be copied from Flash into RAM
    */

    SECTIONS
    {

    /* Allocate program areas: */
    .cinit : > FLASHD PAGE = 0
    .pinit : > FLASHD, PAGE = 0
    .text : > FLASHE PAGE = 0
    codestart : > BEGIN PAGE = 0
    ramfuncs : LOAD = FLASHE,
    RUN = RAML0,
    LOAD_START(_RamfuncsLoadStart),
    LOAD_SIZE(_RamfuncsLoadSize),
    LOAD_END(_RamfuncsLoadEnd),
    RUN_START(_RamfuncsRunStart),
    RUN_SIZE(_RamfuncsRunSize),
    RUN_END(_RamfuncsRunEnd),
    PAGE = 0

    /* The following section definitions are required when using the IPC API Drivers */
    GROUP : > CTOMRAM, PAGE = 1
    {
    PUTBUFFER
    PUTWRITEIDX
    GETREADIDX
    }

    GROUP : > MTOCRAM, PAGE = 1
    {
    GETBUFFER : TYPE = DSECT
    GETWRITEIDX : TYPE = DSECT
    PUTREADIDX : TYPE = DSECT
    }

    /* Allocate uninitalized data sections: */
    .stack : > RAMM0 PAGE = 1
    .ebss : > RAML2 PAGE = 1
    .esysmem : > RAML2 PAGE = 1

    /* Initalized sections go in Flash */
    /* For SDFlash to program these, they must be allocated to page 0 */
    .econst : > FLASHD PAGE = 0
    .switch : > FLASHD PAGE = 0

    /* .reset is a standard section used by the compiler. It contains the */
    /* the address of the start of _c_int00 for C Code. /*
    /* When using the boot ROM this section and the CPU vector */
    /* table is not needed. Thus the default type is set here to */
    /* DSECT */
    .reset : > RESET, PAGE = 0, TYPE = DSECT
    vectors : > VECTORS PAGE = 0, TYPE = DSECT

    }

    /*
    */

    EK said:
    If download is OK, then there should be no problem debugging app+bootloader, you may load or add debug symbols from different *.out file at any time, debugging shouldn't be a problem.

    Can you clarify two things ? 

    1. How could i verify what my bootloader loads and what ccs loads ? Is there some tool i could use or should i read the FLASH sectors using FLASH API's ?

    2. How could i load or add debug symbols from different *.out files at any time at runtime ? Can you help me with more details please ?

    Thanks 

  • Hi,

    With cmd file you shown *.i1? files shouldn't be present. They would be if you had some const data in PAGE 1 after moving some FLASH segments there. (Const data is data, not program as is specified in cmd commends, pls don't mind it).

    1. Verify can be done for sure using Uniflash, do verify instead of program. It also can be done using CCS. After bootloading your myprog.hex you need to perform verify operation over JTAG using myprog.out.

    2. See load button in CCS debug perspective, choces are load, load (just) symbols, add (just) symbols. After loading symbols you can start debug from bootloader and continue debugging jumping from booloader to app, all symbols and source should be visible.

    Edward
  • Edward,

    Firstly I am running a linux host laptop so Uniflash was not starting at all ! Anyways so below is what i have tried to do based on your suggestions !

    1. After programming my blinky_28.hex from bootloader application i saved the memory as .hex again using CCS tools options !
    2. Now i loaded the blinky_28.hex independently using JTAG and saved the memory as .hex again.

    NOTE: the starting address of the both is 0x0013000 and length until 16000000 !

    I compared these two using a diff checker and there was absolutely no difference at all !!

    Can you confirm if this is exactly what you wanted me to try ?

    Thanks
  • Preetham,

    If you C28x core is stuck in address 0x3FF66B, it shows that C28x is stuck in IDLE mode. By default, after M3 releases the C28x from reset, C28x will do its initialization and enters into IDLE mode. Please check Device Boot Flow diagram in Pg:580 of www.ti.com/.../spruhe8d.pdf

    C28x waits for the IPC command from M3. In your M3 code, did you send IPC command to boot to flash to run your application code?

    Regards,
    Manoj
  • Hi Manoj,

    This is how i start my debugging session:

    1. I comment out the boot to control system call in my M3 Bootloader application.
    2. I start my M3 debugging session and then before running the M3 core, i connect to C28 core and load bootloader application of c28. Now i run
    my C28 bootloader and then run my M3 bootloader.
    3. Now after programming the C28 blinky application from C28 bootloader i make a jump to 0x0013A000 address where "codestart" of blinky
    application resides.

    Now in which of the above step should i consider sending Device to boot flow through IPC ? Because after i make a jump to address 0x0013A000 i dont understand why is it going to IDLE state again ? So if i include a Device to boot flow through IPC in M3 after the update i would start my c28 bootloader again isn't it ?

    Please let me know if my understanding is correct ?

    Thanks
  • Preetham,

    There is lack of clarity on my side on what exactly you are trying to do.

    Based on your earlier message, it looked as if you are trying to load your application code on C28x side using custom bootloader. But, your recent message seem to suggest that you are just trying to run Blinky example code available in C2000Ware. So, please clarify.

    Are you using JTAG (or) custom bootloader to program C28x side?

    How are you programming C28x side? Are you having custom bootloader in C28x side? Are you trying to program flash in C28x side? If so, did the flash get programmed correctly using custom bootloader?

    Whenever you connect to the device using JTAG, it performs debugger reset which will reset both M3 and C28x. This is because of the gel file available in CCS.

    Regards,
    Manoj
  • Hi  Preetham,

    I wonder how do you save to hex. Using Memory Browser save menu? In CCS for Windows I don't see option to save as heh. Binary, COFF and two TI options.

    Verify is simpler using CCS. Below is menu I mentioned previously. See Load Program..., Load Symbols... and Verify Program... Once your bootloader loads you code you should Verify Program... and specify a path to *.out file of loaded program.

    Edward

  • Hi Manoj,

    Manoj Santha Mohan said:
    There is lack of clarity on my side on what exactly you are trying to do.

    Sorry for that !

    Before i could answer your questions, let me try and give you some specifics of where i am having issues at by laying out details of Memory boundaries i have assigned for my C28 Bootloader application and C28 blinky application. (I will attach .cmd file for both at the end )

    A) For my C28 Bootloader application : I use FLASH sectors A and B. The BEGIN inside MEMORY section and under PAGE 0 is pointing to 0x13FFF0 which in           turn holds "codestart" address. Now the C28 Boot ROM boots to this FLASH address and starts the C28 Bootloader application ....until here everything works         as given in the TRM.

    B) For my C28 Blinky application : I use rest of the FLASH sectors from FLASH D to N. The Flash C sector is used for BEGIN section which starts at 0x13A000 for       a length of 0x000002. Now after i am done programming this application from Bootloader i try to make a jump to 0x13A000 which is where blinky BEGIN                 resides ! Now this is where the issue is. When i make this jump i expect my application program get executed by blinking the LED's. But this does not happen         and the C28 core goes to this IDLE condition !

    Manoj Santha Mohan said:
    Based on your earlier message, it looked as if you are trying to load your application code on C28x side using custom bootloader. But, your recent message seem to suggest that you are just trying to run Blinky example code available in C2000Ware. So, please clarify.

    So your understanding as per my earlier posts were correct. Which is me trying to program a C28 blinky application through a C28 custom bootloader application. Hence i am not using any C2000Ware tools in any scenario. 

    Manoj Santha Mohan said:
    Are you using JTAG (or) custom bootloader to program C28x side?

    I am actually using both depending on troubleshooting scenarios. 

    So initially when i program my blinky application through C28 Bootloader and try to make a jump i face problems as explained in point B above. This is when i try to program blinky through JTAG with same .cmd file and see if the leds blink fine in stand alone mode and for my surprise it does blink fine !

    Manoj Santha Mohan said:
    How are you programming C28x side?

    I have two separate Bootloaders one for M3 and one for C28. M3 side handles serial comm with host for receiving .hex content and sending ack. Apart from serial comm M3 bootloader also handles IPC with C28 using shared RAM memory and IPC interrupts. 

    Now on the C28 Bootloader side after i receive hex data for blinky application using IPC i program this hex content using FLASH API supported by F021 library. 

    But to program the M3 and C28 Bootloader application itself, as of now i am doing it through JTAG ports. 

    Manoj Santha Mohan said:
    Are you having custom bootloader in C28x side?

    Yes i have a custom bootloader for M3 and C28 which reside and execute from FLASH except FLASH API related functions. 

    Manoj Santha Mohan said:
    Are you trying to program flash in C28x side?

    Yes my end goal of using C28 custom Bootloader is to program flash sectors which are intended to be used for C28 application (In this scenario blinky application).

    Manoj Santha Mohan said:
    If so, did the flash get programmed correctly using custom bootloader?

    I did not receive any FLASH errors while programming so i believe it should have programmed well. Any other ways you suggest ?

    Manoj Santha Mohan said:
    Whenever you connect to the device using JTAG, it performs debugger reset which will reset both M3 and C28x. This is because of the gel file available in CCS.

    If this is the case how could C28 blinky application when debugged in stand alone mode through JTAG work ! Because its BEGIN starts at 0x13A000 and this not where C28 BOOT ROM boots to rite ? 

    Thanks for being patience with me, really appreciate your energy, time and effort by helping me out here ! 

    EDIT: The portal does not allow me to attach *.cmd so i am going the copy past way please bear with me !

    .cmd for C28 blinky application

    /*
    //###########################################################################
    // FILE: F28M35H52C1_c28.cmd
    // TITLE: Linker Command File For F28M35H52C1 Device
    //###########################################################################
    // $TI Release: F28M35x Support Library v201 $
    // $Release Date: Fri Jun 7 10:51:13 CDT 2013 $
    //###########################################################################
    */

    /* ======================================================
    // For Code Composer Studio V2.2 and later
    // ---------------------------------------
    // In addition to this memory linker command file,
    // add the header linker command file directly to the project.
    // The header linker command file is required to link the
    // peripheral structures to the proper locations within
    // the memory map.
    // The header linker files are found in <base>\F28M35x_headers\cmd
    // For BIOS applications add: F28M35x_Headers_BIOS.cmd
    // For nonBIOS applications add: F28M35x_Headers_nonBIOS.cmd
    ========================================================= */

    /* Define the memory block start/length for the F28M35x
    PAGE 0 will be used to organize program sections
    PAGE 1 will be used to organize data sections

    Notes:
    Memory blocks on F28M35x are uniform (ie same
    physical memory) in both PAGE 0 and PAGE 1.
    That is the same memory region should not be
    defined for both PAGE 0 and PAGE 1.
    Doing so will result in corruption of program
    and/or data.

    Contiguous SARAM memory blocks or flash sectors can be
    be combined if required to create a larger memory block.
    */

    MEMORY
    {
    PAGE 0: /* Program Memory */
    /* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE1 for data allocation */
    RAML0 : origin = 0x008000, length = 0x001000 /* on-chip RAM block L0 */
    RAML1 : origin = 0x009000, length = 0x001000 /* on-chip RAM block L1 */

    FLASHN : origin = 0x100000, length = 0x002000 /* on-chip FLASH */
    FLASHM : origin = 0x102000, length = 0x002000 /* on-chip FLASH */
    FLASHL : origin = 0x104000, length = 0x002000 /* on-chip FLASH */
    FLASHK : origin = 0x106000, length = 0x002000 /* on-chip FLASH */
    FLASHJ : origin = 0x108000, length = 0x008000 /* on-chip FLASH */
    FLASHI : origin = 0x110000, length = 0x008000 /* on-chip FLASH */
    FLASHH : origin = 0x118000, length = 0x008000 /* on-chip FLASH */
    FLASHG : origin = 0x120000, length = 0x008000 /* on-chip FLASH */
    FLASHF : origin = 0x128000, length = 0x008000 /* on-chip FLASH */
    FLASHE : origin = 0x130000, length = 0x008000 /* on-chip FLASH */
    FLASHD : origin = 0x138000, length = 0x002000 /* on-chip FLASH */
    BEGIN : origin = 0x13A000, length = 0x000002 /*0x002000*/

    BOOTROM : origin = 0x3FEDA8, length = 0x001200 /* Boot ROM */
    PIEMISHNDLR : origin = 0x3FFFBE, length = 0x000002 /* part of boot ROM */
    RESET : origin = 0x3FFFC0, length = 0x000002 /* part of boot ROM */
    VECTORS : origin = 0x3FFFC2, length = 0x00003E /* part of boot ROM */

    PAGE 1 :
    /* Data Memory */
    /* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE0 for program allocation */
    /* Registers remain on PAGE1 */
    BOOT_RSVD : origin = 0x000000, length = 0x000050 /* Part of M0, BOOT rom will use this for stack */
    RAMM0 : origin = 0x000050, length = 0x0003B0 /* on-chip RAM block M0 */
    RAMM1 : origin = 0x000400, length = 0x000400 /* on-chip RAM block M1 */
    RAML2 : origin = 0x00A000, length = 0x001000 /* on-chip RAM block L2 */
    RAML3 : origin = 0x00B000, length = 0x001000 /* on-chip RAM block L3 */
    RAMS0 : origin = 0x00C000, length = 0x001000 /* on-chip Shared RAM block S0 */
    RAMS1 : origin = 0x00D000, length = 0x001000 /* on-chip Shared RAM block S1 */
    RAMS2 : origin = 0x00E000, length = 0x001000 /* on-chip Shared RAM block S2 */
    RAMS3 : origin = 0x00F000, length = 0x001000 /* on-chip Shared RAM block S3 */
    RAMS4 : origin = 0x010000, length = 0x001000 /* on-chip Shared RAM block S4 */
    RAMS5 : origin = 0x011000, length = 0x001000 /* on-chip Shared RAM block S5 */
    RAMS6 : origin = 0x012000, length = 0x001000 /* on-chip Shared RAM block S6 */
    RAMS7 : origin = 0x013000, length = 0x001000 /* on-chip Shared RAM block S7 */

    CTOMRAM : origin = 0x03F800, length = 0x000380 /* C28 to M3 Message RAM */
    MTOCRAM : origin = 0x03FC00, length = 0x000380 /* M3 to C28 Message RAM */
    }

    /* Allocate sections to memory blocks.
    Note:
    codestart user defined section in DSP28_CodeStartBranch.asm used to redirect code
    execution when booting to flash
    ramfuncs user defined section to store functions that will be copied from Flash into RAM
    */

    SECTIONS
    {

    /* Allocate program areas: */
    .cinit : > FLASHD PAGE = 0
    .pinit : > FLASHD, PAGE = 0
    .text : > FLASHE PAGE = 0
    codestart : > BEGIN PAGE = 0
    ramfuncs : LOAD = FLASHE,
    RUN = RAML0,
    LOAD_START(_RamfuncsLoadStart),
    LOAD_SIZE(_RamfuncsLoadSize),
    LOAD_END(_RamfuncsLoadEnd),
    RUN_START(_RamfuncsRunStart),
    RUN_SIZE(_RamfuncsRunSize),
    RUN_END(_RamfuncsRunEnd),
    PAGE = 0

    /* The following section definitions are required when using the IPC API Drivers */
    GROUP : > CTOMRAM, PAGE = 1
    {
    PUTBUFFER
    PUTWRITEIDX
    GETREADIDX
    }

    GROUP : > MTOCRAM, PAGE = 1
    {
    GETBUFFER : TYPE = DSECT
    GETWRITEIDX : TYPE = DSECT
    PUTREADIDX : TYPE = DSECT
    }

    /* Allocate uninitalized data sections: */
    .stack : > RAMM0 PAGE = 1
    .ebss : > RAML2 PAGE = 1
    .esysmem : > RAML2 PAGE = 1

    /* Initalized sections go in Flash */
    /* For SDFlash to program these, they must be allocated to page 0 */
    .econst : > FLASHD PAGE = 0
    .switch : > FLASHD PAGE = 0

    /* .reset is a standard section used by the compiler. It contains the */
    /* the address of the start of _c_int00 for C Code. /*
    /* When using the boot ROM this section and the CPU vector */
    /* table is not needed. Thus the default type is set here to */
    /* DSECT */
    .reset : > RESET, PAGE = 0, TYPE = DSECT
    vectors : > VECTORS PAGE = 0, TYPE = DSECT

    }

    /*
    */

    .cmd for C28 Bootloader application

    /*
    //###########################################################################
    // FILE: F28M35H52C1_c28.cmd
    // TITLE: Linker Command File For F28M35H52C1 Device
    //###########################################################################
    // $TI Release: F28M35x Support Library v201 $
    // $Release Date: Fri Jun 7 10:51:13 CDT 2013 $
    //###########################################################################
    */

    /* ======================================================
    // For Code Composer Studio V2.2 and later
    // ---------------------------------------
    // In addition to this memory linker command file,
    // add the header linker command file directly to the project.
    // The header linker command file is required to link the
    // peripheral structures to the proper locations within
    // the memory map.
    // The header linker files are found in <base>\F28M35x_headers\cmd
    // For BIOS applications add: F28M35x_Headers_BIOS.cmd
    // For nonBIOS applications add: F28M35x_Headers_nonBIOS.cmd
    ========================================================= */

    /* Define the memory block start/length for the F28M35x
    PAGE 0 will be used to organize program sections
    PAGE 1 will be used to organize data sections

    Notes:
    Memory blocks on F28M35x are uniform (ie same
    physical memory) in both PAGE 0 and PAGE 1.
    That is the same memory region should not be
    defined for both PAGE 0 and PAGE 1.
    Doing so will result in corruption of program
    and/or data.

    Contiguous SARAM memory blocks or flash sectors can be
    be combined if required to create a larger memory block.
    */

    MEMORY
    {
    PAGE 0: /* Program Memory */
    /* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE1 for data allocation */
    RAML0 : origin = 0x008000, length = 0x001000 /* on-chip RAM block L0 */
    RAML1 : origin = 0x009000, length = 0x001000 /* on-chip RAM block L1 */

    BEGIN : origin = 0x13FFF0, length = 0x000002
    FLASHA : origin = 0x13E000, length = 0x001F80 /* on-chip FLASH */

    FPUTABLES : origin = 0x3FD258, length = 0x0006A0 /* FPU Tables in Boot ROM */
    IQTABLES : origin = 0x3FD8F8, length = 0x000B50 /* IQ Math Tables in Boot ROM */
    IQTABLES2 : origin = 0x3FE448, length = 0x00008C /* IQ Math Tables in Boot ROM */
    IQTABLES3 : origin = 0x3FE4D4, length = 0x0000AA /* IQ Math Tables in Boot ROM */

    BOOTROM : origin = 0x3FEDA8, length = 0x001200 /* Boot ROM */
    PIEMISHNDLR : origin = 0x3FFFBE, length = 0x000002 /* part of boot ROM */
    RESET : origin = 0x3FFFC0, length = 0x000002 /* part of boot ROM */
    VECTORS : origin = 0x3FFFC2, length = 0x00003E /* part of boot ROM */

    PAGE 1 : /* Data Memory */
    /* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE0 for program allocation */
    /* Registers remain on PAGE1 */
    BOOT_RSVD : origin = 0x000000, length = 0x000050 /* Part of M0, BOOT rom will use this for stack */
    RAMM0 : origin = 0x000050, length = 0x0003B0 /* on-chip RAM block M0 */
    RAMM1 : origin = 0x000400, length = 0x000400 /* on-chip RAM block M1 */

    /*C28 Pheripheral Register Memory Region*/
    DEV_EMU : origin = 0x000880, length = 0x000180 /* device emulation registers */
    CSM : origin = 0x000AE0, length = 0x000020 /* code security module registers */

    ADC1_RESULT : origin = 0x000B00, length = 0x000020 /* ADC1 Results register */
    ADC2_RESULT : origin = 0x000B40, length = 0x000020 /* ADC2 Results register */

    CPU_TIMER0 : origin = 0x000C00, length = 0x000008 /* CPU Timer0 registers */
    CPU_TIMER1 : origin = 0x000C08, length = 0x000008 /* CPU Timer1 registers */
    CPU_TIMER2 : origin = 0x000C10, length = 0x000008 /* CPU Timer2 registers */

    PIE_CTRL : origin = 0x000CE0, length = 0x000020 /* PIE control registers */
    PIE_VECT : origin = 0x000D00, length = 0x000100 /* PIE Vector Table */
    PIE_VECT_CP : origin = 0x000E00, length = 0x000100 /* PIE Vector Table Copy */

    DMA : origin = 0x001000, length = 0x000200 /* DMA registers */

    ASYSCTRLCONFIG : origin = 0x001700, length = 0x000080 /* Analog System Control Configuration Registers */

    FLASH_REGS : origin = 0x004000, length = 0x000300 /* Flash Control registers */
    FLASH_ECC : origin = 0x004300, length = 0x000040 /* Flash/OTP ECC Error Log registers */

    M3PLL : origin = 0x004400, length = 0x000010 /* M3 PLL Clock Configuration Registers */

    EPI_REGS : origin = 0x004430, length = 0x000010 /* EPI Registers */

    RAM_REGS : origin = 0x004900, length = 0x000080 /* RAM Control registers */
    RAM_ERR_REGS : origin = 0x004A00, length = 0x000080 /* RAM ECC/PARITY/ACCESS Error Log Registers */

    CM_MC_IPC : origin = 0x004E00, length = 0x000040 /* C28 Control to Master IPC registers */

    MCBSPA : origin = 0x005000, length = 0x000040 /* McBSP-A registers */

    EPWM1 : origin = 0x005100, length = 0x000080 /* EPWM1 + HRPWM registers */
    EPWM2 : origin = 0x005180, length = 0x000080 /* EPWM2 + HRPWM registers */
    EPWM3 : origin = 0x005200, length = 0x000080 /* EPWM3 + HRPWM registers */
    EPWM4 : origin = 0x005280, length = 0x000080 /* EPWM4 + HRPWM registers */
    EPWM5 : origin = 0x005300, length = 0x000080 /* EPWM5 + HRPWM registers */
    EPWM6 : origin = 0x005380, length = 0x000080 /* EPWM6 + HRPWM registers */
    EPWM7 : origin = 0x005400, length = 0x000080 /* EPWM7 + HRPWM registers */
    EPWM8 : origin = 0x005480, length = 0x000080 /* EPWM8 + HRPWM registers */
    EPWM9 : origin = 0x005500, length = 0x000080 /* EPWM9 registers (no HRPWM) */

    ECAP1 : origin = 0x005A00, length = 0x000020 /* Enhanced Capture 1 registers */
    ECAP2 : origin = 0x005A20, length = 0x000020 /* Enhanced Capture 2 registers */
    ECAP3 : origin = 0x005A40, length = 0x000020 /* Enhanced Capture 3 registers */
    ECAP4 : origin = 0x005A60, length = 0x000020 /* Enhanced Capture 4 registers */
    ECAP5 : origin = 0x005A80, length = 0x000020 /* Enhanced Capture 5 registers */
    ECAP6 : origin = 0x005AA0, length = 0x000020 /* Enhanced Capture 6 registers */

    EQEP1 : origin = 0x005B00, length = 0x000040 /* Enhanced QEP 1 registers */
    EQEP2 : origin = 0x005B40, length = 0x000040 /* Enhanced QEP 2 registers */
    EQEP3 : origin = 0x005B80, length = 0x000040 /* Enhanced QEP 3 registers */

    GPIOG1CTRL : origin = 0x005F80, length = 0x000040 /* GPIO control registers */
    GPIOG1DAT : origin = 0x005FC0, length = 0x000020 /* GPIO data registers */
    GPIOG1TRIP : origin = 0x005FE0, length = 0x000020 /* GPIO trip/LPM registers */

    COMP1 : origin = 0x006400, length = 0x000020 /* Comparator + DAC 1 registers */
    COMP2 : origin = 0x006420, length = 0x000020 /* Comparator + DAC 2 registers */
    COMP3 : origin = 0x006440, length = 0x000020 /* Comparator + DAC 3 registers */
    COMP4 : origin = 0x006460, length = 0x000020 /* Comparator + DAC 4 registers */
    COMP5 : origin = 0x006480, length = 0x000020 /* Comparator + DAC 5 registers */
    COMP6 : origin = 0x0064A0, length = 0x000020 /* Comparator + DAC 6 registers */

    GPIOG2CTRL : origin = 0x006F80, length = 0x000040 /* GPIO control registers */
    GPIOG2DAT : origin = 0x006FC0, length = 0x000020 /* GPIO data registers */

    SYSTEM : origin = 0x007010, length = 0x000020 /* System control registers */

    SPIA : origin = 0x007040, length = 0x000010 /* SPI-A registers */
    SCIA : origin = 0x007050, length = 0x000010 /* SCI-A registers */

    NMIINTRUPT : origin = 0x007060, length = 0x000010 /* NMI Watchdog Interrupt Registers */
    XINTRUPT : origin = 0x007070, length = 0x000010 /* external interrupt registers */

    ADC1 : origin = 0x007100, length = 0x000080 /* ADC1 registers */
    ADC2 : origin = 0x007180, length = 0x000080 /* ADC2 registers */

    I2CA : origin = 0x007900, length = 0x000040 /* I2C-A registers */

    /*End of C28 Pheripheral region and start of RAM section*/

    RAML2 : origin = 0x00A000, length = 0x001000 /* on-chip RAM block L2 */
    RAML3 : origin = 0x00B000, length = 0x001000 /* on-chip RAM block L3 */
    RAMS0 : origin = 0x00C000, length = 0x001000 /* on-chip Shared RAM block S0 */
    RAMS1 : origin = 0x00D000, length = 0x001000 /* on-chip Shared RAM block S1 */
    RAMS2 : origin = 0x00E000, length = 0x001000 /* on-chip Shared RAM block S2 */
    RAMS3 : origin = 0x00F000, length = 0x001000 /* on-chip Shared RAM block S3 */
    RAMS4 : origin = 0x010000, length = 0x001000 /* on-chip Shared RAM block S4 */
    RAMS5 : origin = 0x011000, length = 0x001000 /* on-chip Shared RAM block S5 */
    RAMS6 : origin = 0x012000, length = 0x001000 /* on-chip Shared RAM block S6 */
    RAMS7 : origin = 0x013000, length = 0x001000 /* on-chip Shared RAM block S7 */

    CTOMRAM : origin = 0x03F800, length = 0x000380 /* C28 to M3 Message RAM */
    MTOCRAM : origin = 0x03FC00, length = 0x000380 /* M3 to C28 Message RAM */

    FLASHB : origin = 0x13C000, length = 0x002000 /* on-chip FLASH */

    FLASH_EXE_ONLY : origin = 0x13FFF2, length = 0x000002 /* FLASH execution only locations */
    ECSL_PWL : origin = 0x13FFF4, length = 0x000004 /* FLASH ECSL password locations */
    CSM_PWL : origin = 0x13FFF8, length = 0x000008 /* FLASH CSM password locations. */
    }

    /* Allocate sections to memory blocks.
    Note:
    codestart user defined section in DSP28_CodeStartBranch.asm used to redirect code
    execution when booting to flash
    ramfuncs user defined section to store functions that will be copied from Flash into RAM
    */

    SECTIONS
    {

    /*** PIE Vect Table and Boot ROM Variables Structures ***/
    UNION run = PIE_VECT, PAGE = 1
    {
    PieVectTableFile
    GROUP
    {
    EmuKeyVar
    EmuBModeVar
    FlashCallbackVar
    FlashScalingVar
    }
    }

    /* Allocate program areas: */
    .cinit : > FLASHA PAGE = 0
    .pinit : > FLASHA, PAGE = 0
    .text : > FLASHA PAGE = 0
    codestart : > BEGIN PAGE = 0

    GROUP
    {
    ramfuncs
    {-l F021_API_C28x_FPU32.lib}

    } LOAD = FLASHA,
    RUN = RAML0,
    LOAD_START(_RamfuncsLoadStart),
    LOAD_SIZE(_RamfuncsLoadSize),
    LOAD_END(_RamfuncsLoadEnd),
    RUN_START(_RamfuncsRunStart),
    RUN_SIZE(_RamfuncsRunSize),
    RUN_END(_RamfuncsRunEnd),
    PAGE = 0

    /*
    #ifdef __TI_COMPILER_VERSION__
    #if __TI_COMPILER_VERSION__ >= 15009000
    GROUP
    {
    .TI.ramfunc
    { -l F021_API_C28x_FPU32.lib}

    } LOAD = FLASHA,
    RUN = RAML0,
    LOAD_START(_RamfuncsLoadStart),
    LOAD_SIZE(_RamfuncsLoadSize),
    RUN_START(_RamfuncsRunStart),
    PAGE = 0
    #else
    GROUP
    {
    ramfuncs
    { -l F021_API_C28x_FPU32.lib}

    } LOAD = FLASHA,
    RUN = RAML0,
    LOAD_START(_RamfuncsLoadStart),
    LOAD_SIZE(_RamfuncsLoadSize),
    RUN_START(_RamfuncsRunStart),
    PAGE = 0
    #endif
    #endif
    */

    /*flashexeonly : > FLASH_EXE_ONLY_P0 PAGE = 0
    ecslpasswds : > ECSL_PWL_P0 PAGE = 0
    csmpasswds : > CSM_PWL_P0 PAGE = 0
    csm_rsvd : > CSM_RSVD PAGE = 0*/
    /*** Peripheral Frame 0 Register Structures ***/
    DevEmuRegsFile : > DEV_EMU, PAGE = 1
    CsmRegsFile : > CSM, PAGE = 1
    UNION run = ADC1_RESULT, PAGE = 1
    {
    AdcResultFile
    Adc1ResultFile
    }
    Adc2ResultFile : > ADC2_RESULT, PAGE = 1
    CpuTimer0RegsFile : > CPU_TIMER0, PAGE = 1
    CpuTimer1RegsFile : > CPU_TIMER1, PAGE = 1
    CpuTimer2RegsFile : > CPU_TIMER2, PAGE = 1
    PieCtrlRegsFile : > PIE_CTRL, PAGE = 1
    PieVectTableCopyFile : > PIE_VECT_CP, PAGE = 1
    DmaRegsFile : > DMA, PAGE = 1
    AnalogSysctrlRegsFile : > ASYSCTRLCONFIG, PAGE = 1

    /*** Peripheral Frame 1 Register Structures ***/
    FlashCtrlRegsFile : > FLASH_REGS, PAGE = 1
    FlashEccRegsFile : > FLASH_ECC, PAGE = 1
    M3PllRegsFile : > M3PLL, PAGE = 1
    EpiRegsFile : > EPI_REGS PAGE = 1
    RAMRegsFile : > RAM_REGS, PAGE = 1
    RAMErrRegsFile : > RAM_ERR_REGS,PAGE = 1
    CtoMIpcRegsFile : > CM_MC_IPC, PAGE = 1

    /*** Peripheral Frame 2 Register Structures ***/
    SysCtrlRegsFile : > SYSTEM, PAGE = 1
    SpiaRegsFile : > SPIA, PAGE = 1
    SciaRegsFile : > SCIA, PAGE = 1
    NmiIntruptRegsFile: > NMIINTRUPT, PAGE = 1
    XIntruptRegsFile : > XINTRUPT, PAGE = 1
    UNION run = ADC1, PAGE = 1
    {
    AdcRegsFile
    Adc1RegsFile
    }
    Adc2RegsFile : > ADC2, PAGE = 1
    I2caRegsFile : > I2CA, PAGE = 1

    /*** Peripheral Frame 3 Register Structures ***/
    McbspaRegsFile : > MCBSPA, PAGE = 1
    EPwm1RegsFile : > EPWM1, PAGE = 1
    EPwm2RegsFile : > EPWM2, PAGE = 1
    EPwm3RegsFile : > EPWM3, PAGE = 1
    EPwm4RegsFile : > EPWM4, PAGE = 1
    EPwm5RegsFile : > EPWM5, PAGE = 1
    EPwm6RegsFile : > EPWM6, PAGE = 1
    EPwm7RegsFile : > EPWM7, PAGE = 1
    EPwm8RegsFile : > EPWM8, PAGE = 1
    EPwm9RegsFile : > EPWM9, PAGE = 1
    ECap1RegsFile : > ECAP1, PAGE = 1
    ECap2RegsFile : > ECAP2, PAGE = 1
    ECap3RegsFile : > ECAP3, PAGE = 1
    ECap4RegsFile : > ECAP4, PAGE = 1
    ECap5RegsFile : > ECAP5, PAGE = 1
    ECap6RegsFile : > ECAP6, PAGE = 1
    EQep1RegsFile : > EQEP1, PAGE = 1
    EQep2RegsFile : > EQEP2, PAGE = 1
    EQep3RegsFile : > EQEP3, PAGE = 1
    UNION run = GPIOG1CTRL, PAGE = 1
    {
    GpioCtrlRegsFile
    GpioG1CtrlRegsFile
    }
    UNION run = GPIOG1DAT, PAGE = 1
    {
    GpioDataRegsFile
    GpioG1DataRegsFile
    }
    UNION run = GPIOG1TRIP, PAGE = 1
    {
    GpioTripRegsFile
    GpioG1TripRegsFile
    }

    Comp1RegsFile : > COMP1, PAGE = 1
    Comp2RegsFile : > COMP2, PAGE = 1
    Comp3RegsFile : > COMP3, PAGE = 1
    Comp4RegsFile : > COMP4, PAGE = 1
    Comp5RegsFile : > COMP5, PAGE = 1
    Comp6RegsFile : > COMP6, PAGE = 1
    GpioG2CtrlRegsFile : > GPIOG2CTRL, PAGE = 1
    GpioG2DataRegsFile : > GPIOG2DAT, PAGE = 1

    /* The following section definitions are required when using the IPC API Drivers */

    GROUP : > CTOMRAM, PAGE = 1
    {
    PUTBUFFER
    PUTWRITEIDX
    GETREADIDX
    }

    GROUP : > MTOCRAM, PAGE = 1
    {
    GETBUFFER : TYPE = DSECT
    GETWRITEIDX : TYPE = DSECT
    PUTREADIDX : TYPE = DSECT
    }

    /* Allocate uninitalized data sections: */
    .stack : > RAMM0 PAGE = 1
    .ebss : > RAML2 PAGE = 1
    .esysmem : > RAML2 PAGE = 1

    /* Initalized sections go in Flash */
    /* For SDFlash to program these, they must be allocated to page 0 */
    .econst : > FLASHA PAGE = 0
    .switch : > FLASHA PAGE = 0

    /* Allocate IQ math areas: */
    IQmath : > FLASHA PAGE = 0 /* Math Code */
    IQmathTables : > IQTABLES, PAGE = 0, TYPE = NOLOAD

    /* Allocate FPU math areas: */
    FPUmathTables : > FPUTABLES, PAGE = 0, TYPE = NOLOAD

    DMARAML2 : > RAML2, PAGE = 1
    DMARAML3 : > RAML3, PAGE = 1

    /* Uncomment the section below if calling the IQNexp() or IQexp()
    functions from the IQMath.lib library in order to utilize the
    relevant IQ Math table in Boot ROM (This saves space and Boot ROM
    is 1 wait-state). If this section is not uncommented, IQmathTables2
    will be loaded into other memory (SARAM, Flash, etc.) and will take
    up space, but 0 wait-state is possible.
    */
    /*
    IQmathTables2 : > IQTABLES2, PAGE = 0, TYPE = NOLOAD
    {

    IQmath.lib<IQNexpTable.obj> (IQmathTablesRam)

    }
    */
    /* Uncomment the section below if calling the IQNasin() or IQasin()
    functions from the IQMath.lib library in order to utilize the
    relevant IQ Math table in Boot ROM (This saves space and Boot ROM
    is 1 wait-state). If this section is not uncommented, IQmathTables2
    will be loaded into other memory (SARAM, Flash, etc.) and will take
    up space, but 0 wait-state is possible.
    */
    /*
    IQmathTables3 : > IQTABLES3, PAGE = 0, TYPE = NOLOAD
    {

    IQmath.lib<IQNasinTable.obj> (IQmathTablesRam)

    }
    */

    /* .reset is a standard section used by the compiler. It contains the */
    /* the address of the start of _c_int00 for C Code. /*
    /* When using the boot ROM this section and the CPU vector */
    /* table is not needed. Thus the default type is set here to */
    /* DSECT */
    .reset : > RESET, PAGE = 0, TYPE = DSECT
    vectors : > VECTORS PAGE = 0, TYPE = DSECT


    /*** Code Security Module Register Structures ***/
    FlashExeOnlyFile : > FLASH_EXE_ONLY, PAGE = 1
    EcslPwlFile : > ECSL_PWL, PAGE = 1
    CsmPwlFile : > CSM_PWL, PAGE = 1
    }

    /*
    */

     

  • Preetham,

    Wow! That was a long message. It took atleast 10 - 15 mins to understand the issue.If I were you, this is how I would proceed with the debug.

    Step1: Program C28x bootloader code and blinky code using JTAG and check whether C28x blinky code works when running in standalone mode. When I mean standalone mode, device should be disconnected from JTAG.

    Step2: Use M3 and C28 bootloader to program blinky code. If everything went correctly. Then C28x flash contents should be same as flash contents when using Step1.

    Step3: If blinky code doesn't work in Step2. Set a breakpoint at 0x13A000 and make sure C28x reaches this point. If it doesn't you need to check your M3 and C28 custom bootloader code.

    Note: If you don't connect to device using JTAG, you are in standalone mode. Once, you connect to the device using JTAG. Gel file will issue a debugger reset.

    Regards,
    Manoj
  • Manoj,

    Below are my observations. 

    Manoj Santha Mohan said:
    Wow! That was a long message. It took atleast 10 - 15 mins to understand the issue.If I were you, this is how I would proceed with the debug.

    Sorry for the long post. But glad i could convey the rite stuff. 

    Manoj Santha Mohan said:
    Step1: Program C28x bootloader code and blinky code using JTAG and check whether C28x blinky code works when running in standalone mode. When I mean standalone mode, device should be disconnected from JTAG.

    I did follow your suggestion here by programming C28 Bootloader and blinky in to its respective FLASH space. Now i came out of debug mode (no jtag in picture) and power reset the evaluation board. The M3 bootloader pushed the IPC BOOT to FLASH for C28 bootloader and finallly blinking the led's after simply jumping in to blinky application. 

    Manoj Santha Mohan said:
    Step2: Use M3 and C28 bootloader to program blinky code. If everything went correctly. Then C28x flash contents should be same as flash contents when using Step1.

    In this step how do i verify if my flash contents are same as flash contents from step 1. Should i read the memory sections in both the instances and compare them using some diff compare ??

    Manoj Santha Mohan said:
    Step3: If blinky code doesn't work in Step2. Set a breakpoint at 0x13A000 and make sure C28x reaches this point. If it doesn't you need to check your M3 and C28 custom bootloader code.

    The breakpoint does hit 0x13A000 address and when i single step it does execute some instruction from the blinky program space as well. But when i resume run and pause the disassembly window is in IDLE condition. 

    Manoj Santha Mohan said:
    Note: If you don't connect to device using JTAG, you are in standalone mode. Once, you connect to the device using JTAG. Gel file will issue a debugger reset.

    Thanks for clarifying ! 

  • Preetham,

    Okay, these experiments confirm that M3 bootloader and C28x custom bootloaders are loading blinky code successfully. We need to confirm if complete blinky code is programmed correctly.

    Can you please download the contents of the flash memory after step1 experiment and compare the contents of memory after step2 (or) step3?

    If the contents of step1 and step3 flash memory match 100%, then only option is load the symbols and continue stepping through the code to root cause the problem.

    Regards,
    Manoj
  • Manoj,

    Need some hints to perform the above steps you have suggested !

    Firstly : 

    Manoj Santha Mohan said:
    Can you please download the contents of the flash memory after step1 experiment and compare the contents of memory after step2 (or) step3?

    How and what format could i download the contents of the flash memory ? Can you please point me where in CCS i could get this done? And is there any tool that does the diff check among flash contents and gives some log messages ?

    Manoj Santha Mohan said:
    If the contents of step1 and step3 flash memory match 100%, then only option is load the symbols and continue stepping through the code to root cause the problem.

    I have not tried this method before. Can you please explain me more how i could try it on my end or point me to some wiki if one exists ? 

    Thanks

  • Preetham,

    Below thread shows you how to download the contents of memory.

    e2e.ti.com/.../131573

    Once you download the contents of C28x flash memory using Step1 and Step3. You can compare the .dat files using any comparison tool

    Regards,
    Manoj
  • Manoj,

    So i was able to extract the .dat file for step 1 and step 2. I used kdiff3 to look at the difference between the files. 

    Based on my observations i did not see any problem or mismatch in programming the actual hex codes from the blinky.hex file.

    But i guess what i see are differences in check sum or ECC half words ?  

    Ex : the step 1 extracted .dat file contains FCD4 in some places where as step 2 extracted .dat file contains FCDE instead. But there are other such half words which are not from the actual blinky.hex file. 

    I have attached the .dat file extracted from step1 and step2. Can you review it on your end and give me your feedback ? 

    The blinky.dat is from step1 

    The blinky_bl.dat is from step2 

    blinky.dat

    blinky_bl.dat

    Thanks

  • Preetham,

    Your memory dump is way too big and it starts from wrong flash address. I also found many memory contents of SectorA is different. Please try re-doing the experiment again and check the differences with below parameters

    Format = Hex
    Start Address = 0x100000
    Memory Page = Data
    Length = 0x040000
    Type-size = 16 bits

    Regards,
    Manoj
  • Manoj,

    Manoj Santha Mohan said:
    Please try re-doing the experiment again and check the differences with below parameters

    Format = Hex
    Start Address = 0x100000
    Memory Page = Data
    Length = 0x040000
    Type-size = 16 bits

    per your suggestions i did perform the entire debugging session again while considering parameters that you listed out. Again the kdiff3 tool only suggests the differences to be in what possibly looks like check sum bytes. 

    Manoj Santha Mohan said:
    I also found many memory contents of SectorA is different

    I am using Sector A for bootloader application so may be i ran step 1 without loading bootloader and step 2 of course with the bootloader, so this is why you could have seen differences !

    I am attaching the .dat files here again for your references. 

    0250.blinky.dat

    4405.blinky_bl.dat

    Thanks

  • Preetham,

    I compared the two .dat files you sent. It does seem to have lot of differences. Please check.

    0250.blinky.dat vs 4405.blinky_bl.dat.txt
    --------------------------------------------------------------
    Address      | 0250.blinky.dat | 4405.blinky_bl.dat | MATCH? |
    --------------------------------------------------------------
    0x13E74E     | FCED            | FCEF               | FALSE  | 
    0x13E78B     | FCED            | FCEF               | FALSE  | 
    0x13EAE8     | FD06            | FD08               | FALSE  | 
    0x13EAF5     | FD06            | FD08               | FALSE  | 
    0x13EB00     | FD06            | FD08               | FALSE  | 
    0x13EB19     | FD06            | FD08               | FALSE  | 
    0x13EB32     | FD06            | FD08               | FALSE  | 
    0x13EB4B     | FD06            | FD08               | FALSE  | 
    0x13EB64     | FD06            | FD08               | FALSE  | 
    0x13EB7D     | FD06            | FD08               | FALSE  | 
    0x13EB96     | FD06            | FD08               | FALSE  | 
    0x13EBAF     | FD06            | FD08               | FALSE  | 
    0x13EBC8     | FD06            | FD08               | FALSE  | 
    0x13EBE1     | FD06            | FD08               | FALSE  | 
    0x13EBFA     | FD06            | FD08               | FALSE  | 
    0x13EC13     | FD06            | FD08               | FALSE  | 
    0x13EC2C     | FD06            | FD08               | FALSE  | 
    0x13ECAB     | FD06            | FD08               | FALSE  | 
    0x13FA3C     | FC50            | FC52               | FALSE  | 
    0x13FA52     | FC94            | FC96               | FALSE  | 
    0x13FA56     | FBFA            | FBFC               | FALSE  | 
    0x13FA5C     | FC74            | FC76               | FALSE  | 
    0x13FA84     | FAAD            | FAAF               | FALSE  | 
    0x13FA92     | 6F1A            | 6F1C               | FALSE  | 
    0x13FA9D     | 6F0F            | 6F11               | FALSE  | 
    0x13FAA1     | 600A            | 600C               | FALSE  | 
    0x13FAA5     | 6106            | 6108               | FALSE  | 
    0x13FAA7     | FA63            | FA81               | FALSE  | 
    0x13FAA9     | FA7D            | FA63               | FALSE  | 
    0x13FAAA     | 6F02            | 7653               | FALSE  | 
    0x13FAAB     | 6F00            | FA7D               | FALSE  | 
    0x13FAAC     | 0006            | 6F02               | FALSE  | 
    0x13FAAD     | FE02            | 6F00               | FALSE  | 
    0x13FAAE     | A842            | 0006               | FALSE  | 
    0x13FAAF     | 7653            | FE02               | FALSE  | 
    0x13FAB0     | FB64            | A842               | FALSE  | 
    0x13FAB2     | FB84            | FB66               | FALSE  | 
    0x13FAB3     | 7640            | 7653               | FALSE  | 
    0x13FAB4     | 8ADA            | FB86               | FALSE  | 
    0x13FAB5     | 6F45            | 7640               | FALSE  | 
    0x13FAB6     | 761F            | 8ADA               | FALSE  | 
    0x13FAB7     | 0280            | 6F45               | FALSE  | 
    0x13FAB8     | 8A06            | 761F               | FALSE  | 
    0x13FAB9     | 0200            | 0280               | FALSE  | 
    0x13FABA     | 1EC4            | 8A06               | FALSE  | 
    0x13FABB     | 761F            | 0200               | FALSE  | 
    0x13FABC     | 0282            | 1EC4               | FALSE  | 
    0x13FABD     | 9229            | 761F               | FALSE  | 
    0x13FABE     | 5201            | 0282               | FALSE  | 
    0x13FABF     | 603B            | 9229               | FALSE  | 
    0x13FAC0     | 8A42            | 5201               | FALSE  | 
    0x13FAC1     | 56BF            | 603B               | FALSE  | 
    0x13FAC2     | 01C4            | 8A42               | FALSE  | 
    0x13FAC3     | 6F37            | 56BF               | FALSE  | 
    0x13FAC4     | 761F            | 01C4               | FALSE  | 
    0x13FAC5     | 0282            | 6F37               | FALSE  | 
    0x13FAC6     | 8F00            | 761F               | FALSE  | 
    0x13FAC7     | A072            | 0282               | FALSE  | 
    0x13FAC8     | 9227            | 8F00               | FALSE  | 
    0x13FAC9     | 7653            | A072               | FALSE  | 
    0x13FACA     | F44C            | 9227               | FALSE  | 
    0x13FACB     | 761F            | 7653               | FALSE  | 
    0x13FACC     | 0287            | F44C               | FALSE  | 
    0x13FACD     | 9619            | 761F               | FALSE  | 
    0x13FACE     | 5200            | 0287               | FALSE  | 
    0x13FACF     | 600D            | 9619               | FALSE  | 
    0x13FAD0     | 761F            | 5200               | FALSE  | 
    0x13FAD1     | 0280            | 600D               | FALSE  | 
    0x13FAD2     | 8306            | 761F               | FALSE  | 
    0x13FAD3     | 8F00            | 0280               | FALSE  | 
    0x13FAD4     | 1234            | 8306               | FALSE  | 
    0x13FAD5     | A8C5            | 8F00               | FALSE  | 
    0x13FAD6     | 761F            | 1234               | FALSE  | 
    0x13FAD7     | 0282            | A8C5               | FALSE  | 
    0x13FAD8     | 2B29            | 761F               | FALSE  | 
    0x13FAD9     | 8A42            | 0282               | FALSE  | 
    0x13FADA     | 2BC4            | 2B29               | FALSE  | 
    0x13FADB     | 6F1F            | 8A42               | FALSE  | 
    0x13FADC     | 1B19            | 2BC4               | FALSE  | 
    0x13FADD     | FFFB            | 6F1F               | FALSE  | 
    0x13FADE     | 6008            | 1B19               | FALSE  | 
    0x13FADF     | 761F            | FFFB               | FALSE  | 
    0x13FAE0     | 0280            | 6008               | FALSE  | 
    0x13FAE1     | 8306            | 761F               | FALSE  | 
    0x13FAE2     | 8F00            | 0280               | FALSE  | 
    0x13FAE3     | 5678            | 8306               | FALSE  | 
    0x13FAE4     | A8C5            | 8F00               | FALSE  | 
    0x13FAE5     | 6F15            | 5678               | FALSE  | 
    0x13FAE6     | 5201            | A8C5               | FALSE  | 
    0x13FAE7     | 6013            | 6F15               | FALSE  | 
    0x13FAE8     | 761F            | 5201               | FALSE  | 
    0x13FAE9     | 0280            | 6013               | FALSE  | 
    0x13FAEA     | 8306            | 761F               | FALSE  | 
    0x13FAEB     | 8F00            | 0280               | FALSE  | 
    0x13FAEC     | 4321            | 8306               | FALSE  | 
    0x13FAED     | A8C5            | 8F00               | FALSE  | 
    0x13FAEE     | 761F            | 4321               | FALSE  | 
    0x13FAEF     | 0282            | A8C5               | FALSE  | 
    0x13FAF0     | 2B29            | 761F               | FALSE  | 
    0x13FAF1     | 8A42            | 0282               | FALSE  | 
    0x13FAF2     | 56BF            | 2B29               | FALSE  | 
    0x13FAF3     | 03C4            | 8A42               | FALSE  | 
    0x13FAF4     | 6F06            | 56BF               | FALSE  | 
    0x13FAF5     | 761F            | 03C4               | FALSE  | 
    0x13FAF6     | 0282            | 6F06               | FALSE  | 
    0x13FAF7     | 2B29            | 761F               | FALSE  | 
    0x13FAF8     | 2BC4            | 0282               | FALSE  | 
    0x13FAF9     | 6F13            | 2B29               | FALSE  | 
    0x13FAFA     | 8A42            | 2BC4               | FALSE  | 
    0x13FAFB     | 92C4            | 6F13               | FALSE  | 
    0x13FAFC     | 5203            | 8A42               | FALSE  | 
    0x13FAFD     | 620A            | 92C4               | FALSE  | 
    0x13FAFF     | 61F6            | 620A               | FALSE  | 
    0x13FB00     | 5200            | 5203               | FALSE  | 
    0x13FB01     | 61B5            | 61F6               | FALSE  | 
    0x13FB02     | 5201            | 5200               | FALSE  | 
    0x13FB03     | 61C1            | 61B5               | FALSE  | 
    0x13FB04     | 5202            | 5201               | FALSE  | 
    0x13FB05     | 61F5            | 61C1               | FALSE  | 
    0x13FB06     | 6FF4            | 5202               | FALSE  | 
    0x13FB07     | 5204            | 61F5               | FALSE  | 
    0x13FB08     | 61F2            | 6FF4               | FALSE  | 
    0x13FB09     | 5205            | 5204               | FALSE  | 
    0x13FB0A     | 60F0            | 61F2               | FALSE  | 
    0x13FB0B     | 6FEF            | 5205               | FALSE  | 
    0x13FB0C     | FE82            | 60F0               | FALSE  | 
    0x13FB0D     | 0006            | 6FEF               | FALSE  | 
    0x13FB0E     | 28AD            | FE82               | FALSE  | 
    0x13FB0F     | 0050            | 0006               | FALSE  | 
    0x13FB10     | FF69            | 28AD               | FALSE  | 
    0x13FB11     | 561F            | 0050               | FALSE  | 
    0x13FB12     | 5616            | FF69               | FALSE  | 
    0x13FB13     | 561A            | 561F               | FALSE  | 
    0x13FB14     | E610            | 5616               | FALSE  | 
    0x13FB15     | 0200            | 561A               | FALSE  | 
    0x13FB16     | 2940            | E610               | FALSE  | 
    0x13FB17     | 761F            | 0200               | FALSE  | 
    0x13FB18     | 0000            | 2940               | FALSE  | 
    0x13FB19     | 2902            | 761F               | FALSE  | 
    0x13FB1A     | 761B            | 0000               | FALSE  | 
    0x13FB1B     | 7653            | 2902               | FALSE  | 
    0x13FB1C     | FD0C            | 761B               | FALSE  | 
    0x13FB1D     | 5200            | 7653               | FALSE  | 
    0x13FB1E     | 6142            | FD0E               | FALSE  | 
    0x13FB1F     | 7622            | 5200               | FALSE  | 
    0x13FB20     | 28A9            | 6142               | FALSE  | 
    0x13FB21     | FE10            | 7622               | FALSE  | 
    0x13FB22     | 28A8            | 28A9               | FALSE  | 
    0x13FB23     | 0013            | FE12               | FALSE  | 
    0x13FB24     | 0901            | 28A8               | FALSE  | 
    0x13FB25     | 611B            | 0013               | FALSE  | 
    0x13FB26     | 76D3            | 0901               | FALSE  | 
    0x13FB27     | FE10            | 611B               | FALSE  | 
    0x13FB28     | 2904            | 76D3               | FALSE  | 
    0x13FB29     | 6F0F            | FE12               | FALSE  | 
    0x13FB2A     | 9B00            | 2904               | FALSE  | 
    0x13FB2B     | 24A9            | 6F0F               | FALSE  | 
    0x13FB2C     | DF01            | 9B00               | FALSE  | 
    0x13FB2D     | 6C04            | 24A9               | FALSE  | 
    0x13FB2E     | 2904            | DF01               | FALSE  | 
    0x13FB2F     | 24A8            | 6C04               | FALSE  | 
    0x13FB30     | DF01            | 2904               | FALSE  | 
    0x13FB31     | 1EA6            | 24A8               | FALSE  | 
    0x13FB32     | F7A1            | DF01               | FALSE  | 
    0x13FB33     | 2486            | 1EA6               | FALSE  | 
    0x13FB34     | 06A7            | F7A1               | FALSE  | 
    0x13FB35     | 81A1            | 2486               | FALSE  | 
    0x13FB36     | 0901            | 06A7               | FALSE  | 
    0x13FB37     | 1EA7            | 81A1               | FALSE  | 
    0x13FB38     | 24A9            | 0901               | FALSE  | 
    0x13FB39     | 6303            | 1EA7               | FALSE  | 
    0x13FB3A     | FF5C            | 24A9               | FALSE  | 
    0x13FB3B     | 3B04            | 6303               | FALSE  | 
    0x13FB3C     | 59A9            | FF5C               | FALSE  | 
    0x13FB3D     | DF01            | 3B04               | FALSE  | 
    0x13FB3E     | 0009            | 59A9               | FALSE  | 
    0x13FB3F     | FFEC            | DF01               | FALSE  | 
    0x13FB40     | 28A9            | 0009               | FALSE  | 
    0x13FB41     | FFFF            | FFEC               | FALSE  | 
    0x13FB42     | 28A8            | 28A9               | FALSE  | 
    0x13FB44     | 0901            | 28A8               | FALSE  | 
    0x13FB45     | 6105            | FFFF               | FALSE  | 
    0x13FB46     | 8F3F            | 0901               | FALSE  | 
    0x13FB47     | FFFF            | 6105               | FALSE  | 
    0x13FB48     | 7653            | 8F3F               | FALSE  | 
    0x13FB49     | FBB4            | FFFF               | FALSE  | 
    0x13FB4A     | 761A            | 7653               | FALSE  | 
    0x13FB4B     | 7653            | FBB6               | FALSE  | 
    0x13FB4C     | FD0E            | 761A               | FALSE  | 
    0x13FB4D     | 28A9            | 7653               | FALSE  | 
    0x13FB4E     | FFFF            | FD10               | FALSE  | 
    0x13FB4F     | 28A8            | 28A9               | FALSE  | 
    0x13FB51     | 0901            | 28A8               | FALSE  | 
    0x13FB52     | 610E            | FFFF               | FALSE  | 
    0x13FB53     | 76FF            | 0901               | FALSE  | 
    0x13FB54     | FFFF            | 610E               | FALSE  | 
    0x13FB55     | 6F06            | 76FF               | FALSE  | 
    0x13FB56     | DF01            | FFFF               | FALSE  | 
    0x13FB57     | C3BD            | 6F06               | FALSE  | 
    0x13FB58     | 1EA7            | DF01               | FALSE  | 
    0x13FB59     | 3E67            | C3BD               | FALSE  | 
    0x13FB5A     | C5BE            | 1EA7               | FALSE  | 
    0x13FB5B     | 24A9            | 3E67               | FALSE  | 
    0x13FB5C     | DF01            | C5BE               | FALSE  | 
    0x13FB5D     | 24A8            | 24A9               | FALSE  | 
    0x13FB5E     | FF58            | DF01               | FALSE  | 
    0x13FB5F     | 60F7            | 24A8               | FALSE  | 
    0x13FB60     | 7653            | FF58               | FALSE  | 
    0x13FB61     | FCCC            | 60F7               | FALSE  | 
    0x13FB63     | FC29            | FCCE               | FALSE  | 
    0x13FB64     | 7622            | 7653               | FALSE  | 
    0x13FB65     | 8F13            | FC2B               | FALSE  | 
    0x13FB66     | F8BF            | 7622               | FALSE  | 
    0x13FB67     | 761F            | 8F13               | FALSE  | 
    0x13FB68     | 0037            | F8BF               | FALSE  | 
    0x13FB69     | A820            | 761F               | FALSE  | 
    0x13FB6A     | 8F13            | 0037               | FALSE  | 
    0x13FB6B     | F92C            | A820               | FALSE  | 
    0x13FB6C     | A822            | 8F13               | FALSE  | 
    0x13FB6D     | 761A            | F92C               | FALSE  | 
    0x13FB6E     | 9A01            | A822               | FALSE  | 
    0x13FB6F     | 9B01            | 761A               | FALSE  | 
    0x13FB70     | FF69            | 9A01               | FALSE  | 
    0x13FB71     | 8F00            | 9B01               | FALSE  | 
    0x13FB72     | A00A            | FF69               | FALSE  | 
    0x13FB73     | 7653            | 8F00               | FALSE  | 
    0x13FB74     | ED31            | A00A               | FALSE  | 
    0x13FB75     | 9A02            | 7653               | FALSE  | 
    0x13FB76     | 9B02            | ED31               | FALSE  | 
    0x13FB77     | 8F00            | 9A02               | FALSE  | 
    0x13FB78     | A018            | 9B02               | FALSE  | 
    0x13FB79     | 7653            | 8F00               | FALSE  | 
    0x13FB7A     | ED31            | A018               | FALSE  | 
    0x13FB7B     | 7623            | 7653               | FALSE  | 
    0x13FB7C     | 0400            | ED31               | FALSE  | 
    0x13FB7D     | 761F            | 7623               | FALSE  | 
    0x13FB7E     | 0033            | 0400               | FALSE  | 
    0x13FB7F     | 1A36            | 761F               | FALSE  | 
    0x13FB80     | 0001            | 0033               | FALSE  | 
    0x13FB82     | 0002            | 0001               | FALSE  | 
    0x13FB83     | 0006            | 1A36               | FALSE  | 
    0x13FB84     | FE02            | 0002               | FALSE  | 
    0x13FB85     | 761F            | 0006               | FALSE  | 
    0x13FB86     | 0280            | FE02               | FALSE  | 
    0x13FB87     | 2B00            | 761F               | FALSE  | 
    0x13FB88     | 0200            | 0280               | FALSE  | 
    0x13FB89     | 1E04            | 2B00               | FALSE  | 
    0x13FB8A     | 8F00            | 0200               | FALSE  | 
    0x13FB8B     | 4567            | 1E04               | FALSE  | 
    0x13FB8C     | A802            | 8F00               | FALSE  | 
    0x13FB8D     | 2B41            | 4567               | FALSE  | 
    0x13FB8E     | 1B41            | A802               | FALSE  | 
    0x13FB8F     | 0100            | 2B41               | FALSE  | 
    0x13FB90     | 6709            | 1B41               | FALSE  | 
    0x13FB91     | 8F00            | 0100               | FALSE  | 
    0x13FB92     | A0C0            | 6709               | FALSE  | 
    0x13FB93     | 5841            | 8F00               | FALSE  | 
    0x13FB94     | 2B94            | A0C0               | FALSE  | 
    0x13FB95     | 0A41            | 5841               | FALSE  | 
    0x13FB96     | 1B41            | 2B94               | FALSE  | 
    0x13FB97     | 0100            | 0A41               | FALSE  | 
    0x13FB98     | 68FB            | 1B41               | FALSE  | 
    0x13FB99     | 8F00            | 0100               | FALSE  | 
    0x13FB9A     | D000            | 68FB               | FALSE  | 
    0x13FB9B     | 761F            | 8F00               | FALSE  | 
    0x13FB9C     | 0280            | D000               | FALSE  | 
    0x13FB9D     | A808            | 761F               | FALSE  | 
    0x13FB9E     | 8F03            | 0280               | FALSE  | 
    0x13FB9F     | FBF4            | A808               | FALSE  | 
    0x13FBA0     | A806            | 8F03               | FALSE  | 
    0x13FBA1     | 8306            | FBF4               | FALSE  | 
    0x13FBA2     | 8F00            | A806               | FALSE  | 
    0x13FBA3     | A000            | 8306               | FALSE  | 
    0x13FBA4     | A8C5            | 8F00               | FALSE  | 
    0x13FBA5     | 8306            | A000               | FALSE  | 
    0x13FBA6     | 8F00            | A8C5               | FALSE  | 
    0x13FBA7     | A004            | 8306               | FALSE  | 
    0x13FBA8     | A8D5            | 8F00               | FALSE  | 
    0x13FBA9     | 8306            | A004               | FALSE  | 
    0x13FBAA     | 8F00            | A8D5               | FALSE  | 
    0x13FBAB     | A0C0            | 8306               | FALSE  | 
    0x13FBAC     | A8E5            | 8F00               | FALSE  | 
    0x13FBAD     | FE82            | A0C0               | FALSE  | 
    0x13FBAE     | 0006            | A8E5               | FALSE  | 
    0x13FBAF     | 761F            | FE82               | FALSE  | 
    0x13FBB0     | 0138            | 0006               | FALSE  | 
    0x13FBB1     | 1A01            | 761F               | FALSE  | 
    0x13FBB2     | 0001            | 0138               | FALSE  | 
    0x13FBB3     | 0006            | 1A01               | FALSE  | 
    0x13FBB4     | B2BD            | 0001               | FALSE  | 
    0x13FBB5     | AABD            | 0006               | FALSE  | 
    0x13FBB6     | FE04            | B2BD               | FALSE  | 
    0x13FBB7     | 86A4            | AABD               | FALSE  | 
    0x13FBB8     | D100            | FE04               | FALSE  | 
    0x13FBB9     | 88CA            | 86A4               | FALSE  | 
    0x13FBBA     | 6F39            | D100               | FALSE  | 
    0x13FBBB     | 2901            | 88CA               | FALSE  | 
    0x13FBBC     | 5603            | 6F39               | FALSE  | 
    0x13FBBD     | 03A1            | 2901               | FALSE  | 
    0x13FBBE     | 07A2            | 5603               | FALSE  | 
    0x13FBBF     | 0902            | 03A1               | FALSE  | 
    0x13FBC0     | 8AA9            | 07A2               | FALSE  | 
    0x13FBC1     | 92C4            | 0902               | FALSE  | 
    0x13FBC2     | 6003            | 8AA9               | FALSE  | 
    0x13FBC3     | 9A00            | 92C4               | FALSE  | 
    0x13FBC4     | 6F02            | 6003               | FALSE  | 
    0x13FBC5     | 9A02            | 9A00               | FALSE  | 
    0x13FBC6     | 93CC            | 6F02               | FALSE  | 
    0x13FBC7     | B600            | 9A02               | FALSE  | 
    0x13FBC8     | 56B0            | 93CC               | FALSE  | 
    0x13FBC9     | 01A7            | B600               | FALSE  | 
    0x13FBCA     | 94A7            | 56B0               | FALSE  | 
    0x13FBCB     | 611F            | 01A7               | FALSE  | 
    0x13FBCC     | 5201            | 94A7               | FALSE  | 
    0x13FBCD     | 6115            | 611F               | FALSE  | 
    0x13FBCE     | 5202            | 5201               | FALSE  | 
    0x13FBCF     | 610B            | 6115               | FALSE  | 
    0x13FBD0     | 5203            | 5202               | FALSE  | 
    0x13FBD1     | 6021            | 610B               | FALSE  | 
    0x13FBD2     | 06E4            | 5203               | FALSE  | 
    0x13FBD3     | 1E42            | 6021               | FALSE  | 
    0x13FBD4     | 06F4            | 06E4               | FALSE  | 
    0x13FBD5     | 1E44            | 1E42               | FALSE  | 
    0x13FBD6     | 06D4            | 06F4               | FALSE  | 
    0x13FBD7     | 7653            | 1E44               | FALSE  | 
    0x13FBD8     | FCB2            | 06D4               | FALSE  | 
    0x13FBD9     | 6F18            | 7653               | FALSE  | 
    0x13FBDA     | 06E4            | FCB4               | FALSE  | 
    0x13FBDB     | 1E42            | 6F18               | FALSE  | 
    0x13FBDC     | 06F4            | 06E4               | FALSE  | 
    0x13FBDD     | 1E44            | 1E42               | FALSE  | 
    0x13FBDE     | 06D4            | 06F4               | FALSE  | 
    0x13FBDF     | 7653            | 1E44               | FALSE  | 
    0x13FBE0     | FCB2            | 06D4               | FALSE  | 
    0x13FBE1     | 6F10            | 7653               | FALSE  | 
    0x13FBE2     | 06E4            | FCB4               | FALSE  | 
    0x13FBE3     | 1E42            | 6F10               | FALSE  | 
    0x13FBE4     | 06F4            | 06E4               | FALSE  | 
    0x13FBE5     | 1E44            | 1E42               | FALSE  | 
    0x13FBE6     | 06D4            | 06F4               | FALSE  | 
    0x13FBE7     | 7653            | 1E44               | FALSE  | 
    0x13FBE8     | FCB2            | 06D4               | FALSE  | 
    0x13FBE9     | 6F08            | 7653               | FALSE  | 
    0x13FBEA     | 06E4            | FCB4               | FALSE  | 
    0x13FBEB     | 1E42            | 6F08               | FALSE  | 
    0x13FBEC     | 06F4            | 06E4               | FALSE  | 
    0x13FBED     | 1E44            | 1E42               | FALSE  | 
    0x13FBEE     | 06D4            | 06F4               | FALSE  | 
    0x13FBEF     | 7653            | 1E44               | FALSE  | 
    0x13FBF0     | FCB2            | 06D4               | FALSE  | 
    0x13FBF1     | 88CA            | 7653               | FALSE  | 
    0x13FBF2     | D901            | FCB4               | FALSE  | 
    0x13FBF3     | 92A6            | 88CA               | FALSE  | 
    0x13FBF4     | 54A1            | D901               | FALSE  | 
    0x13FBF5     | 66C6            | 92A6               | FALSE  | 
    0x13FBF6     | FE84            | 54A1               | FALSE  | 
    0x13FBF7     | 86BE            | 66C6               | FALSE  | 
    0x13FBF8     | 8BBE            | FE84               | FALSE  | 
    0x13FBF9     | 0006            | 86BE               | FALSE  | 
    0x13FBFA     | 3B10            | 8BBE               | FALSE  | 
    0x13FBFB     | 761F            | 0006               | FALSE  | 
    0x13FBFC     | 0033            | 3B10               | FALSE  | 
    0x13FBFD     | 1820            | 761F               | FALSE  | 
    0x13FBFE     | FFFE            | 0033               | FALSE  | 
    0x13FBFF     | 2B22            | 1820               | FALSE  | 
    0x13FC00     | 2B24            | FFFE               | FALSE  | 
    0x13FC01     | 2B26            | 2B22               | FALSE  | 
    0x13FC02     | 2B28            | 2B24               | FALSE  | 
    0x13FC03     | 2B2A            | 2B26               | FALSE  | 
    0x13FC04     | 2B2C            | 2B28               | FALSE  | 
    0x13FC05     | 2B2E            | 2B2A               | FALSE  | 
    0x13FC06     | 2B30            | 2B2C               | FALSE  | 
    0x13FC07     | 2B32            | 2B2E               | FALSE  | 
    0x13FC08     | 2B34            | 2B30               | FALSE  | 
    0x13FC09     | 2B36            | 2B32               | FALSE  | 
    0x13FC0A     | 2B38            | 2B34               | FALSE  | 
    0x13FC0B     | 2B23            | 2B36               | FALSE  | 
    0x13FC0C     | 2B25            | 2B38               | FALSE  | 
    0x13FC0D     | 2B27            | 2B23               | FALSE  | 
    0x13FC0E     | 2B29            | 2B25               | FALSE  | 
    0x13FC0F     | 2B2B            | 2B27               | FALSE  | 
    0x13FC10     | 2B2D            | 2B29               | FALSE  | 
    0x13FC11     | 2B2F            | 2B2B               | FALSE  | 
    0x13FC12     | 2B31            | 2B2D               | FALSE  | 
    0x13FC13     | 2B33            | 2B2F               | FALSE  | 
    0x13FC14     | 2B35            | 2B31               | FALSE  | 
    0x13FC15     | 2B37            | 2B33               | FALSE  | 
    0x13FC16     | 2B39            | 2B35               | FALSE  | 
    0x13FC17     | 1A20            | 2B37               | FALSE  | 
    0x13FC18     | 0001            | 2B39               | FALSE  | 
    0x13FC19     | 2821            | 1A20               | FALSE  | 
    0x13FC1A     | FFFF            | 0001               | FALSE  | 
    0x13FC1B     | 2910            | 2821               | FALSE  | 
    0x13FC1C     | FF69            | FFFF               | FALSE  | 
    0x13FC1D     | 0006            | 2910               | FALSE  | 
    0x13FC1E     | 761F            | FF69               | FALSE  | 
    0x13FC1F     | 0033            | 0006               | FALSE  | 
    0x13FC20     | 1A20            | 761F               | FALSE  | 
    0x13FC21     | 0001            | 0033               | FALSE  | 
    0x13FC22     | 2821            | 1A20               | FALSE  | 
    0x13FC23     | FFFF            | 0001               | FALSE  | 
    0x13FC24     | 2910            | 2821               | FALSE  | 
    0x13FC25     | FF69            | FFFF               | FALSE  | 
    0x13FC26     | 0006            | 2910               | FALSE  | 
    0x13FC27     | 7700            | FF69               | FALSE  | 
    0x13FC28     | 6F00            | 0006               | FALSE  | 
    0x13FC29     | B2BD            | 7700               | FALSE  | 
    0x13FC2A     | 761F            | 6F00               | FALSE  | 
    0x13FC2B     | 0287            | B2BD               | FALSE  | 
    0x13FC2C     | 59A9            | 761F               | FALSE  | 
    0x13FC2D     | 920E            | 0287               | FALSE  | 
    0x13FC2E     | 610D            | 59A9               | FALSE  | 
    0x13FC2F     | 28AB            | 920E               | FALSE  | 
    0x13FC30     | FFFF            | 610D               | FALSE  | 
    0x13FC31     | 28AA            | 28AB               | FALSE  | 
    0x13FC33     | 28A9            | 28AA               | FALSE  | 
    0x13FC35     | 28A8            | 28A9               | FALSE  | 
    0x13FC37     | 0FAB            | 28A8               | FALSE  | 
    0x13FC38     | 6103            | FFFF               | FALSE  | 
    0x13FC39     | 767F            | 0FAB               | FALSE  | 
    0x13FC3A     | FFFF            | 6103               | FALSE  | 
    0x13FC3B     | 761F            | 767F               | FALSE  | 
    0x13FC3C     | 0287            | FFFF               | FALSE  | 
    0x13FC3D     | C514            | 761F               | FALSE  | 
    0x13FC3E     | 3E67            | 0287               | FALSE  | 
    0x13FC3F     | 761F            | C514               | FALSE  | 
    0x13FC40     | 0287            | 3E67               | FALSE  | 
    0x13FC41     | 0612            | 761F               | FALSE  | 
    0x13FC42     | 6104            | 0287               | FALSE  | 
    0x13FC43     | 1EA7            | 0612               | FALSE  | 
    0x13FC44     | 92A1            | 6104               | FALSE  | 
    0x13FC45     | 3E67            | 1EA7               | FALSE  | 
    0x13FC46     | 761F            | 92A1               | FALSE  | 
    0x13FC47     | 0287            | 3E67               | FALSE  | 
    0x13FC48     | 0610            | 761F               | FALSE  | 
    0x13FC49     | 6103            | 0287               | FALSE  | 
    0x13FC4A     | 1EA7            | 0610               | FALSE  | 
    0x13FC4B     | 3E67            | 6103               | FALSE  | 
    0x13FC4C     | 7653            | 1EA7               | FALSE  | 
    0x13FC4D     | FC27            | 3E67               | FALSE  | 
    0x13FC4E     | 8BBE            | 7653               | FALSE  | 
    0x13FC4F     | 0006            | FC29               | FALSE  | 
    0x13FC50     | 7622            | 8BBE               | FALSE  | 
    0x13FC51     | 0200            | 0006               | FALSE  | 
    0x13FC52     | 761F            | 7622               | FALSE  | 
    0x13FC53     | 017E            | 0200               | FALSE  | 
    0x13FC54     | 1E06            | 761F               | FALSE  | 
    0x13FC55     | 1E08            | 017E               | FALSE  | 
    0x13FC56     | 1E16            | 1E06               | FALSE  | 
    0x13FC57     | 1E18            | 1E08               | FALSE  | 
    0x13FC58     | 1E26            | 1E16               | FALSE  | 
    0x13FC59     | 761F            | 1E18               | FALSE  | 
    0x13FC5A     | 01BE            | 1E26               | FALSE  | 
    0x13FC5B     | 1E06            | 761F               | FALSE  | 
    0x13FC5C     | 1E36            | 01BE               | FALSE  | 
    0x13FC5D     | 1E38            | 1E06               | FALSE  | 
    0x13FC5E     | 761F            | 1E36               | FALSE  | 
    0x13FC5F     | 017E            | 1E38               | FALSE  | 
    0x13FC60     | 1E0A            | 761F               | FALSE  | 
    0x13FC61     | 1E1A            | 017E               | FALSE  | 
    0x13FC62     | 1E2A            | 1E0A               | FALSE  | 
    0x13FC63     | 761F            | 1E1A               | FALSE  | 
    0x13FC64     | 01BE            | 1E2A               | FALSE  | 
    0x13FC65     | 1E0A            | 761F               | FALSE  | 
    0x13FC66     | 1E3A            | 01BE               | FALSE  | 
    0x13FC67     | 761F            | 1E0A               | FALSE  | 
    0x13FC68     | 017E            | 1E3A               | FALSE  | 
    0x13FC69     | 1E02            | 761F               | FALSE  | 
    0x13FC6A     | 1E04            | 017E               | FALSE  | 
    0x13FC6B     | 1E12            | 1E02               | FALSE  | 
    0x13FC6C     | 1E14            | 1E04               | FALSE  | 
    0x13FC6D     | 1E22            | 1E12               | FALSE  | 
    0x13FC6E     | 761F            | 1E14               | FALSE  | 
    0x13FC6F     | 01BE            | 1E22               | FALSE  | 
    0x13FC70     | 1E02            | 761F               | FALSE  | 
    0x13FC71     | 761A            | 01BE               | FALSE  | 
    0x13FC72     | FF69            | 1E02               | FALSE  | 
    0x13FC73     | 0006            | 761A               | FALSE  | 
    0x13FC74     | FE06            | FF69               | FALSE  | 
    0x13FC75     | 8F13            | 0006               | FALSE  | 
    0x13FC76     | FD10            | FE06               | FALSE  | 
    0x13FC77     | A844            | 8F13               | FALSE  | 
    0x13FC78     | 8F00            | FD12               | FALSE  | 
    0x13FC79     | 0D00            | A844               | FALSE  | 
    0x13FC7A     | A846            | 8F00               | FALSE  | 
    0x13FC7B     | 7622            | 0D00               | FALSE  | 
    0x13FC7C     | 2B41            | A846               | FALSE  | 
    0x13FC7D     | 9241            | 7622               | FALSE  | 
    0x13FC7E     | 5280            | 2B41               | FALSE  | 
    0x13FC7F     | 630D            | 9241               | FALSE  | 
    0x13FC80     | 8346            | 5280               | FALSE  | 
    0x13FC81     | 8A44            | 630D               | FALSE  | 
    0x13FC82     | A0A9            | 8346               | FALSE  | 
    0x13FC83     | C484            | 8A44               | FALSE  | 
    0x13FC84     | 0902            | A0A9               | FALSE  | 
    0x13FC85     | A844            | C484               | FALSE  | 
    0x13FC86     | 1E46            | 0902               | FALSE  | 
    0x13FC87     | C2C5            | A844               | FALSE  | 
    0x13FC88     | 0A41            | 1E46               | FALSE  | 
    0x13FC89     | 9241            | C2C5               | FALSE  | 
    0x13FC8A     | 5280            | 0A41               | FALSE  | 
    0x13FC8B     | 64F5            | 9241               | FALSE  | 
    0x13FC8C     | 761A            | 5280               | FALSE  | 
    0x13FC8D     | 761F            | 64F5               | FALSE  | 
    0x13FC8E     | 0033            | 761A               | FALSE  | 
    0x13FC8F     | 1A20            | 761F               | FALSE  | 
    0x13FC90     | 0001            | 0033               | FALSE  | 
    0x13FC91     | FF69            | 1A20               | FALSE  | 
    0x13FC92     | FE86            | 0001               | FALSE  | 
    0x13FC93     | 0006            | FF69               | FALSE  | 
    0x13FC94     | 5200            | FE86               | FALSE  | 
    0x13FC95     | A8AB            | 0006               | FALSE  | 
    0x13FC96     | 8EA4            | 5200               | FALSE  | 
    0x13FC97     | 6108            | A8AB               | FALSE  | 
    0x13FC98     | 80A9            | 8EA4               | FALSE  | 
    0x13FC99     | DF81            | 6108               | FALSE  | 
    0x13FC9A     | 88A7            | 80A9               | FALSE  | 
    0x13FC9B     | 8085            | DF81               | FALSE  | 
    0x13FC9C     | 7F80            | 88A7               | FALSE  | 
    0x13FC9D     | 000E            | 8085               | FALSE  | 
    0x13FC9E     | FFFE            | 7F80               | FALSE  | 
    0x13FC9F     | 88A9            | 000E               | FALSE  | 
    0x13FCA0     | 0FA6            | FFFE               | FALSE  | 
    0x13FCA1     | 610F            | 88A9               | FALSE  | 
    0x13FCA2     | 5300            | 0FA6               | FALSE  | 
    0x13FCA3     | 610D            | 610F               | FALSE  | 
    0x13FCA4     | 9DFF            | 5300               | FALSE  | 
    0x13FCA5     | 5CA8            | 610D               | FALSE  | 
    0x13FCA6     | 76BF            | 9DFF               | FALSE  | 
    0x13FCA7     | FFFE            | 5CA8               | FALSE  | 
    0x13FCA8     | 9285            | 76BF               | FALSE  | 
    0x13FCA9     | 9680            | FFFE               | FALSE  | 
    0x13FCAA     | 000E            | 9285               | FALSE  | 
    0x13FCAB     | FFFE            | 9680               | FALSE  | 
    0x13FCAC     | 9285            | 000E               | FALSE  | 
    0x13FCAD     | 9680            | FFFE               | FALSE  | 
    0x13FCAE     | 000C            | 9285               | FALSE  | 
    0x13FCAF     | FFF8            | 9680               | FALSE  | 
    0x13FCB0     | A9A4            | 000C               | FALSE  | 
    0x13FCB1     | 0006            | FFF8               | FALSE  | 
    0x13FCB2     | 1EA7            | A9A4               | FALSE  | 
    0x13FCB3     | 8A44            | 0006               | FALSE  | 
    0x13FCB4     | 0646            | 1EA7               | FALSE  | 
    0x13FCB5     | 5200            | 8A44               | FALSE  | 
    0x13FCB6     | 6104            | 0646               | FALSE  | 
    0x13FCB7     | 9CFF            | 5200               | FALSE  | 
    0x13FCB8     | F7A9            | 6104               | FALSE  | 
    0x13FCB9     | 2484            | 9CFF               | FALSE  | 
    0x13FCBA     | 5300            | F7A9               | FALSE  | 
    0x13FCBB     | 6110            | 2484               | FALSE  | 
    0x13FCBC     | 2746            | 5300               | FALSE  | 
    0x13FCBD     | 2BAA            | 6110               | FALSE  | 
    0x13FCBE     | 5657            | 2746               | FALSE  | 
    0x13FCBF     | 00A7            | 2BAA               | FALSE  | 
    0x13FCC0     | A9A7            | 5657               | FALSE  | 
    0x13FCC1     | 2484            | 00A7               | FALSE  | 
    0x13FCC2     | DF01            | A9A7               | FALSE  | 
    0x13FCC3     | 28A9            | 2484               | FALSE  | 
    0x13FCC4     | FFFE            | DF01               | FALSE  | 
    0x13FCC5     | F7A9            | 28A9               | FALSE  | 
    0x13FCC6     | 2484            | FFFE               | FALSE  | 
    0x13FCC7     | 08AA            | F7A9               | FALSE  | 
    0x13FCC8     | 0001            | 2484               | FALSE  | 
    0x13FCC9     | FFD0            | 08AA               | FALSE  | 
    0x13FCCA     | EDF6            | 0001               | FALSE  | 
    0x13FCCB     | 0006            | FFD0               | FALSE  | 
    0x13FCCC     | 28AB            | EDF6               | FALSE  | 
    0x13FCCD     | FFFF            | 0006               | FALSE  | 
    0x13FCCE     | 28AA            | 28AB               | FALSE  | 
    0x13FCD0     | 28A9            | 28AA               | FALSE  | 
    0x13FCD2     | 28A8            | 28A9               | FALSE  | 
    0x13FCD4     | 0FAB            | 28A8               | FALSE  | 
    0x13FCD5     | 6004            | FFFF               | FALSE  | 
    0x13FCD6     | BE00            | 0FAB               | FALSE  | 
    0x13FCD7     | D400            | 6004               | FALSE  | 
    0x13FCD8     | 6F09            | BE00               | FALSE  | 
    0x13FCD9     | 28AB            | D400               | FALSE  | 
    0x13FCDA     | FFFF            | 6F09               | FALSE  | 
    0x13FCDB     | 28AA            | 28AB               | FALSE  | 
    0x13FCDD     | A9A4            | 28AA               | FALSE  | 
    0x13FCDE     | 88C4            | FFFF               | FALSE  | 
    0x13FCDF     | 0902            | A9A4               | FALSE  | 
    0x13FCE0     | 8AA9            | 88C4               | FALSE  | 
    0x13FCE1     | 92A6            | 0902               | FALSE  | 
    0x13FCE2     | 7653            | 8AA9               | FALSE  | 
    0x13FCE3     | FD09            | 92A6               | FALSE  | 
    0x13FCE4     | 0006            | 7653               | FALSE  | 
    0x13FCE5     | C141            | FD0B               | FALSE  | 
    0x13FCE6     | C042            | 0006               | FALSE  | 
    0x13FCE7     | 0644            | C141               | FALSE  | 
    0x13FCE8     | CFAA            | C042               | FALSE  | 
    0x13FCE9     | CEAB            | 0644               | FALSE  | 
    0x13FCEA     | FF5A            | CFAA               | FALSE  | 
    0x13FCEB     | 0642            | CEAB               | FALSE  | 
    0x13FCEC     | 7620            | FF5A               | FALSE  | 
    0x13FCED     | 9941            | 0642               | FALSE  | 
    0x13FCEE     | 9842            | 7620               | FALSE  | 
    0x13FCEF     | 0644            | 9941               | FALSE  | 
    0x13FCF0     | CBAA            | 9842               | FALSE  | 
    0x13FCF1     | CAAB            | 0644               | FALSE  | 
    0x13FCF2     | FF5A            | CBAA               | FALSE  | 
    0x13FCF3     | 0642            | CAAB               | FALSE  | 
    0x13FCF4     | 7620            | FF5A               | FALSE  | 
    0x13FCF5     | F341            | 0642               | FALSE  | 
    0x13FCF6     | F242            | 7620               | FALSE  | 
    0x13FCF7     | 0644            | F341               | FALSE  | 
    0x13FCF8     | 71AA            | F242               | FALSE  | 
    0x13FCF9     | 70AB            | 0644               | FALSE  | 
    0x13FCFA     | FF5A            | 71AA               | FALSE  | 
    0x13FCFB     | 0642            | 70AB               | FALSE  | 
    0x13FCFC     | 7620            | FF5A               | FALSE  | 
    0x13FCFD     | 761F            | 0642               | FALSE  | 
    0x13FCFE     | 0287            | 7620               | FALSE  | 
    0x13FCFF     | A816            | 761F               | FALSE  | 
    0x13FD00     | 0006            | 0287               | FALSE  | 
    0x13FD01     | 761F            | A816               | FALSE  | 
    0x13FD02     | 0287            | 0006               | FALSE  | 
    0x13FD03     | A814            | 761F               | FALSE  | 
    0x13FD04     | 0006            | 0287               | FALSE  | 
    0x13FD05     | 0006            | A814               | FALSE  | 
    0x13FD06     | FE02            | 0006               | FALSE  | 
    0x13FD07     | 9641            | 0006               | FALSE  | 
    0x13FD08     | 6F00            | FE02               | FALSE  | 
    0x13FD09     | 7653            | 9641               | FALSE  | 
    0x13FD0A     | FA86            | 6F00               | FALSE  | 
    0x13FD0B     | 0006            | 7653               | FALSE  | 
    0x13FD0C     | 9A01            | FA86               | FALSE  | 
    0x13FD0E     | 0006            | 9A01               | FALSE  | 
    0x13FD0F     | FFFF            | 0006               | FALSE  | 
    0x13FD10     | F438            | 0006               | FALSE  | 
    0x13FD11     | 0013            | FFFF               | FALSE  | 
    0x13FD2A     | F0ED            | F438               | FALSE  | 
    0x13FD2C     | F0F7            | F0ED               | FALSE  | 
    0x13FD2E     | F101            | F0F7               | FALSE  | 
    0x13FD30     | F10B            | F101               | FALSE  | 
    0x13FD32     | F115            | F10B               | FALSE  | 
    0x13FD34     | F11F            | F115               | FALSE  | 
    0x13FD36     | F129            | F11F               | FALSE  | 
    0x13FD38     | F133            | F129               | FALSE  | 
    0x13FD3A     | F13D            | F133               | FALSE  | 
    0x13FD3C     | F147            | F13D               | FALSE  | 
    0x13FD3E     | F151            | F147               | FALSE  | 
    0x13FD40     | F15B            | F151               | FALSE  | 
    0x13FD42     | F165            | F15B               | FALSE  | 
    0x13FD44     | F16F            | F165               | FALSE  | 
    0x13FD46     | F179            | F16F               | FALSE  | 
    0x13FD48     | F183            | F179               | FALSE  | 
    0x13FD4A     | F18D            | F183               | FALSE  | 
    0x13FD4C     | F197            | F18D               | FALSE  | 
    0x13FD4E     | F1A1            | F197               | FALSE  | 
    0x13FD50     | F1AB            | F1A1               | FALSE  | 
    0x13FD52     | F1B5            | F1AB               | FALSE  | 
    0x13FD54     | F442            | F1B5               | FALSE  | 
    0x13FD56     | F1BF            | F442               | FALSE  | 
    0x13FD58     | F1C9            | F1BF               | FALSE  | 
    0x13FD5A     | F442            | F1C9               | FALSE  | 
    0x13FD5C     | F1D3            | F442               | FALSE  | 
    0x13FD5E     | F1DD            | F1D3               | FALSE  | 
    0x13FD60     | F1E7            | F1DD               | FALSE  | 
    0x13FD62     | F1F1            | F1E7               | FALSE  | 
    0x13FD64     | F1FB            | F1F1               | FALSE  | 
    0x13FD66     | F205            | F1FB               | FALSE  | 
    0x13FD68     | F20F            | F205               | FALSE  | 
    0x13FD6A     | F219            | F20F               | FALSE  | 
    0x13FD6C     | F223            | F219               | FALSE  | 
    0x13FD6E     | F22D            | F223               | FALSE  | 
    0x13FD70     | F237            | F22D               | FALSE  | 
    0x13FD72     | F241            | F237               | FALSE  | 
    0x13FD74     | F24B            | F241               | FALSE  | 
    0x13FD76     | F255            | F24B               | FALSE  | 
    0x13FD78     | F25F            | F255               | FALSE  | 
    0x13FD7A     | F269            | F25F               | FALSE  | 
    0x13FD7C     | F273            | F269               | FALSE  | 
    0x13FD7E     | F27D            | F273               | FALSE  | 
    0x13FD80     | F287            | F27D               | FALSE  | 
    0x13FD82     | F291            | F287               | FALSE  | 
    0x13FD84     | F29B            | F291               | FALSE  | 
    0x13FD86     | F2A5            | F29B               | FALSE  | 
    0x13FD88     | F2AF            | F2A5               | FALSE  | 
    0x13FD8A     | F2B9            | F2AF               | FALSE  | 
    0x13FD8C     | F442            | F2B9               | FALSE  | 
    0x13FD8E     | F2C3            | F442               | FALSE  | 
    0x13FD90     | F2CD            | F2C3               | FALSE  | 
    0x13FD92     | F2D7            | F2CD               | FALSE  | 
    0x13FD94     | F2E1            | F2D7               | FALSE  | 
    0x13FD96     | F442            | F2E1               | FALSE  | 
    0x13FD9E     | F2EB            | F442               | FALSE  | 
    0x13FDA0     | F2F5            | F2EB               | FALSE  | 
    0x13FDA2     | F2FF            | F2F5               | FALSE  | 
    0x13FDA4     | F442            | F2FF               | FALSE  | 
    0x13FDA8     | F309            | F442               | FALSE  | 
    0x13FDAA     | F313            | F309               | FALSE  | 
    0x13FDAC     | F442            | F313               | FALSE  | 
    0x13FDB0     | F31D            | F442               | FALSE  | 
    0x13FDB2     | F327            | F31D               | FALSE  | 
    0x13FDB4     | F331            | F327               | FALSE  | 
    0x13FDB6     | F33B            | F331               | FALSE  | 
    0x13FDB8     | F345            | F33B               | FALSE  | 
    0x13FDBA     | F34F            | F345               | FALSE  | 
    0x13FDBC     | F442            | F34F               | FALSE  | 
    0x13FDC0     | F359            | F442               | FALSE  | 
    0x13FDC2     | F363            | F359               | FALSE  | 
    0x13FDC4     | F442            | F363               | FALSE  | 
    0x13FDD0     | F36D            | F442               | FALSE  | 
    0x13FDD2     | F377            | F36D               | FALSE  | 
    0x13FDD4     | F442            | F377               | FALSE  | 
    0x13FDE4     | F381            | F442               | FALSE  | 
    0x13FDE6     | F38B            | F381               | FALSE  | 
    0x13FDE8     | F395            | F38B               | FALSE  | 
    0x13FDEA     | F39F            | F395               | FALSE  | 
    0x13FDEC     | F3A9            | F39F               | FALSE  | 
    0x13FDEE     | F3B3            | F3A9               | FALSE  | 
    0x13FDF0     | F3BD            | F3B3               | FALSE  | 
    0x13FDF2     | F3C7            | F3BD               | FALSE  | 
    0x13FDF4     | F3D1            | F3C7               | FALSE  | 
    0x13FDF6     | F3DB            | F3D1               | FALSE  | 
    0x13FDF8     | F442            | F3DB               | FALSE  | 
    0x13FE00     | F3E5            | F442               | FALSE  | 
    0x13FE02     | F3EF            | F3E5               | FALSE  | 
    0x13FE04     | F3F9            | F3EF               | FALSE  | 
    0x13FE06     | F403            | F3F9               | FALSE  | 
    0x13FE08     | F40D            | F403               | FALSE  | 
    0x13FE0A     | F442            | F40D               | FALSE  | 
    0x13FE0C     | F417            | F442               | FALSE  | 
    0x13FE0E     | F421            | F417               | FALSE  | 
    0x13FE10     | FFFF            | F421               | FALSE  | 
    0x13FE11     | A040            | 0013               | FALSE  | 
    0x13FE12     | 0000            | FFFF               | FALSE  | 
    0x13FE13     | 0000            | A040               | FALSE  | 
    0x13FE14     | FFFF            | 0000               | FALSE  | 
    0x13FE15     | A072            | 0000               | FALSE  | 
    0x13FE16     | 0000            | FFFF               | FALSE  | 
    0x13FE17     | 0000            | A072               | FALSE  | 
    0x13FE18     | FFFA            | 0000               | FALSE  | 
    0x13FE19     | A0A4            | 0000               | FALSE  | 
    0x13FE1A     | 0000            | FFFA               | FALSE  | 
    0x13FE1B     | 0000            | A0A4               | FALSE  | 
    0x13FE21     | FFFF            | 0000               | FALSE  | 
    0x13FE22     | A0C0            | 0000               | FALSE  | 
    0x13FE23     | 0000            | FFFF               | FALSE  | 
    0x13FE24     | 0000            | A0C0               | FALSE  | 
    0x13FE25     | FFFF            | 0000               | FALSE  | 
    0x13FE26     | A1CE            | 0000               | FALSE  | 
    0x13FE27     | 0000            | FFFF               | FALSE  | 
    0x13FE28     | 0001            | A1CE               | FALSE  | 
    0x13FE29     | FFFE            | 0000               | FALSE  | 
    0x13FE2A     | A1D0            | 0001               | FALSE  | 
    0x13FE2B     | 0000            | FFFE               | FALSE  | 
    0x13FE2C     | 0000            | A1D0               | FALSE  | 
    0x13FE2E     | FFFE            | 0000               | FALSE  | 
    0x13FE2F     | A1D2            | 0000               | FALSE  | 
    0x13FE30     | 0000            | FFFE               | FALSE  | 
    0x13FE31     | 0000            | A1D2               | FALSE  | 
    0x13FE33     | FFFE            | 0000               | FALSE  | 
    0x13FE34     | A1D4            | 0000               | FALSE  | 
    0x13FE35     | 0000            | FFFE               | FALSE  | 
    0x13FE36     | FD05            | A1D4               | FALSE  | 
    0x13FE37     | 0013            | 0000               | FALSE  | 
    0x13FE38     | FFFE            | FD07               | FALSE  | 
    0x13FE39     | A1D6            | 0013               | FALSE  | 
    0x13FE3A     | 0000            | FFFE               | FALSE  | 
    0x13FE3B     | FD05            | A1D6               | FALSE  | 
    0x13FE3C     | 0013            | 0000               | FALSE  | 
    0x13FE3D     | FFFF            | FD07               | FALSE  | 
    0x13FE3E     | A1D8            | 0013               | FALSE  | 
    0x13FE3F     | 0000            | FFFF               | FALSE  | 
    0x13FE40     | 0000            | A1D8               | FALSE  | 
    0x13FE43     | FFFF            | 0000               | FALSE  | 
    0x13FE44     | FFFF            | 0000               | FALSE  | 
    0x13FFF1     | FB0E            | FB10               | FALSE  | 
    

    Regards,

    Manoj

  • Hi Manoj,

    Sorry for the delayed response and thank you for putting through such detailed note pointing out differences.

    Looking at your attached file, i could see that majority of differences are from sector A. This is where i flash my C28 Bootloader application !
    So does this part of application effect how further blinky application is going to behave ?

    Also i could not understand exactly how there is almost a bit difference in each address blocks of sector A.

    I use CCS studio integrated JTAG support for flashing my bootloader. How could it be different when done for step 1 and step 2 ?

    Thanks
  • Manoj,

    Wanted to just mention here the single step i execute at my C28 Bootloader to jump to address 0x13A000.

    static void transferthecontrol(void){

    asm (" LB 0x0013A000"); //0013 A000 – 0013 BFFF -> Sector C

    return;

    }

    Now this is all i do to jump ! Should i consider performing any other steps apart from this ?
  • Preetham,

    Did you make sure your C28x blinky application code is confined in sectors other than C28x bootloader? I get a feeling that when you program blinky application code, it is corrupting C28x bootloader sectors.

    Regards,
    Manoj
  • Preetham,

    Generally any custom boot loader code decides whether they need to update application code (or) just run existing application code based on specified signature from host.

    Lets say when a specific GPIO is pulled high I want to update my application code, here is how I could structure my code:-

    1) Check the Status of GPIO
    2) If GPIO pulled high, Erase sectors used for application code and update new application code
    3) If GPIO pulled low, no-need to update application code, just jump to start address of application code and continue running application code.

    Attached code snippet is good enough to jump to application code and run it.

    Regards,
    Manoj
  • Manoj,

    I have some updates for you based on some troubleshooting i performed using Load Symbols operations. 

    Firstly:

    I loaded my C28 Bootloader through JTAG and through the Bootloader i programmed C28 blinky application and jumped directly to "_c_int00" of blinky application. 

    See below screenshot, which shows that i indeed jump to this address and this is seen by breaking at this location. (I have loaded symbols at this point)

    Now i place another breakpoint at main( ) of blinky which is at location 0x001301a0. 

    Now the first time when i resumed my debugger to  run from _c_int00() i expected it to break at main ( ) !

    But for my surprise i never reached main  ( ) and the application broke some where in between  _c_int00 and main ( ).

    So i started the entire session again and this time when i hit _c_int00 ( ) i started to single step in to the code. This took me in to some symbols from boot28.inc file. After single stepping for few mins and when i got in to  _copy_in ( ) and tried to single step again the code broke and i was back in to BOOT ROM regin i guess ! 

    So no entirely sure what went wrong in this region ? See below screen shot 

    Can you provide me some hints on what could have i messed up here ? 

    Thanks

  • Preetham,

    This is strange. I don't quite understand how you see the problem only when you program blinky code using C28x bootloader and not when programming blinky code with JTAG. Also, how can your c28x bootloader be different between step1 and step2. There are too many missing links for me to give meaningful suggestion.

    Regards,
    Manoj
  • Manoj,

    Could it help if we could connect via a team viewer session or may be webex. So that as we talk i could share my screen and as well show you in realtime what i do and may be that gives you some better picture.

    If this is workable plan, please let me know i can talk to Zaki nadeem ( TI , FAE) who handles TI product support for our company and ask his help to setup initial call for us.

    Thanks
  • Preetham,
    Please send me an email @ r-kalsi@ti.com to discuss further
  • Is this issue resolved? Can I close this thread?
  • Hey Manoj,

    The issue continue to exist. But to avoid thread from lengthening, i will probably create a new thread and post my observations and concerns there. For now i would say the answer that points me to trouble shoot by loading symbols have given me some progress so i will mark this as the solution.

    Thanks
  • Okay. Hope you were able to resolve differences in the memory dump.

    -Manoj
  • I'm closing this thread. Please open a new thread if you still have further questions.