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.

CCS/IWR6843ISK-ODS: How to add Vital Sign Algorithm in People Counting Program

Part Number: IWR6843ISK-ODS
Other Parts Discussed in Thread: IWR6843

Tool/software: Code Composer Studio

Hello, I would like to know how can we add a new algorithm to the old program?

The new algorithm exceeds the inner capacity of RAM so it cannot be compiled.(like pic.1)

Though I’ve tried to add more allocations to save algorithm (like pic.2) and it has been compiled successfully, it still could not work . (ike pic.3)

I would like to know whether our method is right or not and if it’s wrong, how we can successfully compile it and make it work.

pic.1 

pic.2

pic.3

  • Hi,

    In the IWR6843 device, the L3 Ram is shared between the DSP and the Cortex R4F - in most demos, it is used to store the radar data (which is quite large). The L3 is divided into 6 128 KB sections - each section can be allocated for use with either the R4F or the DSP. 

    In dss_data_path.c, you can see the initialization of the L3 Buffer used by the DSP - see line 451:

    Checking <SDK_Install_Dir>\packages\ti\common\sys_common_xwr68xx.h - we see that SOC_L3RAM_SIZE is defined as:

    MMWAVE_L3RAM_NUM_BANK and MMWAVE_SHMEM_BANK_SiZE are defined in the dss projectspec. After your code is loaded in L3 memory, it is being overwritten by the DSS radar data.  You need to modfiy the DSS to use less of the L3RAM.

    Using less L3 RAM for radar data will mean that you will have to modify the chirp configuration to use less data (less samples per chirp, or less chirps).

    Regards,

    Justin

  • Because I save the algorithm into L3SRAM so that there’s no enough storage space for the radar data which makes the coverage data stop the program. Do I get this right?

  • The following are additional questions:

    1. If I wanna expand storage space of L3SRAM , can I modify value of MMWAVE_L3RAM_NUM_BANK and MMWAVE_SHMEM_BANK_SiZE to save more code or data?
    2. The Memory Allocation in CCS shows there are 786KB (6*131KB) in storage space of L3SRAM , but the program only use 44KB. There should be 742KB available. Is that correct? Is the radar data only can use 742KB of space to save? If the former is right, is that possible that I have more than 742KB to store the radar data?
    3. If I slightly lower samples per chirp or chirps and it still has problem about “no enough storage space”. Can I solve this problem by moving the algorithm to L1PSRAM in order not to affect the storage of radar data?  (Because less samples per chirp or less chirps will reduce the accuracy of measuring breath rate and heart rate, I do not want to reduce the values of samples per chirp or chirps.)

  • Hi,

    1. You can modify the NUM_BANK value, but do not modify the MEM_BANK_SIZE value.

    2. There are 768 KB (6*128 KB) total available to you. Generally this is used for radar data, but you can use it for code.  You will need to ensure that the starting address of the radar data buffer is changed so that it does not overwrite the program data.

    3. Yes - if you need more L3RAM, you will want to move everything out of L3 that you can. You can put your code in any memory buffer with free space, just ensure that you will not have any runtime issues if you are putting it into slower memory.

    Regards,

    Justin

  • I try two ways to add code in new memory (L2SRAM_UMAP), but these still can't successfully work. Am I missing some steps?

    1.add L2SRAM_UMAP after L3SRAM ->The result can't even load the configuration.

    2.add L2SRAM_UMAP before L3SRAM

  • Hi,

    1. Please check the mss_map file.  This is produced after the build.  You can see how much of each bit of memory is being used. This should inform where there is room to put the code.
    2. You should give the algorithm a specific label.  Here, you are just using .text, which encompasses more than the algo. You could, for instance, assign just your algorithm code to a specific part of memory, e.g. VSalgo: {} >> L2SRAM_Somewhere

    Regards,

    Justin