I am using ccs4.1 to debug PADK board which has c6727B on board. I use latest c6727 csl tool but not dsp/bios. I find a problem that sometimes when i try to use csl function csl_mcasphwcontrol, the program will go to unexpected address. This phenomenon occurs when the .test section is allocated with small address than .far section.
.text 0 10001c00 0000cbc0
10001c00 000021e0 csl_C6727.lib : csl_mcaspHwControl.o (.text:csl_section:mcasp)
10003de0 000007c0 main.obj (.text)
100045a0 00000700 rts67plus.lib : divd.obj (.text:__divd)
10004ca0 000006a0 : _printfi.obj (.text:__getarg_diouxp)
10005340 000005a0 : _printfi.obj (.text:__setfield)
100058e0 00000540 : _printfi.obj (.text:__printfi)
10005e20 00000520 csl_C6727.lib : csl_dmaxHwSetup.o (.text:csl_section:dmax)
10006340 000004a0 : csl_dmaxHwControl.o (.text:csl_section:dmax)
100067e0 00000440 : csl_mcaspHwSetup.o (.text:csl_section:mcasp)
10006c20 000003c0 csl_C672x_intc.lib : csl_intcHookIsr.o (.text:csl_section:intc)
10006fe0 000003c0 padkd.lib : PADK_CLKGEN.obj (.text)
100073a0 000003a0 rts67plus.lib : _printfi.obj (.text:__pproc_fge)
10007740 000003a0 : _printfi.obj (.text:_fcvt)
10007ae0 00000380 : _printfi.obj (.text:_ecvt)
10007e60 00000380 : fputs.obj (.text:_fputs)
100081e0 00000360 : _printfi.obj (.text:__pproc_fwp)
10008540 00000360 : memory.obj (.text:_free)
100088a0 00000360 csl_C6727.lib : csl_mcaspRegReset.o (.text:csl_section:mcasp)
10008c00 00000300 rts67plus.lib : _printfi.obj (.text:__pconv_e)
10008f00 000002e0 : imath64.obj (.text:__divull)
100091e0 000002e0 : _printfi.obj (.text:__pproc_diouxp)
100094c0 000002e0 csl_C6727.lib : csl_mcaspResetCtrl.o (.text:csl_section:mcasp)
100097a0 000002c0 : csl_dmaxOpen.o (.text:csl_section:dmax)
10009a60 000002a0 rts67plus.lib : frcmpyd_div.obj (.text:__frcmpyd_div)
10009d00 000002a0 : _printfi.obj (.text:__pproc_str)
10009fa0 00000260 : _printfi.obj (.text:__pconv_g)
1000a200 00000220 : trgdrv.obj (.text:_HOSTrename)
1000a420 00000220 : _printfi.obj (.text:__mcpy)
1000a640 00000200 : memory.obj (.text:_malloc)
1000a840 00000200 : memcpy62.obj (.text:_memcpy)
1000aa40 000001e0 : setvbuf.obj (.text:_setvbuf)
1000ac20 000001c0 : imath40.obj (.text:__divul)
1000ade0 000001c0 : lowlev.obj (.text:_getdevice)
1000afa0 000001c0 padkd.lib : PADK_ADC.obj (.text)
1000b160 000001a0 csl_C6727.lib : csl_dmaxHwSetupGpParam.o (.text:csl_section:dmax)
1000b300 00000180 rts67plus.lib : _printfi.obj (.text:__ltostr)
1000b480 00000180 : _printfi.obj (.text:__pproc_fflags)
1000b600 00000180 : fputc.obj (.text:_fputc)
1000b780 00000160 : fclose.obj (.text:_fclose)
1000b8e0 00000140 : trgdrv.obj (.text:_HOSTlseek)
1000ba20 00000140 : autoinit.obj (.text:__auto_init)
1000bb60 00000140 : atoi.obj (.text:_atoi)
1000bca0 00000120 : trgdrv.obj (.text:_HOSTopen)
1000bdc0 00000120 : trgdrv.obj (.text:_HOSTread)
1000bee0 00000120 : trgdrv.obj (.text:_HOSTwrite)
1000c000 00000120 : _io_perm.obj (.text:__wrt_ok)
1000c120 00000120 : lowlev.obj (.text:_close)
1000c240 00000120 : exit.obj (.text:_exit)
1000c360 00000120 : lowlev.obj (.text:_lseek)
1000c480 00000120 : ltoa.obj (.text:_ltoa)
1000c5a0 00000120 : memset.obj (.text:_memset)
1000c6c0 00000120 : lowlev.obj (.text:_write)
1000c7e0 00000120 csl_C672x_intc.lib : csl_intcOpen.o (.text:csl_section:intc)
1000c900 00000100 rts67plus.lib : trgdrv.obj (.text:_HOSTunlink)
1000ca00 00000100 : fopen.obj (.text:__cleanup)
1000cb00 00000100 : _printfi.obj (.text:__div)
1000cc00 00000100 : _printfi.obj (.text:__pconv_f)
1000cd00 00000100 : fseek.obj (.text:_fseek)
1000ce00 000000e0 : trgdrv.obj (.text:_HOSTclose)
1000cee0 000000e0 : fflush.obj (.text:__doflush)
1000cfc0 000000c0 : imath40.obj (.text:__divli)
1000d080 000000c0 : divu.obj (.text:__divu)
1000d140 000000c0 : _printfi.obj (.text:__ecpy)
1000d200 000000c0 : _printfi.obj (.text:__fcpy)
1000d2c0 000000c0 : cpy_tbl.obj (.text:_copy_in)
1000d380 000000c0 : lowlev.obj (.text:_finddevice)
1000d440 000000c0 : memory.obj (.text:_minsert)
1000d500 000000c0 : memory.obj (.text:_mremove)
1000d5c0 000000c0 csl_C6727.lib : csl_mcaspGetChipCtxt.o (.text:csl_section:mcasp)
1000d680 000000c0 : csl_mcaspOpen.o (.text:csl_section:mcasp)
1000d740 000000c0 main.obj (.text:retain)
1000d800 000000a0 rts67plus.lib : fixdli.obj (.text:__fixdli)
1000d8a0 000000a0 : lowlev.obj (.text:_unlink)
1000d940 000000a0 csl_C6727.lib : CSL_dmaxGetNextFreeParamEntry.o (.text)
1000d9e0 000000a0 : csl_dmaxClose.o (.text:csl_section:dmax)
1000da80 000000a0 : csl_dmaxHwSetupFifoParam.o (.text:csl_section:dmax)
1000db20 000000a0 csl_C672x_intc.lib : csl_intcEventEnable.o (.text:csl_section:intc)
1000dbc0 00000080 rts67plus.lib : fltlid.obj (.text:__fltlid)
1000dc40 00000080 : llshift.obj (.text:__llshl)
1000dcc0 00000080 : mpyll.obj (.text:__mpyll)
1000dd40 00000080 : boot.obj (.text:_c_int00)
1000ddc0 00000080 : fprintf.obj (.text:_fprintf)
1000de40 00000080 : memccpy.obj (.text:_memccpy)
1000dec0 00000080 : trgmsg.obj (.text:_readmsg)
1000df40 00000080 : trgmsg.obj (.text:_writemsg)
1000dfc0 00000080 csl_C6727.lib : csl_dmaxHwSetup1dParam.o (.text:csl_section:dmax)
1000e040 00000080 : csl_dmaxHwSetupSpiParam.o (.text:csl_section:dmax)
1000e0c0 00000080 csl_C672x_intc.lib : csl_intcInit.o (.text:csl_section:intc)
1000e140 00000080 : csl_intcSetVectorPtr.o (.text:csl_section:intc)
1000e1c0 00000060 rts67plus.lib : llshift.obj (.text:__llshru)
1000e220 00000060 : imath40.obj (.text:__remli)
1000e280 00000060 : imath64.obj (.text:__subcull)
1000e2e0 00000060 csl_C672x_intc.lib : _CSL_eventEnorDisable.o (.text)
1000e340 00000060 : csl_intcGlobalDisable.o (.text:csl_section:intc)
1000e3a0 00000060 : csl_intcGlobalEnable.o (.text:csl_section:intc)
1000e400 00000060 : csl_intcGlobalRestore.o (.text:csl_section:intc)
1000e460 00000040 rts67plus.lib : isinf.obj (.text:___isinf)
1000e4a0 00000040 : _printfi.obj (.text:___isnan)
1000e4e0 00000040 : divd.obj (.text:___isnan)
1000e520 00000040 : args_main.obj (.text:__args_main)
1000e560 00000040 csl_C6727.lib : csl_dmaxSetDetr.o (.text)
1000e5a0 00000040 csl_C672x_intc.lib : _CSL_intcGlobalEnorDisable.o (.text)
1000e5e0 00000040 csl_C6727.lib : csl_dmaxGetBaseAddress.o (.text:csl_section:dmax)
1000e620 00000040 : csl_dmaxInit.o (.text:csl_section:dmax)
1000e660 00000020 rts67plus.lib : negll.obj (.text:__negll)
1000e680 00000020 : _lock.obj (.text:__nop)
1000e6a0 00000020 : fprintf.obj (.text:__outc)
1000e6c0 00000020 : fprintf.obj (.text:__outs)
1000e6e0 00000020 : exit.obj (.text:_abort)
1000e700 00000020 : remove.obj (.text:_remove)
1000e720 00000020 csl_C672x_intc.lib : _CSL_intcFetchPacket.o (.text)
1000e740 00000020 : _CSL_intcISTP.o (.text)
1000e760 00000020 : _CSL_intcReadISTP.o (.text)
1000e780 00000020 csl_C6727.lib : csl_chipInit.o (.text:csl_section:chip)
1000e7a0 00000020 : csl_mcaspInit.o (.text:csl_section:mcasp)
.data 0 10001c00 00000000 UNINITIALIZED
.far 0 1000e7c0 00002ca8 UNINITIALIZED
1000e7c0 00002936 main.obj (.far)
100110f6 00000002 --HOLE--
100110f8 00000194 rts67plus.lib : defs.obj (.far)
1001128c 000000d0 : trgdrv.obj (.far)
1001135c 000000cc : lowlev.obj (.far)
10011428 00000020 csl_C6727.lib : csl_dmaxInit.o (.far)
10011448 0000000c rts67plus.lib : exit.obj (.far)
10011454 00000008 : _lock.obj (.far)
1001145c 00000008 : memory.obj (.far)
10011464 00000004 : fopen.obj (.far)