DSPRelated.com
Forums

Beginner Question: How to make a memory map ?

Started by ".dorian" October 28, 2007
******************************************************************************
TMS320C6x COFF Linker PC v5.1.0
******************************************************************************
>> Linked Sun Oct 28 20:16:35 2007

OUTPUT FILE NAME: <./Debug/x264enc.out>
ENTRY POINT SYMBOL: "_c_int00" address: 00083120
SECTION ALLOCATION MAP

output attributes/
section page origin length input sections
-------- ---- ---------- ---------- ----------------
.data 0 00000000 00000000 UNINITIALIZED

.text 0 00000000 000837e0
00000000 0001ece0 libx264enc.lib : analyse.obj (.text)
0001ece0 0000f9e0 : me.obj (.text)
0002e6c0 0000a120 : macroblock2.obj (.text)
000387e0 00009820 : encoder.obj (.text)
00042000 000065e0 : predict.obj (.text)
000485e0 00005c40 : ratecontrol.obj (.text)
0004e220 000053e0 : dct.obj (.text)
00053600 000045c0 : cabac.obj (.text)
00057bc0 00004200 : macroblock.obj (.text)
0005bdc0 00004200 : frame.obj (.text)
0005ffc0 00003aa0 : pixel.obj (.text)
00063a60 00003200 : cavlc.obj (.text)
00066c60 00002d60 : set.obj (.text)
000699c0 00002700 parse.obj (.text)
0006c0c0 00002160 libx264enc.lib : mc.obj (.text)
0006e220 00001780 : quant.obj (.text)
0006f9a0 00001260 : eval.obj (.text)
00070c00 00000ca0 rts6400.lib : pow.obj (.text:_pow)
000718a0 00000c60 libx264enc.lib : cabacstruc.obj (.text)
00072500 00000920 rts6400.lib : _scanfi.obj (.text:__scanfi)
00072e20 000008c0 x264enc.obj (.text)
000736e0 00000600 rts6400.lib : strtold.obj (.text:_strtold)
00073ce0 00000600 : strtod.obj (.text:_strtod)
000742e0 000005a0 : _scanfi.obj (.text:__sset_arg)
00074880 00000520 : _printfi.obj (.text:__setfield)
00074da0 00000520 : fwrite.obj (.text:_fwrite)
000752c0 00000500 : cos.obj (.text:_cos)
000757c0 000004c0 : tan.obj (.text:_tan)
00075c80 000004a0 : strtol.obj (.text:_strtol)
00076120 000004a0 : sin.obj (.text:_sin)
000765c0 00000480 : strtoul.obj (.text:_strtoul)
00076a40 00000480 : strtoll.obj (.text:_strtoll)
00076ec0 00000460 : strtoull.obj (.text:_strtoull)
00077320 00000440 : fcvt.obj (.text:_fcvt)
00077760 00000420 : sinh.obj (.text:_sinh)
00077b80 00000420 : ecvt.obj (.text:_ecvt)
00077fa0 00000400 : _printfi.obj (.text:__printfi)
000783a0 00000400 : log.obj (.text:_log)
000787a0 000003e0 : _printfi.obj (.text:__fcpy)
00078b80 000003e0 : memory.obj (.text:_realloc)
00078f60 000003e0 : _printfi.obj (.text:__getarg_diouxp)
00079340 000003a0 : _printfi.obj (.text:__pconv_e)
000796e0 000003a0 : exp.obj (.text:_exp)
00079a80 00000380 : _scanfi.obj (.text:__sproc_int)
00079e00 00000360 : _scanfi.obj (.text:__sget_conv)
0007a160 00000360 : _printfi.obj (.text:__pproc_fwp)
0007a4c0 00000340 : tanh.obj (.text:_tanh)
0007a800 00000340 : fputs.obj (.text:_fputs)
0007ab40 00000320 : memory.obj (.text:_free)
0007ae60 00000300 libx264enc.lib : common.obj (.text)
0007b160 00000300 rts6400.lib : frcdivd.obj (.text:__frcdivd)
0007b460 000002e0 : fread.obj (.text:_fread)
0007b740 000002e0 : _scanfi.obj (.text:__sproc_float)
0007ba20 000002e0 : _printfi.obj (.text:__pproc_str)
0007bd00 000002a0 : _printfi.obj (.text:__pconv_g)
0007bfa0 000002a0 : imath64.obj (.text:__divull)
0007c240 00000280 : ldexp.obj (.text:_ldexp)
0007c4c0 00000280 : sqrt.obj (.text:_sqrt)
0007c740 00000260 : _printfi.obj (.text:__pproc_diouxp)
0007c9a0 00000240 : frcaddd.obj (.text:__frcaddd)
0007cbe0 00000220 : trgdrv.obj (.text:_HOSTrename)
0007ce00 00000200 : frexp.obj (.text:_frexp)
0007d000 00000200 : cosh.obj (.text:_cosh)
0007d200 00000200 : lowlev.obj (.text:_open)
0007d400 000001e0 : fopen.obj (.text:__openfile)
0007d5e0 000001e0 : setvbuf.obj (.text:_setvbuf)
0007d7c0 000001e0 : memory.obj (.text:_malloc)
0007d9a0 000001c0 : _printfi.obj (.text:__mcpy)
0007db60 000001c0 : imath40.obj (.text:__divul)
0007dd20 000001c0 : mpyd.obj (.text:__mpyd)
0007dee0 000001c0 : divd.obj (.text:__divd)
0007e0a0 000001a0 : _printfi.obj (.text:__pproc_fge)
0007e240 000001a0 : imath64.obj (.text:__divlli)
0007e3e0 000001a0 : _scanfi.obj (.text:__sproc_lb)
0007e580 00000180 : _printfi.obj (.text:__ltostr)
0007e700 00000180 : _scanfi.obj (.text:__sproc_str)
0007e880 00000180 : sscanf.obj (.text:__chkmbc)
0007ea00 00000180 : addf.obj (.text:__addf)
0007eb80 00000160 : mpyf.obj (.text:__mpyf)
0007ece0 00000160 : round.obj (.text:__round)
0007ee40 00000160 : frcdivf.obj (.text:__frcdivf)
0007efa0 00000160 : _bufread.obj (.text:__buff_read)
0007f100 00000160 : divf.obj (.text:__divf)
0007f260 00000160 : addd.obj (.text:__addd)
0007f3c0 00000140 : lowlev.obj (.text:_getdevice)
0007f500 00000140 : fclose.obj (.text:_fclose)
0007f640 00000140 : atoi.obj (.text:_atoi)
0007f780 00000140 : _printfi.obj (.text:__pproc_fflags)
0007f8c0 00000140 : fputc.obj (.text:_fputc)
0007fa00 00000140 : trgdrv.obj (.text:_HOSTopen)
0007fb40 00000120 : frcmpyd.obj (.text:__frcmpyd)
0007fc60 00000120 : fflush.obj (.text:_fflush)
0007fd80 00000120 : ftell.obj (.text:_ftell)
0007fea0 00000120 : _printfi.obj (.text:__pconv_f)
0007ffc0 00000120 : trgdrv.obj (.text:_HOSTlseek)
000800e0 00000120 : _scanfi.obj (.text:__sget_scanset)
00080200 00000100 : memset.obj (.text:_memset)
00080300 00000100 : exit.obj (.text:_exit)
00080400 00000100 : fseek.obj (.text:_fseek)
00080500 00000100 : _printfi.obj (.text:__div)
00080600 00000100 : fltllid.obj (.text:__fltllid)
00080700 00000100 : ltoa.obj (.text:_ltoa)
00080800 00000100 : fltllif.obj (.text:__fltllif)
00080900 00000100 : _io_perm.obj (.text:__wrt_ok)
00080a00 00000100 : trgdrv.obj (.text:_HOSTunlink)
00080b00 00000100 : lowlev.obj (.text:_read)
00080c00 00000100 : trgdrv.obj (.text:_HOSTwrite)
00080d00 00000100 : trgdrv.obj (.text:_HOSTread)
00080e00 00000100 : divi.obj (.text:__divi)
00080f00 00000100 : autoinit.obj (.text:__auto_init)
00081000 00000100 : lowlev.obj (.text:_write)
00081100 00000100 : lowlev.obj (.text:_lseek)
00081200 00000100 : fopen.obj (.text:__search_fp)
00081300 00000100 : lowlev.obj (.text:_close)
00081400 000000e0 : modf.obj (.text:_modf)
000814e0 000000e0 : snprintf.obj (.text:__outs)
000815c0 000000e0 : _printfi.obj (.text:__ecpy)
000816a0 000000e0 : lowlev.obj (.text:_tabinit)
00081780 000000e0 : fopen.obj (.text:__cleanup)
00081860 000000c0 : memory.obj (.text:_minsert)
00081920 000000c0 : trgdrv.obj (.text:_HOSTclose)
000819e0 000000c0 : divu.obj (.text:__divu)
00081aa0 000000c0 : _io_perm.obj (.text:__rd_ok)
00081b60 000000c0 : memory.obj (.text:_mremove)
00081c20 000000c0 : imath40.obj (.text:__divli)
00081ce0 000000c0 : fflush.obj (.text:__doflush)
00081da0 000000c0 : trgdrv.obj (.text:_HOSTclock)
00081e60 000000c0 : remi.obj (.text:__remi)
00081f20 000000c0 : lowlev.obj (.text:_finddevice)
00081fe0 000000c0 : trgmsg.obj (.text:_readmsg)
000820a0 000000c0 : strasg.obj (.text:__strasg)
00082160 000000a0 : fixfi.obj (.text:__fixfi)
00082200 000000a0 : fixdli.obj (.text:__fixdli)
000822a0 000000a0 : fprintf.obj (.text:_fprintf)
00082340 000000a0 : cmpd.obj (.text:__cmpd)
000823e0 000000a0 : cvtdf.obj (.text:__cvtdf)
00082480 000000a0 : fixdi.obj (.text:__fixdi)
00082520 000000a0 : sprintf.obj (.text:__outs)
000825c0 000000a0 : trgmsg.obj (.text:_writemsg)
00082660 000000a0 : renormd.obj (.text:_renormd)
00082700 000000a0 : printf.obj (.text:_printf)
000827a0 000000a0 : mpyll.obj (.text:__mpyll)
00082840 000000a0 : imath40.obj (.text:__remli)
000828e0 000000a0 : strstr.obj (.text:_strstr)
00082980 00000080 : snprintf.obj (.text:_snprintf)
00082a00 00000080 : strcmp.obj (.text:_strcmp)
00082a80 00000080 : memccpy.obj (.text:_memccpy)
00082b00 00000080 : vfprintf.obj (.text:_vfprintf)
00082b80 00000080 : strcspn.obj (.text:_strcspn)
00082c00 00000080 : memcpy64.obj (.text:_memcpy)
00082c80 00000080 : llshift.obj (.text:__llshl)
00082d00 00000080 : fopen.obj (.text:_fopen)
00082d80 00000080 : sprintf.obj (.text:_sprintf)
00082e00 00000080 : cmpf.obj (.text:__cmpf)
00082e80 00000080 : memcmp.obj (.text:_memcmp)
00082f00 00000080 : lowlev.obj (.text:_unlink)
00082f80 00000080 : strpbrk.obj (.text:_strpbrk)
00083000 00000060 : llshift.obj (.text:__llshru)
00083060 00000060 : imath64.obj (.text:__subcull)
000830c0 00000060 : assert.obj (.text:__abort_msg)
00083120 00000060 : boot.obj (.text:_c_int00)
00083180 00000060 : fltif.obj (.text:__fltif)
000831e0 00000060 : cvtfd.obj (.text:__cvtfd)
00083240 00000060 : fltid.obj (.text:__fltid)
000832a0 00000060 : sscanf.obj (.text:_sscanf)
00083300 00000040 : args_main.obj (.text:__args_main)
00083340 00000040 load.obj (.text)
00083380 00000040 rts6400.lib : snprintf.obj (.text:__outc)
000833c0 00000040 : subd.obj (.text:__subd)
00083400 00000040 : abs.obj (.text:_llabs)
00083440 00000040 : negd.obj (.text:__negd)
00083480 00000040 : strlen.obj (.text:_strlen)
000834c0 00000040 : frcmpyf.obj (.text:__frcmpyf)
00083500 00000040 : fltud.obj (.text:__fltud)
00083540 00000040 : strchr.obj (.text:_strchr)
00083580 00000040 : subf.obj (.text:__subf)
000835c0 00000040 libx264enc.lib : cpu.obj (.text)
00083600 00000020 rts6400.lib : exit.obj (.text:_abort)
00083620 00000020 : fprintf.obj (.text:__outc)
00083640 00000020 : trunc.obj (.text:__trunc)
00083660 00000020 : clock.obj (.text:_clock)
00083680 00000020 : vfprintf.obj (.text:__outc)
000836a0 00000020 : fprintf.obj (.text:__outs)
000836c0 00000020 : remove.obj (.text:_remove)
000836e0 00000020 : sprintf.obj (.text:__outc)
00083700 00000020 : negll.obj (.text:__negll)
00083720 00000020 : sscanf.obj (.text:__uninpchar)
00083740 00000020 : _lock.obj (.text:__nop)
00083760 00000020 : sscanf.obj (.text:__inpchar)
00083780 00000020 : printf.obj (.text:__outc)
000837a0 00000020 : printf.obj (.text:__outs)
000837c0 00000020 : vfprintf.obj (.text:__outs)

.const 0 000837e0 00009baf
000837e0 00002a83 libx264enc.lib : analyse.obj (.const)
00086263 00000003 rts6400.lib : assert.obj (.const)
00086266 00000002 : fputs.obj (.const)
00086268 00001d0b libx264enc.lib : cavlc.obj (.const)
00087f73 00000005 --HOLE-- [fill = 0]
00087f78 00001260 : cabacstruc.obj (.const)
000891d8 00000f01 : set.obj (.const)
0008a0d9 00000007 --HOLE-- [fill = 0]
0008a0e0 000009f0 : encoder.obj (.const)
0008aad0 000008d3 : cabac.obj (.const)
0008b3a3 00000005 --HOLE-- [fill = 0]
0008b3a8 000005f1 : macroblock2.obj (.const)
0008b999 00000007 --HOLE-- [fill = 0]
0008b9a0 000005b8 : me.obj (.const)
0008bf58 00000467 : frame.obj (.const)
0008c3bf 00000001 --HOLE-- [fill = 0]
0008c3c0 00000449 parse.obj (.const)
0008c809 00000007 --HOLE-- [fill = 0]
0008c810 00000220 libx264enc.lib : mc.obj (.const)
0008ca30 000001e0 : dct.obj (.const)
0008cc10 00000160 : macroblock.obj (.const)
0008cd70 00000101 rts6400.lib : ctype.obj (.const)
0008ce71 00000007 --HOLE-- [fill = 0]
0008ce78 00000098 : strtod.obj (.const)
0008cf10 00000098 : strtold.obj (.const)
0008cfa8 000001a9 libx264enc.lib : ratecontrol.obj (.const)
0008d151 000000f5 : eval.obj (.const)
0008d246 000000f2 x264enc.obj (.const)
0008d338 0000002d libx264enc.lib : common.obj (.const)
0008d365 0000002a rts6400.lib : _printfi.obj (.const)

.far 0 0008d390 00004ee4 UNINITIALIZED
0008d390 00003cd0 libx264enc.lib : analyse.obj (.far)
00091060 00000374 rts6400.lib : defs.obj (.far)
000913d4 00000004 : errno.obj (.far)
000913d8 00000280 libx264enc.lib : dct.obj (.far)
00091658 000001ec x264enc.obj (.far)
00091848 00000190 rts6400.lib : _printfi.obj (.far)
000919d8 00000190 : fcvt.obj (.far)
00091b68 00000120 : pow.obj (.far)
00091c88 0000011c : lowlev.obj (.far)
00091da8 00000100 libx264enc.lib : me.obj (.far)
00091ea8 000000d0 rts6400.lib : trgdrv.obj (.far)
00091f78 00000090 : exit.obj (.far)
00092008 00000064 : ecvt.obj (.far)
00092070 0000005d libx264enc.lib : ratecontrol.obj (.far)
000920d0 00000040 rts6400.lib : cos.obj (.far)
00092110 00000040 : sin.obj (.far)
00092150 00000038 : tan.obj (.far)
00092188 00000038 : sinh.obj (.far)
000921c0 00000030 : tanh.obj (.far)
000921f0 00000030 : log.obj (.far)
00092220 00000030 : exp.obj (.far)
00092250 00000014 libx264enc.lib : encoder.obj (.far)
00092264 00000008 rts6400.lib : _lock.obj (.far)
0009226c 00000008 : memory.obj (.far)

.cinit 0 00092278 0000072c
00092278 00000244 rts6400.lib : defs.obj (.cinit)
000924bc 00000004 --HOLE-- [fill = 0]
000924c0 00000140 : pow.obj (.cinit)
00092600 00000070 libx264enc.lib : ratecontrol.obj (.cinit)
00092670 0000005c rts6400.lib : lowlev.obj (.cinit)
000926cc 00000004 --HOLE-- [fill = 0]
000926d0 00000048 : cos.obj (.cinit)
00092718 00000048 : sin.obj (.cinit)
00092760 00000048 : tan.obj (.cinit)
000927a8 00000048 : sinh.obj (.cinit)
000927f0 00000040 : exp.obj (.cinit)
00092830 00000040 : log.obj (.cinit)
00092870 00000040 : tanh.obj (.cinit)
000928b0 0000002c : exit.obj (.cinit)
000928dc 00000004 --HOLE-- [fill = 0]
000928e0 0000002c : memory.obj (.cinit)
0009290c 00000004 --HOLE-- [fill = 0]
00092910 0000002c libx264enc.lib : encoder.obj (.cinit)
0009293c 00000004 --HOLE-- [fill = 0]
00092940 0000001c rts6400.lib : _lock.obj (.cinit)
0009295c 00000004 --HOLE-- [fill = 0]
00092960 0000001c libx264enc.lib : pixel.obj (.cinit)
0009297c 00000004 --HOLE-- [fill = 0]
00092980 0000000c rts6400.lib : errno.obj (.cinit)
0009298c 00000004 --HOLE-- [fill = 0]
00092990 00000009 libx264enc.lib : me.obj (.cinit)
00092999 0000000b --HOLE-- [fill = 0]

.cio 0 000929a8 00000120 UNINITIALIZED
000929a8 00000120 rts6400.lib : trgmsg.obj (.cio)

.bss 0 00092ac8 00000014 UNINITIALIZED
00092ac8 00000008 libx264enc.lib : pixel.obj (.bss)
00092ad0 00000008 : encoder.obj (.bss)
00092ad8 00000004 x264enc.obj (.bss)

.vectors 0 00092c00 00000200
00092c00 00000200 vectors.obj (.vectors)

.stack 0 00092e00 00000400 UNINITIALIZED
00092e00 00000008 rts6400.lib : boot.obj (.stack)

.sysmem 0 00093200 00000400 UNINITIALIZED
00093200 00000008 rts6400.lib : memory.obj (.sysmem)

.switch 0 00093600 0000022c
00093600 00000164 libx264enc.lib : analyse.obj (.switch)
00093764 00000064 : cabac.obj (.switch)
000937c8 00000034 : macroblock.obj (.switch)
000937fc 00000030 : cavlc.obj (.switch)
GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name

address name
-------- ----
00092ac8 $bss
00092ac8 .bss
00000000 .data
00000000 .text
00083600 C$$EXIT
00082658 C$$IO$$
00081da0 _HOSTclock
00081920 _HOSTclose
0007ffc0 _HOSTlseek
0007fa00 _HOSTopen
00080d00 _HOSTread
0007cbe0 _HOSTrename
00080a00 _HOSTunlink
00080c00 _HOSTwrite
000929a8 __CIOBUF_
00000400 __STACK_SIZE
00000400 __SYSMEM_SIZE
ffffffff ___binit__
00092ac8 ___bss__
ffffffff ___c_args__
00092278 ___cinit__
00000000 ___data__
00000000 ___edata__
00092adc ___end__
000837e0 ___etext__
ffffffff ___pinit__
00000000 ___text__
000830c0 __abort_msg
0007f260 __addd
0007ea00 __addf
00083300 __args_main
00080f00 __auto_init
0007efa0 __buff_read
00081780 __cleanup
00092000 __cleanup_ptr
00082340 __cmpd
00082e00 __cmpf
0008cd70 __ctypes_
000823e0 __cvtdf
000831e0 __cvtfd
0007dee0 __divd
0007f100 __divf
00080e00 __divi
00081c20 __divli
0007e240 __divlli
000819e0 __divu
0007db60 __divul
0007bfa0 __divull
00081ce0 __doflush
00092004 __dtors_ptr
00082480 __fixdi
00082200 __fixdli
00082160 __fixfi
00083240 __fltid
00083180 __fltif
00080600 __fltllid
00080800 __fltllif
00083500 __fltud
0007c9a0 __frcaddd
0007b160 __frcdivd
0007ee40 __frcdivf
0007fb40 __frcmpyd
000834c0 __frcmpyf
000913d0 __ft_end
00091060 __ftable
00082c80 __llshl
00083000 __llshru
00092264 __lock
0007dd20 __mpyd
0007eb80 __mpyf
000827a0 __mpyll
00083440 __negd
00083700 __negll
00083740 __nop
00077fa0 __printfi
00081aa0 __rd_ok
00081e60 __remi
00082840 __remli
0007ece0 __round
00072500 __scanfi
00092e00 __stack
000820a0 __strasg
00083060 __subcull
000833c0 __subd
00083580 __subf
00093200 __sys_memory
00091290 __tmpnams
00083640 __trunc
00092268 __unlock
00080900 __wrt_ok
00083600 _abort
0007f640 _atoi
00083120 _c_int00
00083660 _clock
00081300 _close
000752c0 _cos
0007d000 _cosh
00077b80 _ecvt
000913d4 _errno
00080300 _exit
000796e0 _exp
0007f500 _fclose
00077320 _fcvt
0007fc60 _fflush
00082d00 _fopen
000822a0 _fprintf
0007f8c0 _fputc
0007a800 _fputs
0007b460 _fread
0007ab40 _free
0007ce00 _frexp
00080400 _fseek
0007fd80 _ftell
00074da0 _fwrite
00092ad8 _g_h
00091658 _g_param
0007c240 _ldexp
00083400 _llabs
00083340 _load
000783a0 _log
00081100 _lseek
00080700 _ltoa
00073368 _main
0007d7c0 _malloc
00082a80 _memccpy
00082e80 _memcmp
00082c00 _memcpy
00080200 _memset
00081400 _modf
0007d200 _open
00070c00 _pow
0004a428 _predict_row_size
0004a700 _predict_row_size_sum
0006dbe4 _prefetch_fenc_null
0006dc08 _prefetch_ref_null
00082700 _printf
00080b00 _read
00081fe0 _readmsg
00078b80 _realloc
000836c0 _remove
00082660 _renormd
0007d5e0 _setvbuf
00076120 _sin
00077760 _sinh
00082980 _snprintf
00082d80 _sprintf
0007c4c0 _sqrt
000832a0 _sscanf
00083540 _strchr
00082a00 _strcmp
00082b80 _strcspn
00083480 _strlen
00082f80 _strpbrk
000828e0 _strstr
00073ce0 _strtod
00075c80 _strtol
000736e0 _strtold
00076a40 _strtoll
000765c0 _strtoul
00076ec0 _strtoull
000757c0 _tan
0007a4c0 _tanh
00082f00 _unlink
00082b00 _vfprintf
00081000 _write
000825c0 _writemsg
00071e4c _x264_cabac_context_init
000720f4 _x264_cabac_encode_bypass
00071fd0 _x264_cabac_encode_decision
000722dc _x264_cabac_encode_flush
00071f40 _x264_cabac_encode_init
00072244 _x264_cabac_encode_terminal
00008294 _x264_cabac_mb_size_skip_unused
00055c3c _x264_cabac_mb_skip
00072378 _x264_cabac_size_decision
0007241c _x264_cabac_size_decision2
000724a4 _x264_cabac_size_decision_noup
000835c0 _x264_cpu_detect
000835dc _x264_cpu_num_processors
000835c8 _x264_cpu_restore
0006987c _x264_cqm_delete
00068ff4 _x264_cqm_init
000913d8 _x264_dct4_weight2_zigzag
00091458 _x264_dct8_weight2_zigzag
0005047c _x264_dct_init
000505cc _x264_dct_init_weights
0005fed4 _x264_deblock_init
0003202c _x264_denoise_dct
00073114 _x264_encoder
000405d0 _x264_encoder_close
0003e678 _x264_encoder_encode
00073240 _x264_encoder_free
0003d534 _x264_encoder_headers
0007303c _x264_encoder_init
0003c240 _x264_encoder_open
0003d06c _x264_encoder_reconfig
00070b2c _x264_eval
0003e450 _x264_frame_copy_picture
0005ed2c _x264_frame_deblocking_filter
0005d7f0 _x264_frame_delete
0005dca4 _x264_frame_expand_border
0005dea8 _x264_frame_expand_border_filtered
0005e078 _x264_frame_expand_border_lowres
0005e104 _x264_frame_expand_border_mod16
0006def8 _x264_frame_filter
0005e43c _x264_frame_init_lowres
0005cbec _x264_frame_new
0007b050 _x264_free
0007328c _x264_get_rate
00089460 _x264_levels
0007ae60 _x264_log
000192d8 _x264_macroblock_analyse
00037550 _x264_macroblock_bipred_init
00030290 _x264_macroblock_encode
00032f78 _x264_macroblock_encode_cache_end
0003298c _x264_macroblock_encode_cache_init
000335a8 _x264_macroblock_encode_cache_load
000361d8 _x264_macroblock_encode_cache_save
00032204 _x264_macroblock_encode_p8x8
000300c4 _x264_macroblock_encode_pskip
0003314c _x264_macroblock_encode_slice_init
000317b8 _x264_macroblock_probe_skip
00008ec4 _x264_macroblock_size_cabac
000049a0 _x264_macroblock_size_cavlc
00056874 _x264_macroblock_write_cabac
00064e30 _x264_macroblock_write_cavlc
0007afcc _x264_malloc
0002f850 _x264_mb_encode_8x8_chroma
0002ef60 _x264_mb_encode_i4x4
0002f184 _x264_mb_encode_i8x8
000383ec _x264_mb_load_mv_direct8x8
0005b678 _x264_mb_mc
0005b294 _x264_mb_mc_8x8
00058d74 _x264_mb_predict_intra4x4_mode
00058f48 _x264_mb_predict_mv
00059658 _x264_mb_predict_mv_16x16
0005ab94 _x264_mb_predict_mv_direct16x16
00059a88 _x264_mb_predict_mv_pskip
00037934 _x264_mb_predict_mv_ref16x16
00058e94 _x264_mb_predict_non_zero_code
000385e8 _x264_mb_transform_8x8_allowed
0006dc24 _x264_mc_init
000276f0 _x264_me_refine_bidir
00025f6c _x264_me_refine_qpel
0002cbd8 _x264_me_refine_qpel_rd
0001f014 _x264_me_search_ref
00031d58 _x264_noise_reduction_update
0006a270 _x264_param_default
0006a7bc _x264_param_read
00009e2c _x264_partition_size_cabac
00006854 _x264_partition_size_cavlc
000635f0 _x264_pixel_init
00061368 _x264_pixel_ssd_wxh
0006301c _x264_pixel_ssim_wxh
00068274 _x264_pps_init
0006857c _x264_pps_write
000481f0 _x264_predict_16x16_init
000484a8 _x264_predict_4x4_init
000448f4 _x264_predict_8x8_filter
00048370 _x264_predict_8x8_init
000482b0 _x264_predict_8x8c_init
0005bc90 _x264_prefetch_fenc
0000bf6c _x264_quant_4x4_trellis
0000c170 _x264_quant_8x8_trellis
0006f6fc _x264_quant_init
0004a064 _x264_ratecontrol_delete
0004b258 _x264_ratecontrol_end
0004a8a0 _x264_ratecontrol_mb
00048f24 _x264_ratecontrol_new
0004b22c _x264_ratecontrol_qp
0004a0b8 _x264_ratecontrol_start
00049e9c _x264_ratecontrol_summary
0004dcd0 _x264_ratecontrol_threads_start
0001e8e4 _x264_rc_analyse_slice
0000ac30 _x264_rd_cost_i4x4
0000aad0 _x264_rd_cost_i8x8
0000ada8 _x264_rd_cost_i8x8_chroma
0000a868 _x264_rd_cost_part
0000af34 _x264_rdo_init
0007b084 _x264_realloc
000688b0 _x264_sei_version_write
00048a50 _x264_set_encode_rate
00073260 _x264_set_rate
0001e100 _x264_slicetype_analyse
0001e5dc _x264_slicetype_decide
0001da68 _x264_slicetype_frame_cost
0001c4e0 _x264_slicetype_mb_cost
00067644 _x264_sps_init
00067d6c _x264_sps_write
00068aa8 _x264_validate_levels
000534a8 _x264_zigzag_init
ffffffff binit
00092278 cinit
00000000 edata
00092adc end
000837e0 etext
ffffffff pinit
00092c20 unused1
00092d40 unused10
00092d60 unused11
00092d80 unused12
00092da0 unused13
00092dc0 unused14
00092de0 unused15
00092c40 unused2
00092c60 unused3
00092c80 unused4
00092ca0 unused5
00092cc0 unused6
00092ce0 unused7
00092d00 unused8
00092d20 unused9
GLOBAL SYMBOLS: SORTED BY Symbol Address

address name
-------- ----
00000000 ___text__
00000000 ___edata__
00000000 ___data__
00000000 .text
00000000 edata
00000000 .data
00000400 __STACK_SIZE
00000400 __SYSMEM_SIZE
000049a0 _x264_macroblock_size_cavlc
00006854 _x264_partition_size_cavlc
00008294 _x264_cabac_mb_size_skip_unused
00008ec4 _x264_macroblock_size_cabac
00009e2c _x264_partition_size_cabac
0000a868 _x264_rd_cost_part
0000aad0 _x264_rd_cost_i8x8
0000ac30 _x264_rd_cost_i4x4
0000ada8 _x264_rd_cost_i8x8_chroma
0000af34 _x264_rdo_init
0000bf6c _x264_quant_4x4_trellis
0000c170 _x264_quant_8x8_trellis
000192d8 _x264_macroblock_analyse
0001c4e0 _x264_slicetype_mb_cost
0001da68 _x264_slicetype_frame_cost
0001e100 _x264_slicetype_analyse
0001e5dc _x264_slicetype_decide
0001e8e4 _x264_rc_analyse_slice
0001f014 _x264_me_search_ref
00025f6c _x264_me_refine_qpel
000276f0 _x264_me_refine_bidir
0002cbd8 _x264_me_refine_qpel_rd
0002ef60 _x264_mb_encode_i4x4
0002f184 _x264_mb_encode_i8x8
0002f850 _x264_mb_encode_8x8_chroma
000300c4 _x264_macroblock_encode_pskip
00030290 _x264_macroblock_encode
000317b8 _x264_macroblock_probe_skip
00031d58 _x264_noise_reduction_update
0003202c _x264_denoise_dct
00032204 _x264_macroblock_encode_p8x8
0003298c _x264_macroblock_encode_cache_init
00032f78 _x264_macroblock_encode_cache_end
0003314c _x264_macroblock_encode_slice_init
000335a8 _x264_macroblock_encode_cache_load
000361d8 _x264_macroblock_encode_cache_save
00037550 _x264_macroblock_bipred_init
00037934 _x264_mb_predict_mv_ref16x16
000383ec _x264_mb_load_mv_direct8x8
000385e8 _x264_mb_transform_8x8_allowed
0003c240 _x264_encoder_open
0003d06c _x264_encoder_reconfig
0003d534 _x264_encoder_headers
0003e450 _x264_frame_copy_picture
0003e678 _x264_encoder_encode
000405d0 _x264_encoder_close
000448f4 _x264_predict_8x8_filter
000481f0 _x264_predict_16x16_init
000482b0 _x264_predict_8x8c_init
00048370 _x264_predict_8x8_init
000484a8 _x264_predict_4x4_init
00048a50 _x264_set_encode_rate
00048f24 _x264_ratecontrol_new
00049e9c _x264_ratecontrol_summary
0004a064 _x264_ratecontrol_delete
0004a0b8 _x264_ratecontrol_start
0004a428 _predict_row_size
0004a700 _predict_row_size_sum
0004a8a0 _x264_ratecontrol_mb
0004b22c _x264_ratecontrol_qp
0004b258 _x264_ratecontrol_end
0004dcd0 _x264_ratecontrol_threads_start
0005047c _x264_dct_init
000505cc _x264_dct_init_weights
000534a8 _x264_zigzag_init
00055c3c _x264_cabac_mb_skip
00056874 _x264_macroblock_write_cabac
00058d74 _x264_mb_predict_intra4x4_mode
00058e94 _x264_mb_predict_non_zero_code
00058f48 _x264_mb_predict_mv
00059658 _x264_mb_predict_mv_16x16
00059a88 _x264_mb_predict_mv_pskip
0005ab94 _x264_mb_predict_mv_direct16x16
0005b294 _x264_mb_mc_8x8
0005b678 _x264_mb_mc
0005bc90 _x264_prefetch_fenc
0005cbec _x264_frame_new
0005d7f0 _x264_frame_delete
0005dca4 _x264_frame_expand_border
0005dea8 _x264_frame_expand_border_filtered
0005e078 _x264_frame_expand_border_lowres
0005e104 _x264_frame_expand_border_mod16
0005e43c _x264_frame_init_lowres
0005ed2c _x264_frame_deblocking_filter
0005fed4 _x264_deblock_init
00061368 _x264_pixel_ssd_wxh
0006301c _x264_pixel_ssim_wxh
000635f0 _x264_pixel_init
00064e30 _x264_macroblock_write_cavlc
00067644 _x264_sps_init
00067d6c _x264_sps_write
00068274 _x264_pps_init
0006857c _x264_pps_write
000688b0 _x264_sei_version_write
00068aa8 _x264_validate_levels
00068ff4 _x264_cqm_init
0006987c _x264_cqm_delete
0006a270 _x264_param_default
0006a7bc _x264_param_read
0006dbe4 _prefetch_fenc_null
0006dc08 _prefetch_ref_null
0006dc24 _x264_mc_init
0006def8 _x264_frame_filter
0006f6fc _x264_quant_init
00070b2c _x264_eval
00070c00 _pow
00071e4c _x264_cabac_context_init
00071f40 _x264_cabac_encode_init
00071fd0 _x264_cabac_encode_decision
000720f4 _x264_cabac_encode_bypass
00072244 _x264_cabac_encode_terminal
000722dc _x264_cabac_encode_flush
00072378 _x264_cabac_size_decision
0007241c _x264_cabac_size_decision2
000724a4 _x264_cabac_size_decision_noup
00072500 __scanfi
0007303c _x264_encoder_init
00073114 _x264_encoder
00073240 _x264_encoder_free
00073260 _x264_set_rate
0007328c _x264_get_rate
00073368 _main
000736e0 _strtold
00073ce0 _strtod
00074da0 _fwrite
000752c0 _cos
000757c0 _tan
00075c80 _strtol
00076120 _sin
000765c0 _strtoul
00076a40 _strtoll
00076ec0 _strtoull
00077320 _fcvt
00077760 _sinh
00077b80 _ecvt
00077fa0 __printfi
000783a0 _log
00078b80 _realloc
000796e0 _exp
0007a4c0 _tanh
0007a800 _fputs
0007ab40 _free
0007ae60 _x264_log
0007afcc _x264_malloc
0007b050 _x264_free
0007b084 _x264_realloc
0007b160 __frcdivd
0007b460 _fread
0007bfa0 __divull
0007c240 _ldexp
0007c4c0 _sqrt
0007c9a0 __frcaddd
0007cbe0 _HOSTrename
0007ce00 _frexp
0007d000 _cosh
0007d200 _open
0007d5e0 _setvbuf
0007d7c0 _malloc
0007db60 __divul
0007dd20 __mpyd
0007dee0 __divd
0007e240 __divlli
0007ea00 __addf
0007eb80 __mpyf
0007ece0 __round
0007ee40 __frcdivf
0007efa0 __buff_read
0007f100 __divf
0007f260 __addd
0007f500 _fclose
0007f640 _atoi
0007f8c0 _fputc
0007fa00 _HOSTopen
0007fb40 __frcmpyd
0007fc60 _fflush
0007fd80 _ftell
0007ffc0 _HOSTlseek
00080200 _memset
00080300 _exit
00080400 _fseek
00080600 __fltllid
00080700 _ltoa
00080800 __fltllif
00080900 __wrt_ok
00080a00 _HOSTunlink
00080b00 _read
00080c00 _HOSTwrite
00080d00 _HOSTread
00080e00 __divi
00080f00 __auto_init
00081000 _write
00081100 _lseek
00081300 _close
00081400 _modf
00081780 __cleanup
00081920 _HOSTclose
000819e0 __divu
00081aa0 __rd_ok
00081c20 __divli
00081ce0 __doflush
00081da0 _HOSTclock
00081e60 __remi
00081fe0 _readmsg
000820a0 __strasg
00082160 __fixfi
00082200 __fixdli
000822a0 _fprintf
00082340 __cmpd
000823e0 __cvtdf
00082480 __fixdi
000825c0 _writemsg
00082658 C$$IO$$
00082660 _renormd
00082700 _printf
000827a0 __mpyll
00082840 __remli
000828e0 _strstr
00082980 _snprintf
00082a00 _strcmp
00082a80 _memccpy
00082b00 _vfprintf
00082b80 _strcspn
00082c00 _memcpy
00082c80 __llshl
00082d00 _fopen
00082d80 _sprintf
00082e00 __cmpf
00082e80 _memcmp
00082f00 _unlink
00082f80 _strpbrk
00083000 __llshru
00083060 __subcull
000830c0 __abort_msg
00083120 _c_int00
00083180 __fltif
000831e0 __cvtfd
00083240 __fltid
000832a0 _sscanf
00083300 __args_main
00083340 _load
000833c0 __subd
00083400 _llabs
00083440 __negd
00083480 _strlen
000834c0 __frcmpyf
00083500 __fltud
00083540 _strchr
00083580 __subf
000835c0 _x264_cpu_detect
000835c8 _x264_cpu_restore
000835dc _x264_cpu_num_processors
00083600 C$$EXIT
00083600 _abort
00083640 __trunc
00083660 _clock
000836c0 _remove
00083700 __negll
00083740 __nop
000837e0 etext
000837e0 ___etext__
00089460 _x264_levels
0008cd70 __ctypes_
00091060 __ftable
00091290 __tmpnams
000913d0 __ft_end
000913d4 _errno
000913d8 _x264_dct4_weight2_zigzag
00091458 _x264_dct8_weight2_zigzag
00091658 _g_param
00092000 __cleanup_ptr
00092004 __dtors_ptr
00092264 __lock
00092268 __unlock
00092278 ___cinit__
00092278 cinit
000929a8 __CIOBUF_
00092ac8 ___bss__
00092ac8 $bss
00092ac8 .bss
00092ad8 _g_h
00092adc ___end__
00092adc end
00092c20 unused1
00092c40 unused2
00092c60 unused3
00092c80 unused4
00092ca0 unused5
00092cc0 unused6
00092ce0 unused7
00092d00 unused8
00092d20 unused9
00092d40 unused10
00092d60 unused11
00092d80 unused12
00092da0 unused13
00092dc0 unused14
00092de0 unused15
00092e00 __stack
00093200 __sys_memory
ffffffff ___binit__
ffffffff binit
ffffffff pinit
ffffffff ___pinit__
ffffffff ___c_args__

[312 symbols]
Hi,

Building / compiling a different platform source code using CCS .pjt doesnt
ensure the functionality or correctness of the application.

You need to use the .cmd file in your .pjt in order to map the sections and
get the modules working. But before you do anything below, you need to
understand how much accessible memory you have on your board.

Use #pragma CODE_SECTION() directive and map all functions in your .c files
to one common memory name, say, *myprg*. This myprg name can actually be any
name you wish...even dorian_prg!

Example:

#pragma CODE_SECTION(func1, "myprg);
void func1(void)
{
}

Do the same way using #pragma DATA_SECTION() for all arrays and input
buffers and map these data arrays to,say *mydat*.

Build the project and open .map file. Look for myprg and mydat names in this
.map file. The numbers against these names is the actual memory requirements
and these do not include any RTS dependencies etc.,

With this actual program and data memory information, you are now in a
position to map the memories for correct functionality.

Sometimes, the myprg section can be huge. So, you may need to "break" and
map a few of your functions to myprg1 and remaining functions to myprg2
sections and accordingly map them in the .cmd file.

In your .cmd file, you see SECTIONS {} block. Map myprg > ISRAM and mydat >
ISRAM. In the MEMORY {} block, map ISRAM with some valid origin and length.

Ensure that the memories are are not overlapping with other named sections
in your .cmd file.

If this fails, that is, if you have insufficient memory to map, then you may
have to map a few sections onto SDRAM. In order to enable mapping to SDRAM,
your .gel file should contain the necessary SDRAM memory enabling
instructions. Like I pointed at the beginning of the mail, you need to
understand how much accessible memory you have on your board.

In CCS Help, you can look for #pragma, .sect, .text, .bss keywords to
understand what they mean and how they will help you.

I hope this helps!

BR,
-/Madhav

On 10/28/07, .dorian wrote:
>
> hey guys,
>
> I am sorry for this post, I am sure most of you can't see these questions
> anymore.
>
> I never worked with a dsp before and I have to port a Visual Studio x264
> based video encoder project
> to a dm642 board. The code compiles now in CCS 3.1, but the program acts
> completely weird. I think
> that is caused by my cmd file (I am using the one from the first tutorial
> =D).
>
> Can you guys explain me how to write a good memory map, and what do I have
> to
> consider when managing the dsp memory ?
>
> I attached the *.map file from my project and appreciate your patience =)
>
> dorian
Hi Dorian,

Have you ever managed to load the executable? The memory map file
indicates that the application uses 600,000 bytes starting from
0x00000000, which wouldn't fit into DM642 on-chip L2 SRAM. I
guess that the example .cmd file specifies a single chunk of memory
0x00000000 through somewhere close to 0xFFFFFFFF?

C6000 (so far) implements a flat 32-bit byte-addressable physical
addresses memory. These 4GB are splitted into several address
spaces, some of them are on-chip, others are MMR (memory mapped
registers) and external RAM. Some of the address ranges are not
mapped into any existing memory at all, so that reading/writing
to these is unpredictable.

To determine what addresses your program can use, you need to
look at the device data sheet, which is available on the TI
web site, the lit number for the DM642 is SPRS200. Look at
the section 2.5.

The next step is the tech ref doc for your DM642 board. There
is another mem map table that specifies which CEs (external
memory) is populated and their physical size.

For example, the Spectrum Digital's EVM has 32MB (out of 256MB
possible) SDRAM populated on CE0.

There are 256KB of on-chip L2 SRAM physically present, which
cab be split into L2 cache and L2 RAM, see section 2.3.1 of
the data sheet.

The linker, memory, sections and the allocation algorithms
are specified in the SPRU186 7.5, 7.7, 7.8, etc.

Finally, a sample .cmd file might have a following configuration:

MEMORY /* attributes can be added as needed */
{
VECTORS : origin = 0x00000000, length = 0x00000200 /* 512B IST L2 SRAM */
INTMEMR : origin = 0x00000200, length = 0x0003FE00 /* 256K-512 L2 SRAM */
EXTMEM0 : origin = 0x80000000, length = 0x02000000 /* 32M CE0 SDRAM */
FLASH : origin = 0x90000000, length = 0x00400000 /* 4M FLASH MEM */
}

SECTIONS /* can be allocated into any of the above */
{
.vectors > VECTORS /* could go anywhere; by default must be here */
.text > EXTMEM0 /* .text is large and won't fit into INTMEM */
.cinit > INTMEMR /* others would probably fit */
.const > INTMEMR /* if not, they might fit into EXTMEM */
.tables > INTMEMR
.data > INTMEMR
.far > INTMEMR
.stack > INTMEMR
.cio > INTMEMR
.bss > INTMEMR
.switch > INTMEMR
.sysmem > INTMEMR
}

/* options */
/* set stack size */ /* -stack 0x2800 */
/* set heap size (sysmem) */ /* -heap 0x2800 */
/* -c or -cr */
/* -x */
/* rts library */
-l rts6400.lib

-- EOF --

Rgds,

Andrew
> Subject: Beginner Question: How to make a memory map ?
> Posted by: ".dorian" d...@redcodes.net dorian_schneider
> Date: Sun Oct 28, 2007 7:21 am ((PDT))
>
> hey guys,
>
> I am sorry for this post, I am sure most of you can't see these questions
> anymore.
>
> I never worked with a dsp before and I have to port a Visual Studio x264
> based video encoder project
> to a dm642 board. The code compiles now in CCS 3.1, but the program acts
> completely weird. I think
> that is caused by my cmd file (I am using the one from the first tutorial)
>
> Can you guys explain me how to write a good memory map, and what do I have
> to consider when managing the dsp memory ?
>
> I attached the *.map file from my project and appreciate your patience =)
> dorian
>
> ----------
>
> ******************************************************************************
> TMS320C6x COFF Linker PC v5.1.0
> ******************************************************************************
>>> Linked Sun Oct 28 20:16:35 2007
>
> OUTPUT FILE NAME: <./Debug/x264enc.out>
> ENTRY POINT SYMBOL: "_c_int00" address: 00083120
> SECTION ALLOCATION MAP
>
> output attributes/
> section page origin length input sections
> -------- ---- ---------- ---------- ----------------
> .data 0 00000000 00000000 UNINITIALIZED
> .text 0 00000000 000837e0
> .const 0 000837e0 00009baf
> .far 0 0008d390 00004ee4 UNINITIALIZED
> .cinit 0 00092278 0000072c
> .cio 0 000929a8 00000120 UNINITIALIZED
> .bss 0 00092ac8 00000014 UNINITIALIZED
> .vectors 0 00092c00 00000200
> .stack 0 00092e00 00000400 UNINITIALIZED
> .sysmem 0 00093200 00000400 UNINITIALIZED
> .switch 0 00093600 0000022c
> 000937fc 00000030 >>>> 0009382b last addr
Hi Andrew, hey Madhav,

first of all many thanks for your detailed answers, that helps a lot !

I played a little bit around with the memory distribution but the program
acted totally unpredictable. Sometime the printf function worked, sometimes
not,
the PC jumped from one instruction to a complete different one and so on.

So I extremely increased the size for the stack (random but big value =) and
transformed
the hole project into a DSP/ BIOS project in order to use the LOG_printf
functions and because
it generates automatically a *cmd file.

In the DSP/BIOS configuration file I bumped every section (.text .bbs .data
etc.) into
the SDRAM that I created (I didn't go for performance but results =)....

It works now ( the main problem was the stack size)..... BUT SUPER SLOW ...
It needs about 7 minutes to encode a frame of Cif video (352x288)... but it
works =D

So the next step to do is what you guys proposed me in order to optimize
the memory usage... and of course read some papers...

I hope I can get out about 10 fps by optimizing the memory usage.

Thanks again
Dorian

-----Original Message-----
From: Andrew Nesterov [mailto:a...@techemail.com]
Sent: Tuesday, October 30, 2007 12:57 AM
To: c...
Cc: d...@redcodes.net
Subject: Re: Beginner Question: How to make a memory map ?
Hi Dorian,

Have you ever managed to load the executable? The memory map file
indicates that the application uses 600,000 bytes starting from
0x00000000, which wouldn't fit into DM642 on-chip L2 SRAM. I
guess that the example .cmd file specifies a single chunk of memory
0x00000000 through somewhere close to 0xFFFFFFFF?

C6000 (so far) implements a flat 32-bit byte-addressable physical
addresses memory. These 4GB are splitted into several address
spaces, some of them are on-chip, others are MMR (memory mapped
registers) and external RAM. Some of the address ranges are not
mapped into any existing memory at all, so that reading/writing
to these is unpredictable.

To determine what addresses your program can use, you need to
look at the device data sheet, which is available on the TI
web site, the lit number for the DM642 is SPRS200. Look at
the section 2.5.

The next step is the tech ref doc for your DM642 board. There
is another mem map table that specifies which CEs (external
memory) is populated and their physical size.

For example, the Spectrum Digital's EVM has 32MB (out of 256MB
possible) SDRAM populated on CE0.

There are 256KB of on-chip L2 SRAM physically present, which
cab be split into L2 cache and L2 RAM, see section 2.3.1 of
the data sheet.

The linker, memory, sections and the allocation algorithms
are specified in the SPRU186 7.5, 7.7, 7.8, etc.

Finally, a sample .cmd file might have a following configuration:

MEMORY /* attributes can be added as needed */
{
VECTORS : origin = 0x00000000, length = 0x00000200 /* 512B IST L2 SRAM
*/
INTMEMR : origin = 0x00000200, length = 0x0003FE00 /* 256K-512 L2 SRAM
*/
EXTMEM0 : origin = 0x80000000, length = 0x02000000 /* 32M CE0 SDRAM
*/
FLASH : origin = 0x90000000, length = 0x00400000 /* 4M FLASH MEM
*/
}

SECTIONS /* can be allocated into any of the above */
{
.vectors > VECTORS /* could go anywhere; by default must be here */
.text > EXTMEM0 /* .text is large and won't fit into INTMEM */
.cinit > INTMEMR /* others would probably fit */
.const > INTMEMR /* if not, they might fit into EXTMEM */
.tables > INTMEMR
.data > INTMEMR
.far > INTMEMR
.stack > INTMEMR
.cio > INTMEMR
.bss > INTMEMR
.switch > INTMEMR
.sysmem > INTMEMR
}

/* options */
/* set stack size */ /* -stack 0x2800 */
/* set heap size (sysmem) */ /* -heap 0x2800 */
/* -c or -cr */
/* -x */
/* rts library */
-l rts6400.lib

-- EOF --

Rgds,

Andrew
> Subject: Beginner Question: How to make a memory map ?
> Posted by: ".dorian" d...@redcodes.net dorian_schneider
> Date: Sun Oct 28, 2007 7:21 am ((PDT))
>
> hey guys,
>
> I am sorry for this post, I am sure most of you can't see these questions
> anymore.
>
> I never worked with a dsp before and I have to port a Visual Studio x264
> based video encoder project
> to a dm642 board. The code compiles now in CCS 3.1, but the program acts
> completely weird. I think
> that is caused by my cmd file (I am using the one from the first
tutorial)
>
> Can you guys explain me how to write a good memory map, and what do I have
> to consider when managing the dsp memory ?
>
> I attached the *.map file from my project and appreciate your patience =)
> dorian
>
> ----------
****************************************************************************
**
> TMS320C6x COFF Linker PC v5.1.0
>
****************************************************************************
**
>>> Linked Sun Oct 28 20:16:35 2007
>
> OUTPUT FILE NAME: <./Debug/x264enc.out>
> ENTRY POINT SYMBOL: "_c_int00" address: 00083120
> SECTION ALLOCATION MAP
>
> output attributes/
> section page origin length input sections
> -------- ---- ---------- ---------- ----------------
> .data 0 00000000 00000000 UNINITIALIZED
> .text 0 00000000 000837e0
> .const 0 000837e0 00009baf
> .far 0 0008d390 00004ee4 UNINITIALIZED
> .cinit 0 00092278 0000072c
> .cio 0 000929a8 00000120 UNINITIALIZED
> .bss 0 00092ac8 00000014 UNINITIALIZED
> .vectors 0 00092c00 00000200
> .stack 0 00092e00 00000400 UNINITIALIZED
> .sysmem 0 00093200 00000400 UNINITIALIZED
> .switch 0 00093600 0000022c
> 000937fc 00000030 >>>> 0009382b last addr