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.

AM2732: AM2732: When the Ethernet framework based on lwip is added, the mss_L2 memory overflow problem occurs

Part Number: AM2732

Tool/software:

Hi, experts,
Now I have a problem, The mmwave_mcuplus_sdk_04_04_01_02\mcu_plus_sdk_am273x_08_05_00_24\examples\networking\lwip\enet_cpsw_udpserver can successfully send and receive data When I ported it to the mmwave_mcuplus_sdk_04_04_01_02\mmwave_mcuplus_sdk_04_04_01_02\ti\demo\am273x\mmw demo it ran out of memory in the screenshot, I tried to cut TCP, PPP, DHCP and other functions in lwipopts.h, but its memory occupation is still high. If I only need UDP functions, and do not greatly modify the udpserver demo, what else can I do to reduce the memory occupation, so that my project can be compiled through

Without changing the original udp server demo code, I modified the makefile and the lwipopts.h header to get the memory optimization shown in the figure.  Is there any way to further optimize the memory usage of MSS_L2

#
# Auto generated makefile
#

export MCU_PLUS_SDK_PATH?=$(abspath ../../..)
include $(MCU_PLUS_SDK_PATH)/imports.mak

CG_TOOL_ROOT=$(CGT_TI_ARM_CLANG_PATH)

CC=$(CGT_TI_ARM_CLANG_PATH)/bin/tiarmclang
AR=$(CGT_TI_ARM_CLANG_PATH)/bin/tiarmar

PROFILE?=debug
ConfigName:=$(PROFILE)

LIBNAME:=lwip-freertos.am273x.r5f.ti-arm-clang.$(PROFILE).lib

FILES_common := \
    init.c \
	def.c \
    inet_chksum.c \
    ip.c \
    mem.c \
    memp.c \
    netif.c \
    pbuf.c \
    raw.c \
    netbuf.c \
    err.c \
    tcpip.c \
    stats.c \
    api_lib.c \
	api_msg.c \
    sys.c \
    timeouts.c \
    udp.c \
    etharp.c \
    ip4.c \
    ip4_addr.c \
    ip4_frag.c \
    ethernet.c \
    sys_arch.c \


FILES_PATH_common = \
    ${MCU_PLUS_SDK_PATH}/source/networking/lwip/lwip-stack/src/apps/smtp \
    ${MCU_PLUS_SDK_PATH}/source/networking/lwip/lwip-stack/src/apps/tftp \
    ${MCU_PLUS_SDK_PATH}/source/networking/lwip/lwip-stack/src/apps/mqtt \
    ${MCU_PLUS_SDK_PATH}/source/networking/lwip/lwip-stack/src/apps/tftp \
    ${MCU_PLUS_SDK_PATH}/source/networking/lwip/lwip-stack/src/apps/netbiosns \
    ${MCU_PLUS_SDK_PATH}/source/networking/lwip/lwip-stack/src/apps/mdns \
    ${MCU_PLUS_SDK_PATH}/source/networking/lwip/lwip-stack/src/apps/altcp_tls \
    ${MCU_PLUS_SDK_PATH}/source/networking/lwip/lwip-stack/src/apps/http \
    ${MCU_PLUS_SDK_PATH}/source/networking/lwip/lwip-stack/src/apps/http/makefsdata \
    ${MCU_PLUS_SDK_PATH}/source/networking/lwip/lwip-stack/src/apps/lwiperf \
    ${MCU_PLUS_SDK_PATH}/source/networking/lwip/lwip-stack/src/apps/snmp \
    ${MCU_PLUS_SDK_PATH}/source/networking/lwip/lwip-stack/src/apps/sntp \
    ${MCU_PLUS_SDK_PATH}/source/networking/lwip/lwip-stack/src/netif \
    ${MCU_PLUS_SDK_PATH}/source/networking/lwip/lwip-stack/src/netif/ppp \
    ${MCU_PLUS_SDK_PATH}/source/networking/lwip/lwip-stack/src/netif/ppp/polarssl \
    ${MCU_PLUS_SDK_PATH}/source/networking/lwip/lwip-stack/src/core \
    ${MCU_PLUS_SDK_PATH}/source/networking/lwip/lwip-stack/src/core/ipv6 \
    ${MCU_PLUS_SDK_PATH}/source/networking/lwip/lwip-stack/src/core/ipv4 \
    ${MCU_PLUS_SDK_PATH}/source/networking/lwip/lwip-stack/src/api \
    ${MCU_PLUS_SDK_PATH}/source/networking/lwip/lwip-port/freertos/src \

INCLUDES_common := \
    -I${CG_TOOL_ROOT}/include/c \
    -I${MCU_PLUS_SDK_PATH}/source \
    -I${MCU_PLUS_SDK_PATH}/source/networking/lwip/lwip-stack/src/include \
    -I${MCU_PLUS_SDK_PATH}/source/networking/lwip/lwip-port/include \
    -I${MCU_PLUS_SDK_PATH}/source/networking/lwip/lwip-port/freertos/include \
    -I${MCU_PLUS_SDK_PATH}/source/kernel/freertos/FreeRTOS-Kernel/include \
    -I${MCU_PLUS_SDK_PATH}/source/kernel/freertos/portable/TI_ARM_CLANG/ARM_CR5F \
    -I${MCU_PLUS_SDK_PATH}/source/networking/lwip/lwip-config/am273x \
    -I${MCU_PLUS_SDK_PATH}/source/kernel/freertos/config/am273x/r5f \

DEFINES_common := \
    -DSOC_AM273X \

CFLAGS_common := \
    -mcpu=cortex-r5 \
    -mfloat-abi=hard \
    -mfpu=vfpv3-d16 \
    -mthumb \
    -Wall \
    -Werror \
    -g \
    -Wno-gnu-variable-sized-type-not-at-end \
    -Wno-unused-function \
    -Wno-extra \
    -Wvisibility \
    -fno-strict-aliasing \

CFLAGS_release := \
    -Os \
    -Oz \
    -flto \

CFLAGS_cpp_common := \
    -Wno-c99-designator \
    -Wno-extern-c-compat \
    -Wno-c++11-narrowing \
    -Wno-reorder-init-list \
    -Wno-deprecated-register \
    -Wno-writable-strings \
    -Wno-enum-compare \
    -Wno-reserved-user-defined-literal \
    -Wno-unused-const-variable \
    -x c++ \

CFLAGS_debug := \
    -D_DEBUG_=1 \

ARFLAGS_common := \
    rc \

FILES := $(FILES_common) $(FILES_$(PROFILE))
ASMFILES := $(ASMFILES_common) $(ASMFILES_$(PROFILE))
FILES_PATH := $(FILES_PATH_common) $(FILES_PATH_$(PROFILE))
CFLAGS := $(CFLAGS_common) $(CFLAGS_$(PROFILE))
ASMFLAGS := $(CFLAGS_common) $(CFLAGS_$(PROFILE))
ifeq ($(CPLUSPLUS_BUILD), yes)
CFLAGS += $(CFLAGS_cpp_common)
endif
DEFINES := $(DEFINES_common) $(DEFINES_$(PROFILE))
INCLUDES := $(INCLUDES_common) $(INCLUDE_$(PROFILE))
ARFLAGS := $(ARFLAGS_common) $(ARFLAGS_$(PROFILE))

LIBDIR := lib
OBJDIR := obj/am273x/ti-arm-clang/$(PROFILE)/r5f/lwip-freertos/
OBJS := $(FILES:%.c=%.obj)
OBJS += $(ASMFILES:%.S=%.obj)
DEPS := $(FILES:%.c=%.d)

vpath %.obj $(OBJDIR)
vpath %.c $(FILES_PATH)
vpath %.S $(FILES_PATH)

$(OBJDIR)/%.obj %.obj: %.c
	@echo  Compiling: $(LIBNAME): $<
	$(CC) -c $(CFLAGS) $(INCLUDES) $(DEFINES) -MMD -o $(OBJDIR)/$@ $<

$(OBJDIR)/%.obj %.obj: %.S
	@echo  Compiling: $(LIBNAME): $<
	$(CC) -c $(ASMFLAGS) -o $(OBJDIR)/$@ $<

all:clean $(LIBDIR)/$(LIBNAME)

$(LIBDIR)/$(LIBNAME): $(OBJS) | $(LIBDIR)
	@echo  .
	@echo  Archiving: $(LIBNAME) to $@ ...
	$(AR) $(ARFLAGS) $@ $(addprefix $(OBJDIR), $(OBJS))
	@echo  Archiving: $(LIBNAME) Done !!!
	@echo  .

clean:
	@echo  Cleaning: $(LIBNAME) ...
	$(RMDIR) $(OBJDIR)
	$(RM) $(LIBDIR)/$(LIBNAME)

scrub:
	@echo  Scrubing: $(LIBNAME) ...
	-$(RMDIR) obj/
	-$(RMDIR) lib/

$(OBJS): | $(OBJDIR)

$(LIBDIR) $(OBJDIR):
	$(MKDIR) $@

-include $(addprefix $(OBJDIR)/, $(DEPS))
#ifndef LWIP_LWIPOPTS_H
#define LWIP_LWIPOPTS_H

#ifdef __cplusplus
extern "C"
{
#endif

#ifdef LWIP_OPTTEST_FILE
#include "lwipopts_test.h"
#else /* LWIP_OPTTEST_FILE */
#include "lwipopts_os.h"
#endif

#define LWIP_IPV4                  1    // Enable IPv4
#define LWIP_IPV6                  0    // Disable IPv6

#define LWIP_SOCKET                0    // Disable lwIP socket support
#define LWIP_NETCONN               (NO_SYS==0)  // Enable lwIP netconn API support
#define LWIP_NETIF_API             (NO_SYS==0)  // Enable netif API

// Disable options related to TCP and other protocols
#define LWIP_TCP                   0    // Disable TCP
#define LWIP_ICMP                  0    // Disable ICMP
#define LWIP_IGMP                  0    // Disable IGMP
#define LWIP_DNS                   0    // Disable DNS
#define LWIP_MDNS_RESPONDER        0    // Disable mDNS
#define LWIP_ARP                   1    // Enable ARP

// Enable UDP
#define LWIP_UDP                   1    // Enable UDP
#define LWIP_UDPLITE               LWIP_UDP  // Enable UDPLITE

#define UDP_TTL                    255  // Set UDP TTL

/* Memory options configuration */
#define MEM_ALIGNMENT              4U    // Set memory alignment
#define MEM_USE_POOLS              1     // Enable memory pools
#define MEMP_USE_CUSTOM_POOLS      1     // Use custom memory pools

#define PBUF_POOL_BUFSIZE          1536  // Set pbuf pool size

/* Other memory pool configurations */
#define MEMP_NUM_PBUF              128
#define MEMP_NUM_UDP_PCB           4
#define MEMP_NUM_TCPIP_MSG_API     128
#define MEMP_NUM_TCPIP_MSG_INPKT   128
#define MEMP_NUM_RAW_PCB           0
#define MEMP_NUM_TCP_PCB           0
#define MEMP_NUM_TCP_PCB_LISTEN    0
#define MEMP_NUM_TCP_SEG           0

/* ---------- Thread and synchronization options ---------- */
#define SYS_LIGHTWEIGHT_PROT       0  // Disable lightweight protection

/* ---------- TCP/IP stack configuration ---------- */
#define TCPIP_THREAD_STACKSIZE     (8 * 1024)  // TCP/IP thread stack size
#define DEFAULT_THREAD_STACKSIZE   (5 * 1024)  // Default thread stack size

/* ---------- UDP receive mailbox size ---------- */
#define DEFAULT_UDP_RECVMBOX_SIZE  320  // Set UDP receive mailbox size

/* ---------- Debug options ---------- */
#define LWIP_DEBUG                 0   // Disable debug output
#define LWIP_DBG_T                 LWIP_DBG_OFF  // Disable debug

#define LWIP_NETIF_LINK_CALLBACK        1
#define LWIP_NETIF_STATUS_CALLBACK      1
#define LWIP_NETIF_EXT_STATUS_CALLBACK  1

#ifdef __cplusplus
}
#endif

#endif /* LWIP_LWIPOPTS_H */

  • Hi Miles, 

    Let me see if I can find the right expert to help you out with this. 

    Thank you,

    -Randy

  • Hi Randy,

    Is there any progress on this issue?

    Thanks!

  • Hello Meng,

     Can you please increase the L2 memory in the linker.cmd file.

    With regards,
    Pradeep

  • Hi Pradeep,

    What should I do?

  • Hi Pradeep,

    I modified it in the mmw_mss_linker.cmd file. The modified content is as follows. 

    /*----------------------------------------------------------------------------*/
    /* Linker Settings                                                            */
    /*--retain="*(.intvecs)"*/
    
    /*----------------------------------------------------------------------------*/
    /* Section Configuration                                                      */
    SECTIONS
    {
        systemHeap :  {} > SBL_RESERVED_L2_RAM | MSS_L2
        .demoSharedMem: { } >> DSS_L3
        .l3ram: { } >> DSS_L3
    }
    /*----------------------------------------------------------------------------*/
    /* Memory Configuration                                                      */
    MEMORY
    {
        L2_RAM : origin = 0x00800000, length = 0x00800000  /* 5120 KB */
    }
    /*----------------------------------------------------------------------------*/
    

    Is this correct?

    Thanks!

    -Meng

  • Hi Meng,

    If you are able to build your project then you successfully assigned more memory space to L2 in your linker. Normally we see these sections at the bottom of our linker command files from the SDK projects: 

    this is where could make that kind of modifications.

    After these changes, do you still see the program will not fit in available memory error? 

    Best,

    Daniel

  • Dear Daniel,

    I tried modifying this part and looked up the manual and it can only be set to 960KB at most, but it still doesn't solve the problem

    Is there any other solution?

    Thinks!

    -Meng

  • Hi Meng,

    is it possible for you to share your project? I would like to try to replicate the problem you are seeing.

    Another question. you said that the problem arose when you tried porting the project from  mcu_plus_sdk_am273x_08_05_00_24 to mmwave_mcuplus_sdk_04_04_01_02, correct? does that mean that the project from the more updated SDK generates a working linker file? can you grab that and port it as well to the project you are trying to build? 

    Best,

    Daniel 

  • The two SDKs I mentioned are installed from mmwave_mcuplus_sdk_04_04_00_01-Windows-x86-Install.exe

    They should all share the r5f_linker.cmd in C:\ti\mmwave_mcuplus_sdk_04_04_01_02\mmwave_mcuplus_sdk_04_04_01_02\ti\platform\am273x, right?

  • Hi Meng,

    After a reinstall i am able to see the two projects you are talking about now. I am not sure what you mean when you say that you "ported" the mcu_plus_sdk_am273x_08_05_00_24\examples\networking\lwip\enet_cpsw_udpserver example into mmwave_mcuplus_sdk_04_04_01_02\ti\demo\am273x\mmw. These are two different projects in two different API packages, they don't share the same r5f_linker.cmd. That r5f_linker.cmd is shared amongst the demo projects in the mmw folder, but not used in the UDP server example project in the mcu_plus_sdk, this one uses the linker.cmd file located in mmwave_mcuplus_sdk_04_04_00_01\mcu_plus_sdk_am273x_08_05_00_24\examples\networking\lwip\enet_cpsw_udpserver\am273x-evm\r5fss0-0_freertos\ti-arm-clang

    I am attaching a comparison report between linkers in html format, let me know if you can't open it:

    <html><head>
    <META http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <style>
    /* Default heading font (outside of tables) */
    body { font-family: sans-serif; font-size: 11pt; }
    
    td { vertical-align: top; padding-left: 4px; padding-right: 4px; }
    
    /* File Difference Report styles - Color */
    table.fc { border-top: 1px solid Black; border-left: 1px solid Black; width: 100%; font-family: monospace; font-size: 10pt; }
    
    tr.secBegin td { border-left: none; border-top: none; border-right: 1px solid Black; }
    tr.secMiddle td { border-left: none; border-top: none; border-right: 1px solid Black; }
    tr.secEnd td { border-left: none; border-top: none; border-bottom: 1px solid Black; border-right: 1px solid Black; }
    tr.secAll td { border-left: none; border-top: none; border-bottom: 1px solid Black; border-right: 1px solid Black; }
    tr.secSubEnd td { border-left: none; border-top: none; border-bottom: 1px solid Gray; border-right: 1px solid Black; }
    tr.secSubAll td { border-left: none; border-top: none; border-bottom: 1px solid Gray; border-right: 1px solid Black; }
    tr.secGap td { font-size: 4px; border-left: none; border-top: none; border-bottom: 1px solid Black; border-right: 1px solid Black; }
    
    td.LineNum { text-align: right; }
    td.LineRange { font-family: sans-serif; }
    td.SubLineRange { font-family: sans-serif; border-bottom: none; }
    
    td.AlignLeft { text-align: left; }
    td.AlignRight { text-align: right; }
    td.AlignCenter { text-align: center; }
    td.Caption { text-align: left; background-color: #E7E7E7; padding-top: 8px; }
    
    td.Normal { }
    td.HasSimilar { background-color: #F0F0FF; }
    td.HasMismatch { background-color: #FFF0F0; }
    td.HasOrphan { background-color: #FFF0F0; }
    td.Added { background-color: #FFF0F0; }
    td.Deleted { background-color: #FFF0F0; text-decoration: line-through; }
    td.UAdded { background-color: #F0F0FF; }
    td.UDeleted { background-color: #F0F0FF; text-decoration: line-through; }
    
    .ttSigDiff { color: #FF0000; }
    .ttInsigDiff { color: #0000FF; }
    .ttAdded { color: #FF0000; }
    .ttDeleted { text-decoration: line-through; }
    
    /* Directory Comparison Report styles - Color */
    table.dc { border-top: 1px solid Black; border-left: 1px solid Black; width: 100%; font-family: sans-serif; font-size: 10pt; }
    
    table.dc tr.secBegin td { border-bottom: 1px solid Silver; }
    table.dc tr.secMiddle td { border-bottom: 1px solid Silver; }
    
    .ttNewer { color: #FF0000; }
    .ttOlder { color: #808080; }
    .ttOrphan { color: #0000FF; }
    .ttGhosted { color: #008080; }
    </style>
    </head><body>
    FILE COMPARISON LOOP - linker - r5f_linker<br />
    Produced: 2/20/2025 4:14:18 PM<br />
    &nbsp; &nbsp;
    <br />
    Mode:&nbsp; All Lines &nbsp;
    <br />
    &nbsp; &nbsp;
    <br />
    Left file: C:\Users\a0233819\Documents\temp\linker.txt &nbsp;
    <br />
    Right file: C:\Users\a0233819\Documents\temp\r5f_linker.txt &nbsp;
    <br />
    <table class="fc" cellspacing="0" cellpadding="0">
    <tr class="secBegin">
    <td class="LineNum">1</td>
    <td class="HasMismatch"><span class="ttSigDiff">#include &quot;ti_enet_config.h&quot;</span></td>
    <td class="AlignCenter">&lt;&gt;</td>
    <td class="LineNum">1</td>
    <td class="HasMismatch"><span class="ttSigDiff">/*-------------------------</span><span class="ttSigDiff">---------------------------------------------------*/</span></td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">2</td>
    <td class="HasOrphan"><span class="ttSigDiff">/* r5f_linker.cmd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */</span></td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">3</td>
    <td class="HasOrphan"><span class="ttSigDiff">/*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */</span></td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">4</td>
    <td class="HasOrphan"><span class="ttSigDiff">/* (c) Texas Instruments 2020, All rights reserved.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */</span></td>
    </tr>
    <tr class="secEnd">
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">5</td>
    <td class="HasOrphan"><span class="ttSigDiff">/*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */</span></td>
    </tr>
    <tr class="secAll">
    <td class="LineNum">2</td>
    <td class="Normal">&nbsp;</td>
    <td class="AlignCenter">=</td>
    <td class="LineNum">6</td>
    <td class="Normal">&nbsp;</td>
    </tr>
    <tr class="secBegin">
    <td class="LineNum">3</td>
    <td class="HasMismatch">/* <span class="ttSigDiff">This</span> <span class="ttSigDiff">is</span><span class="ttSigDiff"> the</span> <span class="ttSigDiff">stack</span> <span class="ttSigDiff">t</span><span class="ttSigDiff">hat</span> <span class="ttSigDiff">is</span><span class="ttSigDiff"> used by code running within main()</span></td>
    <td class="AlignCenter">&lt;&gt;</td>
    <td class="LineNum">7</td>
    <td class="HasMismatch">/* <span class="ttSigDiff">USER</span> <span class="ttSigDiff">CODE</span> <span class="ttSigDiff">BEGIN</span> <span class="ttSigDiff">(0)</span> <span class="ttSigDiff">*/</span></td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">4</td>
    <td class="HasMismatch"><span class="ttSigDiff"> </span>* <span class="ttSigDiff">In case of </span>N<span class="ttSigDiff">ORTO</span><span class="ttSigDiff">S,</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">8</td>
    <td class="HasMismatch"><span class="ttSigDiff">/</span>* <span class="ttSigDiff">USER CODE E</span>N<span class="ttSigDiff">D */</span></td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">5</td>
    <td class="HasMismatch"><span class="ttSigDiff"> *</span><span class="ttSigDiff"> </span>-<span class="ttSigDiff"> This </span><span class="ttSigDiff">m</span>e<span class="ttSigDiff">ans all </span>t<span class="ttSigDiff">he code ou</span>t<span class="ttSigDiff">sid</span>e<span class="ttSigDiff"> of ISR uses</span><span class="ttSigDiff"> </span>t<span class="ttSigDiff">hi</span><span class="ttSigDiff">s stack</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">9</td>
    <td class="HasMismatch"><span class="ttSigDiff">-</span>-<span class="ttSigDiff">r</span>et<span class="ttSigDiff">ain=&quot;*(.in</span>t<span class="ttSigDiff">c_t</span>e<span class="ttSigDiff">x</span>t<span class="ttSigDiff">)&quot;</span></td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">6</td>
    <td class="HasMismatch"><span class="ttSigDiff"> </span><span class="ttSigDiff">* In case of F</span>r<span class="ttSigDiff">eeRTOS</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">10</td>
    <td class="HasMismatch"><span class="ttSigDiff">--retain=&quot;*(.i</span>r<span class="ttSigDiff">qStack</span><span class="ttSigDiff">)&quot;</span></td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">7</td>
    <td class="HasMismatch"><span class="ttSigDiff"> </span><span class="ttSigDiff">* - Th</span>i<span class="ttSigDiff">s mea</span>n<span class="ttSigDiff">s all the co</span><span class="ttSigDiff">de unt</span>i<span class="ttSigDiff">l vTas</span><span class="ttSigDiff">k</span>Sta<span class="ttSigDiff">rtS</span>c<span class="ttSigDiff">heduler</span><span class="ttSigDiff">(</span>)<span class="ttSigDiff"> </span><span class="ttSigDiff">is called in main()</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">11</td>
    <td class="HasMismatch"><span class="ttSigDiff">--reta</span>in<span class="ttSigDiff">=&quot;*(.f</span>i<span class="ttSigDiff">q</span>Stac<span class="ttSigDiff">k</span>)<span class="ttSigDiff">&quot;</span></td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">8</td>
    <td class="HasMismatch"><span class="ttSigDiff"> *&nbsp;&nbsp; uses this s</span>tack<span class="ttSigDiff">.</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">12</td>
    <td class="HasMismatch"><span class="ttSigDiff">--r</span><span class="ttSigDiff">etain=&quot;*(.abortS</span>tack<span class="ttSigDiff">)</span><span class="ttSigDiff">&quot;</span></td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">9</td>
    <td class="HasMismatch"><span class="ttSigDiff"> *</span><span class="ttSigDiff"> </span>-<span class="ttSigDiff"> Af</span><span class="ttSigDiff">t</span>e<span class="ttSigDiff">r vTaskS</span>ta<span class="ttSigDiff">rtScheduler() each task created </span>in<span class="ttSigDiff"> FreeRTOS has </span><span class="ttSigDiff">its ow</span>n<span class="ttSigDiff"> s</span>tack</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">13</td>
    <td class="HasMismatch"><span class="ttSigDiff">-</span>-<span class="ttSigDiff">r</span>etain<span class="ttSigDiff">=&quot;*(.u</span>n<span class="ttSigDiff">dS</span>tack<span class="ttSigDiff">)&quot;</span></td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">10</td>
    <td class="HasMismatch"><span class="ttSigDiff"> </span>*<span class="ttSigDiff">/</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">14</td>
    <td class="HasMismatch"><span class="ttSigDiff">--retain=</span><span class="ttSigDiff">&quot;</span>*<span class="ttSigDiff">(</span><span class="ttSigDiff">.svcStack)&quot;</span></td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">11</td>
    <td class="HasMismatch">--stack_size=<span class="ttSigDiff">8</span><span class="ttSigDiff">19</span>2</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">15</td>
    <td class="HasMismatch">--stack_size=<span class="ttSigDiff">0x</span>2<span class="ttSigDiff">000</span></td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">12</td>
    <td class="HasOrphan"><span class="ttSigDiff">/* This is the heap size for malloc() API in NORTOS and FreeRTOS</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">13</td>
    <td class="HasOrphan"><span class="ttSigDiff"> * This is also the heap used by pvPortMalloc in FreeRTOS</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">14</td>
    <td class="HasOrphan"><span class="ttSigDiff"> */</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">15</td>
    <td class="HasMismatch">--heap_size=<span class="ttSigDiff">34</span>000</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">16</td>
    <td class="HasMismatch">--heap_size=<span class="ttSigDiff">0</span><span class="ttSigDiff">x1</span>000</td>
    </tr>
    <tr class="secEnd">
    <td class="LineNum">16</td>
    <td class="HasOrphan"><span class="ttSigDiff">-e_vectors&nbsp; /* This is the entry of the application, _vector MUST be plabed starting address 0x0 */</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secAll">
    <td class="LineNum">17</td>
    <td class="Normal">&nbsp;</td>
    <td class="AlignCenter">=</td>
    <td class="LineNum">17</td>
    <td class="Normal">&nbsp;</td>
    </tr>
    <tr class="secBegin">
    <td class="LineNum">18</td>
    <td class="HasMismatch">/* This is the <span class="ttSigDiff">size</span> of <span class="ttSigDiff">st</span>ac<span class="ttSigDiff">k</span> <span class="ttSigDiff">wh</span>e<span class="ttSigDiff">n</span> <span class="ttSigDiff">R5</span> <span class="ttSigDiff">i</span>s<span class="ttSigDiff"> in IRQ</span> <span class="ttSigDiff">mo</span>de</td>
    <td class="AlignCenter">&lt;&gt;</td>
    <td class="LineNum">18</td>
    <td class="HasMismatch">/* This is the <span class="ttSigDiff">e</span><span class="ttSigDiff">ntry</span> of <span class="ttSigDiff">th</span><span class="ttSigDiff">e </span>a<span class="ttSigDiff">ppli</span>c<span class="ttSigDiff">ation</span><span class="ttSigDiff">,</span> <span class="ttSigDiff">_v</span>e<span class="ttSigDiff">ctor MUS</span><span class="ttSigDiff">T</span> <span class="ttSigDiff">be</span> <span class="ttSigDiff">plabed</span><span class="ttSigDiff"> </span>s<span class="ttSigDiff">tarting</span> <span class="ttSigDiff">ad</span>d<span class="ttSigDiff">r</span>e<span class="ttSigDiff">ss 0x0 */</span></td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">19</td>
    <td class="HasOrphan"><span class="ttSigDiff"> * In NORTOS,</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">20</td>
    <td class="HasOrphan"><span class="ttSigDiff"> * - Here interrupt nesting is disabled as of now</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">21</td>
    <td class="HasOrphan"><span class="ttSigDiff"> * - This is the stack used by ISRs registered as type IRQ</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">22</td>
    <td class="HasMismatch"><span class="ttSigDiff"> * I</span><span class="ttSigDiff">n Fr</span>e<span class="ttSigDiff">eRTOS</span><span class="ttSigDiff">,</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">19</td>
    <td class="HasMismatch"><span class="ttSigDiff">-e_v</span>e<span class="ttSigDiff">ctors</span></td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">23</td>
    <td class="HasOrphan"><span class="ttSigDiff"> * - Here interrupt nesting is enabled</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">24</td>
    <td class="HasOrphan"><span class="ttSigDiff"> * - This is stack that is used initally when a IRQ is received</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">25</td>
    <td class="HasOrphan"><span class="ttSigDiff"> * - But then the mode is switched to SVC mode and SVC stack is used for all user ISR callbacks</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">26</td>
    <td class="HasOrphan"><span class="ttSigDiff"> * - Hence in FreeRTOS, IRQ stack size is less and SVC stack size is more</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">27</td>
    <td class="HasMismatch"><span class="ttSigDiff"> */</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">20</td>
    <td class="HasMismatch">&nbsp;</td>
    </tr>
    <tr class="secEnd">
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">21</td>
    <td class="HasOrphan"><span class="ttSigDiff">/* Stack Sizes for various modes */</span></td>
    </tr>
    <tr class="secAll">
    <td class="LineNum">28</td>
    <td class="Normal">__IRQ_STACK_SIZE = 256;</td>
    <td class="AlignCenter">=</td>
    <td class="LineNum">22</td>
    <td class="Normal">__IRQ_STACK_SIZE = 256;</td>
    </tr>
    <tr class="secBegin">
    <td class="LineNum">29</td>
    <td class="HasOrphan"><span class="ttSigDiff">/* This is the size of stack when R5 is in IRQ mode</span></td>
    <td class="AlignCenter">+-</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">30</td>
    <td class="HasOrphan"><span class="ttSigDiff"> * - In both NORTOS and FreeRTOS nesting is disabled for FIQ</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secEnd">
    <td class="LineNum">31</td>
    <td class="HasOrphan"><span class="ttSigDiff"> */</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secAll">
    <td class="LineNum">32</td>
    <td class="Normal">__FIQ_STACK_SIZE = 256;</td>
    <td class="AlignCenter">=</td>
    <td class="LineNum">23</td>
    <td class="Normal">__FIQ_STACK_SIZE = 256;</td>
    </tr>
    <tr class="secBegin">
    <td class="LineNum">33</td>
    <td class="HasMismatch">__<span class="ttSigDiff">SVC</span>_STACK_SIZE = <span class="ttSigDiff">4</span><span class="ttSigDiff">09</span>6;<span class="ttSigDiff"> /* This is the size of stack when R5 is in SVC mode */</span></td>
    <td class="AlignCenter">&lt;&gt;</td>
    <td class="LineNum">24</td>
    <td class="HasMismatch">__<span class="ttSigDiff">AB</span><span class="ttSigDiff">ORT</span>_STACK_SIZE = <span class="ttSigDiff">25</span>6;</td>
    </tr>
    <tr class="secEnd">
    <td class="LineNum">34</td>
    <td class="HasOrphan"><span class="ttSigDiff">__ABORT_STACK_SIZE = 256;&nbsp; /* This is the size of stack when R5 is in ABORT mode */</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secAll">
    <td class="LineNum">35</td>
    <td class="Normal">__UNDEFINED_STACK_SIZE = 256;&nbsp; /* This is the size of stack when R5 is in UNDEF mode */</td>
    <td class="AlignCenter">=</td>
    <td class="LineNum">25</td>
    <td class="Normal">__UNDEFINED_STACK_SIZE = 256;&nbsp; /* This is the size of stack when R5 is in UNDEF mode */</td>
    </tr>
    <tr class="secAll">
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    <td class="AlignCenter">-+</td>
    <td class="LineNum">26</td>
    <td class="HasOrphan"><span class="ttSigDiff">__SVC_STACK_SIZE = 4096;</span></td>
    </tr>
    <tr class="secAll">
    <td class="LineNum">36</td>
    <td class="Normal">&nbsp;</td>
    <td class="AlignCenter">=</td>
    <td class="LineNum">27</td>
    <td class="Normal">&nbsp;</td>
    </tr>
    <tr class="secBegin">
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    <td class="AlignCenter">-+</td>
    <td class="LineNum">28</td>
    <td class="HasOrphan"><span class="ttSigDiff">/*----------------------------------------------------------------------------*/</span></td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">29</td>
    <td class="HasOrphan"><span class="ttSigDiff">/* Linker Settings&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */</span></td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">30</td>
    <td class="HasOrphan"><span class="ttSigDiff">/*----------------------------------------------------------------------------*/</span></td>
    </tr>
    <tr class="secEnd">
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">31</td>
    <td class="HasOrphan"><span class="ttSigDiff">/* Memory Map&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */</span></td>
    </tr>
    <tr class="secBegin">
    <td class="LineNum">37</td>
    <td class="Normal">SECTIONS</td>
    <td class="AlignCenter">=</td>
    <td class="LineNum">32</td>
    <td class="Normal">SECTIONS</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">38</td>
    <td class="Normal">{</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">33</td>
    <td class="Normal">{</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">39</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; /* This has the R5F entry point and vector table, this MUST be at 0x0 */</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">34</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; /* This has the R5F entry point and vector table, this MUST be at 0x0 */</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">40</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; .vectors:{} palign(8) &gt; R5F_VECS</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">35</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; .vectors:{} palign(8) &gt; R5F_VECS</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">41</td>
    <td class="Normal">&nbsp;</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">36</td>
    <td class="Normal">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">42</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; /* This has the R5F boot code until MPU is enabled,&nbsp; this MUST be at a address &lt; 0x80000000</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">37</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; /* This has the R5F boot code until MPU is enabled,&nbsp; this MUST be at a address &lt; 0x80000000</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">43</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp; * i.e this cannot be placed in DDR</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">38</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp; * i.e this cannot be placed in DDR</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">44</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp; */</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">39</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp; */</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">45</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; GROUP {</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">40</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; GROUP {</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">46</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .text.hwi: palign(8)</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">41</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .text.hwi: palign(8)</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">47</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .text.cache: palign(8)</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">42</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .text.cache: palign(8)</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">48</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .text.mpu: palign(8)</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">43</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .text.mpu: palign(8)</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">49</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .text.boot: palign(8)</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">44</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .text.boot: palign(8)</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">50</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .text:abort: palign(8) /* this helps in loading symbols when using XIP mode */</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">45</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .text:abort: palign(8) /* this helps in loading symbols when using XIP mode */</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">51</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; } &gt; MSS_L2</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">46</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; } &gt; MSS_L2</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">52</td>
    <td class="Normal">&nbsp;</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">47</td>
    <td class="Normal">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">53</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; /* This is rest of code. This can be placed in DDR if DDR is available and needed */</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">48</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; /* This is rest of code. This can be placed in DDR if DDR is available and needed */</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">54</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; GROUP {</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">49</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; GROUP {</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">55</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .text:&nbsp;&nbsp; {} palign(8)&nbsp;&nbsp; /* This is where code resides */</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">50</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .text:&nbsp;&nbsp; {} palign(8)&nbsp;&nbsp; /* This is where code resides */</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">56</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .rodata: {} palign(8)&nbsp;&nbsp; /* This is where const's go */</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">51</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .rodata: {} palign(8)&nbsp;&nbsp; /* This is where const's go */</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">57</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; } &gt; MSS_L2</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">52</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; } &gt; MSS_L2</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">58</td>
    <td class="Normal">&nbsp;</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">53</td>
    <td class="Normal">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">59</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; /* This is rest of initialized data. This can be placed in DDR if DDR is available and needed */</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">54</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; /* This is rest of initialized data. This can be placed in DDR if DDR is available and needed */</td>
    </tr>
    <tr class="secEnd">
    <td class="LineNum">60</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; GROUP {</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">55</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; GROUP {</td>
    </tr>
    <tr class="secAll">
    <td class="LineNum">&nbsp;</td>
    <td class="HasSimilar">&nbsp;</td>
    <td class="AlignCenter">&lt;&gt;</td>
    <td class="LineNum">56</td>
    <td class="HasSimilar">&nbsp;</td>
    </tr>
    <tr class="secBegin">
    <td class="LineNum">61</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .data:&nbsp;&nbsp; {} palign(8)&nbsp;&nbsp; /* This is where initialized globals and static go */</td>
    <td class="AlignCenter">=</td>
    <td class="LineNum">57</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .data:&nbsp;&nbsp; {} palign(8)&nbsp;&nbsp; /* This is where initialized globals and static go */</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">62</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; } &gt; MSS_L2</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">58</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; } &gt; MSS_L2</td>
    </tr>
    <tr class="secEnd">
    <td class="LineNum">63</td>
    <td class="Normal">&nbsp;</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">59</td>
    <td class="Normal">&nbsp;</td>
    </tr>
    <tr class="secBegin">
    <td class="LineNum">64</td>
    <td class="HasOrphan"><span class="ttSigDiff">&nbsp;&nbsp;&nbsp; GROUP {</span></td>
    <td class="AlignCenter">&lt;&gt;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">65</td>
    <td class="HasOrphan"><span class="ttSigDiff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .bss:.common:memp_memory_POOL_1792_base:&nbsp; (NOLOAD)&nbsp; {} palign(128)</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">66</td>
    <td class="HasOrphan"><span class="ttSigDiff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .bss:.common:memp_memory_POOL_1024_base:&nbsp; (NOLOAD)&nbsp; {} palign(128)</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">67</td>
    <td class="HasOrphan"><span class="ttSigDiff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .bss:.common:memp_memory_POOL_256_base:&nbsp; (NOLOAD)&nbsp; {} palign(128)</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">68</td>
    <td class="HasOrphan"><span class="ttSigDiff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .bss:.common:memp_memory_POOL_512_base:&nbsp; (NOLOAD)&nbsp; {} palign(128)</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">69</td>
    <td class="HasOrphan"><span class="ttSigDiff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .bss:.common:memp_memory_POOL_4096_base:&nbsp; (NOLOAD)&nbsp; {} palign(128)</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">70</td>
    <td class="HasOrphan"><span class="ttSigDiff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .bss:.common:memp_memory_POOL_128_base:&nbsp; (NOLOAD)&nbsp; {} palign(128)</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">71</td>
    <td class="HasOrphan"><span class="ttSigDiff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .bss:.common:memp_memory_PBUF_POOL_base:&nbsp; (NOLOAD)&nbsp; {} palign(128)</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">72</td>
    <td class="HasOrphan"><span class="ttSigDiff">&nbsp;&nbsp;&nbsp; } &gt; DSS_L3</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">73</td>
    <td class="HasSimilar">&nbsp;</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasSimilar">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">74</td>
    <td class="HasSimilar">&nbsp;</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasSimilar">&nbsp;</td>
    </tr>
    <tr class="secEnd">
    <td class="LineNum">75</td>
    <td class="HasSimilar">&nbsp;</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasSimilar">&nbsp;</td>
    </tr>
    <tr class="secBegin">
    <td class="LineNum">76</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; /* This is rest of uninitialized data. This can be placed in DDR if DDR is available and needed */</td>
    <td class="AlignCenter">=</td>
    <td class="LineNum">60</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; /* This is rest of uninitialized data. This can be placed in DDR if DDR is available and needed */</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">77</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; GROUP {</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">61</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; GROUP {</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">78</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .bss:&nbsp;&nbsp;&nbsp; {} palign(8)&nbsp;&nbsp; /* This is where uninitialized globals go */</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">62</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .bss:&nbsp;&nbsp;&nbsp; {} palign(8)&nbsp;&nbsp; /* This is where uninitialized globals go */</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">79</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RUN_START(__BSS_START)</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">63</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RUN_START(__BSS_START)</td>
    </tr>
    <tr class="secEnd">
    <td class="LineNum">80</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RUN_END(__BSS_END)</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">64</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RUN_END(__BSS_END)</td>
    </tr>
    <tr class="secBegin">
    <td class="LineNum">81</td>
    <td class="HasMismatch">&nbsp;&nbsp;&nbsp; <span class="ttSigDiff">}</span> <span class="ttSigDiff">&gt;</span> <span class="ttSigDiff">SBL_RESERVED_L2_RAM</span> <span class="ttSigDiff">|</span> <span class="ttSigDiff">MSS_L2</span></td>
    <td class="AlignCenter">&lt;&gt;</td>
    <td class="LineNum">65</td>
    <td class="HasMismatch">&nbsp;&nbsp;&nbsp;&nbsp<span class="ttSigDiff">&nbsp;</span>&nbsp<span class="ttSigDiff">&nbsp;</span> <span class="ttSigDiff">.s</span><span class="ttSigDiff">ysmem: {} palign(8)</span>&nbsp<span class="ttSigDiff">&nbsp;</span> <span class="ttSigDiff">/* Thi</span><span class="ttSigDiff">s is where the malloc heap goes */</span></td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">66</td>
    <td class="HasOrphan"><span class="ttSigDiff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .stack:&nbsp; {} palign(8)&nbsp;&nbsp; /* This is where the main() stack goes */</span></td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">82</td>
    <td class="HasMismatch">&nbsp;</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">67</td>
    <td class="HasMismatch"><span class="ttSigDiff">&nbsp;&nbsp;&nbsp; } &gt; MSS_L2</span></td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">83</td>
    <td class="HasOrphan"><span class="ttSigDiff">&nbsp;&nbsp;&nbsp; .sysmem: {} palign(8)&nbsp; &gt; SBL_RESERVED_L2_RAM | MSS_L2 /* This is where the malloc heap goes */</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secEnd">
    <td class="LineNum">84</td>
    <td class="HasOrphan"><span class="ttSigDiff">&nbsp;&nbsp;&nbsp; .stack:&nbsp; {} palign(8)&nbsp; &gt; SBL_RESERVED_L2_RAM | MSS_L2 /* This is where the main() stack goes */</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secBegin">
    <td class="LineNum">85</td>
    <td class="Normal">&nbsp;</td>
    <td class="AlignCenter">=</td>
    <td class="LineNum">68</td>
    <td class="Normal">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">86</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; /* This is where the stacks for different R5F modes go */</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">69</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; /* This is where the stacks for different R5F modes go */</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">87</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; GROUP {</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">70</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; GROUP {</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">88</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .irqstack: {. = . + __IRQ_STACK_SIZE;} align(8)</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">71</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .irqstack: {. = . + __IRQ_STACK_SIZE;} align(8)</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">89</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RUN_START(__IRQ_STACK_START)</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">72</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RUN_START(__IRQ_STACK_START)</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">90</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RUN_END(__IRQ_STACK_END)</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">73</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RUN_END(__IRQ_STACK_END)</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">91</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .fiqstack: {. = . + __FIQ_STACK_SIZE;} align(8)</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">74</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .fiqstack: {. = . + __FIQ_STACK_SIZE;} align(8)</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">92</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RUN_START(__FIQ_STACK_START)</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">75</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RUN_START(__FIQ_STACK_START)</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">93</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RUN_END(__FIQ_STACK_END)</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">76</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RUN_END(__FIQ_STACK_END)</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">94</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .svcstack: {. = . + __SVC_STACK_SIZE;} align(8)</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">77</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .svcstack: {. = . + __SVC_STACK_SIZE;} align(8)</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">95</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RUN_START(__SVC_STACK_START)</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">78</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RUN_START(__SVC_STACK_START)</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">96</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RUN_END(__SVC_STACK_END)</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">79</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RUN_END(__SVC_STACK_END)</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">97</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .abortstack: {. = . + __ABORT_STACK_SIZE;} align(8)</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">80</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .abortstack: {. = . + __ABORT_STACK_SIZE;} align(8)</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">98</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RUN_START(__ABORT_STACK_START)</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">81</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RUN_START(__ABORT_STACK_START)</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">99</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RUN_END(__ABORT_STACK_END)</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">82</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RUN_END(__ABORT_STACK_END)</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">100</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .undefinedstack: {. = . + __UNDEFINED_STACK_SIZE;} align(8)</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">83</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .undefinedstack: {. = . + __UNDEFINED_STACK_SIZE;} align(8)</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">101</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RUN_START(__UNDEFINED_STACK_START)</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">84</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RUN_START(__UNDEFINED_STACK_START)</td>
    </tr>
    <tr class="secEnd">
    <td class="LineNum">102</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RUN_END(__UNDEFINED_STACK_END)</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">85</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RUN_END(__UNDEFINED_STACK_END)</td>
    </tr>
    <tr class="secBegin">
    <td class="LineNum">103</td>
    <td class="HasOrphan"><span class="ttSigDiff">&nbsp;&nbsp;&nbsp; } &gt; SBL_RESERVED_L2_RAM | MSS_L2</span></td>
    <td class="AlignCenter">&lt;&gt;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">104</td>
    <td class="HasSimilar">&nbsp;</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasSimilar">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">105</td>
    <td class="HasOrphan"><span class="ttSigDiff">&nbsp;&nbsp;&nbsp; /* Sections needed for C++ projects */</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">106</td>
    <td class="HasOrphan"><span class="ttSigDiff">&nbsp;&nbsp;&nbsp; GROUP {</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">107</td>
    <td class="HasOrphan"><span class="ttSigDiff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .ARM.exidx:&nbsp; {} palign(8)&nbsp;&nbsp; /* Needed for C++ exception handling */</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">108</td>
    <td class="HasOrphan"><span class="ttSigDiff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .init_array: {} palign(8)&nbsp;&nbsp; /* Contains function pointers called before main */</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secEnd">
    <td class="LineNum">109</td>
    <td class="HasOrphan"><span class="ttSigDiff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .fini_array: {} palign(8)&nbsp;&nbsp; /* Contains function pointers called after main */</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secBegin">
    <td class="LineNum">110</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; } &gt; MSS_L2</td>
    <td class="AlignCenter">=</td>
    <td class="LineNum">86</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; } &gt; MSS_L2</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">111</td>
    <td class="Normal">&nbsp;</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">87</td>
    <td class="Normal">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">112</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; /* any data buffer needed to be put in L3 can be assigned this section name */</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">88</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; /* any data buffer needed to be put in L3 can be assigned this section name */</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">113</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; .bss.dss_l3 {} &gt; DSS_L3</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">89</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; .bss.dss_l3 {} &gt; DSS_L3</td>
    </tr>
    <tr class="secEnd">
    <td class="LineNum">114</td>
    <td class="Normal">&nbsp;</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">90</td>
    <td class="Normal">&nbsp;</td>
    </tr>
    <tr class="secBegin">
    <td class="LineNum">115</td>
    <td class="HasMismatch">&nbsp;&nbsp;&nbsp; /* <span class="ttSigDiff">F</span>o<span class="ttSigDiff">r</span> <span class="ttSigDiff">NDK</span> <span class="ttSigDiff">p</span>a<span class="ttSigDiff">ck</span>e<span class="ttSigDiff">t m</span>e<span class="ttSigDiff">m</span>o<span class="ttSigDiff">ry</span>*/</td>
    <td class="AlignCenter">&lt;&gt;</td>
    <td class="LineNum">91</td>
    <td class="HasMismatch">&nbsp;&nbsp;&nbsp; /* <span class="ttSigDiff">this is used</span><span class="ttSigDiff"> </span>o<span class="ttSigDiff">nly whe</span><span class="ttSigDiff">n</span> <span class="ttSigDiff">IPC</span> <span class="ttSigDiff">RPMessage is e</span><span class="ttSigDiff">n</span>a<span class="ttSigDiff">bl</span>e<span class="ttSigDiff">d, </span>e<span class="ttSigDiff">lse this is </span><span class="ttSigDiff">n</span>o<span class="ttSigDiff">t use</span><span class="ttSigDiff">d </span>*/</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">116</td>
    <td class="HasMismatch">&nbsp;&nbsp;&nbsp; .bss<span class="ttSigDiff">:ENET_</span><span class="ttSigDiff">CPPI</span>_<span class="ttSigDiff">DESC&nbsp;&nbsp;&nbsp;&nbsp; </span>&nbsp;&nbsp; (NOLOAD) {} <span class="ttSigDiff">ALIG</span>N<span class="ttSigDiff"> (128) &gt; CPPI</span>_<span class="ttSigDiff">D</span>E<span class="ttSigDiff">S</span><span class="ttSigDiff">C</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">92</td>
    <td class="HasMismatch">&nbsp;&nbsp;&nbsp; .bss<span class="ttSigDiff">.ipc</span>_<span class="ttSigDiff">vring_mem</span>&nbsp;&nbsp; (NOLOAD)<span class="ttSigDiff"> :</span> {} <span class="ttSigDiff">&gt; R</span><span class="ttSigDiff">TOS_</span>N<span class="ttSigDiff">ORTOS_IPC_SHM</span>_<span class="ttSigDiff">M</span>E<span class="ttSigDiff">M</span></td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">117</td>
    <td class="HasSimilar">&nbsp;</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasSimilar">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">118</td>
    <td class="HasOrphan"><span class="ttSigDiff">&nbsp;&nbsp;&nbsp; .enet_dma_mem {</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">119</td>
    <td class="HasOrphan"><span class="ttSigDiff">#if (ENET_SYSCFG_PKT_POOL_ENABLE == 1)</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">120</td>
    <td class="HasOrphan"><span class="ttSigDiff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *(*ENET_DMA_PKT_MEMPOOL)</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">121</td>
    <td class="HasOrphan"><span class="ttSigDiff">#endif</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">122</td>
    <td class="HasOrphan"><span class="ttSigDiff">&nbsp;&nbsp;&nbsp; } (NOLOAD) {} ALIGN (128) &gt; DSS_L3</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secEnd">
    <td class="LineNum">123</td>
    <td class="HasOrphan"><span class="ttSigDiff">&nbsp;&nbsp;&nbsp; .bss:UDP_IPERF_SND_BUF&nbsp; (NOLOAD) {} ALIGN (128) &gt; DSS_L3</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secBegin">
    <td class="LineNum">124</td>
    <td class="Normal">}</td>
    <td class="AlignCenter">=</td>
    <td class="LineNum">93</td>
    <td class="Normal">}</td>
    </tr>
    <tr class="secEnd">
    <td class="LineNum">125</td>
    <td class="Normal">&nbsp;</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">94</td>
    <td class="Normal">&nbsp;</td>
    </tr>
    <tr class="secAll">
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    <td class="AlignCenter">-+</td>
    <td class="LineNum">95</td>
    <td class="HasOrphan"><span class="ttSigDiff">/*----------------------------------------------------------------------------*/</span></td>
    </tr>
    <tr class="secBegin">
    <td class="LineNum">126</td>
    <td class="Normal">MEMORY</td>
    <td class="AlignCenter">=</td>
    <td class="LineNum">96</td>
    <td class="Normal">MEMORY</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">127</td>
    <td class="Normal">{</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">97</td>
    <td class="Normal">{</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">128</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; R5F_VECS&nbsp; : ORIGIN = 0x00000000 , LENGTH = 0x00000040</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">98</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; R5F_VECS&nbsp; : ORIGIN = 0x00000000 , LENGTH = 0x00000040</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">129</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; R5F_TCMA&nbsp; : ORIGIN = 0x00000040 , LENGTH = 0x00003FC0</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">99</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; R5F_TCMA&nbsp; : ORIGIN = 0x00000040 , LENGTH = 0x00003FC0</td>
    </tr>
    <tr class="secEnd">
    <td class="LineNum">130</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; R5F_TCMB&nbsp; : ORIGIN = 0x00080000 , LENGTH = 0x00004000</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">100</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; R5F_TCMB&nbsp; : ORIGIN = 0x00080000 , LENGTH = 0x00004000</td>
    </tr>
    <tr class="secAll">
    <td class="LineNum">131</td>
    <td class="HasOrphan"><span class="ttSigDiff">&nbsp;&nbsp;&nbsp; SBL_RESERVED_L2_RAM (RW)&nbsp;&nbsp; : origin=0x10200000 length=(0x00020000 - 0x00004000)</span></td>
    <td class="AlignCenter">+-</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secAll">
    <td class="LineNum">132</td>
    <td class="Normal">&nbsp;</td>
    <td class="AlignCenter">=</td>
    <td class="LineNum">101</td>
    <td class="Normal">&nbsp;</td>
    </tr>
    <tr class="secBegin">
    <td class="LineNum">133</td>
    <td class="HasSimilar">&nbsp;</td>
    <td class="AlignCenter">&lt;&gt;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasSimilar">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">134</td>
    <td class="HasOrphan"><span class="ttSigDiff">&nbsp;&nbsp;&nbsp; /* CPPI descriptor memory */</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">135</td>
    <td class="HasOrphan"><span class="ttSigDiff">&nbsp;&nbsp;&nbsp; CPPI_DESC : ORIGIN = (0x10220000 - 0x00004000), LENGTH = 0x00004000</span></td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    </tr>
    <tr class="secEnd">
    <td class="LineNum">136</td>
    <td class="HasSimilar">&nbsp;</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">&nbsp;</td>
    <td class="HasSimilar">&nbsp;</td>
    </tr>
    <tr class="secBegin">
    <td class="LineNum">137</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; /* when using multi-core application's i.e more than one R5F active, make sure</td>
    <td class="AlignCenter">=</td>
    <td class="LineNum">102</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; /* when using multi-core application's i.e more than one R5F active, make sure</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">138</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp; * this memory does not overlap with other R5F's</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">103</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp; * this memory does not overlap with other R5F's</td>
    </tr>
    <tr class="secEnd">
    <td class="LineNum">139</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp; */</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">104</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp;&nbsp; */</td>
    </tr>
    <tr class="secBegin">
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    <td class="AlignCenter">&lt;&gt;</td>
    <td class="LineNum">105</td>
    <td class="HasOrphan"><span class="ttSigDiff">&nbsp;&nbsp;&nbsp; SBL_RESERVED_L2_RAM (RW)&nbsp;&nbsp; : origin=0x10200000 length=0x00020000</span></td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">&nbsp;</td>
    <td class="HasSimilar">&nbsp;</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">106</td>
    <td class="HasSimilar">&nbsp;</td>
    </tr>
    <tr class="secEnd">
    <td class="LineNum">140</td>
    <td class="HasMismatch">&nbsp;&nbsp;&nbsp; MSS_L2&nbsp;&nbsp;&nbsp;&nbsp; : ORIGIN = 0x10220000 , LENGTH = 0x000<span class="ttSigDiff">D0</span>000</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">107</td>
    <td class="HasMismatch">&nbsp;&nbsp;&nbsp; MSS_L2&nbsp;&nbsp;&nbsp;&nbsp; : ORIGIN = 0x10220000 , LENGTH = 0x000<span class="ttSigDiff">C8</span>000</td>
    </tr>
    <tr class="secBegin">
    <td class="LineNum">141</td>
    <td class="Normal">&nbsp;</td>
    <td class="AlignCenter">=</td>
    <td class="LineNum">108</td>
    <td class="Normal">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">142</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; /* This is typically used to hold data IO buffers from accelerators like CSI, HWA, DSP */</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">109</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; /* This is typically used to hold data IO buffers from accelerators like CSI, HWA, DSP */</td>
    </tr>
    <tr class="secEnd">
    <td class="LineNum">143</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; DSS_L3:&nbsp;&nbsp; ORIGIN = 0x88000000, LENGTH = 0x00390000</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">110</td>
    <td class="Normal">&nbsp;&nbsp;&nbsp; DSS_L3:&nbsp;&nbsp; ORIGIN = 0x88000000, LENGTH = 0x00390000</td>
    </tr>
    <tr class="secBegin">
    <td class="LineNum">&nbsp;</td>
    <td class="HasSimilar">&nbsp;</td>
    <td class="AlignCenter">&lt;&gt;</td>
    <td class="LineNum">111</td>
    <td class="HasSimilar">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">112</td>
    <td class="HasOrphan"><span class="ttSigDiff">&nbsp;&nbsp;&nbsp; HWA_RAM (RW) : origin=0x82000000 length=0x00020000</span></td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">&nbsp;</td>
    <td class="HasSimilar">&nbsp;</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">113</td>
    <td class="HasSimilar">&nbsp;</td>
    </tr>
    <tr class="secMiddle">
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">114</td>
    <td class="HasOrphan"><span class="ttSigDiff">&nbsp;&nbsp;&nbsp; /* MSS mailbox memory is used as shared memory, we dont use bottom 32*6 bytes, since its used as SW queue by ipc_notify */</span></td>
    </tr>
    <tr class="secEnd">
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">115</td>
    <td class="HasOrphan"><span class="ttSigDiff">&nbsp;&nbsp;&nbsp; RTOS_NORTOS_IPC_SHM_MEM : ORIGIN = 0xC5000000, LENGTH = 0x1F40</span></td>
    </tr>
    <tr class="secAll">
    <td class="LineNum">144</td>
    <td class="Normal">}</td>
    <td class="AlignCenter">=</td>
    <td class="LineNum">116</td>
    <td class="Normal">}</td>
    </tr>
    <tr class="secBegin">
    <td class="LineNum">&nbsp;</td>
    <td class="HasOrphan">&nbsp;</td>
    <td class="AlignCenter">&lt;&gt;</td>
    <td class="LineNum">117</td>
    <td class="HasOrphan"><span class="ttSigDiff">/*----------------------------------------------------------------------------*/</span></td>
    </tr>
    <tr class="secEnd">
    <td class="LineNum">&nbsp;</td>
    <td class="HasSimilar">&nbsp;</td>
    <td class="AlignCenter">&nbsp;</td>
    <td class="LineNum">118</td>
    <td class="HasSimilar">&nbsp;</td>
    </tr>
    </table>
    </body></html>
    

    with this in mind:

    • could you please tell me the steps you took to "port" the mcu_plus_sdk upserver project into the mmw demos? I am still trying to replicate on my side.
    • also feel free to grab the "working" linker.cmd file from the above example path and replace the r5f_linker.cmd one, or try to match the memory organization with the working one as closely and see if that causes any difference in the build. I am assuming the demo is a larger project overall so i don't expect a simple copy to work without some extra modifications anyways. but if you can help me replicate I will be able to understand where the problem is coming from better

    Best,

    Daniel

  • Hi Meng,

    the referenced post doesn't use the same software package and contains different definitions from what you are trying to build, can you please share the files that you modified so I can try to run this on my side? above thread modified the makefile and the .mak file but if you modified anything else please attach as well.

    Can you also please explain what do you mean by porting the udpserver example form the mcu_plus_sdk into the mmwave demo? 

    Best,

    Daniel

  • Dear Daniel,

    First, to answer your question about putting the udpserver example in mcu_plus_sdk into the mmwave demo, the mmwave demo does not contain the content of enet communication, and we are using the DT83TC812 Ethernet chip, so I first use the udp_server demo in mcu_plus_sdk to modify the chip configuration, so that it can successfully send and receive UDP data in mcu_plus
    _sdk, and then add the modified code to the mmwave demo

    Here are the changes I made to make it compile without errors after adding the ENET code:

    ###################################################################################
    # Millimeter Wave Demo
    ###################################################################################
    .PHONY: mssCasDemo mssCasDemoEnet mssCasDemoClean mssCasDemoObjClean
    ###################################################################################
    # Setup the VPATH:
    ###################################################################################
    vpath %.c $(MMWAVE_SDK_INSTALL_PATH)/ti/demo/utils \
              ./mss
    
    MSS_CPU := R5F
    MSS_CPU_INSTANCE := r5f
    
    MCU_PLUS_INSTALL_PATH := C:/ti/mmwave_mcuplus_sdk_04_04_01_02/mcu_plus_sdk_am273x_08_05_00_24
    
    LIB_TYPE := debug
    ###################################################################################
    # Additional libraries which are required to build the DEMO:
    ###################################################################################
    MSS_MMW_CAS_DEMO_STD_LIBS = $($(MSS_CPU)_COMMON_STD_LIB) \
                            -llibtestlogger_$(MMWAVE_SDK_DEVICE_TYPE).$($(MSS_CPU)_LIB_EXT)		\
                            -llibmmwavelink_cascade_$(MMWAVE_SDK_DEVICE_TYPE).$($(MSS_CPU)_LIB_EXT)	\
                            -llibmmwave_cascade_$(MMWAVE_SDK_DEVICE_TYPE).$($(MSS_CPU)_LIB_EXT) \
                            -llibdpm_$(MMWAVE_SDK_DEVICE_TYPE).$($(MSS_CPU)_LIB_EXT) \
                            -llibmathutils.$($(MSS_CPU)_LIB_EXT) \
                            -llibcli_cascade_$(MMWAVE_SDK_DEVICE_TYPE).$($(MSS_CPU)_LIB_EXT) \
    						-llibgtrack3D_$(MMWAVE_SDK_DEVICE_TYPE).$($(MSS_CPU)_LIB_EXT) \
    						-lenet-cpsw.am273x.r5f.ti-arm-clang.${LIB_TYPE}.lib \
    						-llwipif-cpsw-freertos.am273x.r5f.ti-arm-clang.${LIB_TYPE}.lib \
    						-llwip-contrib-freertos.am273x.r5f.ti-arm-clang.${LIB_TYPE}.lib \
    						-llwip-freertos.am273x.r5f.ti-arm-clang.${LIB_TYPE}.lib
    
    MSS_MMW_CAS_DEMO_LOC_LIBS = $($(MSS_CPU)_COMMON_LOC_LIB)  \
    						-Wl,-i$(MMWAVE_SDK_INSTALL_PATH)/ti/control/mmwavelink/lib \
    						-Wl,-i$(MMWAVE_SDK_INSTALL_PATH)/ti/control/mmwave/lib \
    						-Wl,-i$(MMWAVE_SDK_INSTALL_PATH)/ti/utils/cli/lib \
    						-Wl,-i$(MMWAVE_SDK_INSTALL_PATH)/ti/control/dpm/lib \
    						-Wl,-i$(MMWAVE_SDK_INSTALL_PATH)/ti/utils/mathutils/lib \
    						-Wl,-i$(MMWAVE_SDK_INSTALL_PATH)/ti/alg/gtrack/lib \
    						-Wl,-i$(MMWAVE_SDK_INSTALL_PATH)/ti/utils/testlogger/lib \
    						-Wl,-i$(MCU_PLUS_INSTALL_PATH)/source/networking/enet/lib \
    						-Wl,-i$(MCU_PLUS_INSTALL_PATH)/source/networking/lwip/lib \
    
    #MSS_MMW_ENET_CAS_DEMO_LOC_LIBS = $(MSS_MMW_CAS_DEMO_LOC_LIBS) \
    					
    						
    ###MSS_MMW_CAS_DEMO_LOC_LIBS = $($(MSS_CPU)_COMMON_LOC_LIB)  \
    						
    R5F_INCLUDE     += -I$(MMWAVE_SDK_INSTALL_PATH)/ti/demo/am273x/mmw/mss/mssgenerated 
    ###				   -I$(MMWAVE_SDK_INSTALL_PATH)/ti/demo/am273x/mmw/mss/mbRadar_autoStart \
    ###				   -I$(MMWAVE_SDK_INSTALL_PATH)/ti/demo/am273x/mmw/mss/mbRadar_qspiflash \
    ###				   -I$(MMWAVE_SDK_INSTALL_PATH)/ti/demo/am273x/mmw/mss/mbRadar_mss
    
    
    
    R5F_INCLUDE += 	-I$(MCU_PLUS_INSTALL_PATH)/source/networking/enet \
    				-I$(MCU_PLUS_INSTALL_PATH)/source/networking/enet/core/include \
    				-I$(MCU_PLUS_INSTALL_PATH)/source/networking/enet/soc/am273x \
    				-I$(MCU_PLUS_INSTALL_PATH)/source/networking/enet/core/include/core \
    				-I$(MCU_PLUS_INSTALL_PATH)/source/networking/enet/core/include/per \
    				-I$(MCU_PLUS_INSTALL_PATH)/source/networking/enet/core \
    				-I$(MCU_PLUS_INSTALL_PATH)/source/networking/lwip/lwip-port/freertos/include \
    				-I$(MCU_PLUS_INSTALL_PATH)/source/networking/lwip/lwip-stack/src/include \
    				-I$(MCU_PLUS_INSTALL_PATH)/source/networking/lwip/lwip-port/nortos/include \
    				-I$(MCU_PLUS_INSTALL_PATH)/source/networking/lwip/lwip-config/am273x \
    				-I$(MCU_PLUS_INSTALL_PATH)/source/networking/lwip/lwip-port/include/ \
    				-I$(MCU_PLUS_INSTALL_PATH)/source/networking/enet/utils/include \
    				-I$(MCU_PLUS_INSTALL_PATH)/source/networking/enet/core/lwipif/inc \
    				-I$(MCU_PLUS_INSTALL_PATH)/source/networking/lwip/lwip-stack/src/include/lwip \
    				-I$(MCU_PLUS_INSTALL_PATH)/source/networking/enet/hw_include \
    				-I$(MCU_PLUS_INSTALL_PATH)/source/networking/enet/core/include/phy \
    				-I$(MCU_PLUS_INSTALL_PATH)/source/networking/enet/core/priv/core \
    				-I$(MCU_PLUS_INSTALL_PATH)/source/networking/enet/core/src/phy \
    ###				-I$(MCU_PLUS_INSTALL_PATH)/source/networking/enet/utils/include \
    ###				-I$(MCU_PLUS_INSTALL_PATH)/source/networking/enet/core/include/phy \
    ###				-I$(MCU_PLUS_INSTALL_PATH)/source/networking/enet/hw_include \
    ###				-I$(MCU_PLUS_INSTALL_PATH)/source/networking/enet/hw_include/mdio/V4 \
    ###				-I$(MCU_PLUS_INSTALL_PATH)/source/networking/lwip/lwip-stack/src/include \
    ###				-I$(MCU_PLUS_INSTALL_PATH)/source/networking/enet/core/lwipif/inc \
    ###				-I$(MCU_PLUS_INSTALL_PATH)/source/networking/lwip/lwip-contrib \
    ###				-I$(MCU_PLUS_INSTALL_PATH)/source/networking/lwip/lwip-config/am273x \
    ###				-I$(MCU_PLUS_INSTALL_PATH)/source/networking/lwip/lwip-port/freertos/include
    
    
    ###R5F_ENET_LINK_CMD = $(MMWAVE_SDK_INSTALL_PATH)/ti/platform/$(MMWAVE_SDK_DEVICE_TYPE)/r5f_linker_enet.cmd
    ###MSS_MMW_ENET_CAS_DEMO_MAP = $(MMWAVE_SDK_DEVICE_TYPE)mmw_cascade_demo_mss_$(PROC_CHAIN)ENET.map
    ###MSS_MMW_ENET_CAS_DEMO_OUT = $(MMWAVE_SDK_DEVICE_TYPE)mmw_cascade_demo_mss_$(PROC_CHAIN)ENET.$(MSS_CPU)_EXE_EXT
    ###MSS_MMW_ENET_CAS_DEMO_OUT_RPRC = $(MMWAVE_SDK_DEVICE_TYPE)_mmw_cascade_demo_mss_$(PROC_CHAIN)ENET.rprc
    
    
    	
    ###################################################################################
    # Millimeter Wave Demo
    ###################################################################################
    MSS_MMW_LVDS_CAS_DEMO_MAP    	 = $(MMWAVE_SDK_DEVICE_TYPE)_mmw_cascade_demo_mss_$(PROC_CHAIN)LVDS.map
    MSS_MMW_LVDS_CAS_DEMO_OUT    	 = $(MMWAVE_SDK_DEVICE_TYPE)_mmw_cascade_demo_mss_$(PROC_CHAIN)LVDS.$($(MSS_CPU)_EXE_EXT)
    MSS_MMW_LVDS_CAS_DEMO_OUT_RPRC 	 = $(MMWAVE_SDK_DEVICE_TYPE)_mmw_cascade_demo_mss_$(PROC_CHAIN)LVDS.rprc
    MSS_MMW_CAS_DEMO_MAP         	 = $(MMWAVE_SDK_DEVICE_TYPE)_mmw_cascade_demo_mss_$(PROC_CHAIN).map
    MSS_MMW_CAS_DEMO_OUT         	 = $(MMWAVE_SDK_DEVICE_TYPE)_mmw_cascade_demo_mss_$(PROC_CHAIN).$($(MSS_CPU)_EXE_EXT)
    MSS_MMW_CAS_DEMO_OUT_RPRC    	 = $(MMWAVE_SDK_DEVICE_TYPE)_mmw_cascade_demo_mss_$(PROC_CHAIN).rprc
    MSS_MMW_CAS_DEMO_CMD         	 = mss/mmw_mss_linker.cmd
    MSS_MMW_CAS_DEMO_SOURCES     	 = mmwdemo_adcconfig.c \
    								   mmwdemo_monitor.c \
    								   mmw_cli.c \
    							   	   mmwdemo_flash.c \
    								   gtrackAlloc.c \
    								   gtrackLog.c \
    								   mss_tracker.c \
    								   mbRadar_autoStart.c \
    								   mbRadar_mss.c \
    								   mbRadar_uartFiFo.c \
    								   mbRadar_cli.c \
    								   mbRadar_qspiflash.c \
    								   mbRadar_uartCmd.c \
    								   mbRadar_uartBoot.c \
    								   mbRadar_md5.c \
    								   mbRadar_can.c \
    								   mss_main.c   \
    								   upgrade.c	\
    								   cascade_lvds_stream.c	\
    								   cascade_csirx.c \
    								   app_cpswconfighandler.c \
    								   mbRadar_enet.c \
    								   dp83tc812.c \
    
    
    MSS_MMW_TDM_CAS_DEMO_SOURCES = $(MSS_MMW_CAS_DEMO_SOURCES) \
                               mmwdemo_rfparser.c
    MSS_MMW_DDM_CAS_DEMO_SOURCES = $(MSS_MMW_CAS_DEMO_SOURCES) \
                               mmwdemo_rfparserDDMA.c
    
    MSS_MMW_CAS_DEMO_SOURCES_GEN  = ti_board_config.c	\
                                	ti_board_open_close.c	\
    								ti_dpl_config.c	\
    								ti_drivers_config.c	\
    								ti_pinmux_config.c	\
    								ti_power_clock_config.c	\
    								ti_drivers_open_close.c \
    								ti_enet_open_close.c  \
    								ti_enet_soc.c \
    								ti_enet_config.c \
    								ti_enet_lwipif.c \
    	
    								
    
    MSS_MMW_CAS_DEMO_DEPENDS      = $(addprefix $(PLATFORM_OBJDIR)/, $(MSS_MMW_$(PROC_CHAIN)_CAS_DEMO_SOURCES:.c=.$($(MSS_CPU)_DEP_EXT)))
    MSS_MMW_CAS_DEMO_OBJECTS   	  = $(addprefix $(PLATFORM_OBJDIR)/, $(MSS_MMW_$(PROC_CHAIN)_CAS_DEMO_SOURCES:.c=.$($(MSS_CPU)_OBJ_EXT)))
    MSS_MMW_CAS_DEMO_OBJECTS_GEN  = $(addprefix $(PLATFORM_OBJDIR)/mssgenerated/, $(MSS_MMW_CAS_DEMO_SOURCES_GEN:.c=.$($(MSS_CPU)_OBJ_EXT)))
    
    ###################################################################################
    # Build the Millimeter Wave Demo
    ###################################################################################
    mssCasDemo: $(MSS_CPU)_CFLAGS += -DAPP_RESOURCE_FILE="<ti/demo/am273x/mmw/mmw_res$(PROC_CHAIN).h>" \
                                  -DDebugP_LOG_ENABLED \
                                  -DMMWDEMO_$(PROC_CHAIN) \
    							  -DCASCADE_EVM
    	
    
    mssCasDemo: buildDirectories mssbuildDirectories $(MSS_MMW_CAS_DEMO_OBJECTS) $(MSS_MMW_CAS_DEMO_OBJECTS_GEN)
    	$($(MSS_CPU)_LD) $($(MSS_CPU)_LDFLAGS) $(MSS_MMW_CAS_DEMO_LOC_LIBS) -Wl,-m=$(MSS_MMW_CAS_DEMO_MAP) \
    	-o $(MSS_MMW_CAS_DEMO_OUT) $(MSS_MMW_CAS_DEMO_OBJECTS) $(MSS_MMW_CAS_DEMO_OBJECTS_GEN) $(MSS_MMW_CAS_DEMO_STD_LIBS) \
    	$(PLATFORM_$(MSS_CPU)_LINK_CMD) $(MSS_MMW_CAS_DEMO_CMD)
    	@echo '******************************************************************************'
    	@echo 'Built the MSS for Millimeter Wave Demo'
    	@echo '******************************************************************************'
    
    OBJ := $(MSS_MMW_CAS_DEMO_ENET_OBJECTS) $(MSS_MMW_CAS_DEMO_OBJECTS_GEN) $(MSS_MMW_CAS_DEMO_ENET_OBJECTS_GEN) $(MSS_MMW_CAS_DEMO_OBJECTS)
    
    ###mssCasDemoEnet: $(MSS_CPU)_CFLAGS += -DAPP_RESOURCE_FILE="<ti/demo/am273x/mmw/mmw_res.h>" \
    ###    -DENET_STREAM \
    ###    -DDebugP_LOG_ENABLED \
    ###    -DMMWDEMO_$(PROC_CHAIN) \
    ###    -DCASCADE_EVM
    
    ###mssCasDemoEnet: buildDirectories mssbuildDirectories $(OBJ)
    ###	$(MSS_CPU_LD) $(MSS_CPU_LDFLAGS) $(MSS_MMW_ENET_CAS_DEMO_LOC_LIBS) -Wl,-m=$(MSS_MMW_ENET_CAS_DEMO_MAP) \
    ###	-o $(MSS_MMW_ENET_CAS_DEMO_OUT) $(OBJ) $(MSS_MMW_ENET_CAS_DEMO_STD_LIBS) $(RSF_ENET_LINK_CMD) $(MSS_MMW_CAS_DEMO_CMD)
    ###################################################################################
    # Build the Millimeter Wave Demo with LVDS
    ###################################################################################
    mssCasDemoLvds: $(MSS_CPU)_CFLAGS += -DAPP_RESOURCE_FILE="<ti/demo/am273x/mmw/mmw_res$(PROC_CHAIN).h>" \
                                      -DDebugP_LOG_ENABLED \
                                      -DLVDS_STREAM \
                                      -DMMWDEMO_$(PROC_CHAIN) \
    								  -DCASCADE_EVM
    
    mssCasDemoLvds: buildDirectories mssbuildDirectories $(MSS_MMW_CAS_DEMO_OBJECTS) $(MSS_MMW_CAS_DEMO_OBJECTS_GEN)
    	$($(MSS_CPU)_LD) $($(MSS_CPU)_LDFLAGS) $(MSS_MMW_CAS_DEMO_LOC_LIBS) -Wl,-m=$(MSS_MMW_LVDS_CAS_DEMO_MAP) \
    	-o $(MSS_MMW_LVDS_CAS_DEMO_OUT) $(MSS_MMW_CAS_DEMO_OBJECTS) $(MSS_MMW_CAS_DEMO_OBJECTS_GEN) $(MSS_MMW_CAS_DEMO_STD_LIBS) \
    	$(PLATFORM_$(MSS_CPU)_LINK_CMD) $(MSS_MMW_CAS_DEMO_CMD)
    	@echo '******************************************************************************'
    	@echo 'Built the MSS for Millimeter Wave Demo with LVDS'
    	@echo '******************************************************************************'
    
    ###################################################################################
    # Cleanup the Millimeter Wave Demo
    ###################################################################################
    mssCasDemoClean:
    	@echo 'Cleaning the Millimeter Wave Demo MSS Objects'
    	@rm -f $(MSS_MMW_CAS_DEMO_OBJECTS) $(MSS_MMW_CAS_DEMO_OBJECTS_GEN)
    	@rm -f $(MSS_MMW_CAS_DEMO_MAP) $(MSS_MMW_CAS_DEMO_OUT) $(MSS_MMW_CAS_DEMO_DEPENDS)
    	@rm -f $(MSS_MMW_LVDS_DEMO_OUT) $(MSS_MMW_LVDS_DEMO_MAP)
    	@$(DEL) $(PLATFORM_OBJDIR)
    
    mssCasDemoObjClean:
    	@echo 'Cleaning the Millimeter Wave Demo MSS Objects'
    	@rm -f $(MSS_MMW_CAS_DEMO_OBJECTS) $(MSS_MMW_CAS_DEMO_OBJECTS_GEN) 
    	@rm -f $(MSS_MMW_CAS_DEMO_DEPENDS)
    	@$(DEL) $(PLATFORM_OBJDIR)
    
    ###################################################################################
    # Dependency handling
    ###################################################################################
    -include $(MSS_MMW_CAS_DEMO_DEPENDS)
    
    

    ###################################################################################
    # mmWave Demo Level makefile
    ###################################################################################
    ifeq ($(CCS_MAKEFILE_BASED_BUILD), 1)
    ifeq ($(OS),Windows_NT)
    include $(MMWAVE_SDK_INSTALL_PATH)/scripts/windows/setenv.mak
    else
    include $(MMWAVE_SDK_INSTALL_PATH)/scripts/unix/setenv.mak
    endif
    endif
    
    
    include $(MMWAVE_SDK_INSTALL_PATH)/ti/common/mmwave_sdk.mak
    include ./mss/mmw_mss.mak
    include ./dss/mmw_dss.mak
    
    MMW_CAS_DEMO_BIN         = $(MMWAVE_SDK_DEVICE_TYPE)_mmw_cascade_demo_$(PROC_CHAIN).appimage
    MMW_LVDS_CAS_DEMO_BIN    = $(MMWAVE_SDK_DEVICE_TYPE)_mmw_cascade_demo_$(PROC_CHAIN)LVDS.appimage
    
    BOOTIMAGE_TEMP_OUT_FILE  = temp_stdout.txt
    
    OUTRPRC_CMD = $(SYSCFG_NODE) $(MCU_PLUS_INSTALL_PATH)/tools/boot/out2rprc/elf2rprc.js
    MULTI_CORE_IMAGE_GEN = $(SYSCFG_NODE) $(MCU_PLUS_INSTALL_PATH)/tools/boot/multicoreImageGen/multicoreImageGen.js
    
    ###################################################################################
    # Standard Targets which need to be implemented by each mmWave SDK module. This
    # plugs into the release scripts.
    ###################################################################################
    .PHONY: all clean
    .NOTPARALLEL:
    
    mmwCasDemo: syscfg mssCasDemo dssCasDemo
    mmwCasDemoLvds: syscfg mssCasDemoLvds dssCasDemoLvds
    ###mmwCasDemoEnet: mssenetsyscfg dsssyscfg mssCasDemoEnet
    	
    bin:
    	$(OUTRPRC_CMD) $(MSS_MMW_CAS_DEMO_OUT) >> $(BOOTIMAGE_TEMP_OUT_FILE)
    	$(OUTRPRC_CMD) $(DSS_MMW_CAS_DEMO_OUT) >> $(BOOTIMAGE_TEMP_OUT_FILE)
    	$(MULTI_CORE_IMAGE_GEN) --devID 55 --out $(MMW_CAS_DEMO_BIN) $(MSS_MMW_CAS_DEMO_OUT_RPRC)@0 $(DSS_MMW_CAS_DEMO_OUT_RPRC)@2  >> $(BOOTIMAGE_TEMP_OUT_FILE)
    	@$(DEL) $(MSS_MMW_CAS_DEMO_OUT_RPRC) $(DSS_MMW_CAS_DEMO_OUT_RPRC) $(BOOTIMAGE_TEMP_OUT_FILE)
    
    lvdsBin:
    	$(OUTRPRC_CMD) $(MSS_MMW_LVDS_CAS_DEMO_OUT) >> $(BOOTIMAGE_TEMP_OUT_FILE)
    	$(OUTRPRC_CMD) $(DSS_MMW_LVDS_CAS_DEMO_OUT) >> $(BOOTIMAGE_TEMP_OUT_FILE)
    	$(MULTI_CORE_IMAGE_GEN) --devID 55 --out $(MMW_LVDS_CAS_DEMO_BIN) $(MSS_MMW_LVDS_CAS_DEMO_OUT_RPRC)@0 $(DSS_MMW_LVDS_CAS_DEMO_OUT_RPRC)@2  >> $(BOOTIMAGE_TEMP_OUT_FILE)
    	@$(DEL) $(MSS_MMW_LVDS_CAS_DEMO_OUT_RPRC) $(DSS_MMW_LVDS_CAS_DEMO_OUT_RPRC) $(BOOTIMAGE_TEMP_OUT_FILE)
    
    ###enetBin:
    ###	$(OUTRPRC_CMD) $(MSS_MMW_ENET_CAS_DEMO_OUT) >> $(BOOTIMAGE_TEMP_OUT_FILE)
    ###	$(OUTRPRC_CMD) $(DSS_MMW_ENET_CAS_DEMO_OUT) >> $(BOOTIMAGE_TEMP_OUT_FILE)
    ###	$(MULTI_CORE_IMAGE_GEN) --devID 55 --out $(MMW_ENET_CAS_DEMO_BIN) $(MSS_MMW_ENET_CAS_DEMO_OUT_RPRC)@0 $(DSS_MMW_ENET_CAS_DEMO_OUT_RPRC)@2  >> $(BOOTIMAGE_TEMP_OUT_FILE)
    ###	@$(DEL) $(MSS_MMW_ENET_CAS_DEMO_OUT_RPRC) $(DSS_MMW_ENET_CAS_DEMO_OUT_RPRC) $(BOOTIMAGE_TEMP_OUT_FILE)
    # This builds all the supported demos but the binaries (TDM is not supported for cascade Demos)
    all: mmwCasDemoDDM 
    #mmwCasDemoDDMLVDS
    #mmwCasDemoDDMLVDS # mmwCasDemoTDMLVDS mmwCasDemoTDM
    
    binClean:
    	@$(DEL) $(MMW_CAS_DEMO_BIN) $(MMW_LVDS_CAS_DEMO_BIN) $(BOOTIMAGE_TEMP_OUT_FILE)
    
    ###mssenetsyscfg: ./mss/mss_enet.syscfg
    ###	@echo Generating msssyscfg SysConfig files ...
    ###	$(SYSCFG_NODE) $(SYSCFG_CLI_PATH)/dist/cli.js --product $(SYSCFG_SDKPRODUCT) --context r5fss0-0 --part Default --package $(PACKAGE_TYPE) --output ./mss/mssgenerated/ ./mss/mss.syscfg
    
    mssenetsyscfg-gui:
    	$(SYSCFG_NWJS) $(SYSCFG_CLI_PATH) --product $(SYSCFG_SDKPRODUCT) --device AM273x --context r5fss0-0 --part Default --package ZCE --output ./mss/mssgenerated/ ./mss/mss.syscfg	
    
    msssyscfg: ./mss/mss.syscfg
    	@echo Generating msssyscfg SysConfig files ...
    	$(SYSCFG_NODE) $(SYSCFG_CLI_PATH)/dist/cli.js --product $(SYSCFG_SDKPRODUCT) --context r5fss0-0 --part Default --package $(PACKAGE_TYPE) --output ./mss/mssgenerated/ ./mss/mss.syscfg
    
    	
    dsssyscfg: ./dss/dss.syscfg
    	@echo Generating  dsssyscfg SysConfig files ...
    	$(SYSCFG_NODE) $(SYSCFG_CLI_PATH)/dist/cli.js --product $(SYSCFG_SDKPRODUCT) --context c66ss0 --part Default --package $(PACKAGE_TYPE) --output ./dss/dssgenerated/ ./dss/dss.syscfg
    
    msssyscfg-gui:
    	$(SYSCFG_NWJS) $(SYSCFG_CLI_PATH) --product $(SYSCFG_SDKPRODUCT) --device AM273x --context r5fss0-0 --part Default --package ZCE --output ./mss/mssgenerated/ ./mss/mss.syscfg
    
    dsssyscfg-gui:
    	$(SYSCFG_NWJS) $(SYSCFG_CLI_PATH) --product $(SYSCFG_SDKPRODUCT) --device AM273x --context c66ss0 --part Default --package ZCE --output ./dss/mssgenerated/ ./dss/dss.syscfg
    
    mmwCasDemoTDM:
    	$(MAKE) PROC_CHAIN=TDM objClean mmwCasDemo bin
    mmwCasDemoDDM:
    	$(MAKE) PROC_CHAIN=DDM objClean mmwCasDemo bin
    mmwCasDemoTDMLVDS:
    	$(MAKE) PROC_CHAIN=TDM objClean mmwCasDemoLvds lvdsBin
    mmwCasDemoDDMLVDS:
    	$(MAKE) PROC_CHAIN=DDM objClean mmwCasDemoLvds lvdsBin
    ###mmwCasDemoDDMEnet:
    ###	$(MAKE) PROC_CHAIN=DDM objClean mmwCasDemoEnet enetBin
    	
    mmwCasDemoTDMClean:
    	$(MAKE) PROC_CHAIN=TDM objClean mssCasDemoClean dssCasDemoClean binClean
    mmwCasDemoDDMClean:
    	$(MAKE) PROC_CHAIN=DDM objClean mssCasDemoClean dssCasDemoClean binClean
    mmwCasDemoTDMLvdsClean:
    	$(MAKE) PROC_CHAIN=TDM objClean mssCasDemoClean dssCasDemoClean binClean
    mmwCasDemoDDMLvdsClean:
    	$(MAKE) PROC_CHAIN=DDM objClean mssCasDemoClean dssCasDemoClean binClean
    ###mmwCasDemoDDMEnetClean:
    ###	$(MAKE) PROC_CHAIN=DDM objClean mssCasDemoClean dssCasDemoClean binClean
    	
    # syscfg: This generates syscfg files
    syscfg: msssyscfg dsssyscfg
    
    # syscfg: This cleans syscfg files
    syscfgclean:
    	@echo 'Cleaning the syscfg files'
    	@$(DEL) mss/mssgenerated
    	@$(DEL) dss/dssgenerated	
    
    # Clean: This cleans all the objects
    clean: mmwCasDemoTDMClean mmwCasDemoDDMClean mmwCasDemoDDMLvdsClean mmwCasDemoTDMLvdsClean syscfgclean
    
    objClean: mssCasDemoObjClean dssCasDemoObjClean syscfgclean
    
    # Help: This displays the MAKEFILE Usage.
    help:
    	@echo '*****************************************************************************************************************'
    	@echo '* Makefile Targets for the DEMO '
    	@echo 'all                    -> Builds all mmw Cascade Demos (TDM, DDM, TDM-LVDS, DDM-LVDS) and corresponding appimages'
    	@echo 'clean                  -> Cleans the mmw Cascade Demo (both MSS and DSS binaries) and appimage'
    	@echo 'syscfg                 -> Generates the Syscfg files (both MSS and DSS binaries)'
    	@echo 'mmwCasDemoTDM          -> Builds the TDM mmw Cascade Demo (both MSS and DSS binaries) and appimage'
    	@echo 'mmwCasDemoDDM          -> Builds the DDM mmw Cascade Demo (both MSS and DSS binaries) and appimage'
    	@echo 'mmwCasDemoTDMLVDS      -> Builds the TDM LVDS mmw Cascade Demo (both MSS and DSS binaries) and appimage'
    	@echo 'mmwCasDemoDDMLVDS      -> Builds the DDM LVDS mmw Cascade Demo (both MSS and DSS binaries) and appimage'
    	@echo 'mmwCasDemoTDMClean     -> Cleans the TDM mmw Cascade Demo (both MSS and DSS binaries) and appimage'
    	@echo 'mmwCasDemoDDMClean     -> Cleans the DDM mmw Cascade Demo (both MSS and DSS binaries) and appimage'
    	@echo 'mmwCasDemoTDMLvdsClean -> Cleans the TDM LVDS mmw Cascade Demo (both MSS and DSS binaries) and appimage'
    	@echo 'mmwCasDemoDDMLvdsClean -> Cleans the DDM LVDS mmw Cascade Demo (both MSS and DSS binaries) and appimage'
    	@echo 'msssyscfg-gui          -> opens syscfg gui for TDM/DDM mss Cascade demo application'
    	@echo 'dsssyscfg-gui          -> opens syscfg gui for TDM/DDM dss Cascade demo application'
    	@echo '*****************************************************************************************************************'
    
    

    Sincerely,

    Meng

  • Hi Meng,

    There should be a linker command file under C:\ti\mmwave_mcuplus_sdk_04_04_01_02\mmwave_mcuplus_sdk_04_04_01_02\ti\platform\am273x called r5f_linker.cmd.

    It looks like it is not allocating the whole L2 space. could you open that file and change the length of the MSS_L2 section from 0x000C8000 to 0x000F0000 on line 107:

    Once done please clean and try rebuilding the project, the additional allocated memory should be enough to cover the hole from the error you were getting before.

    Best,

    Daniel