CRC of Data section in Load Memory location

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

CRC of Data section in Load Memory location

1,614 次查看
ivekengineer
Contributor III

First, thanks for the new CRC linker feature - I needed that!

 

I am using a DSC (MC56F8257).

 

How do I get the linker to store the crc of the data memory with the load address as the start address, and p_mem  (P_RECTYPE) as the type instead of the run address and x_mem (X_RECTYPE) type?

 

 

This is important because I want to verify my application stored in FLASH from a bootloader, before jumping into (running) the application.

 

Or, alternatively, is there a way to perform a single crc over a range of p_memory that includes all sections (vectors, data, text, etc.).


标签 (1)
标记 (1)
0 项奖励
7 回复数

899 次查看
TICS_Fiona
NXP Employee
NXP Employee

For further question, could you please summit a Serive Request on line, or just mail to support@freescale.com ? Thank you

0 项奖励

899 次查看
TICS_Fiona
NXP Employee
NXP Employee

is there a way to perform a single crc over a range of p_memory that includes all sections (vectors, data, text, etc.). 

--> You can get CRC for whole p_memoy, or for d memory, but It is impossible to check CRC by funtion CRC16_check() in application code. Because debuger will erase flash before programming, the flash unit that are not used by application will be written as 0xFFFF, this will cause different CRC calucated in Link time and Run time.

0 项奖励

899 次查看
TICS_Fiona
NXP Employee
NXP Employee

It is possible to use load address as start address instead of run address in p_mem to get CRC. To do it,  need some code like below in LCF:

        .ApplicationCode :
        {

              .....

               __pROM_data_start = .;

           

        } > .p_Code

   .data_in_p_flash_ROM : AT(__pROM_data_start)

        {

          

      __xRAM_data_start = .;

            ...

              * (.data)

              # save data end and calculate data block size
              . = ALIGN(2);
              __xRAM_data_end = .;
              __data_size = __xRAM_data_end - __xRAM_data_start;

            __pROM_data_end = __pROM_data_start +  __data_size - 1.;

        } > .p_flash_ROM_data   

.crc : {

crc1 = CRC16( __pROM_data_start, __pROM_data_end);

} > x_RAM2

0 项奖励

899 次查看
ivekengineer
Contributor III

Yes, I have tried something like this several different ways.  I keep getting an error such as the following:

Description Resource Path Location Type

Linker command file error at line 180 start & end symbols must be in the same segment! MotorMCU    C/C++ Problem

0 项奖励

899 次查看
trytohelp
NXP Employee
NXP Employee

Hi,

Please let me know the tool version used.

To do that you must:

   Under Eclipse IDE

    1-      Start Eclipse and click on Help ¦ Freescale Licenses

      The Status column gives the status of the license.

      Under Product, select it and click on details.

      A new dialog show up giving license details.

      Provide us all info displayed

    2-      Start Eclipse and click on Help ¦ About CodeWarrior Development Studio

      Under Installed Products, you will see the version used.

regards

Pascal

0 项奖励

899 次查看
ivekengineer
Contributor III

CodeWarrior for MCU, version 10.4, Build Id: 130425

0 项奖励

899 次查看
trytohelp
NXP Employee
NXP Employee

Thanks for info.

I've contacted a colleague regarding this question.

Keep you informed.

Pascal

0 项奖励