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.

nSketch Black Box reference design, Loading various example programs

Other Parts Discussed in Thread: DM385

Hello,

Please let me start by saying I am a newbie with embedded Linux but have been programming embedded systems (non Linux based) for many years. I have been searching this forum and google for some direction.

I very much appreciate the vast amount of knowledge many of you have and would appreciate a point in the right direction.

I have spent a considerable amount of time learning the embedded Linux environment and familiarizing myself with the overall reference design architecture. I have built the main applications from the source code provided by TI/nSketch and successfully programmed the target device with  the Spectrum Digital XDS560 programmer and CCS. Flashing the uboot to NAND using the XDS560 then flashing the kernel and UBIFS through the serial port. I used tftp over ethernet to load Flash the files (after the initial uboots were loaded). The specific files and memory locations were clearly defined in the user guides.

Here comes the silly part... how do I load the example programs included in the files provided? I read through all of the included PDF files and see plenty of info on making the files, but how/where do I load them to the board?

Do I use CCS or load through tftp like I did uboot and the kernel?

I'm not asking for you to waste your valuable time explaining how to do it, I just need to know where I can learn to do it. I would like to clearly understand the steps involved in loading the files to the boards.

Thanks for any links or information you can provide!

  • Hi,

    If I understand you query correctly you want to run test examples on board using linux environment right? In that case I suggest you to NFS file system and map that file system to your board and you can access content in filesystem using teraterm console.

    For detailed setup please refer below link.

    http://processors.wiki.ti.com/index.php/DM365_Getting_Started_Guide

    This link is related to DM36x board, steps will be similar to DM385 also.

    Thanks,

    Veeranna

  • Hello,

    Thanks for the reply. Will the settings for a DM385 be the same as a DM365? I am using CCS5.5 and I don't see a DM385 target. Which target and how should CCS be configured to debug the DM385 with and without Linux?

    Thanks

  • Please use attached xml file and place \ccsv5\ccs_base\common\targetdb\devices and restart CCS.

    <?xml version="1.0" encoding="utf-8" standalone="no"?>
    <device id="DM385" partnum="DM385" HW_revision="1" XML_version="2" description="DaVinci DM385 - Cortex A8">
    	<!-- Filter for project wizard -->
    	<property Type="stringfield" Value="DaVinci DM38x" id="FilterString" />
    	<instance XML_version="1.2" desc="IcePick_D_0" href="routers/icepick_d.xml" id="IcePick_D_0" xml="icepick_d.xml" xmlpath="routers"/>
    	<router HW_revision="1.0" XML_version="1.2" description="ICEPick_D Router" id="IcePick_D_0" isa="ICEPICK_D">
    
    		<subpath desc="IVAHD0_iCont1" id="subpath_2">
    			<property Type="numericfield" Value="0x2" id="Port Number"/>
    			<property Type="choicelist" Value="1" id="Initial Configuration"/>
    			<property Type="choicelist" Value="1" id="Custom Configuration"/>
    			<property Type="choicelist" Value="1" id="Pseudo Address"/>
    			<instance XML_version="1.2" desc="ARM9_ICONT1" href="cpus/arm9.xml" id="ARM9_0" xml="arm9.xml" xmlpath="cpus"/>
    		</subpath>
    		<subpath desc="IVAHD0_iCont2" id="subpath_3">
    			<property Type="numericfield" Value="0x3" id="Port Number"/>
    			<property Type="choicelist" Value="1" id="Initial Configuration"/>
    			<property Type="choicelist" Value="1" id="Custom Configuration"/>
    			<property Type="choicelist" Value="1" id="Pseudo Address"/>
    			<instance XML_version="1.2" desc="ARM9_ICONT2" href="cpus/arm9.xml" id="ARM9_1" xml="arm9.xml" xmlpath="cpus"/>
    		</subpath>
    		<!-- TPPSS
    		<subpath desc="TPPSS" id="subpath_8">
    			<property Type="choicelist" Value="1" id="Initial Configuration"/>
    			<property Type="choicelist" Value="1" id="Custom Configuration"/>
    			<property Type="choicelist" Value="1" id="Pseudo Address"/>
    			<property Type="numericfield" Value="0x8" id="Port Number"/>
    			<instance XML_version="1.2" desc="ARM9_TPPSS" href="cpus/arm9.xml" id="ARM9_6" xml="arm9.xml" xmlpath="cpus"/>
    		</subpath>
    		-->
    		<subpath desc="Ducati_M0" id="subpath_9">
    			<property Type="choicelist" Value="1" id="Initial Configuration"/>
    			<property Type="choicelist" Value="1" id="Custom Configuration"/>
    			<property Type="choicelist" Value="1" id="Pseudo Address"/>
    			<property Type="numericfield" Value="0x9" id="Port Number"/>
    			<instance XML_version="1.2" desc="CS_DAP_RTOS" href="routers/cs_dap.xml" id="CS_DAP_4" xml="cs_dap.xml" xmlpath="routers"/>
    			<router HW_revision="1.0" XML_version="1.2" desc="CS_DAP_RTOS" description="CS_DAP Router" id="CS_DAP_4" isa="CS_DAP">
    				<property Type="numericfield" Value="0x4b6b902f" id="DAP TAP ID"/>
    				<subpath desc="subpath_1" id="subpath_1">
    					<property Type="choicelist" Value="1" id="Initial Configuration"/>
    					<property Type="choicelist" Value="1" id="Custom Configuration"/>
    					<property Type="choicelist" Value="1" id="Pseudo"/>
    					<instance XML_version="1.2" desc="Cortex_M3_RTOS" href="cpus/cortex_m3.xml" id="Cortex_M3_0" xml="cortex_m3.xml" xmlpath="cpus"/>
    					<property Type="numericfield" Value="0x19" id="Port Number"/>
    				</subpath>
    			</router>
    		</subpath>
    		<subpath desc="Ducati_M1" id="subpath_10">
    			<property Type="numericfield" Value="0xa" id="Port Number"/>
    			<property Type="choicelist" Value="1" id="Initial Configuration"/>
    			<property Type="choicelist" Value="1" id="Custom Configuration"/>
    			<property Type="choicelist" Value="1" id="Pseudo Address"/>
    			<instance XML_version="1.2" desc="CS_DAP_ISS" href="routers/cs_dap.xml" id="CS_DAP_1" xml="cs_dap.xml" xmlpath="routers"/>
    			<router HW_revision="1.0" XML_version="1.2" desc="CS_DAP_ISS" description="CS_DAP Router" id="CS_DAP_1" isa="CS_DAP">
    				<property Type="numericfield" Value="0x4b6b902f" id="DAP TAP ID"/>
    				<subpath desc="subpath_2" id="subpath_2">
    					<instance XML_version="1.2" desc="Cortex_M3_ISS" href="cpus/cortex_m3.xml" id="Cortex_M3_1" xml="cortex_m3.xml" xmlpath="cpus"/>
    					<property Type="choicelist" Value="1" id="Initial Configuration"/>
    					<property Type="choicelist" Value="1" id="Custom Configuration"/>
    					<property Type="choicelist" Value="1" id="Pseudo"/>
    					<property Type="numericfield" Value="0x1a" id="Port Number"/>
    				</subpath>
    			</router>
    		</subpath>
    		<subpath desc="SECSS" id="subpath_11">
    			<property Type="choicelist" Value="1" id="Initial Configuration"/>
    			<property Type="choicelist" Value="1" id="Custom Configuration"/>
    			<property Type="choicelist" Value="1" id="Pseudo Address"/>
    			<property Type="numericfield" Value="0xb" id="Port Number"/>
    			<instance XML_version="1.2" desc="CS_DAP_SECSS" href="routers/cs_dap.xml" id="CS_DAP_2" xml="cs_dap.xml" xmlpath="routers"/>
    			<router HW_revision="1.0" XML_version="1.2" desc="CS_DAP_SECSS" description="CS_DAP Router" id="CS_DAP_2" isa="CS_DAP">
    				<property Type="numericfield" Value="0x4b6b902f" id="DAP TAP ID"/>
    				<subpath desc="subpath_3" id="subpath_3">
    					<property Type="choicelist" Value="1" id="Initial Configuration"/>
    					<property Type="choicelist" Value="1" id="Custom Configuration"/>
    					<property Type="choicelist" Value="1" id="Pseudo"/>
    					<instance XML_version="1.2" desc="Cortex_M3_SECSS" href="cpus/cortex_m3.xml" id="Cortex_M3_2" xml="cortex_m3.xml" xmlpath="cpus"/>
    					<property Type="numericfield" Value="0x1b" id="Port Number"/>
    				</subpath>
    			</router>
    		</subpath>
    		<subpath desc="DAP" id="subpath_12">
    			<property Type="numericfield" Value="0xc" id="Port Number" />
    			<instance XML_version="1.2" desc="CS_DAP_DebugSS" href="routers/cs_dap.xml" id="CS_DAP_0" xml="cs_dap.xml" xmlpath="routers" />
    			<router HW_revision="1.0" XML_version="1.2" description="CS_DAP Router" id="CS_DAP_0" isa="CS_DAP">
    				<property Type="numericfield" Value="0x4b6b902f" id="DAP TAP ID" />
    				<subpath id="ModenaSS">
    					<property Type="numericfield" Value="0x0" id="Port Number"/>
    					<property Type="choicelist" Value="2" id="Type"/>
    					<property Type="choicelist" Value="1" id="Pseudo"/>
    					<instance XML_version="1.2" desc="CortexA8_0" href="cpus/cortex_a8.xml" id="CortexA8" xml="cortex_a8.xml" xmlpath="cpus" />
    					<cpu HW_revision="1.0" XML_version="1.2" desc="CortexA8" description="Cortex_A8 CPU" deviceSim="false" id="CortexA8" isa="Cortex_A8">
    						<!-- Project Wizard Settings -->
    						<property Type="stringfield" Value="-D=dm385 --silicon_version=7A8 --abi=eabi --code_state=32" id="CompilerBuildOptions" />
    						<!-- not used <property Type="stringfield" Value="opts" id="LinkerBuildOptions" /> -->
    						<!-- not used <property Type="stringfield" Value="lnk.cmd" id="LinkerCmd" /> -->
    						<!-- END Project Wizard Settings -->
    						<property Type="numericfield" Value="0x80001000" id="Address" />
    					</cpu>
    					<instance XML_version="1.2" desc="cs_child_0" href="cpus/cs_child.xml" id="cs_child_0" xml="cs_child.xml" xmlpath="cpus" />
    					<cpu HW_revision="1.0" XML_version="1.2" desc="ICECrusherCS" description="cs_child" deviceSim="false" id="cs_child_0" isa="cs_child">
    						<property Type="numericfield" Value="0x80003000" id="Address" />
    						<property Type="numericfield" Value="0x48c44c09" id="Identity" />
    					</cpu>
    				</subpath>
    				<subpath id="Trace_STM">
    					<property Type="numericfield" Value="0x9" id="Port Number"/>
    					<property Type="choicelist" Value="0x0" id="Type"/>
    					<instance XML_version="1.2" desc="CSSTM_0" href="cpus/csstm.xml" id="CSSTM_0" xml="csstm.xml" xmlpath="cpus"/>
    					<cpu HW_revision="1.0" XML_version="1.2" description="CS System Trace" deviceSim="false" id="CSSTM_0" isa="TMS470R26X">
    						<property Type="numericfield" Value="0x54161000" id="Address"/>
    					</cpu>
    					<instance XML_version="1.2" desc="CSETB_0" href="cpus/csetb.xml" id="CSETB_0" xml="csetb.xml" xmlpath="cpus"/>
    					<cpu HW_revision="1.0" XML_version="1.2" description="CS Embedded Trace Buffer" deviceSim="false" id="CSETB_0" isa="CS_ETB">
    						<property Type="numericfield" Value="0x54162000" id="Address"/>
    					</cpu>
    				</subpath>
    			</router>
    		</subpath>
    	</router>
    </device>
    
    

    And if you use Linux, you need to boot your DM385 target using NFS.

    And one more information: If you DM385 RDK software it will greatly help you.

    Thanks,

    Veeranna

  • Thanks for the info. I have been working through the issues but have a problem in one of my makefiles: I keep getting the error below:

    msmith@msmith-laptop:~/Car_BB_Install/carbb-rdk/src/cbb_rdk/example_gui$ sudo make
    echo "### Here we go!1"; \
        if [ -d  ]; then \
            echo "### QT - copy carbb interface ###"; \
                    cp -rf /home/msmith/Car_BB_Install/carbb-rdk/src/cbb_rdk/example_gui/../cbb_framework/interface/inc/* /home/msmith/Car_BB_Install/carbb-rdk/src/cbb_rdk/example_gui/qt482/include; \
            cp -rf /home/msmith/Car_BB_Install/carbb-rdk/src/cbb_rdk/example_gui/../cbb_framework/interface/src/libmsgq.so /home/msmith/Car_BB_Install/carbb-rdk/src/cbb_rdk/example_gui/qt482/lib/libmsgq.so; \
                    install -d /usr/qt482; \
                    rm -rf /usr/qt482/*; \
                    cp -rf /home/msmith/Car_BB_Install/carbb-rdk/src/cbb_rdk/example_gui/qt482 /usr/; \
        fi;
    ### Here we go!1
    ### QT - copy carbb interface ###
    echo "### Here we go!2";
    ### Here we go!2
    . /home/msmith/Car_BB_Install/carbb-rdk/src/cbb_rdk/example_gui/environment-setup; cd /home/msmith/Car_BB_Install/carbb-rdk/src/cbb_rdk/example_gui/gui; /home/msmith/Car_BB_Install/carbb-rdk/src/cbb_rdk/example_gui/qt482/bin/qmake DEFINES+=QT_TARGET /home/msmith/Car_BB_Install/carbb-rdk/src/cbb_rdk/example_gui/gui/gui.pro
    /home/msmith/Car_BB_Install/carbb-rdk/src/cbb_rdk/example_gui/qt482/bin/qmake: 1: Syntax error: "(" unexpected (expecting ")")
    make: *** [gui] Error 2
    msmith@msmith-laptop:~/Car_BB_Install/carbb-rdk/src/cbb_rdk/example_gui$ sudo make
    Makefile:48: *** missing separator.  Stop.
    msmith@msmith-laptop:~/Car_BB_Install/carbb-rdk/src/cbb_rdk/example_gui$ sudo make
    echo "### Step 1"; \
        if [ -d  ]; then \
            echo "### QT - copy carbb interface ###"; \
                    cp -rf /home/msmith/Car_BB_Install/carbb-rdk/src/cbb_rdk/example_gui/../cbb_framework/interface/inc/* /home/msmith/Car_BB_Install/carbb-rdk/src/cbb_rdk/example_gui/qt482/include; \
            cp -rf /home/msmith/Car_BB_Install/carbb-rdk/src/cbb_rdk/example_gui/../cbb_framework/interface/src/libmsgq.so /home/msmith/Car_BB_Install/carbb-rdk/src/cbb_rdk/example_gui/qt482/lib/libmsgq.so; \
                    install -d /usr/qt482; \
                    rm -rf /usr/qt482/*; \
                    cp -rf /home/msmith/Car_BB_Install/carbb-rdk/src/cbb_rdk/example_gui/qt482 /usr/; \
        fi;
    ### Step 1
    ### QT - copy carbb interface ###
    echo "### Step 2";
    ### Step 2
    . /home/msmith/Car_BB_Install/carbb-rdk/src/cbb_rdk/example_gui/environment-setup; cd /home/msmith/Car_BB_Install/carbb-rdk/src/cbb_rdk/example_gui/gui; /home/msmith/Car_BB_Install/carbb-rdk/src/cbb_rdk/example_gui/qt482/bin/qmake DEFINES+=QT_TARGET /home/msmith/Car_BB_Install/carbb-rdk/src/cbb_rdk/example_gui/gui/gui.pro
    /home/msmith/Car_BB_Install/carbb-rdk/src/cbb_rdk/example_gui/qt482/bin/qmake: 1: Syntax error: "(" unexpected (expecting ")")
    make: *** [gui] Error 2
    msmith@msmith-laptop:~/Car_BB_Install/carbb-rdk/src/cbb_rdk/example_gui$

    Below is my makefile:

    SUBDIRS =gui

    DEBUGSUBDIRS = $(addsuffix .debug, $(SUBDIRS))
    RELEASESUBDIRS = $(addsuffix .release, $(SUBDIRS))
    CLEANSUBDIRS = $(addsuffix .clean, $(SUBDIRS))
    INSTALLSUBDIRS = $(addsuffix .install, $(SUBDIRS))

    .PHONY: $(SUBDIRS) $(DEBUGSUBDIRS) $(RELEASESUBDIRS) $(INSTALLSUBDIRS) \
        $(CLEANSUBDIRS)


    QT_DIR := $(shell pwd)
    export QT_DIR

    ifeq ($(APP_TARGET), CARBB_TI_RDK_EXAMPLE)
        CARBB_DIR := $(QT_DIR)/../
        OUTPUT_DIR := $(QT_DIR)/../cbb_app/example
    else
        OUTPUT_DIR := $(QT_DIR)/output_files
    endif

    export OUTPUT_DIR


    all:    env $(SUBDIRS) install

    env:
    #    if [ -d /usr/qt482 ]; then \
    #        echo "exist qt482 files"; \
    #    else echo "copy qt482 files"; \
    #        sudo ./lib.sh; \
    #    fi;
        echo "### Step 1"; \
        if [ -d $(CARBB_DIR) ]; then \
            echo "### QT - copy carbb interface ###"; \
                    cp -rf $(QT_DIR)/../cbb_framework/interface/inc/* $(QT_DIR)/qt482/include; \
            cp -rf $(QT_DIR)/../cbb_framework/interface/src/libmsgq.so $(QT_DIR)/qt482/lib/libmsgq.so; \
                    install -d /usr/qt482; \
                    rm -rf /usr/qt482/*; \
                    cp -rf $(QT_DIR)/qt482 /usr/; \
        fi;
        echo "### Step 2";
    gui:
        . $(QT_DIR)/environment-setup; cd $(QT_DIR)/gui; $(QT_DIR)/qt482/bin/qmake DEFINES+=QT_TARGET $(QT_DIR)/gui/gui.pro
        @echo
        @echo Build QT - Making all in subdirectory $@...
        @$(MAKE) -C $@

    install: $(INSTALLSUBDIRS)


    gui.install:
        @echo
        @echo Executing make install in subdirectory $(basename $@)...
    ### QT Application ###
    #    install -d $(OUTPUT_DIR)/etc/init.d
    #    install -m 0755 $(QT_DIR)/etc/init $(OUTPUT_DIR)/etc/init.d/gui-e
    #    install -d $(OUTPUT_DIR)/home/root
    #    install -m 0755 $(QT_DIR)/etc/init $(OUTPUT_DIR)/home/root/gui-e
        install -d $(OUTPUT_DIR)/usr/qt482/bin
        install -m 0755 $(QT_DIR)/gui/gui $(OUTPUT_DIR)/usr/qt482/bin/guiE
        install -d $(OUTPUT_DIR)/opt/cbb
        install -m 0755 $(QT_DIR)/hostPC/opt/cbb/config.ini $(OUTPUT_DIR)/opt/cbb/config.ini
        install -m 0755 $(QT_DIR)/hostPC/opt/cbb/english.ini $(OUTPUT_DIR)/opt/cbb/english.ini
        install -m 0755 $(QT_DIR)/hostPC/opt/cbb/korean.ini $(OUTPUT_DIR)/opt/cbb/korean.ini
        install -d $(OUTPUT_DIR)/usr/qt482/audio
        install -m 0755 $(QT_DIR)/qt482/audio/* $(OUTPUT_DIR)/usr/qt482/audio
    ### QT library ###
        install -d $(OUTPUT_DIR)/usr/qt482/include
        install -m 0755 /usr/qt482/include/tslib.h $(OUTPUT_DIR)/usr/qt482/include/tslib.h
        cp -R  $(QT_DIR)/qt482/audio $(OUTPUT_DIR)/usr/qt482
    #    cp -R /usr/qt482/bin $(OUTPUT_DIR)/usr/qt482
        cp -R /usr/qt482/etc $(OUTPUT_DIR)/usr/qt482
    #    cp -R $(QT_DIR)/qt482/images $(OUTPUT_DIR)/usr/qt482
        cp -R /usr/qt482/lib $(OUTPUT_DIR)/usr/qt482
    #    cp -R /usr/qt482/mkspecs $(OUTPUT_DIR)/usr/qt482
        cp -R /usr/qt482/plugins $(OUTPUT_DIR)/usr/qt482

    debug:    $(DEBUGSUBDIRS)

    $(DEBUGSUBDIRS):
        @echo
        @echo Executing make debug in subdirectory $(basename $@)...
        @cd $(basename $@) ; $(MAKE) debug

    release:    $(RELEASESUBDIRS)

    $(RELEASESUBDIRS):
        @echo
        @echo Executing make release in subdirectory $(basename $@)...
        @cd $(basename $@) ; $(MAKE) release

    clean:    $(CLEANSUBDIRS)

    $(CLEANSUBDIRS):
        @cd $(basename $@) ; $(MAKE) clean

    Does anyone know why this is causing errors?

    Thanks.