Forwarding on behalf of a helpful Albert ...
 
- Rob

________________________________

        From: Albert Burbea [mailto:[EMAIL PROTECTED] 
        Sent: Tuesday, May 13, 2008 11:22 AM
        To: Tivy, Robert
        Subject: Re: How to debug dsp side program using CCS
        
        
        Hi Rob, everybody
        I am not sure you are correct
        *lkf files are NOT cmd files that the linker can use. You do
need to create a cmd file for the linker, but you do not have to use a
tcf file for that. A cmd file is a compilation result of the tcf, but
yet you can write one by your own
        You can find the syntax of cmd files in the assembly language
users guide
         
        Albert  
        
        
        On Tue, May 13, 2008 at 7:48 PM, Tivy, Robert <[EMAIL PROTECTED]>
wrote:
        

                You don't necessarily need a DSP/BIOS TCF file.  You
need one only if you want to use DSP/BIOS in your C code.  For your
simple test, you need to create a linker command file.  It seems that
the CCS project you have created (with odd names; 1.c, 2.pjt) has
created one for you (Debug.lkf), but that it doesn't match your actual
memory (loading problems) and it doesn't seem to REALLY be part of the
project, so you might need to add it manually.  Check the Debug.lkf file
and modify MEMORY statements to reflect your DSP memory map.
                
                The newline warning might be a side effect of the CCS
editor.  Try editing in a non-CCS editor and saving the file.
                
                The _c_int00 warning is because you have not included a
boot file in your project.  There is a boot.c you can use from codegen
tools, you should copy it to your work area and include it in the
project.
                
                
                Regards,
                
                - Rob
                
                > -----Original Message-----
                > From:
[EMAIL PROTECTED]
                >
[mailto:[EMAIL PROTECTED]
                > ] On Behalf Of Kamoolkar, Mugdha
                > Sent: Tuesday, May 13, 2008 1:22 AM
                > To: cs; davinci-linux-open-source
                > Subject: RE: How to debug dsp side program using CCS
                >
                > Hi,
                >
                > It looks like you may not have created TCF
configuration file
                > for your program. You can refer to any DSP/BIOS
example
                > application for this (available within CCS). If you
don't
                > have TCF file, then you will not get any linker
command file,
                > which would otherwise have been generated by the TCONF
                > utility that runs when you build the project.
                > If you don't have this, you will get the "entry point
symbol
                > undefined error".
                >
                > The TCF file will have memory map, device information
etc.
                > for your device & application.
                >
                > Regards,
                > Mughda
                >
                > -----Original Message-----
                > From:
[EMAIL PROTECTED]
                >
[mailto:[EMAIL PROTECTED]
                > ] On Behalf Of cs
                > Sent: Tuesday, May 13, 2008 1:08 PM
                > To: davinci-linux-open-source
                > Subject: How to debug dsp side program using CCS
                >
                > Hi all,
                >
                > For those dual core cpu such as Dm6446 , If I want to
develop
                > DSP side program , how to debug the program when using
CCS.
                >
                > My board is connected by XDS560 . In parallel debug
manager
                > windows , click C6400PLUS_0 enter CCS.
                > Then I load a gel file and create a new simple
TMS320C64XX
                > project. the code is as followed
                >
                > int main()
                > {
                >     int a,b,c;
                >     a = 8788;
                >     b = 77564;
                >     c = a*b;
                >
                >     return c;
                > }
                >
                > when I compile my code, the warning information is
shown
                >
                >
//////////////////////////////////////////////////////////////
                >
//////////////////////////////////////////////////////////////
                > -------------------------------  2.pjt - Debug
                > ------------------------------- [1.c]
                > "D:\CCStudio_v3.3\C6000\cgtools\bin\cl6x" -g
                > -fr"D:/try/dsp/2/Debug" -d"_DEBUG" -mv6400
-@"../2/Debug.lkf" "1.c"
                > "1.c", line 12: warning: last line of file ends
without a newline
                >
                > Warning: The project has no cmd file while the Text
Linker is
                > selected [Linking...]
                > "D:\CCStudio_v3.3\C6000\cgtools\bin\cl6x"
-@"Debug.lkf"
                > <Linking>
                >  warning: entry point symbol _c_int00 undefined
                >
                > Build Complete,
                >   0 Errors, 3 Warnings, 0 Remarks.
                >
//////////////////////////////////////////////////////////////
                >
////////////////////////////////////////////////////////////////
                >
                >
                >
                > when I load .out file , the following information
happen. Do
                > I forget some steps?
                >
                >
//////////////////////////////////////////////////////////////
                >
////////////////////////////////////////////////////////////////
                > Loader: One or more sections of your program falls
into a
                > memory region that is not writable.  These regions
will not
                > actually be written to the target.  Check your linker
                > configuration and/or memory map.
                > Trouble Writing Register: Error 0x00000006/-1176 Error
                > during: Memory, Register,  The IM memory request is
not
                > serviced by the HW memory system.  This could be
caused by
                > the memory address specified does not exist in the
specified
                > memory/cache level.    Sequence ID: 6 Error Code:
-1176 Error
                > Class: 0x00000006
                >
//////////////////////////////////////////////////////////////
                >
////////////////////////////////////////////////////////////////
                >
                >
                >
                > the gel file is as followed
                > /*
                >
--------------------------------------------------------------
                > ---------- *
                >  *
                >               *
                >  *  DaVinciEVM_dsp.gel
                >               *
                >  *  Version 3.00
                >               *
                >  *
                >               *
                >  *  This GEL file is designed to be used in
conjunction with
                >               *
                >  *  CCS 3.2X and the Davinci based EVM.
                >               *
                >  *
                >               *
                >  *
                >
--------------------------------------------------------------
                > ---------- */
                > /*
                >
--------------------------------------------------------------
                > ---------- *
                >  *
                >               *
                >  *  StartUp( )
                >               *
                >  *
                >               *
                >  *      Setup Memory Map
                >               *
                >  *
                >               *
                >  *
                >
--------------------------------------------------------------
                > ---------- */ StartUp( ) {
                >     setup_memory_map_dsp( );
                > }
                >
                > /*
                >
--------------------------------------------------------------
                > ---------- *
                >  *
                >               *
                >  *  OnTargetConnect( )
                >               *
                >  *
                >               *
                >  *
                >
--------------------------------------------------------------
                > ---------- */ OnTargetConnect( ) { }
                >
                > /*
                >
--------------------------------------------------------------
                > ---------- *
                >  *
                >               *
                >  *  setup_memory_map_dsp( )
                >               *
                >  *
                >               *
                >  *      Setup the Memory Map for DSP side only.
                >               *
                >  *
                >               *
                >  *
                >
--------------------------------------------------------------
                > ---------- */ setup_memory_map_dsp( ) {
                >     GEL_MapOn( );
                >     GEL_MapReset( );
                >
                >     /* RAM/ROM memory map */
                >     GEL_MapAddStr( 0x00100000, 0, 0x00100000,
"R|W|AS4", 0 );
                >   // DSP UMAP1 ImgCop
                >     GEL_MapAddStr( 0x00800000, 0, 0x00010000,
"R|W|AS4", 0 );
                >   // DSP UMAP0( L2 Cache )
                >     GEL_MapAddStr( 0x00E00000, 0, 0x00004000, "R|AS4",
0 );
                >   // DSP L1P( Secure ROM )
                >     GEL_MapAddStr( 0x00E08000, 0, 0x00008000,
"R|W|AS4", 0 );
                >   // DSP L1P Cache
                >     GEL_MapAddStr( 0x00F04000, 0, 0x0000C000,
"R|W|AS4", 0 );
                >   // DSP L1D RAM
                >     GEL_MapAddStr( 0x00F10000, 0, 0x00008000,
"R|W|AS4", 0 );
                >   // DSP L1D Cache
                >
                >     /* Peripheral memory map */
                >     GEL_MapAddStr( 0x01800000, 0, 0x00010000,
"R|W|AS4", 0 );
                >   // DSP Interrupts
                >     GEL_MapAddStr( 0x01810000, 0, 0x00001000,
"R|W|AS4", 0 );
                >   // DSP Powerdown
                >     GEL_MapAddStr( 0x01811000, 0, 0x00001000,
"R|W|AS4", 0 );
                >   // DSP Security ID
                >     GEL_MapAddStr( 0x01812000, 0, 0x00001000,
"R|W|AS4", 0 );
                >   // DSP Revision ID
                >     GEL_MapAddStr( 0x01820000, 0, 0x00010000,
"R|W|AS4", 0 );
                >   // DSP EMC
                >     GEL_MapAddStr( 0x01840000, 0, 0x00010000,
"R|W|AS4", 0 );
                >   // DSP Memory System
                >     GEL_MapAddStr( 0x01BC0000, 0, 0x00000100,
"R|W|AS4", 0 );
                >   // DSP AET Registers
                >     GEL_MapAddStr( 0x01BC0100, 0, 0x00000100,
"R|W|AS4", 0 );
                >   // DSP Pin Manager and Trace
                >
                >     GEL_MapAddStr( 0x01C00000, 0, 0x00010000,
"R|W|AS4", 0 );
                >   // EDMA CC
                >     GEL_MapAddStr( 0x01C10000, 0, 0x00000400,
"R|W|AS4", 0 );
                >   // EDMA TC0
                >     GEL_MapAddStr( 0x01C10400, 0, 0x00000400,
"R|W|AS4", 0 );
                >   // EDMA TC1
                >     GEL_MapAddStr( 0x01C20000, 0, 0x00000034,
"R|W|AS4", 0 );
                >   // UART 0
                >     GEL_MapAddStr( 0x01C20400, 0, 0x00000034,
"R|W|AS4", 0 );
                >   // UART 1
                >     GEL_MapAddStr( 0x01C20800, 0, 0x00000034,
"R|W|AS4", 0 );
                >   // UART 2
                >     GEL_MapAddStr( 0x01C21000, 0, 0x00000060,
"R|W|AS4", 0 );   // I2C
                >     GEL_MapAddStr( 0x01C21400, 0, 0x0000002C,
"R|W|AS4", 0 );
                >   // Timer 0/1
                >     GEL_MapAddStr( 0x01C21800, 0, 0x0000002C,
"R|W|AS4", 0 );
                >   // Timer 2/3
                >     GEL_MapAddStr( 0x01C21C00, 0, 0x0000002C,
"R|W|AS4", 0 );
                >   // Watchdog Timer
                >     GEL_MapAddStr( 0x01C22000, 0, 0x0000001C,
"R|W|AS4", 0 );
                >   // PWM 0
                >     GEL_MapAddStr( 0x01C22400, 0, 0x0000001C,
"R|W|AS4", 0 );
                >   // PWM 1
                >     GEL_MapAddStr( 0x01C22800, 0, 0x0000001C,
"R|W|AS4", 0 );
                >   // PWM 2
                >     GEL_MapAddStr( 0x01C40000, 0, 0x00000264,
"R|W|AS4", 0 );
                >   // System Module
                >     GEL_MapAddStr( 0x01C40800, 0, 0x00000174,
"R|W|AS4", 0 );
                >   // PLL 1
                >     GEL_MapAddStr( 0x01C40C00, 0, 0x00000174,
"R|W|AS4", 0 );
                >   // PLL 2
                >     GEL_MapAddStr( 0x01C41000, 0, 0x00000AA8,
"R|W|AS4", 0 );
                >   // Power Sleep Controller
                >     GEL_MapAddStr( 0x01C48000, 0, 0x00000050,
"R|W|AS4", 0 );
                >   // ARM Interrupts
                >     GEL_MapAddStr( 0x01C60000, 0, 0x00004000,
"R|W|AS4", 0 );
                >   // IEEE 1394
                >     GEL_MapAddStr( 0x01C64000, 0, 0x00002000,
"R|W|AS4", 0 );
                >   // USB 2.0 OTG
                >     GEL_MapAddStr( 0x01C66000, 0, 0x00000800,
"R|W|AS2", 0 );
                >   // ATA / CF
                >     GEL_MapAddStr( 0x01C66800, 0, 0x00000074,
"R|W|AS4", 0 );   // SPI
                >     GEL_MapAddStr( 0x01C67000, 0, 0x00000038,
"R|W|AS4", 0 );
                >   // GPIO
                >     GEL_MapAddStr( 0x01C67800, 0, 0x00000104,
"R|W|AS4", 0 );
                >   // UHPI
                >     GEL_MapAddStr( 0x01C70000, 0, 0x00004000,
"R|W|AS4", 0 );
                >   // VPSS
                >     GEL_MapAddStr( 0x01C80000, 0, 0x00001000,
"R|W|AS4", 0 );
                >   // EMAC Control
                >     GEL_MapAddStr( 0x01C81000, 0, 0x00001000,
"R|W|AS4", 0 );
                >   // EMAC Wrapper
                >     GEL_MapAddStr( 0x01C82000, 0, 0x00002000,
"R|W|AS4", 0 );
                >   // EMAC Wrapper RAM
                >     GEL_MapAddStr( 0x01C84000, 0, 0x00000090,
"R|W|AS4", 0 );
                >   // MDIO
                >     GEL_MapAddStr( 0x01CC0000, 0, 0x00020000,
"R|W|AS4", 0 );
                >   // Image Coprocessor
                >     GEL_MapAddStr( 0x01E00000, 0, 0x000000b4,
"R|W|AS4", 0 );
                >   // AEMIF Control
                >     GEL_MapAddStr( 0x01E01000, 0, 0x00000560,
"R|W|AS4", 0 );
                >   // VYLNQ Control
                >     GEL_MapAddStr( 0x01E02000, 0, 0x0000005C,
"R|W|AS4", 0 );
                >   // McBSP
                >     GEL_MapAddStr( 0x01E10000, 0, 0x00000078,
"R|W|AS4", 0 );
                >   // MMC / SD
                >     GEL_MapAddStr( 0x01E20000, 0, 0x00000024,
"R|W|AS4", 0 );
                >   // Memory Stick / Pro
                >
                >     /* Off-chip memory map */
                >     GEL_MapAddStr( 0x02000000, 0, 0x02000000,
"R|W|AS4", 0 );
                >   // AEMIF CS2
                >     GEL_MapAddStr( 0x04000000, 0, 0x02000000,
"R|W|AS4", 0 );
                >   // AEMIF CS3
                >     GEL_MapAddStr( 0x06000000, 0, 0x02000000,
"R|W|AS4", 0 );
                >   // AEMIF CS4
                >     GEL_MapAddStr( 0x08000000, 0, 0x02000000,
"R|W|AS4", 0 );
                >   // AEMIF CS5
                >     GEL_MapAddStr( 0x0C000000, 0, 0x04000000,
"R|W|AS4", 0 );
                >   // VLYNQ Remote
                >
                >     /* ARM memory map */
                >     GEL_MapAddStr( 0x10008000, 0, 0x00002000,
"R|W|AS4", 0 );
                >   // ARM RAM0
                >     GEL_MapAddStr( 0x1000A000, 0, 0x00002000,
"R|W|AS4", 0 );
                >   // ARM RAM1
                >     GEL_MapAddStr( 0x1000C000, 0, 0x00004000, "R|AS4",
0 );
                >   // ARM ROM
                >
                >     /* DSP RAM memory map */
                >     GEL_MapAddStr( 0x11100000, 0, 0x00100000,
"R|W|AS4", 0 );
                >   // DSP UMAP1 ImgCop
                >     GEL_MapAddStr( 0x11800000, 0, 0x00010000,
"R|W|AS4", 0 );
                >   // DSP UMAP0 L2 Cache
                >     GEL_MapAddStr( 0x11E00000, 0, 0x00004000, "R|AS4",
0 );
                >   // DSP L1P ROM
                >     GEL_MapAddStr( 0x11E08000, 0, 0x00008000,
"R|W|AS4", 0 );
                >   // DSP L1P Cache
                >     GEL_MapAddStr( 0x11F04000, 0, 0x0000C000,
"R|W|AS4", 0 );
                >   // DSP L1D RAM
                >     GEL_MapAddStr( 0x11F10000, 0, 0x00008000,
"R|W|AS4", 0 );
                >   // DSP L1D Cache
                >
                >     /* DDR2 memory map */
                >     GEL_MapAddStr( 0x20000000, 0, 0x000000E8,
"R|W|AS4", 0 );
                >   // DDR2 Control
                >     GEL_MapAddStr( 0x42000000, 0, 0x0E000000,
"R|W|AS4", 0 );
                >   // AEMIF/VLYNQ Shadow
                >     GEL_MapAddStr( 0x80000000, 0, 0x10000000,
"R|W|AS4", 0 );
                >   // DDR2 SDRAM
                > }
                >
                >
                >
                >
                >
                >
                >
                >
                >
                > 2008-05-13
                > _______________________________________________
                > Davinci-linux-open-source mailing list
                > [email protected]
                >
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
                >
                _______________________________________________
                Davinci-linux-open-source mailing list
                [email protected]
        
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
                




        -- 
        Albert Burbea
        Harishonim 8
        Ramat Gan 52502, Israel
        Tel/Fax + 972-3-7526016
        Mobile: +972-52-3541842 

_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to