How to Get Started With DSP/BIOS II

Size: px
Start display at page:

Download "How to Get Started With DSP/BIOS II"

Transcription

1 Application Report SPRA697 October 2000 Andy The David W. Dart How to Get Started With DSP/BIOS II Software Field Sales Software Development Systems ABSTRACT DSP/BIOS II is Texas Instruments real time embedded kernel for TMS320C5000 and TMS320C6000 Digital Signal Processors (DSP). Understanding how to build applications using DSP/BIOS II requires adopting a multi-threaded design paradigm that at first seems foreign for new users of DSPs and veteran DSP developers alike. However, once understood, designing DSP/BIOS II applications becomes straightforward and you will find developing applications easier to design, debug, maintain, and extend. A real-time kernel such as DSP/BIOS II helps to factor problem and facilitate a robust design that is easily maintainable. Traditionally, DSP applications were very simple, typically using a single program loop to manage required processing. Over time, DSP applications began to require concurrent processing, as applications demanded DSP to perform more functions. Applications now typically require DSP to do several things at once and at different rates. In addition, DSP applications typically change over time requiring support for additional or modified features. Building modern DSP applications using traditional program loop paradigms is very challenging, difficult to maintain, and even more difficult to extend. Using DSP/BIOS II real time kernel offers developers foundation to build modern applications from simple to complex multi-threaded and multi-rate applications. Building modern DSP applications requires adopting a design paradigm, which includes preemptive, event-driven multi-threaded. This requires understanding how to architect applications using one or more execution threads rar than processing loops. DSP/BIOS II provides three distinct classes of execution threads with different execution, preemption, and suspension characteristics to build applications on. In support of se threads are several additional kernel objects that provide device-independent I/O, interthread communication and synchronization, and or real time services. This paper addresses how to get started building DSP applications using DSP/BIOS II. The primary focus is to understand multi-threaded design approach using DSP/BIOS II components. This includes organizing and structuring an application around DSP/BIOS II execution threads. TMS320C5000 and TMS320C600 are trademarks of Texas Instruments. Contents 1 Introduction Why DSP/BIOS II? The Development Process Design With Multiple Threads in Mind...5 1

2 2.1.1 DSP/BIOS II Thread Types Identify Independent Execution Paths Motor Control Application Example Identify Real Time Deadlines and Critical Operations Motor Control Example Specify Thread Triggering and Synchronization Identify Thread Life-Times Identify Periodic or Multi-rate Operations Identify Data Paths and Buffer Requirements Throughout Design Identify Inter-thread Communication and Messaging Paths Identify DSP/BIOS II Objects You Will Use Use Configuration Tool to Pre-configure System and DSP/BIOS II Objects Call DSP/BIOS II APIs from Your Application CCStudio Audio Example Conclusion...21 Figures Figure 1. Embedded System Software Components... 3 Figure 2. Traditional Main-loop Processing (left) Restructured as a Multi-threaded Application (right)... 6 Figure 3. Simple Motor Control Application Separated into Independent Execution Paths... 8 Figure 4. DSP/BIOS Thread Latencies... 9 Figure 5. DSP/BIOS II Periodic Thread Executes all Periodic Functions Figure 6. Prioritizing Periodic Functions Figure 7. Generic Mapping of PIP to Block-Diagram Data Paths Figure 8. Generic Mapping of SIO to Block-Diagram Data Paths Figure 9. Using DSP/BIOS II Configuration Tool Figure 10. Audio Processing Requirement Functional Block Diagram Figure 11. Audio Example Block Diagram Figure 12. Mapping Block-Diagram to DSP/BIOS Threads Figure 13. Audio Processing Operation Using DSP/BIOS II Figure 14. Load Processing Operation Using DSP/BIOS II Introduction By now, you have reviewed DSP/BIOS II Technical Overview (SPRA646) and or DSP/BIOS II technical documentation, and you may be thinking about how you can use DSP/BIOS II in your application. For developers unfamiliar with real time multi-threaded kernels, architecting applications using DSP/BIOS II kernel services will enable you to build structured, yet flexible applications. Once you become familiar with DSP/BIOS II and its capabilities, you will find developing applications easier to design, debug, maintain, and extend. For experienced developers, DSP/BIOS II implements most of traditional kernel services found in embedded systems and you will find DSP/BIOS II kernel services efficient, scalable, and easy to implement. 2 How to Get Started With DSP/BIOS II

3 This document is to assist you in getting started using DSP/BIOS II in your application design. Part of this document will convey philosophy of DSP/BIOS II and balance will go into examples of using DSP/BIOS II to build applications. For complete and in-depth technical data on DSP/BIOS II APIs, please refer to following documents: SPRU403 DSP/BIOS Application Programming Interface (API) Reference Guide, and SPRU303 DSP/BIOS Users Guide. Application Software System Software Timers system clock DSP Memory system I/O peripherals Figure 1. Embedded System Software Components 1.1 Why DSP/BIOS II? DSP/BIOS II is a feature-rich, yet scalable collection of kernel services that developers use to manage system-level resources and to build infrastructure of DSP applications. These kernel services, tuned and optimized for size and performance, are available on TMS320 C5000 and C6000 DSPs. If you think of DSP as a processing resource, n scheduling of this resource requires management. Managing system-level resources, including DSP, is role of system software and of DSP/BIOS II. In addition, DSP/BIOS II makes it easier to transfer your application to anor TMS320 DSP by providing hardware abstraction. The software required in typical embedded DSP systems is comprised of two general components, application, and system software. See Figure 1. System software is responsible for managing system resources for applications. System resources include hardware devices on target platform and DSP. Above this layer is application itself. It is important to distinguish elements of a system design into se components. Your intellectual property is in application. The system software provides application with infrastructure. How to Get Started With DSP/BIOS II 3

4 All DSP applications require some system software to manage resources in ir system. Typical embedded DSP systems include DSP processor, memory, a system timer or clock, and I/O peripherals. System software is required to properly initialize and control se hardware components. In addition, system software typically manages access between system resources and application software. This is important when transferring applications to different hardware platforms, such as next generation device. The system software provides some isolation, or a layer between application and physical hardware. In simple systems, system software consists of basic hardware initialization, peripheral access functions, and hardware interrupt service routines (ISRs). Systems that are more complex require real-time scheduling of DSP to ensure correct operation. Furrmore, as applications require concurrent access to hardware resources such as DSP, memory, or I/O, need for an efficient resource manager and scheduler becomes paramount. Managing se resources is precisely benefit of using DSP/BIOS II. DSP/BIOS II provide system services to manage DSP system hardware components and to provide applications with services that manage DSP utilization. By using DSP/BIOS II, you Manage DSP MIPS efficiently using multithreading. Use standard interfaces for I/O and hardware interrupts. Define and configure system resources efficiently, such as system memory. Gain real time visibility into execution of your application using real-time analysis tools. Add structure to your application, organizing it around a collection of inter-related threads. Make it easier to migrate to new TMS320 DSPs since DSP/BIOS abstracts much of system hardware. 2 The Development Process Since DSP/BIOS II is a scalable set of componentized system services, you have complete control over which DSP/BIOS II components you use. When you develop applications or port pre-existing applications to DSP/BIOS II, you select only those components that your applications needs. Only those components you select are included in build of your application, this keeps memory usage by DSP/BIOS II to a minimum. Typical applications use DSP/BIOS II to configure system interrupt vector table, and system memory map. During development process, most developers take advantage of real time analysis features built into DSP/BIOS II to gain visibility into runtime behavior of ir application. In addition, most applications take advantage of DSP/BIOS II scheduler to prioritize and manage DSP processing. Every application can take advantage of features within DSP/BIOS II. Pre-existing applications can take advantage of DSP/BIOS II to make it easier to port to anor supported TMS320 DSP; and take advantage of real time analysis features to better understand runtime behavior and performance. 4 How to Get Started With DSP/BIOS II

5 Concluding with audio example that ships with Code Composer Studio, we will describe process of developing a DSP/BIOS II application that uses several DSP/BIOS II components. You will likely use one or more of se in your application. However, first we will describe overall design process. While this process assumes you are developing a new application, many of steps pertain to migrating your existing application to use DSP/BIOS II as well. To help illustrate process steps, we will use a simple motor-control application. 2.1 Design With Multiple Threads in Mind The overall process requires designing an application using a multi-threaded or concurrent system paradigm. While DSP/BIOS II accommodates traditional loop architectures, multithreaded designs are far more flexible and maintainable. Even if your application consists of ISRs and a background operation, designing with DSP/BIOS II threads will make it easier to accommodate new features or or changes over time including migrating to anor TMS320 DSP. For many developers migrating to DSP/BIOS II, paradigm shift away from traditional processing loops or super loops to using multiple execution threads is new and perhaps challenging. However, organizing an application around a collection on inter-related threads provides structure to application that makes it easier to maintain and extend over time. This structure allows developers to assign relative priorities to threads to ensure application executes correctly. Figure 2 illustrates a main processing loop restructured around threads. Historically, DSP applications performed all processing in an ISR. Over time, a background loop became necessary to perform some of processing to minimize amount of time spent in ISR. Deferring some of processing to background reduced interrupt latency and increased interrupt bandwidth. As DSP application complexity increased, developers began to massage background loops to perform rudimentary scheduling to implement state machines, or to ensure higher priority operations met ir real time deadlines. How to Get Started With DSP/BIOS II 5

6 Main() Main() /* /* sequential sequential processing processing example example beventflag_0 beventflag_0 FALSE; FALSE; beventflag_1 beventflag_1 FALSE; FALSE; StartSystem(); StartSystem(); /* /* enable enable interrupts interrupts while(1) while(1) /* /* sequential sequential processing processing loop loop if if beventflag_0 beventflag_0 beventflag_0 beventflag_0 FALSE; FALSE; ProcessEvent_0(); ProcessEvent_0(); if if beventflag_1 beventflag_1 beventflag_1 beventflag_1 FALSE; FALSE; ProcessEvent_1(); ProcessEvent_1(); Event_0_ISR Event_0_ISR beventflag_0 beventflag_0 TRUE; TRUE; Event_1_ISR Event_1_ISR beventflag_1 beventflag_1 TRUE; TRUE; Main() Main() /* /* Multi-threaded Multi-threaded example example Thread_Event_0() Thread_Event_0() /* /* Event Event 0 0 processing processing thread thread while(1) while(1) wait wait for for Event_0 Event_0 signal signal ProcessEvent_0 ProcessEvent_0 Thread_Event_1() Thread_Event_1() /* /* Event Event 1 1 processing processing thread thread while(1) while(1) wait wait for for Event_1 Event_1 signal signal ProcessEvent_1 ProcessEvent_1 Event_0_ISR Event_0_ISR signal signal Event_0 Event_0 Event_1_ISR Event_1_ISR signal signal Event_1 Event_1 Figure 2. Traditional Main-loop Processing (left) Restructured as a Multi-threaded Application (right) These designs however still consisted of ISRs and a background-processing loop. As you can imagine, se designs are tricky with respect to timing, and are not very accommodating to changing requirements like adding new features. In most cases, se designs readily decompose into multiple independent paths of execution. With DSP/BIOS II, you assign a thread for each of se independent execution paths. Since threads must execute on same processor, y are inter-related. Therefore, you will assign relative priorities to se threads to ensure system performs correctly. DSP Bios II uses a fixed priority preemptive scheduler that allows you to apply well defined real time scheduling techniques such as rate monotonic scheduling (RMS) to ensure your application runs correctly. Guideline In your design, you should minimize ISR processing to be as little as possible, and defer balance of processing to a DSP/BIOS II thread such as a software interrupt (SWI) or synchronous task (TSK). Doing this for all I/O allows you to prioritize each operation based on its importance or real time deadline DSP/BIOS II Thread Types DSP/BIOS II supports four basic thread models. Hardware interrupt (HWI) and software interrupt (SWI) threads support fast interrupt processing. With DSP/BIOS II, you need to rethink interrupt processing from single-level (hardware interrupts only) to a two-level model. The twolevel model means you perform minimal processing in hardware interrupt, and defer balance of processing to software interrupt. Both HWI and SWI threads share system stack, this makes ir context switching times shortest possible making m ideal in time-critical operations. 6 How to Get Started With DSP/BIOS II

7 DSP/BIOS II provides a special software interrupt thread (PRD) to perform periodic functions. This thread executes as a function of a clock source. The clock source is eir system clock, or a data clock. This thread is ideal for implementing periodic operations. The synchronous task thread (TSK) processing model is typical application execution thread. Tasks have unique property of suspension making m very flexible in operation. This flexibility makes tasks easy to use for a variety of applications. However, since tasks each have private stacks, ir context switching times are longer than that of software interrupts. This suggests that most time critical operations execute as software interrupts and less time critical operations use task threads. The forth model is background idle loop. This thread runs forever and loops continuously in absence of any or thread ready to run Identify Independent Execution Paths Therefore, first you need to architect your application using DSP/BIOS II threads. To do this you need to isolate independent paths of execution. Data flow diagrams, system level block diagrams, and state machines provide good insight into both independent and dependent paths. These paths will end up as DSP/BIOS II threads. Typical applications use multiple threads and thread types. Guideline When you map threads to execution paths, choose thread type that matches your runtime requirements. Which thread type to use is dependent on many factors, such as priority, latency, overhead, triggering, and dependencies on or threads Motor Control Application Example Figure 3 illustrates a simple motor-control application. A single DSP is required to perform multiple functions: control motor, respond to keypad, drive a display device, and send data out remote port. The user uses keypad to control system. For purposes of this example, motor control algorithm is a simple speed control. A timer interrupt fires every millisecond (1 khz rate), and triggers motor control algorithm to read current speed (TACH value), and adjust motor drive to attain desired motor speed. The user uses keypad to control system. Controlling system includes controlling motor, selecting what to display, and controlling what to send to remote port. When enabled by keypad selection, remote port transmits diagnostic data. Figure 3 also illustrates this application as independent execution paths. Each of major functions executes independently. Although keypad control algorithm modifies system parameters to control or functions, motor control operation for instance is not dependent on execution of any of or system functions. How to Get Started With DSP/BIOS II 7

8 Motor DRIVE MOTOR CONTROL MOTOR TACH ADC Control algorithm DAC MOTOR DRIVE > Speed 3000 RPM > start speed remote stop display ENTER Motor TACH RS-232 Data Out KEYPAD CONTROL KEYPAD interface System Control algorithm Modifies System Parameters Motor Controller Requirements Control motor speed -- 1 khz khz sampling rate rate (dv/dt) Accept keypad commands to to control motor, change display, or or send send data data out out remote RS-232 port port Drive a simple display -- refresh data data 2 times per per second Send data data out out RS-232 port port when nothing else else to to do. do. DISPLAY CONTROL REMOTE OUTPUT Display algorithm Remote algorithm MCBSP DISPLAY interface RS-232 PORT Figure 3. Simple Motor Control Application Separated into Independent Execution Paths Identify Real Time Deadlines and Critical Operations Real time systems have real time deadlines for operations to complete. The critical operations in your application will likely have real time deadlines and must execute at higher priority than your non-critical operations. You need to determine all real time deadlines in your system, and assign relative priorities to each. This information is necessary to map your operations to appropriate DSP/BIOS II execution threads. Your most critical threads will likely execute using high-priority SWI or TSK threads. In addition to priority, thread latency may impact meeting your real time deadlines too. Latency used in this context relates to context switching times in activating a thread and measures time it takes to activate thread once triggered. See Figure 4, which illustrates relative thread latencies. In DSP/BIOS II, hardware interrupt has shortest latency or restated fastest context switching time. Following closely are software interrupts. This is a result from both hardware and software interrupt using same stack as application. However, each DSP/BIOS II synchronous task has a private stack. Consequently, context switching time for tasks is longer than that for software interrupts. Guideline As a rule, for your most time critical threads, use eir a hardware interrupt or a software interrupt thread. For less critical requirements, task thread may be more convenient. 8 How to Get Started With DSP/BIOS II

9 DSP/BIOS II Thread Interrupt Latency DSP Instruction Cycles C6000 C HWI / CLK SWI PRD TSK DSP/BIOS II Thread Types Figure 4. DSP/BIOS Thread Latencies For more details and analysis on DSP/BIOS thread latencies and or DSP/BIOS II objects, please refer to SPRA662 Benchmarking DSP/BIOS II on C6000, and SPRA 663 Benchmarking DSP/BIOS II on TMS320C54x Motor Control Example Controlling motor is most critical function in our example so it becomes highest priority operation in system. Responding to keypad is also important since this is control input. However, response time is not as critical as smooth motor operation so it has a lower priority than motor control operation. The display provides information, and is not critical to operation, so it is a lower priority than keypad. Finally, sending data out remote port is a background operation in our example, so it has lowest priority Specify Thread Triggering and Synchronization Each independent path of execution requires an activation mechanism. Hardware devices trigger an interrupt service routine managed by HWI. Software triggers DSP/BIOS II SWI and TSK threads. The idle loop runs continuously in background. In addition to triggering, your application may need to synchronize multiple trigger sources. How to Get Started With DSP/BIOS II 9

10 Each DSP/BIOS II execution thread type uses unique activation and synchronization methods. The DSP/BIOS II software interrupts (SWI) execute in a similar fashion to ir hardware counterparts. Once triggered, y run to completion and terminate. These threads are retriggerable. Software interrupt threads execute at a very high priority, just below hardware interrupts, and above synchronized tasks. To synchronize multiple trigger sources, software interrupts use a special control interface called SWI mailbox. The software interrupt will begin executing based on contents of this mailbox. You would use this interface to perform conditional triggering on software interrupt. Software interrupt threads are reactive. That is, activation is under external control. The thread cannot affect its own execution; once started, it cannot wait for or events or stop before completing (suspend). As a rule, all input needed by a software interrupt s function must be ready (available) before an event triggers software interrupt. Synchronized task (TSK) threads operate quite differently from interrupts. Tasks are not directly re-triggerable. You can use a while loop within task function to act in a re-triggerable fashion. Task threads have unique property of suspension, which allows m to affect ir own execution. Tasks should suspend when y wait for resources, such as data from a peripheral or access to shared memory, rar than poll. Suspension also allows tasks to stop mselves by sleeping for some amount of time, or explicitly yielding processor. Tasks pend on semaphores (suspend execution until ready) to synchronize execution. This gives you flexibility in use of task threads. Using semaphores allows you synchronize task execution to or events or or threads, or arbitrate access to system resources. Typically, your normal execution paths, control functions, and non-critical I/O use tasks. The idle loop executes in a similar fashion to traditional main loops. Each function in loop executes in order, and runs to completion. You add your functions to list using Configuration Tool. The idle loop runs continuously in absence of any higher priority thread ready to run. The traditional ISR and background processing loop architectures can take advantage of DSP/BIOS II by moving traditional loop functions first into this idle loop. Then to improve performance or add functionality, you can move functionality to or threads. All DSP/BIOS II threads are fully preemptable by higher priority threads. In your design, you will need to identify triggering or activation method for each execution thread, and determine if you want to execute portions of you application in idle loop Identify Thread Life-Times DSP/BIOS II allows you to create threads that will exist for duration of application. These are static threads. You also have choice to instantiate SWI and TSK threads dynamically, such that y exist as long as application needs m, n to free resources, you may delete m. These are dynamic threads. You create static threads using Configuration Tool, and you create/delete dynamic threads using DSP/BIOS II APIs in you application. The primary advantage of static threads is reduced memory requirements. Dynamic DSP/BIOS II objects require more code to support dynamic creation and deletion, and creation process may block waiting for memory allocation to complete. However, you should know that once created, execution time (and MIPS) is identical. 10 How to Get Started With DSP/BIOS II

11 Static threads also support real time analysis tools better than dynamic threads. The execution graph does not have direct visibility into dynamically created threads, and cannot display as detailed information as it does with static threads. Dynamic threads however allow you greater flexibility in application designs. You need to identify which threads in your application need to be static, and which threads you will instantiate dynamically. Guideline To minimize code space use static threads Identify Periodic or Multi-rate Operations Many DSP applications process data periodically. For example, audio data sampled and packed into 20 ms sized buffers requires processing each buffer every 20 ms. Multi-rate systems imply that multiple periodic operations will occur at different rates. DSP/BIOS II provides a periodic function manager, PRD, that you will configure to execute your periodic functions. See figure 5, which illustrates periodic thread operation. Recall from DSP/BIOS II Technical Overview, that periodic functions execute as a special SWI called PRD_swi. Clock Source Periodic Thread Periodic Clock Periodic Functions DSP/BIOS DSP/BIOS II II Timer Timer tick J_ticks DSP DSP Selectable Source Periodic Periodic Manager Manager K_ticks DSP DSP User-Defined User-Defined Clocking Clocking tick L_ticks DSP DSP Data Data Clocks Clocks Frame Frame Rates Rates Figure 5. DSP/BIOS II Periodic Thread Executes all Periodic Functions How to Get Started With DSP/BIOS II 11

12 Guideline You need to identify all periodic operations in your application. For all periodic operations in your application, determine period operation needs to run, and time required completing operation once initiated. All of your periodic functions need to occur at integer multiples of PRD tick. Therefore, you need to make sure you set PRD tick period appropriately. To prioritize periodic functions, you should have PRD functions post software interrupts or synchronized tasks to perform operation, which you prioritize as required. See figure 6. Prioritizing Periodic Thread Functions Clock Source Periodic Clock Periodic Functions DSP/BIOS DSP/BIOS II II Timer Timer tick J_ticks Trigger Trigger SWI SWI Selectable Source Periodic Periodic Manager Manager K_ticks SEM_post() SEM_post() User-Defined User-Defined Clocking Clocking tick L_ticks Trigger Trigger SWI SWI Data Data Clocks Clocks Frame Frame Rates Rates Figure 6. Prioritizing Periodic Functions For example, an audio algorithm may require processing 20 ms size buffers and take 5 ms to execute. This algorithm operates on continuously streaming data. If a buffer is dropped (not ready for output), n output will contain distortion sounding like pops. The application must ensure algorithm completely executes (all 5 ms), within 20 ms window (buffer period), orwise we will drop a buffer. The period is 20 ms, and real-time deadline is 20 ms since we do not want to drop a buffer. Some applications perform periodic operations on data from sources that supply ir own clocking. For example, frames of data transferred by DMA, perhaps originating from a serial port (MCBSP). The frame rates drive clocking. If your application needs to perform periodic operations on this type of data, you will want to drive PRD clock from interrupt service routine that handles this data. In this way, you can perform periodic operations at tick or frame -rate of incoming data. In previous example, DMA interrupt would call PRD_tick() to advance PRD clock after each frame transfer. 12 How to Get Started With DSP/BIOS II

13 The default setup uses DSP/BIOS II system clock to drive PRD clock, and is set-up through CLK manager in Configuration Tool. This allows periodic functions to execute at integer multiples of system clock. For more information on DSP Bios II threads and thread scheduling, see SPRA714 Threading Models in DSP Bios II. Peripheral Processing Peripheral Device Device DSP DSP Device Device Peripheral DSP/BIOS DSP/BIOS II II HWI HWI thread thread Peripheral DSP/BIOS DSP/BIOS II II HWI HWI thread thread PIP PIP PIP PIP Processing DSP/BIOS DSP/BIOS II II SWI SWI thread thread or or TSK TSK thread thread or or IDL IDL thread thread Figure 7. Generic Mapping of PIP to Block-Diagram Data Paths 2.2 Identify Data Paths and Buffer Requirements Throughout Design In many DSP applications, data flow from input to output is often a continuous flow of data blocks or buffers. This continuous flow of data, referred to as data streaming, is typical of Audio, Video, and speech applications. Or data flows may be non-continuous, such as messaging and communication paths. The DSP/BIOS II data pipes (PIP) and data streams (SIO) are well suited to manage streaming data. In your application, you will use se objects to pass buffers between I/O devices and your application, or between DSP/BIOS II threads within your application. In your design, you need to isolate data paths that involve more than one thread. To send streaming data between threads you use eir PIP or SIO. Streaming data applications require management of flow of data buffers throughout application. Typically, DMA devices move data from peripherals to system memory, or opposite path, system memory to peripheral. The DMA transfer complete interrupt signals application that data is available (for data input), or memory is available to output data. However, once in application, managing buffer movement is not as straightforward. Application designers devise ir own non-standard methods to accomplish this. DSP/BIOS II data pipes and data streams are kernel objects optimally designed to perform se common tasks. How to Get Started With DSP/BIOS II 13

14 The PIP module provides a minimal architecture that is code-efficient, fast, and flexible. You can think of PIP as a software-dma that performs transfer of data between two DSP/BIOS II threads; and provides both event-driven and polling interfaces. Much as a DMA device issues an interrupt when a block transfer is complete, PIP can execute a callback function to alert target thread that a block is available. Figure 7 illustrates a typical mapping of data paths in a block-diagram and implementation using data pipes (PIP). Alternatively, you can use SIO module. The SIO module provides a high-level mechanism to perform streaming I/O between a synchronous task thread and a device. SIO provides a simple common interface independent of underlying device. This level of abstraction allows application designers to easily communicate with any device. SIO provides APIs to create and delete I/O channels, control data stream such as, start, stop, idle and flush; and to transfer data in channel, get, put, issue and reclaim. SIO supports static creation as well as dynamic creation and deletion. Peripheral Processing Peripheral Device Device DSP DSP Device Device Peripheral Processing DSP/BIOS DSP/BIOS II II HWI HWI thread thread DEV SIO SIO Peripheral DSP/BIOS DSP/BIOS II II HWI HWI thread thread DEV SIO SIO DSP/BIOS DSP/BIOS II II TSK TSK thread thread Figure 8. Generic Mapping of SIO to Block-Diagram Data Paths Figure 8 illustrates a typical mapping of data paths in a block-diagram and implementation using data streams (SIO). Note that SIO links device drivers to synchronous tasks. I say device drivers rar than devices since device drivers provide isolation from SIO to a device or anor thread. In fact using DPI device driver supplied with DSP/BIOS II allows you to stream data between two or more synchronous tasks. Both PIP and SIO are flexible in that content of buffers is user-defined. The buffers can contain data directly, addresses to data buffers, or anything else. It is important to note that both PIP and SIO pass pointers to buffers between threads; y do not copy contents. This makes size and contents of buffers independent of transfer. This allows transfer time to be constant, a must for real-time systems. 14 How to Get Started With DSP/BIOS II

15 To understand how to architect multi-channel applications using PIP and SIO, please refer to SPRA689 Using PIP and SIO in Multichannel Systems. To understand how to write device drivers that will interface with PIP and SIO, please refer to SPRA700 Writing Flexible Device Drivers for DSP Bios II Identify Inter-thread Communication and Messaging Paths It is common for threads to communicate with one anor. This is typical of control systems that send messages to tasks to command ir operations. DSP/BIOS II provides mailboxes to send messages (or anything else defined in message being sent) between threads. Mailboxes differ from PIP and SIO in that messages posted to mailbox are copied into mailbox. You would use se objects to communicate messages typically between threads. For example, you create a supervisor task that receives and transmits messages to or processing tasks in system. As with PIP and SIO, contents of messages are not restricted. You can pass anything in message such as commands, raw data, and pointers to memory buffers. Queues in DSP/BIOS II provide simplest mechanism to communicate between any two threads without copying. DSP/BIOS II queues are double-linked lists that threads insert and remove elements from. You can think of queues as software-fifos. Queues are not limited to communication between threads, however this is ir most common use. In fact, SIO uses two internal queues to pass buffers between task and device driver on same task thread. 2.3 Identify DSP/BIOS II Objects You Will Use Once you have a multi-threaded design, you need to identify DSP/BIOS II objects you will use in application. From design, you will map appropriate thread type to each execution path. If re are dependencies, you need to determine interaction and synchronization required. You also need to identify data paths and characteristics of each. This includes buffer sizes and formats. For I/O device communication, select eir data pipes (PIP) or data streams (SIO). For inter-thread communication, you can use data pipes or steams, data Queues (QUE), or Mailboxes (MBX). 2.4 Use Configuration Tool to Pre-configure System and DSP/BIOS II Objects DSP/BIOS II needs to be aware of several global system parameters. These include DSP device, CPU clock speed, endian mode, cache settings, and some ors. Use DSP/BIOS II Configuration Tool in CCStudio to pre-configure your target system settings. You use Configuration Tool to select and configure DSP/BIOS II runtime support objects needed for your application. Using se objects, you develop and validate logic of your application by building an application framework that represents execution threads, I/O, and ir interactions. How to Get Started With DSP/BIOS II 15

16 For DSP/BIOS II threads, you specify thread priority and function thread will call when activated. For software interrupts (SWI), you will also specify two function arguments that will pass with function when thread is activated; and you will specify initial SWI mailbox value. For synchronized tasks (TSK), you will specify function arguments that will pass with function when thread activates; and you will specify both task stack size and memory segment task stack will occupy. For idle functions, which execute in background idle loop, you will specify function to call. You use Configuration Tool to create system memory map. In non-dsp/bios II designs, you would specify this map in linker command file under MEMORY directive. You also use Configuration tool to specify sections DSP/BIOS II will occupy and use; and to specify system stack size and section. You may optionally specify C compiler sections here too. You use Configuration Tool to create interrupt vector table. In non-dsp/bios II designs, you would specify this table in a separate file, usually in Assembly. You use Configuration tool to program on-chip timer to operate as DSP/BIOS II system clock. This system clock is required for real time analysis features, and sources or DSP/BIOS II time functions. The visual interface allows you to specify timer interrupt rate in units of microseconds per interrupt, and Configuration Tool generates required register settings. Figure 9 summarizes what you will do using Configuration Tool to configure DSP settings and to pre-configure static DSP/BIOS II objects you will use in your application. Using Using configuration configuration tool... tool... DSP/BIOS DSP/BIOS II II Modules Modules Set Set and and verify verify DSP DSP global global settings settings Global Global Settings Settings Setup Setup system system memory memory map map MEM MEM Setup Setup on-chip on-chip timer timer for for system system clock clock CLK CLK Setup Setup hardware hardware interrupt interrupt vector vector table table HWI HWI Pre-configure Pre-configure DSP/BIOS DSP/BIOS II II objects objects application application uses uses statically statically Save Save configuration configuration file file HST, HST, IDL, IDL, LCK, LCK, LOG, LOG, MBX, MBX, PIP, PIP, PRD, PRD, QUE, QUE, RTDX, RTDX, SEM, SEM, SIO, SIO, STS, STS, SWI, SWI, SYS, SYS, TSK, TSK, and and devices devices Figure 9. Using DSP/BIOS II Configuration Tool 16 How to Get Started With DSP/BIOS II

17 2.5 Call DSP/BIOS II APIs from Your Application Once static configuration is complete, you will make DSP/BIOS API calls from within your program to access and manipulate DSP/BIOS II objects. DSP/BIOS II allows you to use application s main() function to perform application initialization. You can think of main() function as a create phase in which you allocate memory buffers and do or initializations that need to be set and available before your application actually starts. After main() is called, DSP/BIOS II globally enables interrupts and starts running. 3 CCStudio Audio Example The example we will describe is Audio example that ships with Code Composer Studio. This is a simple application that illustrates use of HWI, SWI and PRD threads. It also illustrates use of data pipes (PIP objects) to manage flow of data throughout application. The first step in this example is to create block diagram of intended application, see figure 10. Audio CODEC Audio Processing Audio CODEC Copy Algorithm Get Get Input Input Data Data Copy Copy input inputî output output Put Put Output Output Data Data Figure 10. Audio Processing Requirement Functional Block Diagram The application needs to acquire audio data from CODEC, perform some processing, and issue data out CODEC again. For simplicity, our example just copies audio input to output. Figure 11 illustrates this in section labeled Processing Threads. How to Get Started With DSP/BIOS II 17

18 I/O Thread Processing Threads Audio Thread I/O Thread MCBSP MCBSP // CODEC CODEC COPY 96 words COPY MCBSP 96 words MCBSP // CODEC CODEC Clock Source Periodic Thread Periodic Clock Periodic Functions DSP/BIOS DSP/BIOS II II Timer Timer 1 ms Periodic Periodic Manager Manager 8 ms Load Load ms Step Step Figure 11. Audio Example Block Diagram In addition to audio processing, we want to periodically load CPU to view impact on our audio processing. We would also like to incrementally increase and decrease this loading to stress application. Figure 11 illustrates this in section labeled Periodic Thread. Now that we have block diagram that isolates execution paths, we can assign DSP/BIOS II threads. Since audio-processing path is very simple, we only need to use one thread to do processing. We choose to simplify design by keeping sample rates at input and output to be identical, this allows us to use same ISR to handle input and output. We will use HWI to manage interrupt. We could use eir a SWI or a TSK thread to do audio processing, however, we choose to use SWI in this case just to illustrate use of SWI mailbox to synchronize multiple trigger sources. With an TSK thread using SIO module, this synchronization is not required. We want SWI to do audio processing only when re is a full buffer of input data, and we have an available empty buffer to store processed data. To manage flow of se buffers, we will use data pipes to illustrate callback operation that will trigger SWI audio processing. Figure 12 illustrates mapping of se DSP/BIOS II objects onto our audio processing threads. Thus, in our simple example, we have one HWI thread handling CODEC interrupts, and we use one SWI thread to handle audio processing. The interrupt processing is one execution path, and audio processing is a separate execution path. Connecting se execution paths, or threads, are data pipes, which manage buffer flow. 18 How to Get Started With DSP/BIOS II

19 Audio Example Processing Threads SWI Audio Processing Software Interrupt Audio CODEC MCBSP 1 HWI ISR (common) Input Pipe PIP Get Get Data Data X i i Audio processing function y i i x i i Put Put Data Data Y i i Output Pipe PIP Figure 12. Mapping Block-Diagram to DSP/BIOS Threads Independent of audio processing, our example has periodic functions to add CPU loading. We are using system clock to drive PRD clock with one-millisecond ticks. In this example, PRD functions execute directly in PRD_swi thread. The load function occurs every 8 milliseconds, and step function executes every 10,000 milliseconds, or 10 seconds. The step function modifies load function by increasing and decreasing load period (see Figure 11). For our example, we reference hardware implementations built on C6201 EVM, C6211 DSK, and C5402 DSK. See Figure 13. The multi-channel buffered serial port, MCBSP 1, connects to audio CODEC. This example uses an ISR (DSS_isr()) to interact with MCBSP to read and write audio data. This example uses DSP/BIOS II HWI module to manage hardware interrupts. The CODEC ISR fills empty blocks with input data; and outputs full blocks until y are empty. How to Get Started With DSP/BIOS II 19

20 Audio Example Processing Threads Audio CODEC MCBSP 1 HWI ISR (common) DSS_isr() synchronization SWI_andn() SWI Audio Processing Software Interrupt (audioswi thread) audioswi mailbox Input Pipe PIP DSS_rxPipe Get Get Data Data X i i audio() function y i i x i i SWI thread calls audio function Put Put Data Data Y i i Output Pipe PIP DSS_txPipe INPUT data path OUTPUT data path Figure 13. Audio Processing Operation Using DSP/BIOS II To transfer data between ISR and application, we use DSP/BIOS II data pipes managed by PIP module. One data pipe transfers data from ISR to application (DSS_rxPipe), or transfers full data to ISR for output (DSS_txPipe). The audio() function attached to DSP/BIOS II software interrupt thread (audioswi) performs audio processing. The audio processing thread activates only when both a full block of data and an empty block of data are available. To synchronize se events, we use audioswi s mailbox. The initial value of SWI mailbox is set to 3, which sets first 2 bits in SWI mailbox to 1 s. When both of se bits become 0 (value of mailbox is 0), SWI thread activates to perform processing. We will use data pipe notify functions to clear se bits individually. Both data pipes signal software interrupt using SWI_andn() calls to ir assigned bits in SWI mailbox to synchronize processing. The input data pipe will signal audioswi when ISR has filled a block and it is available for processing by calling SWI_andn(2) to clear bit 1 in SWI mailbox. Likewise, output data pipe will signal audioswi when an empty block of data is available for application to fill by calling SWI_andn(1) to clear bit 0 in SWI mailbox. Figure 14 illustrates periodic thread configuration. Note we use system clock to drive periodic clock, and tick period is one millisecond. The PRD manager will call load() every 8 milliseconds, and step() function every 10 seconds. All of DSP/BIOS II objects used in this example are static. The audio.cdb file contains ir configuration information. Within application, you can observe API s calls used to access buffers in data pipes; both in ISR and in audio(). 20 How to Get Started With DSP/BIOS II

21 Audio Example Periodic Thread Clock Source Periodic Clock Periodic Functions CLK CLK DSP/BIOS DSP/BIOS II II Timer Timer HWI HWI 1 ms Periodic Periodic Manager Manager PRD_swi PRD_swi 8 ms load() load() ms step() step() 4 Conclusion Figure 14. Load Processing Operation Using DSP/BIOS II Understanding how to build applications using DSP/BIOS II requires adopting a multi-threaded design paradigm. However, once understood, designing DSP/BIOS II applications becomes straightforward and you will find developing applications easier to design, debug, maintain, and extend. As we can see from motor control and audio examples, decomposing an application into independent execution paths is not as difficult as it first appears. Often, reviewing systemlevel block diagrams yields insight into separation. After you have divided application into independent threads, you need to assign appropriate DSP/BIOS II thread type. DSP/BIOS II provides four basic thread types that allow you to optimally apply based on execution requirements. You n choose appropriate data flow objects to pass data throughout your application. DSP/BIOS II offers device independent I/O objects to handle continuous block data transfers. For inter-thread communication and or transfers DSP/BIOS provides mailboxes and data queues. To build your application, DSP/BIOS II provides a system configuration tool to specify and configure system components such as system memory map and hardware interrupt vector table. You also use this tool to statically declare DSP/BIOS objects (threads and I/O) that you will use in your application. This provides foundation and infrastructure that your application will use. At this point, you build your application using se components and services. How to Get Started With DSP/BIOS II 21

22 IMPORTANT NOTICE Texas Instruments and its subsidiaries (TI) reserve right to make changes to ir products or to discontinue any product or service without notice, and advise customers to obtain latest version of relevant information to verify, before placing orders, that information being relied on is current and complete. All products are sold subject to terms and conditions of sale supplied at time of order acknowledgment, including those pertaining to warranty, patent infringement, and limitation of liability. TI warrants performance of its semiconductor products to specifications applicable at time of sale in accordance with TI s standard warranty. Testing and or quality control techniques are utilized to extent TI deems necessary to support this warranty. Specific testing of all parameters of each device is not necessarily performed, except those mandated by government requirements. Customers are responsible for ir applications using TI components. In order to minimize risks associated with customer s applications, adequate design and operating safeguards must be provided by customer to minimize inherent or procedural hazards. TI assumes no liability for applications assistance or customer product design. TI does not warrant or represent that any license, eir express or implied, is granted under any patent right, copyright, mask work right, or or intellectual property right of TI covering or relating to any combination, machine, or process in which such semiconductor products or services might be or are used. TI s publication of information regarding any third party s products or services does not constitute TI s approval, warranty or endorsement reof. Copyright 2000, Texas Instruments Incorporated

Understanding Basic DSP/BIOS Features

Understanding Basic DSP/BIOS Features Application Report SPRA653 - April 2000 Understanding Basic DSP/BIOS Features Henry Yiu Texas Instruments, China ABSTRACT DSP/BIOS is a small firmware that runs on digital signal processor (DSP) chips.

More information

DSP/BIOS Kernel Scalable, Real-Time Kernel TM. for TMS320 DSPs. Product Bulletin

DSP/BIOS Kernel Scalable, Real-Time Kernel TM. for TMS320 DSPs. Product Bulletin Product Bulletin TM DSP/BIOS Kernel Scalable, Real-Time Kernel TM for TMS320 DSPs Key Features: Fast, deterministic real-time kernel Scalable to very small footprint Tight integration with Code Composer

More information

Upgrading Applications to DSP/BIOS II

Upgrading Applications to DSP/BIOS II Application Report - June 2000 Upgrading Applications to DSP/BIOS II Stephen Lau Digital Signal Processing Solutions ABSTRACT DSP/BIOS II adds numerous functions to the DSP/BIOS kernel, while maintaining

More information

Hardware UART for the TMS320C3x

Hardware UART for the TMS320C3x TMS320 DSP DESIGNER S NOTEBOOK Hardware UART for the TMS320C3x APPLICATION BRIEF: SPRA223 Contributed by Lawrence Wong Digital Signal Processing Products Semiconductor Group Texas Instruments June 1993

More information

A DSP/BIOS AIC23 Codec Device Driver for the TMS320C6416 DSK

A DSP/BIOS AIC23 Codec Device Driver for the TMS320C6416 DSK Application Report SPRA909A June 2003 A DSP/BIOS AIC23 Codec Device for the TMS320C6416 DSK ABSTRACT Software Development Systems This document describes the usage and design of a device driver for the

More information

A DSP/BIOS AIC23 Codec Device Driver for the TMS320C5510 DSK

A DSP/BIOS AIC23 Codec Device Driver for the TMS320C5510 DSK Application Report SPRA856A June 2003 A DSP/BIOS AIC23 Codec Device for the TMS320C5510 DSK ABSTRACT Software Development Systems This document describes the implementation of a DSP/BIOS device driver

More information

Writing TMS320C8x PP Code Under the Multitasking Executive

Writing TMS320C8x PP Code Under the Multitasking Executive TMS320 DSP DESIGNER S NOTEBOOK Writing TMS320C8x PP Code Under the Multitasking Executive APPLICATION BRIEF: SPRA269 Leor Brenman Digital Signal Processing Products Semiconductor Group Texas Instruments

More information

TMS320C62x, TMS320C67x DSP Cache Performance on Vocoder Benchmarks

TMS320C62x, TMS320C67x DSP Cache Performance on Vocoder Benchmarks Application Report SPRA642 - March 2000 TMS320C62x, TMS320C67x DSP Cache Performance on Vocoder Benchmarks Philip Baltz C6000 DSP Applications ABSTRACT This application report discusses several multichannel

More information

TMS320C5x Interrupt Response Time

TMS320C5x Interrupt Response Time TMS320 DSP DESIGNER S NOTEBOOK TMS320C5x Interrupt Response Time APPLICATION BRIEF: SPRA220 Jeff Beinart Digital Signal Processing Products Semiconductor Group Texas Instruments March 1993 IMPORTANT NOTICE

More information

Debugging Shared Memory Systems

Debugging Shared Memory Systems Application Report SPRA754 - May 2001 Debugging Shared Memory Systems Jeff Hunter Software Development Systems/Emulation Team ABSTRACT Multiple cores on a single processor often share a common block of

More information

Reading a 16-Bit Bus With the TMS320C5x Serial Port

Reading a 16-Bit Bus With the TMS320C5x Serial Port TMS320 DSP DESIGNER S NOTEBOOK Reading a 16-Bit Bus With the TMS320C5x Serial Port APPLICATION BRIEF: SPRA270 Manuel Rodrigues Digital Signal Processing Products Semiconductor Group Texas Instruments May

More information

Dual Access into Single- Access RAM on a C5x Device

Dual Access into Single- Access RAM on a C5x Device TMS320 DSP DESIGNER S NOTEBOOK Dual Access into Single- Access RAM on a C5x Device APPLICATION BRIEF: SPRA215 Mansoor Chishtie Digital Signal Processing Products Semiconductor Group Texas Instruments February

More information

COMMUNICATIONS WITH THE MULTI- CHANNEL HOST P RT INTERFACE

COMMUNICATIONS WITH THE MULTI- CHANNEL HOST P RT INTERFACE Multiple Channels COMMUNICATIONS WITH THE MULTI- CHANNEL HOST P RT INTERFACE With the HPI and McHPI, applications can create a single physical channel and multiple virtual channels to provide communications

More information

Programming the TMS320VC5509 RTC Peripheral

Programming the TMS320VC5509 RTC Peripheral Application Report SPRA384A - September 2002 Programming the TMS320VC5509 RTC Peripheral Scott Tater ABSTRACT DSP Applications Semiconductor Group This application report demonstrates the procedure used

More information

Implementation of a CELP Speech Coder for the TMS320C30 using SPOX

Implementation of a CELP Speech Coder for the TMS320C30 using SPOX Implementation of a CELP Speech Coder for the TMS320C30 using SPOX APPLICATION REPORT: SPRA401 Mark D. Grosen Spectron Microsystems, Inc Digital Signal Processing Solutions IMPORTANT NOTICE Texas Instruments

More information

C Routines for Setting Up the AIC on the TMS320C5x EVM

C Routines for Setting Up the AIC on the TMS320C5x EVM TMS320 DSP DESIGNER S NOTEBOOK C Routines for Setting Up the AIC on the TMS320C5x EVM APPLICATION BRIEF: SPRA251 Leor Brenman Digital Signal Processing Products Semiconductor Group Texas Instruments February

More information

DSP/BIOS, RTDX and Host-Target Communications

DSP/BIOS, RTDX and Host-Target Communications Application Report SPRA895 February 2003 DSP/BIOS, and Host-Target Communications Harish Thampi S / Jagan Govindarajan Software Development Systems ABSTRACT Real-Time Data Exchange ( ) provides real-time,

More information

TMS320C5x Memory Paging (Expanding its Address Reach)

TMS320C5x Memory Paging (Expanding its Address Reach) TMS320 DSP DESIGNER S NOTEBOOK TMS320C5x Memory Paging (Expanding its Address Reach) APPLICATION BRIEF: SPRA242 Contributed by Joe George Digital Signal Processing Products Semiconductor Group Texas Instruments

More information

Interfacing the ADS8320/ADS8325 to The TMS320C6711 DSP

Interfacing the ADS8320/ADS8325 to The TMS320C6711 DSP Application Report SLAA175 JUNE 2003 Interfacing the ADS8320/ADS8325 to The TMS320C6711 DSP Lijoy Philipose Data Acquisition Applications ABSTRACT This application note presents a method for interfacing

More information

Performance Analysis of Line Echo Cancellation Implementation Using TMS320C6201

Performance Analysis of Line Echo Cancellation Implementation Using TMS320C6201 Performance Analysis of Line Echo Cancellation Implementation Using TMS320C6201 Application Report: SPRA421 Zhaohong Zhang and Gunter Schmer Digital Signal Processing Solutions March 1998 IMPORTANT NOTICE

More information

Conclusions. Introduction. Objectives. Module Topics

Conclusions. Introduction. Objectives. Module Topics Conclusions Introduction In this chapter a number of design support products and services offered by TI to assist you in the development of your DSP system will be described. Objectives As initially stated

More information

Choosing the Appropriate Simulator Configuration in Code Composer Studio IDE

Choosing the Appropriate Simulator Configuration in Code Composer Studio IDE Application Report SPRA864 November 2002 Choosing the Appropriate Simulator Configuration in Code Composer Studio IDE Pankaj Ratan Lal, Ambar Gadkari Software Development Systems ABSTRACT Software development

More information

The TMS320 DSP Algorithm Standard

The TMS320 DSP Algorithm Standard White Paper SPRA581C - May 2002 The TMS320 DSP Algorithm Standard Steve Blonstein Technical Director ABSTRACT The TMS320 DSP Algorithm Standard, also known as XDAIS, is part of TI s expressdsp initiative.

More information

I2C and the TAS3001C. Introduction. The I2C Protocol. Digital Audio Group ABSTRACT

I2C and the TAS3001C. Introduction. The I2C Protocol. Digital Audio Group ABSTRACT Application Report SLEA001 February 2001 I2C and the TAS3001C Digital Audio Group ABSTRACT The TAS3001C stereo audio digital equalizer provides a serial control interface using the I2C protocol. Since

More information

Single thread Scheduler All processes called once each sample

Single thread Scheduler All processes called once each sample Single thread Scheduler All processes called once each sample void main(void) { init_routines(); done = 0; while (!done) { perform_process1(); // Highest priority process perform_process2(); perform_process3();//

More information

Using the bq3285/7e in a Green or Portable Environment

Using the bq3285/7e in a Green or Portable Environment in a Green or Portable Environment Introduction The bq3285/7e Real-Time Clock is a PC/AT-compatible real-time clock that incorporates three enhanced features to facilitate power management in Green desktop

More information

TMS320 DSP DESIGNER S NOTEBOOK. Serial ROM Boot APPLICATION BRIEF: SPRA233. Alex Tessarolo Digital Signal Processing Products Semiconductor Group

TMS320 DSP DESIGNER S NOTEBOOK. Serial ROM Boot APPLICATION BRIEF: SPRA233. Alex Tessarolo Digital Signal Processing Products Semiconductor Group TMS320 DSP DESIGNER S NOTEBOOK Serial ROM Boot APPLICATION BRIEF: SPRA233 Alex Tessarolo Digital Signal Processing Products Semiconductor Group Texas Instruments May 1994 IMPORTANT NOTICE Texas Instruments

More information

DSP/BIOS LINK. Configurable TSK and SWI approach LNK 207 DES. Version <1.00>

DSP/BIOS LINK. Configurable TSK and SWI approach LNK 207 DES. Version <1.00> DESIGN DOCUMENT DSP/BIOS LINK Version Template Version 12 Version Page 1 of 21 This page has been intentionally left blank Version Page 2 of 21 IMPORTANT NOTICE Texas Instruments Incorporated

More information

Techniques for Profiling on ROM-Based Applications

Techniques for Profiling on ROM-Based Applications Application Report SPRA761 June 2001 Techniques for Profiling on ROM-Based Applications Harsh Sabikhi Code Composer Studio, Applications Engineering ABSTRACT This application report describes the methods

More information

Writing Flexible Device Drivers for DSP/BIOS II

Writing Flexible Device Drivers for DSP/BIOS II Application Report SPRA700 October 2000 Writing Flexible Device Drivers for DSP/BIOS II Jack Greenbaum Texas Instruments, Santa Barbara ABSTRACT I/O device drivers play an integral role in digital signal

More information

Using the TMS320C5509 USB Bootloader

Using the TMS320C5509 USB Bootloader Application Report SPRA840 - October 2002 Using the TMS320C5509 USB Bootloader Mathew George, Jr. (Joe) Clay Turner ABSTRACT C5000 DSP Applications Boot loading the TMS320VC5509 digital signal processor

More information

Micrium µc/os II RTOS Introduction EE J. E. Lumpp

Micrium µc/os II RTOS Introduction EE J. E. Lumpp Micrium µc/os II RTOS Introduction (by Jean Labrosse) EE599 001 Fall 2012 J. E. Lumpp μc/os II μc/os II is a highly portable, ROMable, very scalable, preemptive real time, deterministic, multitasking kernel

More information

DSP II: ELEC TSK and SEM Modules

DSP II: ELEC TSK and SEM Modules Objectives DSP II: ELEC 4523 TSK and SEM Modules Become familiar with TSK and SEM modules and their use Reading SPRU423 TMS320 DSP/BIOS Users Guide: Tasks (section), Semaphores (section) PowerPoint Slides

More information

Nested Loop Optimization on the TMS320C6x

Nested Loop Optimization on the TMS320C6x Nested Loop Optimization on the TMS320C6x Richard Scales Digital Signal Processing Solutions Abstract This document descibes the process used to develop and optimize nested loops for the Texas Instruments

More information

Grand Central Dispatch

Grand Central Dispatch A better way to do multicore. (GCD) is a revolutionary approach to multicore computing. Woven throughout the fabric of Mac OS X version 10.6 Snow Leopard, GCD combines an easy-to-use programming model

More information

The PCMCIA DSP Card: An All-in-One Communications System

The PCMCIA DSP Card: An All-in-One Communications System The PCMCIA DSP Card: An All-in-One Communications System Application Report Raj Chirayil Digital Signal Processing Applications Semiconductor Group SPRA145 October 1994 Printed on Recycled Paper IMPORTANT

More information

SN5446A, 47A, 48, SN54LS47, LS48, LS49 SN7446A, 47A, 48, SN74LS47, LS48, LS49 BCD-TO-SEVEN-SEGMENT DECODERS/DRIVERS

SN5446A, 47A, 48, SN54LS47, LS48, LS49 SN7446A, 47A, 48, SN74LS47, LS48, LS49 BCD-TO-SEVEN-SEGMENT DECODERS/DRIVERS PRODUCTION DATA information is current as of publication date. Products conform to specifications per the terms of Texas Instruments standard warranty. Production processing does not necessarily include

More information

Bit-reversed Addressing without Data Alignment on the C3x

Bit-reversed Addressing without Data Alignment on the C3x TMS320 DSP DESIGNER S NOTEBOOK Bit-reversed Addressing without Data Alignment on the C3x APPLICATION BRIEF: SPRA199 Tim Grady Digital Signal Processing Products Semiconductor Group Texas Instruments December

More information

Speech Control for Virtual Instruments Using the TMS320C30 DSP

Speech Control for Virtual Instruments Using the TMS320C30 DSP Disclaimer: This document was part of the First European DSP Education and Research Conference. It may have been written by someone whose native language is not English. TI assumes no liability for the

More information

Implementing Scheduling Algorithms. Real-Time and Embedded Systems (M) Lecture 9

Implementing Scheduling Algorithms. Real-Time and Embedded Systems (M) Lecture 9 Implementing Scheduling Algorithms Real-Time and Embedded Systems (M) Lecture 9 Lecture Outline Implementing real time systems Key concepts and constraints System architectures: Cyclic executive Microkernel

More information

Understanding the TMS320C54x Memory Map and Examining an Optimum C5000 Memory Interface

Understanding the TMS320C54x Memory Map and Examining an Optimum C5000 Memory Interface Application Report SPRA607 - November 1999 Understanding the TMS320C54x Memory Map and Examining an Optimum C5000 Memory Interface Mathew George, Jr. (Joe) Texas Instruments Incorporated Natural Microsystems

More information

Using the TMS320 DSP Algorithm Standard in a Dynamic DSP System

Using the TMS320 DSP Algorithm Standard in a Dynamic DSP System Application Report SPRA580B Using the TMS320 DSP Algorithm Standard in a Dynamic DSP System Carl Bergman Digital Signal Processing Solutions Abstract This application note illustrates some techniques used

More information

TMS320 DSP/BIOS User s Guide

TMS320 DSP/BIOS User s Guide TMS320 DSP/BIOS User s Guide Literature Number: SPRU423A November 2001 Printed on Recycled Paper IMPORTANT NOTICE Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections,

More information

TMS320C6000 DSP 32-Bit Timer Reference Guide

TMS320C6000 DSP 32-Bit Timer Reference Guide TMS320C6000 DSP 32-Bit Timer Reference Guide Literature Number: SPRU582A July 2003 Revised October 2004 Contents TMS320C6000 DSP 32-Bit Timer... 2 Table of Contents... 2 Preface... 3 1 Overview... 5 2

More information

UNIT -3 PROCESS AND OPERATING SYSTEMS 2marks 1. Define Process? Process is a computational unit that processes on a CPU under the control of a scheduling kernel of an OS. It has a process structure, called

More information

Tasks. Task Implementation and management

Tasks. Task Implementation and management Tasks Task Implementation and management Tasks Vocab Absolute time - real world time Relative time - time referenced to some event Interval - any slice of time characterized by start & end times Duration

More information

A Multichannel/Algorithm Implementation on the TMS320C6000 DSP

A Multichannel/Algorithm Implementation on the TMS320C6000 DSP Application Report SPRA556B- February 2000 A Multichannel/Algorithm Implementation on the TMS320C6000 DSP Xiangdong Fu Zhaohong Zhang C6000 Applications ABSTRACT This application report describes how to

More information

TMS320C64x DSP Peripheral Component Interconnect (PCI) Performance

TMS320C64x DSP Peripheral Component Interconnect (PCI) Performance Application Report SPRA965 October 2003 TMS320C64x DSP Peripheral Component Interconnect (PCI) Performance Stéphane Smith C6x Device Applications ABSTRACT This application report describes the number of

More information

ZiLOG Real-Time Kernel Version 1.2.0

ZiLOG Real-Time Kernel Version 1.2.0 ez80acclaim Family of Microcontrollers Version 1.2.0 PRELIMINARY Introduction The (RZK) is a realtime, preemptive, multitasking kernel designed for time-critical embedded applications. It is currently

More information

C Fast RTS Library User Guide (Rev 1.0)

C Fast RTS Library User Guide (Rev 1.0) C Fast RTS Library User Guide (Rev 1.0) Revision History 22 Sep 2008 Initial Revision v. 1.0 IMPORTANT NOTICE Texas Instruments and its subsidiaries (TI) reserve the right to make changes to their products

More information

The TMS320 DSP Algorithm Standard

The TMS320 DSP Algorithm Standard The TMS320 DSP Algorithm Standard Steve Blonstein Technical Director Abstract The TMS320 DSP Algorithm Standard is part of TI's expressdsp TM (XDAIS) initiative. The purpose of the standard is to reduce

More information

Zilog Real-Time Kernel

Zilog Real-Time Kernel An Company Configurable Compilation RZK allows you to specify system parameters at compile time. For example, the number of objects, such as threads and semaphores required, are specez80acclaim! Family

More information

Operating Systems Design Fall 2010 Exam 1 Review. Paul Krzyzanowski

Operating Systems Design Fall 2010 Exam 1 Review. Paul Krzyzanowski Operating Systems Design Fall 2010 Exam 1 Review Paul Krzyzanowski pxk@cs.rutgers.edu 1 Question 1 To a programmer, a system call looks just like a function call. Explain the difference in the underlying

More information

A DSP/BIOS EDMA McBSP Device Driver for TMS320C6x1x DSPs

A DSP/BIOS EDMA McBSP Device Driver for TMS320C6x1x DSPs Application Report SPRA846A June 2003 A DSP/BIOS EDMA McBSP Device Driver for TMS320C6x1x DSPs ABSTRACT Software Development Systems This document describes the usage and design of the generic TMS320C6x1x

More information

Engineer-to-Engineer Note

Engineer-to-Engineer Note Engineer-to-Engineer Note EE-377 Technical notes on using Analog Devices products and development tools Visit our Web resources http://www.analog.com/ee-notes and http://www.analog.com/processors or e-mail

More information

TMS320 DSP Algorithm Standard

TMS320 DSP Algorithm Standard R E A L W O R L D S I G N A L P R O C E S S I N G Product Bulletin TMS320 DSP Algorithm Standard Key Features and Benefits Algorithm Developer s Kit v2.51 Available Now Enables quicker and easier algorithm

More information

Developing Core Software Technologies for TI s OMAP Platform

Developing Core Software Technologies for TI s OMAP Platform SWPY006 - August 2002 White Paper By Justin Helmig Texas Instruments Senior Technical Staff, Wireless Software Applications Texas Instruments OMAP platform for wireless handsets offers a powerful hardware

More information

CODE TIME TECHNOLOGIES. Abassi RTOS. Porting Document. ARM Cortex-A9 CCS

CODE TIME TECHNOLOGIES. Abassi RTOS. Porting Document. ARM Cortex-A9 CCS CODE TIME TECHNOLOGIES Abassi RTOS Porting Document ARM Cortex-A9 CCS Copyright Information This document is copyright Code Time Technologies Inc. 2012. All rights reserved. No part of this document may

More information

Configuring Code Composer Studio for OMAP Debugging

Configuring Code Composer Studio for OMAP Debugging Application Report SPRA807 - November 2001 Configuring Code Composer Studio for OMAP Debugging Harry Thompson Software Development Systems/Customer Support ABSTRACT The OMAP Code Composer Studio (CCStudio)

More information

TMS320C6000 DSP Interrupt Selector Reference Guide

TMS320C6000 DSP Interrupt Selector Reference Guide TMS320C6000 DSP Interrupt Selector Reference Guide Literature Number: January 2004 IMPORTANT NOTICE Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections, modifications,

More information

Using Boundary Scan on the TMS320VC5420

Using Boundary Scan on the TMS320VC5420 Application Report SPRA597 - November 1999 Using Boundary Scan on the TMS320VC5420 Clay Turner C5000 Applications Team ABSTRACT The Texas Instruments (TI ) TMS320VC5420 DSP implements limited boundary

More information

GLOSSARY. VisualDSP++ Kernel (VDK) User s Guide B-1

GLOSSARY. VisualDSP++ Kernel (VDK) User s Guide B-1 B GLOSSARY Application Programming Interface (API) A library of C/C++ functions and assembly macros that define VDK services. These services are essential for kernel-based application programs. The services

More information

Using LDOs and Power Managers in Systems With Redundant Power Supplies

Using LDOs and Power Managers in Systems With Redundant Power Supplies Application Report SLVA094 - November 000 Using LDOs and Power Managers in Systems With Redundant Power Supplies Ludovic de Graaf TI Germany ABSTRACT For reasons of continuity in some systems, independent

More information

A New Real-time Kernel development on an embedded platform

A New Real-time Kernel development on an embedded platform A New Real-time Kernel development on an embedded platform CSC714: Real Time Systems Project Final Report Spring 2009 BALASUBRAMANYA BHAT (bbhat@ncsu.edu) SANDEEP BUDANUR RAMANNA (sbudanu@ncsu.edu) - 1

More information

CODE TIME TECHNOLOGIES. mabassi RTOS. Porting Document. SMP / ARM Cortex-A9 CCS

CODE TIME TECHNOLOGIES. mabassi RTOS. Porting Document. SMP / ARM Cortex-A9 CCS CODE TIME TECHNOLOGIES mabassi RTOS Porting Document SMP / ARM Cortex-A9 CCS Copyright Information This document is copyright Code Time Technologies Inc. 2012-2016. All rights reserved. No part of this

More information

Institutionen för systemteknik

Institutionen för systemteknik Institutionen för systemteknik Department of Electrical Engineering Examensarbete The Real-Time Multitask Threading Control Master thesis performed in Computer Engineering division by Shuang Han LiTH-ISY-EX--07/4132--SE

More information

Getting Started Guide: TMS-FET470A256 IAR Kickstart Development Kit

Getting Started Guide: TMS-FET470A256 IAR Kickstart Development Kit Getting Started Guide: TMS-FET470A256 IAR Kickstart Development Kit Skrtic/Mangino Page 1 of 11 SPNU250 IMPORTANT NOTICE Texas Instruments and its subsidiaries (TI) reserve the right to make changes to

More information

DSP II: ELEC STS Module

DSP II: ELEC STS Module Objectives DSP II: ELEC 4523 STS Module Become familiar with STS module and its use Reading SPRU423 TMS320 DSP/BIOS Users Guide: Statistics Object Manager (STS Module) (section) PowerPoint Slides from

More information

TMS320 DSP DESIGNER S NOTEBOOK. Multipass Linking APPLICATION BRIEF: SPRA257. Tom Horner Digital Signal Processing Products Semiconductor Group

TMS320 DSP DESIGNER S NOTEBOOK. Multipass Linking APPLICATION BRIEF: SPRA257. Tom Horner Digital Signal Processing Products Semiconductor Group TMS320 DSP DESIGNER S NOTEBOOK Multipass Linking APPLICATION BRIEF: SPRA257 Tom Horner Digital Signal Processing Products Semiconductor Group Texas Instruments February 1995 IMPORTANT NOTICE Texas Instruments

More information

TMS320 DSP Algorithm Standard Demonstration Application

TMS320 DSP Algorithm Standard Demonstration Application TMS320 DSP Algorithm Standard Demonstration Application Literature Number: SPRU361E September 2002 Printed on Recycled Paper IMPORTANT NOTICE Texas Instruments Incorporated and its subsidiaries (TI) reserve

More information

TMS320 DSP/BIOS User s Guide

TMS320 DSP/BIOS User s Guide TMS320 DSP/BIOS User s Guide Literature Number: SPRU423E March 2004 IMPORTANT NOTICE Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections, modifications, enhancements,

More information

TI TMS320C6000 DSP Online Seminar

TI TMS320C6000 DSP Online Seminar TI TMS320C6000 DSP Online Seminar Agenda Introduce to C6000 DSP Family C6000 CPU Architecture Peripheral Overview Development Tools express DSP Q & A Agenda Introduce to C6000 DSP Family C6000 CPU Architecture

More information

External Programming of the TMS320C64x EDMA for Low Overhead Data Transfers

External Programming of the TMS320C64x EDMA for Low Overhead Data Transfers Application Report SPRAA36 July 2004 External Programming of the TMS320C64x EDMA for Low Overhead Data Transfers Sébastien Tomas Wireless Infrastructure ABSTRACT This application report details a mechanism

More information

TMS320C6000 DSP Software-Programmable Phase-Locked Loop (PLL) Controller Reference Guide

TMS320C6000 DSP Software-Programmable Phase-Locked Loop (PLL) Controller Reference Guide TMS320C6000 DSP Software-Programmable Phase-Locked Loop (PLL) Controller Reference Guide Literature Number: April 2003 IMPORTANT NOTICE Texas Instruments Incorporated and its subsidiaries (TI) reserve

More information

As of October 1, 1998, our address is:

As of October 1, 1998, our address is: 3 Hi/fn TM supplies two of the Internet s most important raw materials: compression and encryption. Hi/fn is also the world s first company to put both on a single chip, creating a processor that performs

More information

Performance Analysis of Face Recognition Algorithms on TMS320C64x

Performance Analysis of Face Recognition Algorithms on TMS320C64x Application Report SPRA874 December 2002 Performance Analysis of Face Recognition Algorithms on TMS320C64x Aziz Umit Batur and Bruce E. Flinchbaugh DSP Solutions R&D Center ABSTRACT Face recognition is

More information

Introduction. CS3026 Operating Systems Lecture 01

Introduction. CS3026 Operating Systems Lecture 01 Introduction CS3026 Operating Systems Lecture 01 One or more CPUs Device controllers (I/O modules) Memory Bus Operating system? Computer System What is an Operating System An Operating System is a program

More information

SN54F38, SN74F38 QUADRUPLE 2-INPUT POSITIVE-NAND BUFFERS WITH OPEN-COLLECTOR OUTPUTS

SN54F38, SN74F38 QUADRUPLE 2-INPUT POSITIVE-NAND BUFFERS WITH OPEN-COLLECTOR OUTPUTS SNF, SN7F SDFS0A MARCH 7 REVISED OCTOBER Package Options Include Plastic Small-Outline Packages, Ceramic Chip Carriers, and Standard Plastic and Ceramic 00-mil DIPs description These devices contain four

More information

Memory Allocation Techniques in System with Dynamic Swapping of Application Codes

Memory Allocation Techniques in System with Dynamic Swapping of Application Codes Application Report SPRA824 June 2002 Memory Allocation Techniques in System with Dynamic Swapping of Application Codes Oh, Hong Lye SC Field Applications, Texas Instruments Singapore ABSTRACT This application

More information

Mechatronics Laboratory Assignment #1 Programming a Digital Signal Processor and the TI OMAPL138 DSP/ARM

Mechatronics Laboratory Assignment #1 Programming a Digital Signal Processor and the TI OMAPL138 DSP/ARM Mechatronics Laboratory Assignment #1 Programming a Digital Signal Processor and the TI OMAPL138 DSP/ARM Recommended Due Date: By your lab time the week of January 29 th Possible Points: If checked off

More information

TMS320C620x/C670x DSP Boot Modes and Configuration Reference Guide

TMS320C620x/C670x DSP Boot Modes and Configuration Reference Guide TMS320C620x/C670x DSP Reference Guide Literature Number: July 2003 IMPORTANT NOTICE Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections, modifications, enhancements,

More information

DatasheetDirect.com. Visit to get your free datasheets. This datasheet has been downloaded by

DatasheetDirect.com. Visit  to get your free datasheets. This datasheet has been downloaded by DatasheetDirect.com Your dedicated source for free downloadable datasheets. Over one million datasheets Optimized search function Rapid quote option Free unlimited downloads Visit www.datasheetdirect.com

More information

SN54BCT760, SN74BCT760 OCTAL BUFFERS/DRIVERS WITH OPEN-COLLECTOR OUTPUTS

SN54BCT760, SN74BCT760 OCTAL BUFFERS/DRIVERS WITH OPEN-COLLECTOR OUTPUTS SNBCT0, SNBCT0 SCBS0B JULY REVISED NOVEMBER Open-Collector Version of BCT Open-Collector Outputs Drive Bus Lines or Buffer Memory Address Registers ESD Protection Exceeds 000 V Per MIL-STD-C Method 0 Packages

More information

DSP/BIOS Driver Developer's Guide

DSP/BIOS Driver Developer's Guide DSP/BIOS Driver Developer's Guide Literature Number: SPRU616 November 2002 IMPORTANT NOTICE Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections, modifications,

More information

Using Endianess Conversion in the OMAP5910 Device

Using Endianess Conversion in the OMAP5910 Device Application Report SWPA027 May 2004 Using Endianess Conversion in the OMAP5910 Device Matthias Kassner ABSTRACT The OMAP5910 device features a new dual-core architecture from Texas Instruments (TI) that

More information

Embedded Target for TI C6000 DSP 2.0 Release Notes

Embedded Target for TI C6000 DSP 2.0 Release Notes 1 Embedded Target for TI C6000 DSP 2.0 Release Notes New Features................... 1-2 Two Virtual Targets Added.............. 1-2 Added C62x DSP Library............... 1-2 Fixed-Point Code Generation

More information

Xinu on the Transputer

Xinu on the Transputer Purdue University Purdue e-pubs Department of Computer Science Technical Reports Department of Computer Science 1990 Xinu on the Transputer Douglas E. Comer Purdue University, comer@cs.purdue.edu Victor

More information

Connecting TMS320C54x DSP with Flash Memory

Connecting TMS320C54x DSP with Flash Memory Connecting TMS32C54x DSP with Flash Memory Jason Jiang Customer Application Center TI (Shanghai) Abstract Flash memory offers better cost per bit than traditional EPROM when storage density increases.

More information

What s An OS? Cyclic Executive. Interrupts. Advantages Simple implementation Low overhead Very predictable

What s An OS? Cyclic Executive. Interrupts. Advantages Simple implementation Low overhead Very predictable What s An OS? Provides environment for executing programs Process abstraction for multitasking/concurrency scheduling Hardware abstraction layer (device drivers) File systems Communication Do we need an

More information

A Predictable RTOS. Mantis Cheng Department of Computer Science University of Victoria

A Predictable RTOS. Mantis Cheng Department of Computer Science University of Victoria A Predictable RTOS Mantis Cheng Department of Computer Science University of Victoria Outline I. Analysis of Timeliness Requirements II. Analysis of IO Requirements III. Time in Scheduling IV. IO in Scheduling

More information

TMS470R1VF334E TMS470 Microcontrollers Silicon Errata

TMS470R1VF334E TMS470 Microcontrollers Silicon Errata TMS470R1VF334E TMS470 Microcontrollers Silicon Errata Silicon Revision C August 2005 Copyright 2005, Texas Instruments Incorporated Contents 1 Known Design Marginality/Exceptions to Functional Specifications.....................................

More information

CODE TIME TECHNOLOGIES. Abassi RTOS. Porting Document C28X CCS

CODE TIME TECHNOLOGIES. Abassi RTOS. Porting Document C28X CCS CODE TIME TECHNOLOGIES Abassi RTOS Porting Document C28X CCS Copyright Information This document is copyright Code Time Technologies Inc. 2012-2013. All rights reserved. No part of this document may be

More information

BASICS OF THE RENESAS SYNERGY PLATFORM

BASICS OF THE RENESAS SYNERGY PLATFORM BASICS OF THE RENESAS SYNERGY PLATFORM TM Richard Oed 2017.12 02 CHAPTER 9 INCLUDING A REAL-TIME OPERATING SYSTEM CONTENTS 9 INCLUDING A REAL-TIME OPERATING SYSTEM 03 9.1 Threads, Semaphores and Queues

More information

BASICS OF THE RENESAS SYNERGY TM

BASICS OF THE RENESAS SYNERGY TM BASICS OF THE RENESAS SYNERGY TM PLATFORM Richard Oed 2018.11 02 CHAPTER 9 INCLUDING A REAL-TIME OPERATING SYSTEM CONTENTS 9 INCLUDING A REAL-TIME OPERATING SYSTEM 03 9.1 Threads, Semaphores and Queues

More information

CODE TIME TECHNOLOGIES. Abassi RTOS. Porting Document. ARM Cortex-M3 CCS

CODE TIME TECHNOLOGIES. Abassi RTOS. Porting Document. ARM Cortex-M3 CCS CODE TIME TECHNOLOGIES Abassi RTOS Porting Document ARM Cortex-M3 CCS Copyright Information This document is copyright Code Time Technologies Inc. 2011,2012. All rights reserved. No part of this document

More information

Moving a TMS320C54x DSP/BIOS Application to the TMS320C55x DSP/BIOS Application

Moving a TMS320C54x DSP/BIOS Application to the TMS320C55x DSP/BIOS Application Application Report SPRA775 - August 2001 Stephen Lau, Vijaya Sarathy Moving a TMS320C54x DSP/BIOS Application to the TMS320C55x DSP/BIOS Application ABSTRACT The TMS320C54x processor is upwardly compatible

More information

DSP/BIOS Link. Platform Guide Published on 20 th JUNE Copyright 2009 Texas Instruments Incorporated.

DSP/BIOS Link. Platform Guide Published on 20 th JUNE Copyright 2009 Texas Instruments Incorporated. DSP/BIOS Link Platform Guide 1.63 Published on 20 th JUNE 2009 Copyright 2009 Texas Instruments Incorporated. 2 Platform Support Products Version 1.63 IMPORTANT NOTICE Texas Instruments Incorporated and

More information

Increase Current Drive Using LVDS

Increase Current Drive Using LVDS Application Report SLLA100 May 2001 Increase Current Drive Using LVDS Steve Corrigan DSBU LVDS ABSTRACT The most common configuration for an LVDS connection is the one-way transmission topology. A single

More information

As of October 1, 1998, our address is:

As of October 1, 1998, our address is: 033& 6 Hi/fn TM supplies two of the Internet s most important raw materials: compression and encryption. Hi/fn is also the world s first company to put both on a single chip, creating a processor that

More information

TMS320UC5409/TMS320VC5409 Digital Signal Processors Silicon Errata

TMS320UC5409/TMS320VC5409 Digital Signal Processors Silicon Errata TMS320UC5409/TMS320VC5409 Digital Signal Processors Silicon Errata January 2000 Revised October 2001 Copyright 2001, Texas Instruments Incorporated Contents 1 Introduction........................................................................................

More information