Dear All
I defined some variables in DTC, but after running for a while, it is lost and cleared to 0, this tend to happens more often when I define them in a big struct, it is better when I define them separately. I checked my software, and it is definitely not my code to change, The behaviour is beyond my comprehension and it is even different between two units with same firmware.
I use RT1024 BTW. Any suggestions please?
Thanks
Ping
Hi,
Does this behavior happen in another project?
When you try your code on a different device, does the data delete as well?
Best regards, Daniel.
Hi, Daniel
Thanks for reply!
We have 3 products so far all using same RT1024, in another project - gateway, I did notice some variables defined at ITC change, so I defined some dummy variables at that location to avoid whole struct being changed.
For this project, when I noticed the odd behaviour, I thought it was the ITC RAM which I should avoid, so I changed the variables to DTC, but it still happens.
It is hard for this project to run on a different hardware, but we have 2 units here to compare and they behaviour different even with same code, it is sort of to tend happen on a few variables, but randomly.
Your help is much appreciated!
Ping
Hi @ping1 ,
Thank you for the feedback. I just have a few questions.
Have you modified the ITCM size?
Do you have any low power configuration?
Are you using a custom board?
Best regards, Daniel.
Hi, Daniel
Thanks for reply!
Yes, I did modify the size of ITC, the current size of the RAM is ITC=64K, DTC=128K, and OCRAM = 64K. any impact on RAM configuration?
I don't use any low power configuration if you mean put into sleep and wake up by some trigger? it always run in full power.
It is our custom board - the product is in pre-production stage and we have already ordered production batch in volume, that is why I am so worried by the behaviour. We have other 2 products using same processor are already in market and another one on the way.
Any thing can help is much appreciated.
Ping
Hi,
Could you please validate that you followed the steps of the AN12077 to change the FlexRAM configuration?
And could you please double check the design of your custom board?
Best regards, Daniel.
Hi, Daniel
I believe I followed the AN to re-configure the RAM - done some time ago. here is my code snips in ResetISR():
IOMUXC_GPR->GPR14 = ((0x08<<20U) | (0x07<<16U)); /* DTC size = 128K ITC size = 64K,*/
IOMUXC_GPR->GPR17 = 0x0000FAA5; /* OC - 64K, DTC- 128K, ITC-64K, */
IOMUXC_GPR->GPR16 |= 0x04; /* select register */
and memory configuration:
Would you like to check the whole project for me pls? I need to send it in private.
Not sure what else I can check in terms of hardware side.
thanks!
Ping
Thanks, Daniel
I read this before and believe I followed it - only at ResetISR, I used C instead. I tried doing assembly too, seems no difference.
I had to split my DTC for a small section to keep some second bootloader variables there, so they are kept between firmware upgrade. I hope this has no effect on the other variables and values.
One thing I don't understand is that, by redefine them out of big struct, the issue seems fixed, I am not sure this is to do with FlexRAM configuration?
Regards!
Ping