Banner_AURIX_Security-Solution Banner_AURIX_Security-Solution Banner_AURIX_Security-Solution Banner_AURIX_Security-Solution


infineon4engineers Facebook

infineon@google+ Google+

infineon@linkedin linkedin

infineon4engi@twitter twitter

infineon@youtube youtube

+ Reply to Thread
Results 1 to 3 of 3

Thread: RAM redundancy data copying

  1. #1
    Intermediate Intermediate Lukas_G is on a distinguished road
    Join Date
    Apr 2019
    Posts
    50
    Points
    510

    RAM redundancy data copying

    Hi,
    Ive got problem with copying redundancy data to standby RAM:

    According to user manual reserved data[i] is another address i should read value from the store it back to reserved_data[i], but it seems like this address is corrupted or not exist.
    Every time I try to assign data from reserved_data[i] address trap occur( for all reserved_data[i]).
    Trap details are class 4 and TIN 2 which mean data error(DSE, tc1.6 architecture datasheet), but I cannot figure out why it's happening.
    reserved_data[i] values are always the same so I assume they are correct addresses.
    Endinit protection is also disabled.

    How to solve this problem?
    I work on Tc222L


    Attachment 4106
    RESERVED_DATA_ACCEPTANCE_VALUE_X are 0xFFFFFF and 0x0
    ?????? ?????? Przechwytywanie.PNG‎  
    Last edited by Lukas_G; Aug 21st, 2019 at 04:23 AM.

  2. #2
    Advanced Advanced cwunder is on a distinguished road
    Join Date
    Feb 2015
    Location
    USA
    Posts
    108
    Points
    2037.5
    Here is the code snippet that I used:
    Code:
    void CopyStandbyRedundancyData(void){
    	uint32_t *src = (uint32_t *)0xD0002000;
    	volatile uint32_t data;
    
    
    	/* Preparation before to enter Stand-by mode */
    
    
    	/* • read sequentially 16 words from the “reserved area” in CPU0_DSPR starting
    	 *   at address D000’2000H
    	 * • for any word check either it equals FFFF FFFFH or zero.
    	 *   – if yes - skip it and go to the next reserved location
    	 *   – if no
    	 *      - use this word as 32-bit address, read the data from that address and
    	 *        store this data back into the same reserved location
    	 *   - go to the next reserved location
    	 */
    	for (uint32_t i = 0; i < 16; i++)
    	{
    		data = *src;
    		if ((0 == data) || (0xFFFFFFFF == data))
    		{
    			/*ignore and increment pointer */
    			src++;
    		}
    		else
    		{
    
    
    			/*need to move data*/
    			*src = *(uint32_t *) (data);
    			src++;
    		}
    	}
    
    
    	__isync();
    	__dsync();
    }

  3. #3
    Intermediate Intermediate Lukas_G is on a distinguished road
    Join Date
    Apr 2019
    Posts
    50
    Points
    510
    hi,
    Thanks for quick response.

    what

    __isync();
    __dsync();

    function does ?

+ Reply to Thread

Tags for this Thread

Disclaimer

All content and materials on this site are provided “as is“. Infineon makes no warranties or representations with regard to this content and these materials of any kind, whether express or implied, including without limitation, warranties or representations of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. No license, whether express or implied, is granted by Infineon. Use of the information on this site may require a license from a third party, or a license from Infineon.


Infineon accepts no liability for the content and materials on this site being accurate, complete or up- to-date or for the contents of external links. Infineon distances itself expressly from the contents of the linked pages, over the structure of which Infineon has no control.


Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Usage Terms of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Usage Terms of this site. Infineon reserves the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.