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.

AWRL6432: LPDS(Low Power Deep Sleep) Issue

Part Number: AWRL6432
Other Parts Discussed in Thread: SYSCONFIG

Tool/software:

Hi team,

Customer set SH_MEM_CONFIG = 1 through Memory Config and changing the Text area to Shared RAM.

.

.

When they test based on mmw_demo, there was an issue that did not work only when setting Low Power Mode to 1.



It works successfully when setting Low Power Mode to 2 (low-power test mode). 

They used the default example and the only thing they changed is the memory setting like below.

.

.

1. Modify Linker Script to chage text region. 

2. Add shared RAM in Syscfg MPU. 

3. Set 'SH_MEM_CONFIG = 1' in makefile

4. Regarding SOC memory init, the text area SOC_RCM_MEMINIT_APPSS_SHRAM0_INIT was removed to prevent it from being erased.

5. All basic actions were confirmed. But when they set Low Power Mode to 1, it enter hwip_useagefault.

.

.

I would appreciate it if you could let me know how to solve it.

Regards,

Lina

  • * To go into more detail, regarding hwip_useagefault.

    1) Set Low Power Mode to 1

    2) Signal Processing (first)

    3) Transmit Data 

    4) Power Management Task→LPDS

    5) Waiting for MCU

    6) MCU Wakeup

    7) Remake DPC Task

    8) Signal Processing (second)

    I understand that DPC_Execute proceed range FFT. In this case, the Doppler FFT (DPU_DopplerProcHWA_process) - EDMAenableTransferRegion function is faced an exception. (Infinite in loop exception function)

  • Hi Lina,

    I have a few questions so that I can further understand the issue:

    • Which demo are you using here?
    • Are you still using the SBL (referencing the original E2E post)?
    • What is your RAM retention configured to be in the sysconfig power driver?
      • I ask this because we need to retain any memory region that contains the application code.

    Thank you for reaching out, please let me know if you find any other new helpful information.

    Best,

    Vignesh K.

  • Hi Vignesh
    - Which demo are you using here?
      > We are using the mmwave_demo_xwrL64xx-dev_m4fss0-0_freertos demo.

    - Are you still using the SBL (referencing the original E2E post)?
      > Although we didn't use the SBL, there was an issue that did not work

    - What is your RAM retention configured to be in the sysconfig power driver ?
      > 
      > All Register. But still not work.


  • Hi Hyukkyung,

    Thank you for your answers, this is helpful. Is there anything else that you changed. Could you change the memory retention to the default which is only saving  APPSS CLUSTER 1-6 and FECSS CLUSTER 1 and re-test your program.

    Additionally, could you verify that the variables that are passed into your EDMAEnableTransferRegion function is not corrupted by stepping through it. It would also be beneficial to compare the state of the memory and function arguments between emulation and LPDS mode.

    Best,

    Vignesh K. 

  • Hi Vignesh,

    Could you change the memory retention to the default which is only saving  APPSS CLUSTER 1-6 and FECSS CLUSTER 1 and re-test your program.
    -> We already tested. But our program didn't work. and then we changed the memory retention to enable all register. also didn't work.

    Could you verify that the variables that are passed into your EDMAEnableTransferRegion function is not corrupted by stepping through it. It would also be beneficial to compare the state of the memory and function arguments between emulation and LPDS mode.
    -> When we used the debugger(XDS110 in EVM) and executed the program step by step, our program didn't enter the exception function and worked normally. but, when we set debugging points before and after the function and executed, program didn't work and enter the exception. 

    Register
    - LR : 0xFFFFFFED
    - xPSR : 0x01000006
    - SP : 0x00459FDC
    - PC : 0x00462860 (HwiP_usageFault_handler)


        

  • Hi Hyukkyung, 

    Thank you for your patience! I suggest that you try running this demo but using the release image instead of the debug while using all the same settings. This should work as using the debug image in lowPowerCfg 1 will disconnect the debugger since only the always on components will stay on and the debugger is not included in this. Additionally, could you try to use the default cluster configuration after trying your current configuration. 

    Best,

    Vignesh K.

  • Hi Vignesh,

    I'd like to share my test result regarding memory retention.

    I ran the image which I built and flashed on FLASH of EVM.

    After booting was completed successfully, I connected debugger (by "load symbols" not by "load program") and save text section into a file by using "Save Memory".

    Again, I reset the EVM and EVM booted successfully.

    Then, I entered CLI commands in PresenceDetect.cfg to test low power mode.

    Right after "sensorStart 0 0 0 0", EVM stopped working and I connected again debugger to save text section into a file again.

    By comparing those two files, I found those two files are identical.

    So, I can confirm that there was no corruption in text section after running low power mode.

    Thanks

    CG

  • Hi Vignesh,

    We tried to running demo using the release image & default cluster configuration.



    And downloaded program and tried to run with lowPowerCfg 1. But still not work. 

    Our program always built to release image instead of the debug.
    So, We already checked almost things. (compare the memory, register(befor & after low power mode), modify the linker script etc). But didn't work.

    Best,
    Hyukkyung Kwon.

  • Hi Hyukkyung,

    I am going to look further into this issue and I will get back to you in a few days.

    How are you running your built image? - I made the same changes outlined in this email and I have not seen any issues yet and I have been using the visualizer in the SDK (MMWAVE_L_SDK_05_05_03_00\tools\visualizer). 

    Best,

    Vignesh K.

  • Hi Changguen,

    I see that you are running this in debug mode, this has the potential of causing some issues with how the registers are configured compared to the debug app image. Could you try running the release image in the SDK visualizer?

    Also, I want to bring to attention the following document to ensure you are following the correct protocol for the debug:

    • Shared memory CCS Debug setup

    Best,

    Vignesh K.

  • Hello all,

    One more note, could you all please make sure to use the latest SDK which is MMWAVE_L_SDK_05_05_03_00, using an outdated SDK will cause issues for low power and shared memory.

    Let me know if there were any other changes made that may not have been communicated.

    Best,

    Vignesh K.

  • Hi Vignesh,

    How are you running your built image? - I made the same changes outlined in this email and I have not seen any issues yet and I have been using the visualizer in the SDK (MMWAVE_L_SDK_05_05_03_00\tools\visualizer). 

    --> We checked the same issue when use the latest SDK version.(MMWAVE_L_SDK_05_05_03_00)
         Here is the changes

         1. Import MMWAVE_L_SDK_05_05_03_00 to CCS

       2. modify linker.cmd (Add memory section 0x00480000 ~ 0x004A0000)

      3. Modify SH_MEM_CONFIG value in makefile ( 0 --> 1)

      4. Add MPU in syscfg file

      5. Regarding SOC memory init, the text area SOC_RCM_MEMINIT_APPSS_SHRAM0_INIT was removed to prevent it from being erased.
          (mmwave_demo.c 969 line)
    SOC_memoryInit(SOC_RCM_MEMINIT_HWA_SHRAM_INIT|SOC_RCM_MEMINIT_TPCCA_INIT|SOC_RCM_MEMINIT_TPCCB_INIT|SOC_RCM_MEMINIT_FECSS_SHRAM_INIT|SOC_RCM_MEMINIT_APPSS_SHRAM1_INIT);

      6. Modify L3_MEM_SIZE from 0x40000 + 160*1024 to 0x20000 + 160*1024  (in mmwave_demo.c 133 line, in dpc.c 109 line

      7. You should check the map file ( .text section is allcated in shared memory section (0x480000 ~ 0x4A0000), And we checked in visualizer, But Still not work. 

    Regards

    Hyukkyung Kwon

  • Hi Hyukkyung,

    Thanks for showing what you did again, I am able to re-create the issue now. I will get back to you after looking further into this issue. 

    Best,

    Vignesh K.