NOTICE: The Processors Wiki will End-of-Life in December of 2020. 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.

XDAIS sample algorithm

From Texas Instruments Wiki
Jump to: navigation, search

Intro[edit]

Although XDAIS has existed since 1999, its surprisingly difficult to find a good sample algorithm to use as a baseline for your own algorithm development.

This topic fills that gap, supplying a FIR filter written by vendor TI, built and tested for the c64 Instruction Set Architectures. (porting it to another ISA is simple since its straight C code)

Before venturing into this we suggest you first take a look at the XDAIS docs.

Build & test information[edit]

This FIR_TI XDAIS algorithm was built with: -

  • Codegen tools 6.0.14 link
  • DSP/BIOS 5.32.02 link
    • however there are 2 project configurations - one that uses DSP/BIOS (Debug) and one that does not (NOBIOS).
  • CCS 3.3

It was tested with the C6416 Device Cycle Accurate Simulator.

The directory layout is as follows: -

align="center"
Directories in attached sample algorithms
Directory Description
src/fir_ti FIR_TI sample algorithm. Source + CCS Project.
src/api Sample ALG library for clients to use to instantiate XDAIS algorithms
include/ Public include directory
lib/ Public libraries/archives directory
apps/firtest1 Sample application invoking the XDAIS algorithm. Ultra-simple.

CCS projects are available so you can rebuild it.

To run it simply: -

  • launch the c6416 Cycle Accurate Simulator (or any c64 CCS Simulator or Hardware Platform)
  • select the appropriate configuration - it will default to a BIOS Debug configuration with LOG_printf() output, but you can flip it to NOBIOS if you just want standard C I/O to display the results.
  • if in Debug config open the BIOS LOG window and run (F5). If in NOBIOS simply run.

You will see a bunch of FIR filtered result values.

Using FIR_TI as a baseline for your own algorithm[edit]

The intent of this topic is not to repeat the high quality XDAIS documentation in describing FIR_TI's usage of the XDAIS concepts. Instead it is intended as a find-replace start-point. i.e. for your own Barcode Scanner algorithm you could start with a find-replace of FIR to BARCODE and then TI to VENDORNAME.

The next step would be to modify your algorithm to implement IALG according to your algorithm's needs i.e. how many buffers do you need, are they scratch/persistent etc.

spru352 and spru360 are the right documents to use to understand how to implement this most efficiently.

Compliance testing[edit]

Once you're happy with your new XDAIS algorithm, you want to be sure it really is compliant to the XDAIS standard.

From XDAIS 6.x there is a new freely available tool QualiTI which lets you check this.

This tool will check for namespace compliance, appropriate library names, correct interface points and also print out helpful footprint information.

Making it work in Codec Engine[edit]

TI supplies a very powerful framework named Codec Engine (CE) that supports many platforms.

Algorithms that implement predefined interfaces simply 'plug in' to Codec Engine, however if you have a barcode scanner there may not be a standard interface available. In this case you need to either use the IUNIVERSAL interface, or implement custom stubs & skeletons which is described in the Codec Engine Algorithm Creator's User Guide. The SCALE example describes this flow.

It is beyond the scope of this topic to describe this process.

Attachments[edit]

Media:firtest.tar.gz

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 XDAIS sample algorithm 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 XDAIS sample algorithm here.

C2000=For technical support on the C2000 please post your questions on The C2000 Forum. Please post only comments about the article XDAIS sample algorithm here. DaVinci=For technical support on DaVincoplease post your questions on The DaVinci Forum. Please post only comments about the article XDAIS sample algorithm here. MSP430=For technical support on MSP430 please post your questions on The MSP430 Forum. Please post only comments about the article XDAIS sample algorithm here. OMAP35x=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article XDAIS sample algorithm here. OMAPL1=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article XDAIS sample algorithm here. MAVRK=For technical support on MAVRK please post your questions on The MAVRK Toolbox Forum. Please post only comments about the article XDAIS sample algorithm here. For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article XDAIS sample algorithm 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