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.

RTOS/CC2652R: Finding my MCU looping with an attitude in Error_policyMin(), can't easily see why? Help?

Part Number: CC2652R
Other Parts Discussed in Thread: SYSBIOS, TAS6424, TMS320F28069

Tool/software: TI-RTOS

Hi guys,

I am getting stuck (about 30% of the time) on boot up in this routine (/home/marc/ti/xdctools_3_51_02_21_core/packages/xdc/runtime/Error.c)

Void Error_policyMin(Error_Block *eb, Types_ModuleId mod, CString file,   Int line, Error_Id id, IArg arg1, IArg arg2)

which is in the XDC/TiRTOS source code area.

The "*eb" is null, "mod" is 36, "file" is null, :"line" is 957,  "id" is 1048576, "arg1" is 3, "arg2" is 1

The question is how to use these numbers to find out what is going on?

I got this data from ROV's display which doesn't help much other than to use numbers above.

There could be some other branch of the debug tools I'm missing to parse out why I get into

this hang up software halt sometimes.  

I loop forever in that routine because "*ep" pointer is null...

Any help would be great, what to do to evaluate this.

I thought it might be stack but I doubled both task stack when they are created.

Regards,

Marc Y.

  • Hi Marc,

    The easiest thing is to use the Debug kernel project (instead of the Release) kernel project. Please refer to the SimpleLink User Guide for details on how to change the kernel project.

    If this is a BLE example that has the .cfg in the application project, please un-exclude the ble_debug.cfg file and exclude the ble_release.cfg file. Rebuild and run and you should get more information.

  • Oh, my bad, I didn't give details on my setup. This is not a BLE project (yet) it's the
    uartecho.c project with a bunch of demo/eval/test code added for I2S/I2C audio play.
    I have CCS 9.0, fully updated, etc...
    I didn't see the above defines folder in my project (no BLE)...
    Where else to look, and thank you,
    Marc Y.
  • No problem. Then do the first thing I said. Use the Debug kernel instead of the release kernel. Details are in the SimpleLink User Guide. Look for this section:

  • So your saying I should copy a project's .cfg file to my project and modify. I am looking at this example:
    ../ti/simplelink_cc13x2_26x2_sdk_3_10_00_53/examples/rtos/CC26X2R1_LAUNCHXL/sysbios/clock/tirtos/clock.cfg
    I do see some debug stuff to be modified in there. I am already using the "debug" build method.
    Marc
  • No. You import the debug kernel project and then change the dependency setting in the Uart Echo application project. This is spelled out in the "Changing the TI-RTOS Configuration".

    Don't confuse the Build configuration with the Kernel project names.

    Todd
  • In the Sys/BIos Kernel Users Guide it mentions and shows XGCONF utility, I can't seem to find that in my CCS900 menus anywhere?
    I have the out of the box CCS900 install from the big TI download file. What am I missing. It looks like this utility is used to config. the
    kernel builds using a GUI method rather than hunt and peck at source files.
    Where is this utility or can I get it?
    Marc
  • You have to right-click the .cfg and select Open with XGCONF. Why do you need to edit the file though? You should just be able to use the debug kernel project.

    Note: XGCONF is supported, but we generally recommend using the .cfg file as a text file since it is faster and has comments in the file.

    Todd
  • I totally agree after looking at where the project level config.cfg leads to the driver lib and it's file. I sure don't want to tamper with things that will make the BLE/radio code not work when I get to that part of the project. I thought I was following the path you mentioned to get to setting up better debugging when hitting a software halt like the Error.C file has in it's code.
    All I want to be able to do is look at the stuff in an error hang up like that and figure out where the problem was that sent the MCU to it's "jail" to be hung. I see a "line number" that must be some source file, but no file or module name to look at.
    I walked the stepping debug through to where it fails due to error 0x12, NOMEM in TI_TaskCreate function. This seems to happen more when I use the Segger Probe vx. the TI probe (or the LaunchPad for the deivce).
    This MCU has 80K of RAM, my stack for tasks is under 2K each (2 tasks).
    To get "ROV Clasic" or "ROV Object Explorer" to work I had to go into binary directories and change permisions to +X on various files as they were giving "permission denied" rather than run. I installed as SUDO on the main CCS900 install (Linux Mint is our OS).
    I'm seeing various problems in the CCS edit pane when inserting or resizing windows where the window shows the wrong info. but will correct if I scroll up/down the edit area. I'm living with this, figuring others see this and your getting bug reports to work on and will update when corrected. CCS7 and CCS8 versions all worked well, it's just this latest version that does this.
    So, to recap, if I could simple track back from an Error.C hang up to where it came from, rather than the pain of walking step by step and hoping to catch it that way would be of great help.
    Marc
  • Sorry that was ccfg.c file in all new projects I have created and not touched, simply links to the driverlib file of same name.
  • I'm not sure why everything I try is so hard in CCS? I am watching the videos (finally) on setting up SYS/BIOS and such.
    The instructor is working in the RTSC setups. I can't even get this to run. I think the video is an older CCS version.
    I am getting this on PROJECT>RTSC>NEW> dialog box, with this error/warning:
    Can't find 'ti.catalog' packages. Ensure that a product with these packages
    is selected in Window->Preferences->Code Composer Studio->RTSC.
    There is some "catalog" that needs to be located, and then the first item "Package Name" and "Package Repository"
    I have no idea what these are referring to.... if not set, can't move forward in the RTSC config as the buttons are dimmed
    out due to not doing the steps properly...
    Can you help out with why I'm getting this?
    Thanks,
    Marc Y.
  • Is there a newer version of this PDF that goes with the videos for TI-RTOS?
    training.ti.com/.../TI_RTOS_Kernel_Workshop_Student_Guide_rev4.00.pdf
    It is dated 2015 and maybe quite different from the current version of TI-RTOS, but still useful and one
    need to consider the GUI images shown in the pages or video will not match CCS900 version.
    Am I correct?
    Thanks,
    Marc Y.
  • First things first, let's try to help you figure out the initial problem. My goal was to have you use the debug kernel. This adds lots of debug features like giving the name of the file that an error occurred in. We don't have that enabled in the release kernel project to save footprint.

    It sounds like your heap is too small. Task_create allocates up to 1 or 2 things: Task_Object (to store the state information of the new task) and optionally a Task stack. If you supply the stack in the Task_Params in the Task_create, that stack is use instead of allocating one. So either make your heap larger or supply a stack in the Task_Params used in the Task_create. Note: make sure the stack is the same size as the size specified in the stackSize parameter field.

    The UART Echo example specifies the heap size in the linker command file.

    Note: ccfg.c has nothing to do with the kernel .cfg file.

    Todd
  • Hi Marc,

    Any update?

    Todd

    [4/29 Update: Marking as TI Thinks Resolved due to no activity.]

  • Hi TI/Todd,

    I have been debugging some electronics issues at the same time.  Our I2C is getting locked up by one of the chips and

    the RTOS driver hangs up and returns errors untile a physical reset.

    Any way, this issue with setting a larger heap size.  4K default is a little to tight.  I am getting thrown into the SYSBIOS

    exit/hang up for that as well as stack size to small.  The CC2552R1 has 80K of RAM so I would like to enable more

    of that for HeapMem for general use.  I also have a copule of static I2S audio buffers that are in general RAM.

    So, the dang ".cfg" file issue, there isn't one in a new empty project or in the UartEcho I started with.  As I understand

    from you, I switched to the debug kernel and it is healthy for data mining info as you said.

    I also see the kernel build has a ".cfg" file that it is using.  Can I simply copy that to my work space, rename or what

    ever and use it to make settings?   I don't see an implicit heap size in that .cfg file, rather found a setting in the linker

    file that came with UartEcho project example.   I change it to 8K but didn't see any change in the run time?  I added

    code to print out the Heap(free/alloc/etc) from another example and it still is 4K?

    I think I see how to increase the stack size for each task when created.  Does the stack memory come out of the

    heap too?  It seems like it as I set on to 2K and hung up in the error(eb) spin loop right off the bat.

    If i copy debug.cfg from the kernel source code to my work space is there any issue with duplicate defines ???

    Thanks in advance,

    Marc Y.

  • Hi Marc,

    The majority of the examples have an application project (e.g. driver's empty and UARTEcho) and a kernel project. The kernel project contains the .cfg file. The application project is "dependent" on the kernel project. There can only be one .cfg in the example. It can be in the application project (and remove the dependencies on the kernel project) or in the kernel project.

    You have four options in changing the .cfg file
    1. Move the dependency to the debug kernel project (which is sounds like you did)
    2. Change the kernel project (release or debug) as needed
    3. Create new kernel project and modify it as needed (and point the application project to be dependent on it)
    4. Add the .cfg to the application project (and remove the dependency on the kernel project). Here are instructions for this: dev.ti.com/.../node

    I recommend doing a combination of 1 and 2.

    To change the heap size, you need to adjust the HEAPSIZE variable in the linker file. We placed this in the linker file to allow different application projects that share a common kernel project the ability to customize the heap size. Note: the .cfg* contains the following which allows for the customized heap size

    var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
    HeapMem.primaryHeapBaseAddr = "&__primary_heap_start__";
    HeapMem.primaryHeapEndAddr = "&__primary_heap_end__";

    var heapMemParams = new HeapMem.Params();
    heapMemParams.usePrimaryHeap = true;

    * assuming the out of the box release and debug kernel projects.

    You should be able to increase the HEAPSIZE variable in the linker file and assuming you have the above in the .cfg file, the can look at ROV->HeapMem to see the correct size. Make sure you are rebuilding everything after the change.

    Todd
  • Hi,
    I did change the linker to 8192 and still my run time reports only 4096?
    In that code you show, I have found that too, where is the "size" set if using that method?
    I see a start and end labels, and a couple of other settings but not size?
    The mystery is using the method of editing a ".cfg" file one has to know what can be put
    in there to begin with and I don't find a doc. for that, only scattered info in other pdf files.
    The XCONF program does not seem to be available with CCS9? and/or my SDK for the CC2652 parts?
    Just checking if these statements are true,
    Marc
  • TI guys:

    Here is the generated makefile for the Debug project I'm using, the --heap_size=8192 seems to do nothing?

    Scroll down to the map file for the build of this makefile, heap looks like its 0x1000 or 4096 still?

    ################################################################################
    # Automatically-generated file. Do not edit!
    ################################################################################

    CG_TOOL_ROOT := /home/marc/ti/ccs900/ccs/tools/compiler/ti-cgt-arm_18.1.5.LTS

    GEN_OPTS += /home/marc/workspace_v9/tirtos_builds_CC26X2R1_LAUNCHXL_debug_ccs/Debug/configPkg/compiler.opt
    GEN_OPTS__FLAG := --cmd_file="/home/marc/workspace_v9/tirtos_builds_CC26X2R1_LAUNCHXL_debug_ccs/Debug/configPkg/compiler.opt"
    GEN_CMDS += /home/marc/workspace_v9/tirtos_builds_CC26X2R1_LAUNCHXL_debug_ccs/Debug/configPkg/linker.cmd
    GEN_CMDS__FLAG := -l"/home/marc/workspace_v9/tirtos_builds_CC26X2R1_LAUNCHXL_debug_ccs/Debug/configPkg/linker.cmd"

    ORDERED_OBJS += \
    "./AnalogMux.obj" \
    "./CC26X2R1_LAUNCHXL.obj" \
    "./CC26X2R1_LAUNCHXL_I2S.obj" \
    "./CC26X2R1_LAUNCHXL_fxns.obj" \
    "./ESSI_Configuration.obj" \
    "./ESSI_FW6_TEST.obj" \
    "./ESSI_StartUp.obj" \
    "./FW6_Monitor.obj" \
    "./I2SCC26XX.obj" \
    "./SerialRAM.obj" \
    "./TAS6424.obj" \
    "./adc_read.obj" \
    "./audio_duplex.obj" \
    "./ccfg.obj" \
    "./main_tirtos.obj" \
    "./utilities.obj" \
    "../CC26X2R1_LAUNCHXL_TIRTOS.cmd" \
    -l"ti/display/lib/display.aem4f" \
    -l"ti/grlib/lib/ccs/m4f/grlib.a" \
    -l"third_party/spiffs/lib/ccs/m4f/spiffs_cc26xx.a" \
    -l"ti/drivers/rf/lib/rf_multiMode_cc26x2.aem4f" \
    -l"ti/drivers/lib/drivers_cc26x2.aem4f" \
    -l"ti/dpl/lib/dpl_cc26x2.aem4f" \
    $(GEN_CMDS__FLAG) \
    -l"ti/devices/cc13x2_cc26x2/driverlib/bin/ccs/driverlib.lib" \
    -llibc.a \

    -include ../makefile.init

    RM := rm -rf
    RMDIR := rm -rf

    # All of the sources participating in the build are defined here
    -include sources.mk
    -include subdir_vars.mk
    -include subdir_rules.mk
    -include objects.mk

    ifneq ($(MAKECMDGOALS),clean)
    ifneq ($(strip $(C55_DEPS)),)
    -include $(C55_DEPS)
    endif
    ifneq ($(strip $(C_UPPER_DEPS)),)
    -include $(C_UPPER_DEPS)
    endif
    ifneq ($(strip $(S67_DEPS)),)
    -include $(S67_DEPS)
    endif
    ifneq ($(strip $(S62_DEPS)),)
    -include $(S62_DEPS)
    endif
    ifneq ($(strip $(S_DEPS)),)
    -include $(S_DEPS)
    endif
    ifneq ($(strip $(OPT_DEPS)),)
    -include $(OPT_DEPS)
    endif
    ifneq ($(strip $(C??_DEPS)),)
    -include $(C??_DEPS)
    endif
    ifneq ($(strip $(ASM_UPPER_DEPS)),)
    -include $(ASM_UPPER_DEPS)
    endif
    ifneq ($(strip $(S??_DEPS)),)
    -include $(S??_DEPS)
    endif
    ifneq ($(strip $(C64_DEPS)),)
    -include $(C64_DEPS)
    endif
    ifneq ($(strip $(CXX_DEPS)),)
    -include $(CXX_DEPS)
    endif
    ifneq ($(strip $(S64_DEPS)),)
    -include $(S64_DEPS)
    endif
    ifneq ($(strip $(INO_DEPS)),)
    -include $(INO_DEPS)
    endif
    ifneq ($(strip $(CLA_DEPS)),)
    -include $(CLA_DEPS)
    endif
    ifneq ($(strip $(S55_DEPS)),)
    -include $(S55_DEPS)
    endif
    ifneq ($(strip $(SV7A_DEPS)),)
    -include $(SV7A_DEPS)
    endif
    ifneq ($(strip $(C62_DEPS)),)
    -include $(C62_DEPS)
    endif
    ifneq ($(strip $(C67_DEPS)),)
    -include $(C67_DEPS)
    endif
    ifneq ($(strip $(PDE_DEPS)),)
    -include $(PDE_DEPS)
    endif
    ifneq ($(strip $(K_DEPS)),)
    -include $(K_DEPS)
    endif
    ifneq ($(strip $(C_DEPS)),)
    -include $(C_DEPS)
    endif
    ifneq ($(strip $(CC_DEPS)),)
    -include $(CC_DEPS)
    endif
    ifneq ($(strip $(C++_DEPS)),)
    -include $(C++_DEPS)
    endif
    ifneq ($(strip $(C43_DEPS)),)
    -include $(C43_DEPS)
    endif
    ifneq ($(strip $(S43_DEPS)),)
    -include $(S43_DEPS)
    endif
    ifneq ($(strip $(ASM_DEPS)),)
    -include $(ASM_DEPS)
    endif
    ifneq ($(strip $(S_UPPER_DEPS)),)
    -include $(S_UPPER_DEPS)
    endif
    ifneq ($(strip $(CPP_DEPS)),)
    -include $(CPP_DEPS)
    endif
    ifneq ($(strip $(SA_DEPS)),)
    -include $(SA_DEPS)
    endif
    endif

    -include ../makefile.defs

    # Add inputs and outputs from these tool invocations to the build variables
    EXE_OUTPUTS += \
    myFW6-2.out \

    EXE_OUTPUTS__QUOTED += \
    "myFW6-2.out" \

    BIN_OUTPUTS += \
    myFW6-2.hex \

    BIN_OUTPUTS__QUOTED += \
    "myFW6-2.hex" \


    # All Target
    all: $(OBJS) $(CMD_SRCS) $(GEN_CMDS)
        @$(MAKE) --no-print-directory -Onone "myFW6-2.out"

    dependents:
        -cd /home/marc/workspace_v9/tirtos_builds_CC26X2R1_LAUNCHXL_debug_ccs/Debug && $(MAKE) clean all
        -cd /home/marc/workspace_v9/tirtos_builds_CC26X2R1_LAUNCHXL_release_ccs_3_10_00_53/Release && $(MAKE) clean all

    # Tool invocations
    myFW6-2.out: $(OBJS) $(CMD_SRCS) $(GEN_CMDS) /home/marc/workspace_v9/tirtos_builds_CC26X2R1_LAUNCHXL_debug_ccs/Debug/tirtos_builds_CC26X2R1_LAUNCHXL_debug_ccs.lib /home/marc/workspace_v9/tirtos_builds_CC26X2R1_LAUNCHXL_release_ccs_3_10_00_53/Release/tirtos_builds_CC26X2R1_LAUNCHXL_release_ccs_3_10_00_53.lib
        @echo 'Building target: "$@"'
        @echo 'Invoking: ARM Linker'
        "/home/marc/ti/ccs900/ccs/tools/compiler/ti-cgt-arm_18.1.5.LTS/bin/armcl" -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me --define=DeviceFamily_CC26X2 -g --diag_warning=225 --diag_warning=255 --diag_wrap=off --display_error_number --gen_func_subsections=on -z -m"myFW6-2.map" --heap_size=8192 -i"/home/marc/ti/simplelink_cc13x2_26x2_sdk_3_10_00_53/source" -i"/home/marc/ti/simplelink_cc13x2_26x2_sdk_3_10_00_53/kernel/tirtos/packages" -i"/home/marc/ti/ccs900/ccs/tools/compiler/ti-cgt-arm_18.1.5.LTS/lib" --diag_wrap=off --display_error_number --warn_sections --xml_link_info="myFW6-2_linkInfo.xml" --rom_model -o "myFW6-2.out" $(ORDERED_OBJS)
        @echo 'Finished building target: "$@"'
        @echo ' '

    myFW6-2.hex: $(EXE_OUTPUTS)
        @echo 'Building files: $(strip $(EXE_OUTPUTS__QUOTED))'
        @echo 'Invoking: ARM Hex Utility'
        "/home/marc/ti/ccs900/ccs/tools/compiler/ti-cgt-arm_18.1.5.LTS/bin/armhex"  -o "myFW6-2.hex" $(EXE_OUTPUTS__QUOTED)
        @echo 'Finished building: $(strip $(EXE_OUTPUTS__QUOTED))'
        @echo ' '

    # Other Targets
    clean:
        -$(RM) $(BIN_OUTPUTS__QUOTED)$(EXE_OUTPUTS__QUOTED)
        -$(RM) "AnalogMux.obj" "CC26X2R1_LAUNCHXL.obj" "CC26X2R1_LAUNCHXL_I2S.obj" "CC26X2R1_LAUNCHXL_fxns.obj" "ESSI_Configuration.obj" "ESSI_FW6_TEST.obj" "ESSI_StartUp.obj" "FW6_Monitor.obj" "I2SCC26XX.obj" "SerialRAM.obj" "TAS6424.obj" "adc_read.obj" "audio_duplex.obj" "ccfg.obj" "main_tirtos.obj" "utilities.obj"
        -$(RM) "AnalogMux.d" "CC26X2R1_LAUNCHXL.d" "CC26X2R1_LAUNCHXL_I2S.d" "CC26X2R1_LAUNCHXL_fxns.d" "ESSI_Configuration.d" "ESSI_FW6_TEST.d" "ESSI_StartUp.d" "FW6_Monitor.d" "I2SCC26XX.d" "SerialRAM.d" "TAS6424.d" "adc_read.d" "audio_duplex.d" "ccfg.d" "main_tirtos.d" "utilities.d"
        -@echo 'Finished clean'
        -@echo ' '

    .PHONY: all clean dependents
    .SECONDARY:
    /home/marc/workspace_v9/tirtos_builds_CC26X2R1_LAUNCHXL_debug_ccs/Debug/tirtos_builds_CC26X2R1_LAUNCHXL_debug_ccs.lib:
    /home/marc/workspace_v9/tirtos_builds_CC26X2R1_LAUNCHXL_release_ccs_3_10_00_53/Release/tirtos_builds_CC26X2R1_LAUNCHXL_release_ccs_3_10_00_53.lib:

    -include ../makefile.targets

    The corresponding map file shows:


    .stack     0    20013c00    00000400     UNINITIALIZED
                      20013c00    00000400     --HOLE--

    .priheap   0    20002fb0    00001000     UNINITIALIZED
                      20002fb0    00001000     --HOLE--

    .bootVecs
    *          0    00000000    00000008     DSECT
                      00000000    00000008     boot.aem4f : boot.oem4f (.bootVecs)

    .resetVecs
    *          0    00000000    0000003c     
                      00000000    0000003c     debug_pem4f.oem4f (.resetVecs)

    .vecs      0    20000000    000000d8     NOLOAD SECTION
                      20000000    000000d8     debug_pem4f.oem4f (.vecs)

    xdc.meta   0    00000000    00000100     COPY SECTION
                      00000000    00000100     debug_pem4f.oem4f (xdc.meta)

    .text      0    0000003c    000130c6     
                      0000003c    00000bf0     FW6_Monitor.obj (.text:simpleConsole)
                      00000c2c    00000a5e     rtsv7M4_T_le_v4SPD16_eabi.lib : _printfi.c.obj (.text:__TI_printfi)
                      0000168a    00000002                                   : _locí>rZí¹”ÜGg›²

  • Attach your linker and .cfg files. Please attach and don't copy/paste them as that makes the thread long and hard to manage.
  • Hi, I don't see an "attach file" button in this dialog to reply?

    I'll do the "insert file" perhaps that is what will attach a file.

    The makefile and map file are from the project directory (debug build).

    The debug.cfg is in the TI-RTOS kernel (debug) build source, I haven't touched it.

    Here goes, after I click upload all I see is a strange graphic in this

    message entry dialog box, not sure if that means they are attached?

    Thx,Marc

    OK, that didn't work, the paper clip thing (insert file) when added

    and "POST" clicked either spins forever or pops up a red warning

    card that says something about the file extensions...

    Give me a clue how or what to click to attach a file, dumb question

    as it should be obvious?  I just don't see it?

    Maybe attache only works in the "Ask new question" button dialog

    and not from the "Reply" button in the message reader screen?

  • When you hit reply, click the yellow link 

    Then click the paper-clip 

    and browse to the .cfg file and insert. It may look weird, but that is fine. Do the same with .cmd. I've done that for a .cfg and .cmd below as an example.

    Todd

    app.cfg

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/538/TMS320F28069.cmd 

  • myFW6-2_map.txt

    ################################################################################
    # Automatically-generated file. Do not edit!
    ################################################################################
    
    CG_TOOL_ROOT := /home/marc/ti/ccs900/ccs/tools/compiler/ti-cgt-arm_18.1.5.LTS
    
    GEN_OPTS += /home/marc/workspace_v9/tirtos_builds_CC26X2R1_LAUNCHXL_debug_ccs/Debug/configPkg/compiler.opt
    GEN_OPTS__FLAG := --cmd_file="/home/marc/workspace_v9/tirtos_builds_CC26X2R1_LAUNCHXL_debug_ccs/Debug/configPkg/compiler.opt"
    GEN_CMDS += /home/marc/workspace_v9/tirtos_builds_CC26X2R1_LAUNCHXL_debug_ccs/Debug/configPkg/linker.cmd
    GEN_CMDS__FLAG := -l"/home/marc/workspace_v9/tirtos_builds_CC26X2R1_LAUNCHXL_debug_ccs/Debug/configPkg/linker.cmd"
    
    ORDERED_OBJS += \
    "./AnalogMux.obj" \
    "./CC26X2R1_LAUNCHXL.obj" \
    "./CC26X2R1_LAUNCHXL_I2S.obj" \
    "./CC26X2R1_LAUNCHXL_fxns.obj" \
    "./ESSI_Configuration.obj" \
    "./ESSI_FW6_TEST.obj" \
    "./ESSI_StartUp.obj" \
    "./FW6_Monitor.obj" \
    "./I2SCC26XX.obj" \
    "./SerialRAM.obj" \
    "./TAS6424.obj" \
    "./adc_read.obj" \
    "./audio_duplex.obj" \
    "./ccfg.obj" \
    "./main_tirtos.obj" \
    "./utilities.obj" \
    "../CC26X2R1_LAUNCHXL_TIRTOS.cmd" \
    -l"ti/display/lib/display.aem4f" \
    -l"ti/grlib/lib/ccs/m4f/grlib.a" \
    -l"third_party/spiffs/lib/ccs/m4f/spiffs_cc26xx.a" \
    -l"ti/drivers/rf/lib/rf_multiMode_cc26x2.aem4f" \
    -l"ti/drivers/lib/drivers_cc26x2.aem4f" \
    -l"ti/dpl/lib/dpl_cc26x2.aem4f" \
    $(GEN_CMDS__FLAG) \
    -l"ti/devices/cc13x2_cc26x2/driverlib/bin/ccs/driverlib.lib" \
    -llibc.a \
    
    -include ../makefile.init
    
    RM := rm -rf
    RMDIR := rm -rf
    
    # All of the sources participating in the build are defined here
    -include sources.mk
    -include subdir_vars.mk
    -include subdir_rules.mk
    -include objects.mk
    
    ifneq ($(MAKECMDGOALS),clean)
    ifneq ($(strip $(C55_DEPS)),)
    -include $(C55_DEPS)
    endif
    ifneq ($(strip $(C_UPPER_DEPS)),)
    -include $(C_UPPER_DEPS)
    endif
    ifneq ($(strip $(S67_DEPS)),)
    -include $(S67_DEPS)
    endif
    ifneq ($(strip $(S62_DEPS)),)
    -include $(S62_DEPS)
    endif
    ifneq ($(strip $(S_DEPS)),)
    -include $(S_DEPS)
    endif
    ifneq ($(strip $(OPT_DEPS)),)
    -include $(OPT_DEPS)
    endif
    ifneq ($(strip $(C??_DEPS)),)
    -include $(C??_DEPS)
    endif
    ifneq ($(strip $(ASM_UPPER_DEPS)),)
    -include $(ASM_UPPER_DEPS)
    endif
    ifneq ($(strip $(S??_DEPS)),)
    -include $(S??_DEPS)
    endif
    ifneq ($(strip $(C64_DEPS)),)
    -include $(C64_DEPS)
    endif
    ifneq ($(strip $(CXX_DEPS)),)
    -include $(CXX_DEPS)
    endif
    ifneq ($(strip $(S64_DEPS)),)
    -include $(S64_DEPS)
    endif
    ifneq ($(strip $(INO_DEPS)),)
    -include $(INO_DEPS)
    endif
    ifneq ($(strip $(CLA_DEPS)),)
    -include $(CLA_DEPS)
    endif
    ifneq ($(strip $(S55_DEPS)),)
    -include $(S55_DEPS)
    endif
    ifneq ($(strip $(SV7A_DEPS)),)
    -include $(SV7A_DEPS)
    endif
    ifneq ($(strip $(C62_DEPS)),)
    -include $(C62_DEPS)
    endif
    ifneq ($(strip $(C67_DEPS)),)
    -include $(C67_DEPS)
    endif
    ifneq ($(strip $(PDE_DEPS)),)
    -include $(PDE_DEPS)
    endif
    ifneq ($(strip $(K_DEPS)),)
    -include $(K_DEPS)
    endif
    ifneq ($(strip $(C_DEPS)),)
    -include $(C_DEPS)
    endif
    ifneq ($(strip $(CC_DEPS)),)
    -include $(CC_DEPS)
    endif
    ifneq ($(strip $(C++_DEPS)),)
    -include $(C++_DEPS)
    endif
    ifneq ($(strip $(C43_DEPS)),)
    -include $(C43_DEPS)
    endif
    ifneq ($(strip $(S43_DEPS)),)
    -include $(S43_DEPS)
    endif
    ifneq ($(strip $(ASM_DEPS)),)
    -include $(ASM_DEPS)
    endif
    ifneq ($(strip $(S_UPPER_DEPS)),)
    -include $(S_UPPER_DEPS)
    endif
    ifneq ($(strip $(CPP_DEPS)),)
    -include $(CPP_DEPS)
    endif
    ifneq ($(strip $(SA_DEPS)),)
    -include $(SA_DEPS)
    endif
    endif
    
    -include ../makefile.defs
    
    # Add inputs and outputs from these tool invocations to the build variables 
    EXE_OUTPUTS += \
    myFW6-2.out \
    
    EXE_OUTPUTS__QUOTED += \
    "myFW6-2.out" \
    
    BIN_OUTPUTS += \
    myFW6-2.hex \
    
    BIN_OUTPUTS__QUOTED += \
    "myFW6-2.hex" \
    
    
    # All Target
    all: $(OBJS) $(CMD_SRCS) $(GEN_CMDS)
    	@$(MAKE) --no-print-directory -Onone "myFW6-2.out"
    
    dependents:
    	-cd /home/marc/workspace_v9/tirtos_builds_CC26X2R1_LAUNCHXL_debug_ccs/Debug && $(MAKE) all
    	-cd /home/marc/workspace_v9/tirtos_builds_CC26X2R1_LAUNCHXL_release_ccs_3_10_00_53/Release && $(MAKE) all
    
    # Tool invocations
    myFW6-2.out: $(OBJS) $(CMD_SRCS) $(GEN_CMDS) /home/marc/workspace_v9/tirtos_builds_CC26X2R1_LAUNCHXL_debug_ccs/Debug/tirtos_builds_CC26X2R1_LAUNCHXL_debug_ccs.lib /home/marc/workspace_v9/tirtos_builds_CC26X2R1_LAUNCHXL_release_ccs_3_10_00_53/Release/tirtos_builds_CC26X2R1_LAUNCHXL_release_ccs_3_10_00_53.lib
    	@echo 'Building target: "$@"'
    	@echo 'Invoking: ARM Linker'
    	"/home/marc/ti/ccs900/ccs/tools/compiler/ti-cgt-arm_18.1.5.LTS/bin/armcl" -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me --define=DeviceFamily_CC26X2 -g --diag_warning=225 --diag_warning=255 --diag_wrap=off --display_error_number --gen_func_subsections=on -z -m"myFW6-2.map" --heap_size=8192 -i"/home/marc/ti/simplelink_cc13x2_26x2_sdk_3_10_00_53/source" -i"/home/marc/ti/simplelink_cc13x2_26x2_sdk_3_10_00_53/kernel/tirtos/packages" -i"/home/marc/ti/ccs900/ccs/tools/compiler/ti-cgt-arm_18.1.5.LTS/lib" --diag_wrap=off --display_error_number --warn_sections --xml_link_info="myFW6-2_linkInfo.xml" --rom_model -o "myFW6-2.out" $(ORDERED_OBJS)
    	@echo 'Finished building target: "$@"'
    	@echo ' '
    
    myFW6-2.hex: $(EXE_OUTPUTS)
    	@echo 'Building files: $(strip $(EXE_OUTPUTS__QUOTED))'
    	@echo 'Invoking: ARM Hex Utility'
    	"/home/marc/ti/ccs900/ccs/tools/compiler/ti-cgt-arm_18.1.5.LTS/bin/armhex"  -o "myFW6-2.hex" $(EXE_OUTPUTS__QUOTED)
    	@echo 'Finished building: $(strip $(EXE_OUTPUTS__QUOTED))'
    	@echo ' '
    
    # Other Targets
    clean:
    	-$(RM) $(BIN_OUTPUTS__QUOTED)$(EXE_OUTPUTS__QUOTED)
    	-$(RM) "AnalogMux.obj" "CC26X2R1_LAUNCHXL.obj" "CC26X2R1_LAUNCHXL_I2S.obj" "CC26X2R1_LAUNCHXL_fxns.obj" "ESSI_Configuration.obj" "ESSI_FW6_TEST.obj" "ESSI_StartUp.obj" "FW6_Monitor.obj" "I2SCC26XX.obj" "SerialRAM.obj" "TAS6424.obj" "adc_read.obj" "audio_duplex.obj" "ccfg.obj" "main_tirtos.obj" "utilities.obj" 
    	-$(RM) "AnalogMux.d" "CC26X2R1_LAUNCHXL.d" "CC26X2R1_LAUNCHXL_I2S.d" "CC26X2R1_LAUNCHXL_fxns.d" "ESSI_Configuration.d" "ESSI_FW6_TEST.d" "ESSI_StartUp.d" "FW6_Monitor.d" "I2SCC26XX.d" "SerialRAM.d" "TAS6424.d" "adc_read.d" "audio_duplex.d" "ccfg.d" "main_tirtos.d" "utilities.d" 
    	-@echo 'Finished clean'
    	-@echo ' '
    
    .PHONY: all clean dependents
    .SECONDARY:
    /home/marc/workspace_v9/tirtos_builds_CC26X2R1_LAUNCHXL_debug_ccs/Debug/tirtos_builds_CC26X2R1_LAUNCHXL_debug_ccs.lib:
    /home/marc/workspace_v9/tirtos_builds_CC26X2R1_LAUNCHXL_release_ccs_3_10_00_53/Release/tirtos_builds_CC26X2R1_LAUNCHXL_release_ccs_3_10_00_53.lib:
    
    -include ../makefile.targets
    
    
    Oh, weird, now I see that in the lower right.  And I click REPLY and get a small box open right in line, not that fancy edit box that I got before?

    I think it has something to do with being logged in or not.  If not, you get taken to the log in screen then back to the fancy edit box that does not

    have the "Insert...and more..." in the lower right you pointed out...

    Ok, I'll do what you say and get the files to you now.

     Clicked that link...

    and now back to the fancy edit box with the paper clip, I'll go there and do that too...

    This looks the same as I did, but I sent debug.cfg from the debug kernel build, the

    makefile is from my project workspace and it's map file output.

    Hope they get through!

    Marc

    debug.cfg

  • Can you attach the linker file you are using also?
  • That attach file thing is weird! Also, it wouldn't accept .map or .cfg, I had to rename them?  Had to rename linker.cmd to linker_cmd.txt to get it accepted?
    Ok, looking in the makefile, the linker cmd file is referenced, it's the one in the kernel debug build space, I'll send that, havn't touched ti either.

    Thx,

    Marc

    /*
     * Do not modify this file; it is automatically generated from the template
     * linkcmd.xdt in the ti.platforms.simplelink package and will be overwritten.
     */
    
    /*
     * put '"'s around paths because, without this, the linker
     * considers '-' as minus operator, not a file name character.
     */
    
    
    -l"/home/marc/workspace_v9/tirtos_builds_CC26X2R1_LAUNCHXL_debug_ccs/Debug/configPkg/package/cfg/debug_pem4f.oem4f"
    -l"/home/marc/ti/simplelink_cc13x2_26x2_sdk_3_10_00_53/kernel/tirtos/packages/ti/uia/sysbios/lib/release/ti.uia.sysbios.aem4f"
    -l"/home/marc/ti/simplelink_cc13x2_26x2_sdk_3_10_00_53/kernel/tirtos/packages/ti/uia/loggers/lib/release/ti.uia.loggers.aem4f"
    -l"/home/marc/workspace_v9/tirtos_builds_CC26X2R1_LAUNCHXL_debug_ccs/src/sysbios/sysbios.aem4f"
    -l"/home/marc/ti/simplelink_cc13x2_26x2_sdk_3_10_00_53/kernel/tirtos/packages/ti/uia/services/lib/release/ti.uia.services.aem4f"
    -l"/home/marc/ti/simplelink_cc13x2_26x2_sdk_3_10_00_53/kernel/tirtos/packages/ti/uia/runtime/lib/release/ti.uia.runtime.aem4f"
    -l"/home/marc/ti/simplelink_cc13x2_26x2_sdk_3_10_00_53/kernel/tirtos/packages/ti/uia/events/lib/release/ti.uia.events.aem4f"
    -l"/home/marc/ti/simplelink_cc13x2_26x2_sdk_3_10_00_53/kernel/tirtos/packages/ti/targets/arm/rtsarm/lib/boot.aem4f"
    -l"/home/marc/ti/simplelink_cc13x2_26x2_sdk_3_10_00_53/kernel/tirtos/packages/ti/targets/arm/rtsarm/lib/auto_init.aem4f"
    
    --retain="*(xdc.meta)"
    
    /* C6x Elf symbols */
    --symbol_map __TI_STACK_SIZE=__STACK_SIZE
    --symbol_map __TI_STACK_BASE=__stack
    --symbol_map _stack=__stack
    
    
    --args 0x0
    -heap  0x0
    
    /*
     * Linker command file contributions from all loaded packages:
     */
    
    /* Content from xdc.services.global (null): */
    
    /* Content from xdc (null): */
    
    /* Content from xdc.corevers (null): */
    
    /* Content from xdc.shelf (null): */
    
    /* Content from xdc.services.spec (null): */
    
    /* Content from xdc.services.intern.xsr (null): */
    
    /* Content from xdc.services.intern.gen (null): */
    
    /* Content from xdc.services.intern.cmd (null): */
    
    /* Content from xdc.bld (null): */
    
    /* Content from ti.targets (null): */
    
    /* Content from ti.targets.arm.elf (null): */
    
    /* Content from xdc.rov (null): */
    
    /* Content from xdc.runtime (null): */
    
    /* Content from ti.targets.arm.rtsarm (null): */
    
    /* Content from ti.sysbios.interfaces (null): */
    
    /* Content from ti.sysbios.family (null): */
    
    /* Content from ti.sysbios.family.arm (ti/sysbios/family/arm/linkcmd.xdt): */
    --retain "*(.vecs)"
    
    /* Content from xdc.services.getset (null): */
    
    /* Content from xdc.rta (null): */
    
    /* Content from ti.uia.events (null): */
    
    /* Content from ti.uia.runtime (null): */
    
    /* Content from xdc.runtime.knl (null): */
    
    /* Content from ti.sysbios.rts (ti/sysbios/rts/linkcmd.xdt): */
    
    /* Content from ti.uia.services (null): */
    
    /* Content from xdc.platform (null): */
    
    /* Content from ti.catalog.arm.cortexm4 (null): */
    
    /* Content from ti.catalog (null): */
    
    /* Content from ti.catalog.peripherals.hdvicp2 (null): */
    
    /* Content from ti.catalog.arm.peripherals.timers (null): */
    
    /* Content from xdc.cfg (null): */
    
    /* Content from ti.platforms.simplelink (null): */
    
    /* Content from ti.sysbios.hal (null): */
    
    /* Content from ti.sysbios (null): */
    
    /* Content from ti.sysbios.family.arm.cc26xx (null): */
    
    /* Content from ti.sysbios.family.arm.m3 (ti/sysbios/family/arm/m3/linkcmd.xdt): */
    -u _c_int00
    --retain "*(.resetVecs)"
    ti_sysbios_family_arm_m3_Hwi_nvic = 0xe000e000;
    
    /* Content from ti.sysbios.knl (null): */
    
    /* Content from ti.sysbios.syncs (null): */
    
    /* Content from ti.sysbios.gates (null): */
    
    /* Content from ti.sysbios.heaps (null): */
    
    /* Content from ti.sysbios.xdcruntime (null): */
    
    /* Content from ti.sysbios.rts.ti (ti/sysbios/rts/ti/linkcmd.xdt): */
    
    /* Content from ti.posix.tirtos (null): */
    
    /* Content from ti.uia.loggers (null): */
    
    /* Content from ti.sysbios.utils (null): */
    
    /* Content from ti.uia.sysbios (null): */
    
    /* Content from configPkg (null): */
    
    /* Content from xdc.services.io (null): */
    
    
    
    /*
     * symbolic aliases for static instance objects
     */
    xdc_runtime_Startup__EXECFXN__C = 1;
    xdc_runtime_Startup__RESETFXN__C = 1;
    
    
    SECTIONS
    {
        .bootVecs:  type = DSECT
        .resetVecs: load > 0x0
        .vecs: load > 0x20000000, type = NOLOAD
    
    
    
        xdc.meta: type = COPY
    }
    

  • The linker file in the application project. This is the file that has the heap size. I want to make sure this is the file you are changing.
  • Hi Todd,

    Even when I hand edit the makefile and change heap_size as shown, it still comes out only 4K????

    Building target: "myFW6-2.out"
    Invoking: ARM Linker
    "/home/marc/ti/ccs900/ccs/tools/compiler/ti-cgt-arm_18.1.5.LTS/bin/armcl" -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me --define=DeviceFamily_CC26X2 -g --diag_warning=225 --diag_warning=255 --diag_wrap=off --display_error_number --gen_func_subsections=on -z -m"myFW6-2.map" --heap_size=8192 -i"/home/marc/ti/simplelink_cc13x2_26x2_sdk_3_10_00_53/source" -i"/home/marc/ti/simplelink_cc13x2_26x2_sdk_3_10_00_53/kernel/tirtos/packages" -i"/home/marc/ti/ccs900/ccs/tools/compiler/ti-cgt-arm_18.1.5.LTS/lib" --diag_wrap=off --display_error_number --warn_sections --xml_link_info="myFW6-2_linkInfo.xml" --rom_model -o "myFW6-2.out" "./AnalogMux.obj" "./CC26X2R1_LAUNCHXL.obj" "./CC26X2R1_LAUNCHXL_I2S.obj" "./CC26X2R1_LAUNCHXL_fxns.obj" "./ESSI_Configuration.obj" "./ESSI_FW6_TEST.obj" "./ESSI_StartUp.obj" "./FW6_Monitor.obj" "./I2SCC26XX.obj" "./SerialRAM.obj" "./TAS6424.obj" "./adc_read.obj" "./audio_duplex.obj" "./ccfg.obj" "./main_tirtos.obj" "./utilities.obj" "../CC26X2R1_LAUNCHXL_TIRTOS.cmd" -l"ti/display/lib/display.aem4f" -l"ti/grlib/lib/ccs/m4f/grlib.a" -l"third_party/spiffs/lib/ccs/m4f/spiffs_cc26xx.a" -l"ti/drivers/rf/lib/rf_multiMode_cc26x2.aem4f" -l"ti/drivers/lib/drivers_cc26x2.aem4f" -l"ti/dpl/lib/dpl_cc26x2.aem4f" -l"/home/marc/workspace_v9/tirtos_builds_CC26X2R1_LAUNCHXL_debug_ccs/Debug/configPkg/linker.cmd" -l"ti/devices/cc13x2_cc26x2/driverlib/bin/ccs/driverlib.lib" -llibc.a
    <Linking>
    Finished building target: "myFW6-2.out"

    AND the map file for this shows a 4K heap still:


    .stack     0    20013c00    00000400     UNINITIALIZED
                      20013c00    00000400     --HOLE--

    .priheap   0    20002fb0    00001000     UNINITIALIZED
                      20002fb0    00001000     --HOLE--

    .bootVecs
    *          0    00000000    00000008     DSECT
                      00000000    00000008     boot.aem4f : boot.oem4f (.bootVecs)

    .resetVecs
    *          0    00000000    0000003c     
                      00000000    0000003c     debug_pem4f.oem4f (.resetVecs)

    .vecs      0    20000000    000000d8     NOLOAD SECTION
                      20000000    000000d8     debug_pem4f.oem4f (.vecs)

    xdc.meta   0    00000000    00000100     COPY SECTION
                      00000000    00000100     debug_pem4f.oem4f (xdc.meta)

    .text      0    0000003c    000132fe     
                      0000003c    00000c1c     FW6_Monitor.obj (.text:simpleConsole)‚€~~~“{ëÚ@¦J•

    I've been round and round, I found XCONF and played with that on the kernel's .cfg file,

    change all those to 8K and nothing ever changes in the heap I get at run time???

    I built the project in the Debug folder running the "make" command right there so nothiing

    in the CCS9 would mess with the build (make clean, then make) and still only got 4K

    Maybe I need to do the same in the kernel source tree, make manually from the command

    line too...

    I don't like editing or touching files that have "DO NOT EDIT" posted at the top but will to

    figure out what is going on, so far no luck????

    What gives?

    Marc

     

  • Change the HEAPSIZE variable in the application linker file.

    Note: I'm not sure which board you are using, so the application linker file might have a different name.

  • PS: I don't have a separate linker.cmd file in my project tree, I guess the one in the kernel does that part of the
    build then the makefile in my project tree has the actual linker invocation with arguments as shown previously.
  • You have to have a linker file in the application project. Here is the UART Echo that I imported. There is the kernel project on top and the application project below it. See the linker file I high-lighted in the application project. I'm using the TI compiler. If you are using GCC or IAR, the linker file has a different suffix. Again your board name (i.e. CC26X2R1_LAUNCHXL_TIRTOS) will be different if you are using a different board.

  • Ok, crap, I just found what you were saying in that last post. I changed that to 0x2000 and got my 8K heap finally!!!
    None of the other stuff I was messing with did anything. I thought you wanted me to look in a file called "linker.cmd"
    and the only one I found is in the kernel stuff. I over looked the one called by the name you had in that previous comment
    because you mentioned "linker file" and I translated that to linker.cmd....

    As a side note in all this I picked up much knowledge about where things are in the IDE file trees. Stuff one would get
    if they had time to attend a RTOS class.

    So I'm good now...
    Till the next issue, (I haven't even gotten to the Bluetooth stuff yet!)
  • Sometimes when there is so much to "see" one misses the answer right before your eyes....
    What gets users confused is reading the sysbios doc's and other doc's that detail so many
    ways to do similar things you don't look directly in the project. I finally saw that reference
    to the file you pointed out just today walking through the project makefile..
    Thanks,
    Marc Y.