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 The site is now set to read only.


From Texas Instruments Wiki
Jump to: navigation, search

Q: What is the size of the TI bootloader? 8k bytes or 8k words long?

  • A: Short answer: 8Kbytes
  • A: The bootloader code resides in the ROM of the DSP, but during execution the bootloader uses SARAM31 as scratch memory to temporarily store data. For this reason you cannot use SARAM31 to hold any program code. But once the bootloader completes execution and hands off control to your program, then you can use SARAM31 freely.
  • A: The SARAM31 block is 4Kwords or 8Kbytes long.

Q: How do I get my TMS320C5515 EVM + MDK Analog Front End to mate together?

  • A: The J13 connector on the C5515 EVM has an extra pin pair (pins 21 and 22) that are not used by the AFE daugthercards. To install one of the MDK AFEs on the C5515 EVM line up connectors J14 and J10 on the EVM to the mating connector on the AFE. Pins 21 and 22 on the J14 connector will be uncovered if aligned correctly. Push AFE firmly onto the EVM to seat the connectors and you are ready to go.

Q: How do I get my MDK Application to compile successfully under CCSv4?

Environment MDK Application (Digital Stethoscope, Pulse Oximeter, ECG) originally developed under CCSv3.3 is imported into CCSv4.x. Compilation is generating errors such as this under CCSv4.x:

../inc/ECGSystemInit.h", line 47: fatal error: could not open source file "std.h"
1 fatal error detected in the compilation of "../src/ADS1298Init.c".
Compilation terminated.
'Building file: ../src/llc_uart.c'
'Invoking: Compiler'
"C:/ti/CCSv41/ccsv4/tools/compiler/C5500 Code Generation Tools 4.3.6/bin/cl55" -@ccsCompiler.opt
"../src/llc_uart.c", line 113: error: identifier "TRUE" is undefined
"../src/llc_uart.c", line 179: error: identifier "FALSE" is undefined
"../src/llc_uart.c", line 419: error: identifier "FALSE" is undefined
"../src/llc_uart.c", line 453: error: identifier "FALSE" is undefined
4 errors detected in the compilation of "../src/llc_uart.c".

Answer There are two issues with the migration from CCSv3.3 to CCSv4.x. First is that BIOS file(s) are being included in the MDK project even though it is not a BIOS based application. That is the the reason for the error message on std.h. To correct this problem add a path to the BIOS include folder which is located at \packages\ti\bios\include in the BIOS install folder. Define the search path in Build Properties -> C/C++ Build -> C5500 Compiler -> Include Options. Use the icon with the green (+) sign.

The second problem is with the TRUE/FALSE definitions. It turns out that CCSv4 has a different search order on Include paths than CCSv3.3. CCSv4.x is having compiler search the local project header files last. So for instance in example above llc_uart.c is generating the TRUE/FALSE error messages. However, if you look in the file you will see that header file psp_common.h contains a reference to tistdtypes.h where TRUE/FALSE are defined. Then in psp_common.h True/False are defined. Sounds good, right?

Well what is actually happening is that CCSv4 defines the include file search path order under Build Properties -> C5500 Compiler -> Include Options. CCSv4 has the local folders for the project defined last in the search list. Unfortunately, there is a tistdtypes.h file in both BIOS and CSL folders (first on the search list). In the example case the BIOS folder was listed first and the Compiler thought it had found the correct header file. The BIOS tistdtypes.h does not have a definition for TRUE/FALSE so we get the error message. You see which version of a file is being used by the compiler using the tabs in the editor window for the C/C++ mode. If you hover over llc_uart.c, you will see the location of the this file - it is correct. Now if you highlight the line #include <psp_common.h> and right click you will see the option to open the file psp_common.h. Select that option and psp_common.h will open in a new tab in the editor window. Hover over the tab and you will see the path is correct. Now do the same thing to #include <tistdtypes.h> line in psp_common.h. Once the file is open, hover over the tab and you will see that this is not pointing to the correct version of tistdtypes.h. That's why the build is failing.

To correct this issue open Build Properties -> C/C++ Build option -> Tool Settings tab -> Include Options. You will see the search paths defined and the order that CCSv4 will search them. Take the 4 locally defined folders: \inc, \common_inc, \src and \common_src (doesn't actually exist in this project) and move them to the top of the search list. You can do that by using the Move UP and Move DOWN icons across the top of the definition window. Once you do this you should be able to get the build to complete successfully (but with 20 warnings).

Problem was originally described in this E2E Forum post:

Q: How do I get my TMS320C5515 EVM + MDK Analog Front End programmed for Stand Alone Mode?


There is an omission in the MDK Application Notes:


Pulse Oximeter

Digital Stethoscope

Section 5.1, Components and Accessories Required, should have stated that VC5505 EVM with the 3.3V Memory Daughtercard installed is required. The daughtercard is shown in Fig 2. Also, Sec 5.3.3, step #9 shows command used to program the flash as 241 which indicates that the NOR flash on the daughtercard is being programmed.

How do I get the demo software application to run for my TMS320C5515 EVM + Pulse Oximeter analog front-end board?


NOTE: MDK Applications are developed on CCSv3.3 and directions in app note and this Wiki article are assuming that development environment

The software organization and content shown in Section 5.3.1, Table 2 of the application note is incorrect from the perspective of the delivered software. The discussion below will cover the software delivered with the CD. The software downloaded from the web site is similar, but differnt so won't be covered here. Once you get the procedure worked out for the CD software you should be able to adapt this to the software download.

The software delivered on the CD had the following organization:

> Software Files
       > C550X Software        // Demo software to run on C5505 EVM
              > Output               // Pre-compiled DSP application and CCS gel file
              > SpO2_System_v_5_0    // Code Composer Studio Pulse Ox application project and software
       > PC Application        // Communication and display application to run on PC.

There is no file delivered with the MDK kit or available from the download site.

Below I will go through sections 5.3 through 6.2 to provide corrections to the procedure for installing and running the DSP application on the EVM shown in the application note. The instructions for installing the PC Application (section 5.3.4) and running it (section 6.3) are essentially correct so won't be covered here.

Section 5.3.1:

Follow the directions for installing and testing that came with the C5505 EVM. You won't need the Spectrum Digital XDS510 driver because you will be using the embedded emulation on the EVM which is connected via the EMU USB connector.

Section 5.3.2

I recommend copying the \C550X Software folder to \MyProjects folder for CCS3.3. Not necessary, but convenient.

Section 5.3.3

Skip this section because the file is not delivered with the MDK kit, so won't be used. Therefore, there is no "Stand Alone" mode of operation.

Section 6.1

Skip this section because there is no "Stand Alone" mode available.

Section 6.2

step #5: The project name is actually SpO2.pjt and is located in folder \C550X Software\SpO2_v_5_0 which is located in the MyProjects folder if you followed the suggestion above.

step #6: The location of the application .out file in the folder \C550X Software\Output

step #7: Execute the application by selecting Debug -> Run from CCS menu.

step #8: I found on my installation using a Philips sensor that I had to open finger clip slightly to get the MDK to read the sensor output and display data on the display. If I didn't do that I got red sweeping display indicating that the sensor couldn't be read.

Q: Which Pulse Oximeter finger sensor is required to get the demo application to work with the C5515 EVM and Pulse Oximeter MDK kit?

  • A: The sensor that we have working successfully is actually made by Biometric Cables. The link for the Biometric Cables sensor is: Sensor Page. It is listed as the Nellcor NPB -180,190 P/No:020101001.
  • A: Biometric Cables is an Indian company the software developers worked to select a compatible fingertip sensor.
  • A: When other compatible fingertip sensors are identified they will be listed here.
  • A: NOTE: The web site for the sensor listed in the PulseOx App Note has an incorrect URL. It should be and not .net as shown.
  • A: References: PulseOx Sensor Page

Q: What crystal do I need to plug into the OSC1 on the 5515 EVM to provide a clock for the AIC3204?

  • A: A 12 Mhz oscillator is needed. The part number is 12.000MHZ, ECS-2200B, China J7C
  • A: 4-pin 12.000MHz Crystal ex: ECS-2200B-120 (Digikey)

Q: Using CCS 3.3 with the 5515 EVM

  • Make sure you make sure you have the latest CCS 3.3. is the latest.
  • Get the spectrum digital drivers at will give you an overview. Install both packages in step 1. Read the patch release notes (in the second note dated Sept 22) and you should have all the needed drivers.
  • For the 5515 EVM, select the “evm5505 embedded USB”, this uses the as the driver which is used on the 5515 EVM. You can either do a custom board and setup the cpu or just select it from the factory board section.
  • Technical documentation for the 5515 EVM are at:
  • Make sure to have a GEL file. There is a default one, and CCS has one. is commonly used.

Related FAQs

Related Articles