NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.

DA8xx Algorithm Selection

From Texas Instruments Wiki
Jump to: navigation, search

Introduction[edit]

  • This page talks about how to add/delete decoders and IP algorithms from project. You can select decoders and ASPs that you want to use.
  • There are two examples, Y13 and I14. Y13 mainly describes how to deleted ASP and decoders while I14 describes how to add IP packages.
  • Are you interested in development and integration of your custom ASPs? Please see ASP Development Kit

How to integrate IP packages in the SDK?[edit]

  • In this section, I14 is used for base release.
  • At first, you need some license agreement both TI and IP vender. Then TI can release IP package.
  • Extract IP package to the work area (T:\) which is described in Creation of work area. Below packages are used in this example
    • pa_da8xx_yymmdd_ddp2.zip
    • pa_da8xx_yymmdd_dtshd2.zip
    • pa_da8xx_yymmdd_neo.zip
    • pa_da8xx_yymmdd_pl2x.zip
    • pa_da8xx_yymmdd_thd2.zip

Edit CCS4 project[edit]

  • Add link of the library that you want to add to the project. Project-> Link Files to Active Project. The IP libraries are in T:\pa\build\c674x\release and T:\pa\i\d800k001\pa\build\c674x\release if you extract packages correctly.

Editing T:\pa\cust\vender\c999\d1\i14\patchs.c[edit]

1.Add header files that you want to add. To add, you also have to add the path of these headers. This is needed for build. In following example, mtx, an ASP, and SNG, a decoder are added.

/* Headers for decoder */
...
#include <dtshd.h> //Added
#include <dtshd_tii.h> //Added

#include <thd.h> //Added
#include <thd_tii.h> //Added
 
#include <ddp.h> //Added
#include <ddp_tij.h> //Added
...
 
/* Headers for ASP */
...
#include <pl2x.h> //Added
#include <pl2x_tii.h> //Added

#include <neo6.h> //Added
#include <neo6_tii.h> //Added
...

2.Add decoders that you want to add to "const PAF_ASP_LinkInit decLinkInitI14[]". This table defines the decoders which PA/F will call.

const PAF_ASP_LinkInit decLinkInitI14[] =
  {
    PAF_ASP_LINKINITPARAMS (STD, DWRPCM, TII, &IDWRPCM_PARAMS),
    PAF_ASP_LINKINIT (STD, DTSHD, TII), //Added
    PAF_ASP_LINKINIT (STD, THD, TII), //Added
    PAF_ASP_LINKINITPARAMS (STD, DDP, TIJ, &IDDP_PARAMS_SDRAM), //Added
    PAF_ASP_LINKNONE,
  };

3.Add ASPs that you want to add to "const PAF_ASP_LinkInit aspLinkInitAllI14[]", "const PAF_ASP_LinkInit aspLinkInitStdI14[]" and "const PAF_ASP_LinkInit aspLinkInitCusI14[]". This table defines modules that PA/F will call.

  const PAF_ASP_LinkInit aspLinkInitAllI14[] =
  {
#ifdef AE0
   PAF_ASP_LINKINIT(CUS,AE,MDS),
#endif
#ifdef AE_1
   PAF_ASP_LINKINITPARAMS(CUS,AE,TII,&IAE_PARAMS_DIRECT),
#endif
#ifdef AE_2
   PAF_ASP_LINKINITPARAMS(CUS,AE,TII,&IAE_PARAMS_SIMPLE_DMA),
#endif
#ifdef AE_3
   PAF_ASP_LINKINITPARAMS(CUS,AE,TII,&IAE_PARAMS_CONCURRENT_DMA),
#endif
   PAF_ASP_LINKINITPARAMS (STD, SRC, TIH, &ISRC_PARAMS_DS_8CH_HBW),
   PAF_ASP_LINKINIT (STD, DEM, MDS),
#if(PAF_DEVICE) == 0xD8000001
   PAF_ASP_LINKINIT (STD, PL2x, TII), //Added
   PAF_ASP_LINKINITPARAMS (STD, NEO, TII, &INEO_PARAMS), //Added
   PAF_ASP_LINKINIT (STD, MTX, WAV),
   PAF_ASP_LINKINITPARAMS (STD, RVB, WAV, &IRVB_PARAMS_PSDELAY),
   PAF_ASP_LINKINIT (STD, DM, TII),
   PAF_ASP_LINKINITPARAMS (STD, GEQ, TII, &IGEQ_PARAMS_EQX_16CHN_UNICOEF),
   PAF_ASP_LINKINITPARAMS (STD, LOU, TII, &IGEQ_PARAMS_LOU),
   PAF_ASP_LINKINITPARAMS(STD,BM,MDS,&IBM_PARAMS),
#ifdef BASS
   PAF_ASP_LINKINIT(STD,BASS,TIJ),
#endif /* BASS */
   PAF_ASP_LINKINIT (STD, ML, MDS),
#endif /* (PAF_DEVICE) == 0xD8000001 */  
    PAF_ASP_LINKNONE,
  };
...
  const PAF_ASP_LinkInit aspLinkInitStdI14[] = 
  {
   PAF_ASP_LINKINITPARAMS (STD, SRC, TIH, &ISRC_PARAMS_DS_8CH_HBW),
   PAF_ASP_LINKINIT (STD, DEM, MDS),
#if(PAF_DEVICE) == 0xD8000001
   PAF_ASP_LINKINIT (STD, PL2x, TII), //Added
   PAF_ASP_LINKINITPARAMS (STD, NEO, TII, &INEO_PARAMS), //Added
   PAF_ASP_LINKINIT (STD, MTX, WAV),
   PAF_ASP_LINKINITPARAMS (STD, RVB, WAV, &IRVB_PARAMS_PSDELAY),
   PAF_ASP_LINKINIT (STD, DM, TII),
   PAF_ASP_LINKINITPARAMS (STD, GEQ, TII, &IGEQ_PARAMS_EQX_16CHN_UNICOEF),
   PAF_ASP_LINKINITPARAMS (STD, LOU, TII, &IGEQ_PARAMS_LOU),
   PAF_ASP_LINKINITPARAMS(STD,BM,MDS,&IBM_PARAMS),
#ifdef BASS
   PAF_ASP_LINKINIT(STD,BASS,TIJ),
#endif /* BASS */
   PAF_ASP_LINKINIT (STD, ML, MDS),
#endif /* (PAF_DEVICE) == 0xD8000001 */
  };
...
  • If you got build error of "Can't open header files", you should add the header search path to T:\pa\cust\vender\c999\d1\std_incl.opt
  • Then, you needs another step for security. Please ask TI how to do it. After you get the IP package.

How to Delete IP modules in the SDK?[edit]

  • In this section, Y13 is used for base release.
  • Below IP modules are deleted in this example
    • DDP
    • DTSHD
    • DXP
    • THD2
    • AAC
    • NEO
    • PL2
  • Please refer How to remove THX from Y13 Build for THX

Edit CCS4 project[edit]

  • Delete link of the library that you want to add to the project. You can do it by right-clicking the library on Project tree of CCS4 and "Delete",

Editing T:\pa\cust\vender\c999\d1\y13\patches.c[edit]

1.Delete header files that you want to delete.

/* Headers for decoder */
#include <sng.h>
#include <sng_mds.h>

#include <pcm.h>
#include <pcm_mds.h>

//#include <dtshd.h> //Deleted
//#include <dtshd_tii.h> //Deleted

//#include <thd.h> //Deleted
//#include <thd_tii.h> //Deleted

//#include <dxp.h> //Deleted
//#include <dxp_tii.h> //Deleted

//#include <ddp.h> //Deleted
//#include <ddp_tij.h> //Deleted

//#include <aac.h> //Deleted
//#include <aac_tii.h> //Deleted
...

 
/* Headers for ASP */
...
//#include <pl2x.h> //Deleted
//#include <pl2x_tii.h> //Deleted

//#include <neo6.h> //Deleted
//#include <neo6_tii.h> //Deleted
...

2.Delete decoders that you want to delete from "const PAF_ASP_LinkInit decLinkInitY13[]". This table defines the decoders which PA/F will call.

const PAF_ASP_LinkInit decLinkInitY13[] =
  {
   PAF_ASP_LINKINITPARAMS (STD, DWRPCM, TII, &IDWRPCM_PARAMS),
#if(PAF_DEVICE) == 0xD8000001
   //PAF_ASP_LINKINITPARAMS (STD, DWRAAC, TII, &IDWRAAC_PARAMS), //Deleted
   //PAF_ASP_LINKINIT (STD, DTSHD, TII), //Deleted
   //PAF_ASP_LINKINIT (STD, DXP, TII), //Deleted
   //PAF_ASP_LINKINIT (STD, THD, TII), //Deleted
   //PAF_ASP_LINKINITPARAMS (STD, DDP, TIJ, &IDDP_PARAMS_SDRAM), //Deleted
   PAF_ASP_LINKINIT (STD, SNG, MDS),
#endif /* (PAF_DEVICE) == 0xD8000001 */
  };

3.Delete ASPs that you want to delete from"const PAF_ASP_LinkInit aspLinkInitAllY13(_2)[]", "const PAF_ASP_LinkInit aspLinkInitStdY13(_2)[]" and "const PAF_ASP_LinkInit aspLinkInitCusY13(_2)[]". This table defines modules that PA/F will call.

  /* This is for primary stream. For secondary stream, please edit aspLinkInitAllY13_2[] */
  const PAF_ASP_LinkInit aspLinkInitAllY13[] =
  {
    ...
    //PAF_ASP_LINKINIT (STD, PL2x, TII), //Deleted
    //PAF_ASP_LINKINITPARAMS (STD, NEO, TII, &INEO_PARAMS), //Deleted
    ...
    PAF_ASP_LINKNONE,
  };
...
  /* This is for primary stream. For secondary stream, please edit aspLinkInitStdY13_2[] */
  const PAF_ASP_LinkInit aspLinkInitStdY13[] = 
  {
    ...
    //PAF_ASP_LINKINIT (STD, PL2x, TII), //Deleted
    //PAF_ASP_LINKINITPARAMS (STD, NEO, TII, &INEO_PARAMS), //Deleted
    ...
    PAF_ASP_LINKNONE,
  };
...

Note[edit]

  • Modules in aspLinkInitCusI14/aspLinkInitCusY13(_2) and aspLinkInitStdI14/aspLinkInitStdY13(_2) must be added to aspLinkInitAllI14/aspLinkInitAllY13(_2)
  • If you don't use writeDECASPGearControlStd or writeDECASPGearControlCus You don't need to add modules to aspLinkInitStdY13[] and aspLinkInitCusY13[] except ASS. Secondary stream aspLinkInitXXXY13_2[] is almost the same manner but ASS is not needed.
 const PAF_ASP_LinkInit aspLinkInitStdY13[] =
 {
   PAF_ASP_LINKINIT(STD,ASS,TII),
   PAF_ASP_LINKNONE,
 };
 const PAF_ASP_LinkInit aspLinkInitCusY13[] =
 {
   PAF_ASP_LINKINIT(STD,ASS,TII),
   PAF_ASP_LINKNONE,
 };

Whats the difference between PAF_ASP_LINKINIT and PAF_ASP_LINKINITPARAMS?[edit]

  • PAF_ASP_LINKINIT used defalt parameters named IASP_PARAMS_ASP . If you want to used optional parameter set, you can use PAF_ASP_LINKINITPARAMS

How to initialize each modules?[edit]

  • For system and STD modules and you will use as is, we recommend to set in atboot.
  • For CUS modules and customized modules, make IASP_PARAMS_ASP and use it with PAF_ASP_LINKINITPARAMS is good

Is there any recommend setting for typical use?[edit]

  • Note that these are not match all case.
    • writeIBUnknownTimeoutN(2048)(for legacy)
    • writeIBUnknownTimeoutN(2048*2)(if DXP is needed)
    • writeIBZeroRunTriggerN(0x7fffffff) (please see paf-auto.pdf)
    • writeIBZeroRunRestartN(0x7fffffff) (please see paf-auto.pdf)
    • writePCMRamp(0) (if you don't need ramp)
    • writeVOLRampTimeN(0) (if you don't need ramp)
E2e.jpg {{
  1. switchcategory:MultiCore=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article DA8xx Algorithm Selection here.

Keystone=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article DA8xx Algorithm Selection here.

C2000=For technical support on the C2000 please post your questions on The C2000 Forum. Please post only comments about the article DA8xx Algorithm Selection here. DaVinci=For technical support on DaVincoplease post your questions on The DaVinci Forum. Please post only comments about the article DA8xx Algorithm Selection here. MSP430=For technical support on MSP430 please post your questions on The MSP430 Forum. Please post only comments about the article DA8xx Algorithm Selection here. OMAP35x=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article DA8xx Algorithm Selection here. OMAPL1=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article DA8xx Algorithm Selection here. MAVRK=For technical support on MAVRK please post your questions on The MAVRK Toolbox Forum. Please post only comments about the article DA8xx Algorithm Selection here. For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article DA8xx Algorithm Selection here.

}}

Hyperlink blue.png Links

Amplifiers & Linear
Audio
Broadband RF/IF & Digital Radio
Clocks & Timers
Data Converters

DLP & MEMS
High-Reliability
Interface
Logic
Power Management

Processors

Switches & Multiplexers
Temperature Sensors & Control ICs
Wireless Connectivity