This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PSP MMC SD Card Example Write Speed

Other Parts Discussed in Thread: SYSBIOS, OMAP-L138

I am currently experimenting with the mmcsd_fatfs example in the biospsp_03_00_01_00 release.  I've gotten the project to run correctly and I can see files show up on my SD Card, however the time to write files seems extraordinarily long.  I am using a SanDisk Ultra 64GB microSDXC Class 10 UHS-1 which the vendor claims should be capable of 40MB/s (I know it's hard to achieve this) but using the project in the psp folder I'm seeing more like 300KB/s.


I've increased the write sectors to 500 which in the example program increases the buffer size to 256000 bytes.  This buffer is then directly passed to the fwrite call. 

What am I missing?  I'm assuming that the psp driver using the FatFs can go faster and hopefully it's just a configuration setting that I'm missing. 

Any help would be appreciated.

Thanks

David

Here's the code I modified in the mmcsd_fatfs project:

/*
 * mmcsdSample_io.c
 *
 * This sample application, is a representative test program. This application
 * tests MMCSD driver on Bios 6.
 *
 * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/
 *
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions
 *  are met:
 *
 *    Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 *    Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the
 *    distribution.
 *
 *    Neither the name of Texas Instruments Incorporated nor the names of
 *    its contributors may be used to endorse or promote products derived
 *    from this software without specific prior written permission.
 *
 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 */

/** \file   mmcsdSample_io.c
 *
 *  \brief  Demo fatfs application for the MMCSD driver
 *
 *  This sample application, is a representative test program.
 *  This application test MMCSD driver on Bios.
 *
 *  (C) Copyright 2010, Texas Instruments, Inc
 *
 */

#include <xdc/std.h>
#include <ti/sysbios/BIOS.h>
#include <ti/sysbios/io/iom.h>
#include <ti/sysbios/knl/Semaphore.h>
#include "ti/sysbios/knl/task.h"
#include <xdc/runtime/System.h>
#include <xdc/runtime/Error.h>
#include <xdc/runtime/Log.h>
#include <xdc/runtime/Timestamp.h>
#include <xdc/runtime/Types.h>

#include <string.h>
#include <file.h>
#include <stdio.h>
#include <stdlib.h>

#include "platforms/evm6748/Mmcsd_evmInit.h"

#include "mmcsd/include/psp_mmcsd.h"
#include "blkmedia/include/psp_blkdev.h"

#include "ti/sysbios/fatfs/ff.h"
#include "ti/sysbios/fatfs/diskio.h"

#define PSP_MMCSD_SAMPLE_DRIVE            1U
/* This is the driver number associated with MMCSD drive                       */
#define MMC_INST_ID                     0U
/*Instance no of mmcsd                                                        */

/*#define NUM_SECTORS                     6144U*/
#define NUM_SECTORS                     6144U
/*No of Bytes in drive to format                                              */
#define FILESYS_BYTE_COUNT                      (NUM_SECTORS * 512U)

/*No of sectors read or written                                               */
#define WRITE_SECTORS                 500
/* No of bytes to write or read                                               */
#define BYTE_COUNT                      (WRITE_SECTORS * 512U)

#define INCLUDE_MEDIA_WP_TEST           0
/*This will enable the WP test on the media.                                  */

#define INCLUDE_ACTUAL_CARD_FREQ_IOCTL  0
/*This will actually alter the freq of the card.
 Please note that the further operation of the card takes place at this freq*/

#define BUFFER_ALINED_CACHE_LENGTH
/* Enable this if user want to pass cache length aligned buffer, In polled mode
 buffer must be 4 byte aligned */

#define DATA_ALIGN                      128

#define MMCSD_SAMPLE_PRINT printf

char *filename = "fat:1:sample.txt";
TCHAR *path = "fat:1:sample.txt";
#define READ_BLOCK_SIZE 64

/*
 * Global Static references
 */
UInt32 sectorCount = WRITE_SECTORS;
Ptr handle;
PSP_BlkDevOps_t* pDevOps = NULL;
/*
 * Note: Buffer alignment is required only when working in DMA Mode.
 */
static UInt8 srcmmcsdBufOrg[BYTE_COUNT + DATA_ALIGN];
/*+128 if need to make unalign for testing purpose*/
static UInt8 dstmmcsdBufOrg[BYTE_COUNT + DATA_ALIGN];
/*+128 if need to make unalign for testing purpose*/
static UInt8 *srcmmcsdBuf = NULL;
static UInt8 *dstmmcsdBuf = NULL;
UInt32 loop = 0;
UInt32 addr = 0;

Void checkMediaCard(UInt32 instanceId);

Void checkMediaCard(UInt32 instanceId)
{
    Int32 result = IOM_COMPLETED, flag = 1;
    PSP_MmcsdCardType cardType = PSP_MMCSD_CARDTYPE_NONE;

    while (flag)
    {
        result = PSP_mmcsdCheckCard(&cardType, instanceId);
        if (IOM_COMPLETED == result)
        {
            if ((PSP_MMCSD_CARDTYPE_MMC == cardType)
                    || (PSP_MMCSD_CARDTYPE_SD == cardType))
            {
                break;
            }
            else
            {
                MMCSD_SAMPLE_PRINT(" MMCSD_SAMPLE: Please insert the card\r\n");
                Task_sleep(1000U);
            }
        }
        else
        {
            MMCSD_SAMPLE_PRINT(" MMCSD_SAMPLE: checkCard failed\r\n");
        }
    }
}

/**
 *  \brief Demonstrates use of PSP drivers.
 */
Void runMmcsdSample()
{
    UInt8 *tempSrcMmcsdBuf = NULL;
    UInt8 *tempDstMmcsdBuf = NULL;
    Int32 retVal = IOM_COMPLETED;
    FILE *pFile;
    UInt32 readSize = 0, writeSize = 0;
    UInt32 cnt = 0, i = 0, loopCnt = 5;
    //FIL fileptr;
    //FRESULT result;
    //BYTE mode = 0;
    UInt ts1, ts2;
    Types_FreqHz  freq;



    /* aligning srcmmcsdBuf & dstmmcsdBuf on CACHE line size boundary */
    memset(srcmmcsdBufOrg, 0xFF, sizeof(srcmmcsdBufOrg));
    memset(dstmmcsdBufOrg, 0xFF, sizeof(dstmmcsdBufOrg));

    tempSrcMmcsdBuf = srcmmcsdBufOrg;
    tempDstMmcsdBuf = dstmmcsdBufOrg;

    /* Align the buffer on the cache line length */
    srcmmcsdBuf = (Ptr) ((UInt32) (tempSrcMmcsdBuf + DATA_ALIGN - 1)
            & ~(DATA_ALIGN - 1));
    dstmmcsdBuf = (Ptr) ((UInt32) (tempDstMmcsdBuf + DATA_ALIGN - 1)
            & ~(DATA_ALIGN - 1));
    if ((NULL == srcmmcsdBuf) || (NULL == dstmmcsdBuf))
    {
        MMCSD_SAMPLE_PRINT(" MMCSD_SAMPLE:Buffer is NULL\r\n");
    }

    checkMediaCard(MMC_INST_ID);
    MMCSD_SAMPLE_PRINT(" MMCSD_SAMPLE:Card is inserted\r\n");

#ifndef BUFFER_ALINED_CACHE_LENGTH
    srcmmcsdBuf += 4;
    dstmmcsdBuf += 4;
#endif /* BUFFER_ALINED_CACHE_LENGTH */

    retVal = PSP_blkmediaFATfsRegister(MMC_INST_ID, PSP_MMCSD_SAMPLE_DRIVE);
    if (IOM_COMPLETED == retVal)
    {
        MMCSD_SAMPLE_PRINT(
                " MMCSD_SAMPLE: Media is registered with FATfs \r\n");
    }
    else
    {
        MMCSD_SAMPLE_PRINT(
                " MMCSD_SAMPLE: Media is registering with FATfs FAILED\r\n");
        return;
    }

    cnt = sectorCount * 512U;

    for (i = 0; i < cnt; i++)
    {
        srcmmcsdBuf[i] = i;
        dstmmcsdBuf[i] = 0;
    }
    MMCSD_SAMPLE_PRINT("MMCSD_SAMPLE: Create Fat format on MMCSD\n");
    /* Format the Nand drive */
    retVal = f_mkfs(PSP_MMCSD_SAMPLE_DRIVE, 1, FILESYS_BYTE_COUNT);
    if (retVal == 0)
    {
        MMCSD_SAMPLE_PRINT("MMCSD_SAMPLE: create partition successful\n");
    }
    else
    {
        MMCSD_SAMPLE_PRINT(
                "MMCSD_SAMPLE: partition creation failed errno: %d\n", retVal);
    }

    /* open the mmcsd file for reading */
    pFile = fopen(filename, "w+");

    if (NULL == pFile)
    {
        MMCSD_SAMPLE_PRINT("ERROR: FatFs fxn 'fopen' returned NULL.\n");
        return;
    }

    Timestamp_getFreq(&freq);
    ts1 = Timestamp_get32();
    writeSize = fwrite(srcmmcsdBuf, 1, cnt, pFile);
    ts2 = Timestamp_get32();

    System_printf("T1: %u\n"
                  "T2: %u\n"
                  "dT: %u\n"
                  "dT(us): %u\n"
                  "Freq: %u\n",
                  ts1,
                  ts2,
                  ts2-ts1,
                  (ts2-ts1) / (freq.lo / 1000000), //delta t in us
                  freq.lo);



    if (cnt != writeSize)
    {
        MMCSD_SAMPLE_PRINT(
                "ERROR: FatFs fxn 'fwrite' returned write size %d.\n",
                writeSize);
        return;
    }

    /* seek the file pointer to begining location */
    if ((fflush(pFile)) != 0)
    {
        MMCSD_SAMPLE_PRINT("ERROR: FatFs fxn 'fflush' returned error.\n");
        return;
    }


//    while (loop < loopCnt)
//    {
//        /* write contents of the file into a buffer */
//        writeSize = fwrite(srcmmcsdBuf, 1, cnt, pFile);
//        if (cnt != writeSize)
//        {
//            MMCSD_SAMPLE_PRINT(
//                    "ERROR: FatFs fxn 'fwrite' returned write size %d.\n",
//                    writeSize);
//            break;
//        }
//
//        /* seek the file pointer to begining location */
//        if ((fflush(pFile)) != 0)
//        {
//            MMCSD_SAMPLE_PRINT("ERROR: FatFs fxn 'fflush' returned error.\n");
//            break;
//        }
//
//        /* seek the file pointer to begining location */
//        if ((fseek(pFile, 0, SEEK_SET)) != 0)
//        {
//            MMCSD_SAMPLE_PRINT("ERROR: FatFs fxn 'fseek' returned error.\n");
//            break;
//        }
//
//        /* read contents of the file into a buffer */
//        readSize = fread(dstmmcsdBuf, 1, cnt, pFile);
//        if (cnt != readSize)
//        {
//            MMCSD_SAMPLE_PRINT(
//                    "ERROR: FatFs fxn 'fread' returned read size %d.\n",
//                    readSize);
//            break;
//        }
//
//        /* seek the file pointer to begining location */
//        if ((fseek(pFile, 0, SEEK_SET)) != 0)
//        {
//            MMCSD_SAMPLE_PRINT("ERROR: FatFs fxn 'fseek' returned error.\n");
//            break;
//        }
//
//        for (i = 0; i < cnt; i++)
//        {
//            if (srcmmcsdBuf[i] != dstmmcsdBuf[i])
//            {
//                break;
//            }
//        }
//        if (i == cnt)
//        {
//            MMCSD_SAMPLE_PRINT(" MMCSD_SAMPLE: FILE Data write-read"
//                    " matching passed\r\n");
//        }
//        else
//        {
//            MMCSD_SAMPLE_PRINT(" MMCSD_SAMPLE: FILE Data write-read matching"
//                    " failed in loop count %d at i = %d\r\n", loop, i);
//        }
//        loop++;
//    }
    if ((fclose(pFile)) != 0)
    {
        MMCSD_SAMPLE_PRINT("ERROR: FatFs fxn 'fclose' returned error.\n");
    }

    /*The Media Driver clients like Mass Storage drivers shall use this
     function to un-register from a Block media device*/
    retVal = PSP_blkmediaFATfsUnregister(PSP_MMCSD_SAMPLE_DRIVE);
    if (IOM_COMPLETED == retVal)
    {
        MMCSD_SAMPLE_PRINT(" MMCSD_SAMPLE: Media for remote client is"
                " unregsitered\r\n");
    }
    else
    {
        MMCSD_SAMPLE_PRINT(" MMCSD_SAMPLE: Media for remote client is"
                " not unregsitered\r\n");
    }
}

/* ========================================================================== */
/*                              END OF FILE                                   */
/* ========================================================================== */

  • David,

    I found this Wiki page that talks about performance of the Linux drivers on the OMAP-L138, which is a superset of your C6748 and has the same peripheral features. It will at least let you know that you should be able to get better performance than you are seeing now.

    We will ask a Moderator to move this thread to the TI-RTOS (new name for SYS/BIOS) Forum where they will be best able to address your questions about the PSP and configuration. I will keep track of your thread to see what they have to say.

    Regards,
    RandyP

  • Randy,
    Thank you for the wiki page. I figured that my 300KB/sec wasn't the best the 6748 could do. I'll be waiting to see how I can improve the performance.

    Thanks!
    David
  • TI anymore information on this would be helpful. I measured the raw SD card example and it's writing at about 6MB/sec, still not ideal but better than the FatFS example.

    David
  • David,

    This is not really a TI-RTOS specific question and I doubt anyone on this forum will be able to give you much guidance. I would normally move this this thread over to the device forum to see if anyone there can respond better, but since that is where you originally posted it there, I guess I will not do that. You might try posting on that forum once again and mention that you already have another post on the TI-RTOS forum.
  • Hi David,

    We are working on it.
    I have build biospsp_03_00_01_00 mmcsd_fatFs example project.
    I am further looking into it, how we can improve the datarate.

    Will update you soon.
  • Hi Arvind,

    Thanks for looking into it I look forward to what you find.

    David

  • Dear David,
    What is your DSP operating frequency ?

    Try to run the DSP at 456MHz (max) and check the write speed.
    Also change the "MMCSD_CLK_FREQ" in the following file and rebuild the platform library.

    C:\ti\biospsp_03_00_01_00\platforms\evm6748\src\mmcsd_startup.c

    Did you try some other SD/MMC card like 2GB/4GB etc., and able to see any speed increasing ? ?
  • Hi Titus,
    I changed my gel file to run the clock at 456MHz and the DDR clock at 150MHz. The timestamp stays approximately the same. I have switched to a 2GB card, slower card. When I run the code, posted above, at the 300MHz clock rate I achieve ~115Kbytes/sec write speed when I increase to 456MHz the output from dT from the code i posted above is 2216248 uSecs for the 256Kbyte buffer, also ~115Kbytes/sec.

    I've tried different cards and I do not see a speed increase. We have had great use of the SanDisk 128GB card, listed in the first post, and the fact that when I use the mmcsd blk example I can get 6MB/sec of write speed has me leaning to how the psp driver interacts with the file system.

    As far as changing the MMCSD_CLK_FREQ it is currently set to 150MHz, what would you suggest I set the frequency to?

    Thank you!

    David
  • Correction, it's a SanDisk 64GB card which I have been using not a 128GB.
  • Dear David,

    In my opinion, we can achieve this (~120Kbps, 300Kbps) much speed only for FatFS based applications.
    But for raw mode, we can achieve better since we mentioned that in release notes (attached) chapter 8.5, we have conducted test only with "raw" write/read mode

    Here is the benchmark for FatFS on some of the other devices,
    elm-chan.org/.../rwtest.png
    elm-chan.org/.../rwtest2.png

    elm-chan.org/.../00index_e.html
  • Titus,

    I'm confused.  Looking at the links you provided it is shown that on other processors with fast SD cards using the FatFs, they can achieve over 1Mbyte/sec write rates.  Reading your post it sounds like the max rate the C6748 can achieve with the FatFs is 120Kbytes/sec, is this correct?    This seems to imply that the problem lies in the media driver for the C6748 and not the FatFs code.  According to the FatFs website, there is a huge performance hit for single sector writes versus multi sector writes. 

    elm-chan note

    I've also taken some scope traces from the FatFs example and the raw file example.  I’ve attached to images of scope traces captured using the same time base.  You can see that when writing in the FatFs example the command line is very chatty, like the C6748 and the SD Card communicate on each byte to write.  In the raw example the C6748 and the SD Card talk once at the start of a transfer block and then data is transferred in large sections.   

    Thank you for looking into this,

    David

  • Titus,
    I've spent today trying to step through the code to see where the bottle neck is located. After a lot of single assembly stepping and looking at the call stack I've isolated it in the TI/sysbios specific fwrite and write. I believe what's going on is that deep down when a buffer of bytes is passed into the f_write function located in the FatFs library only 256 bytes are passed at a time. This means the FatFs has to deal with partial segments and then it will only write 1 memory segment on a command strobe.

    The call stack that I traced going from the bottom is mmcsdWrite, blkMediaWriteAsync, blkMediaMmcsdWrite, disk_write, f_write, ffcio_write, write, fwrite. The first 3 functions are in the PSP drivers, disk_write and f_write belong to FatFs, ffcio_write is the "bridge" function from the built in fwrite to f_write.

    This led me to believe that a simple fix on how I called fwrite would fix the problem. In the example provide with the PSP drivers frwite is called as: writeSize = fwrite(srcmmcsdBuf, 1, cnt, pFile). I tried to change the call to writeSize = fwrite(srcmmcsdBuf, 512,500, pFile) in order to sepcifiy that a block size was 512 however this had no affect on the overall system and deep down at mmcsdWrite only 1 segment was passed to the driver.


    So I'm at loss on how to fix this issue, looking into the fwrite function and the lowlevel write function there are a lot of mutex and sysbios specific calls that I'm nervous about changing. With this new information can you all have a more targeted approach to passing a stream buffer down to the mmcsd driver?

    Thank you for your help,
    David
  • Titus,

    I believe found where the problem lies, in the file stream part of the TI code used in fopen() TI is only using 256 bytes for I/O stream.  When 256 bytes are written into the buffer they are flushed out to the file, in this case the SD card write, which is why I only see 256 bytes going to the card every single time. In standard C I/O there is a function, setvbuf(), that should allow you to specify your own buffer and buffer size for file streams, however in the TI implementation of setvbuf, if you set the size over 256 bytes the size is reset to 256. I believe the TI code is trying to be safe so that large amounts of data won’t be malloced, however even when I pass a static buffer that is larger than 256 bytes the size is reset to 256.  This I believe is an error, I should be able to specify whatever size for an I/O stream, especially if I provide the static array. 

    So my question, how to I get a file stream size larger than 256 bytes if the current implementation won't let me specify one larger than 256 bytes? 

    Thanks,
    David

  • Dear David,

    I think, you are right.

    We have changed the library to increase the buffer and got good speed.

    Please use the attached libraries in your project and rebuild & test.

    Changed the following source file and recompiled the required "rts6740_elf.lib" and placed in "C:\ti\ccsv5\tools\compiler\c6000_7.4.4\lib"

    C:\ti\ccsv5\tools\compiler\c6000_7.4.4\lib\rtssrc\stdio.h

    Replace the attached library with rts6740_elf_2048.lib & rts6740_elf_4096.lib ( i.e one by one) in the following location.

    "C:\ti\ccsv5\tools\compiler\c6000_7.4.4\lib\rts6740_elf.lib"


    Library_And_Source.zip

    We have used 4GB microSD card and tested it on C6748 LCDK board.

    Here is the log:

    1MiB  -> DEFAULT  BUF -> 256bytes  ==> 157KiB/s

    [C674X_0]

    MMCSD_SAMPLE : Starting Sample Application Using BLOCK MEDIA

    MMCSD_SAMPLE:Card is inserted

    MMCSD_SAMPLE: Media is registered with FATfs

    MMCSD_SAMPLE: Create Fat format on MMCSD

    MMCSD_SAMPLE: create partition successful

    Writing into MMC/SD via "fwrite"

    T1: 1061140980

    T2: 3019925484

    dT: 1958784504

    dT(us): 6529281

    Freq: 300000000

    MMCSD_SAMPLE: Media for remote client is unregsitered

    MMCSD_SAMPLE: mmcsdStorageDeInit success

    MMCSD_SAMPLE: Sample Application Ends Using BLOCK MEDIA

    1MiB  -> BUF -> 2048bytes  ==> 602KiB/s

    [C674X_0]

    MMCSD_SAMPLE : Starting Sample Application Using BLOCK MEDIA

    MMCSD_SAMPLE:Card is inserted

    MMCSD_SAMPLE: Media is registered with FATfs

    MMCSD_SAMPLE: Create Fat format on MMCSD

    MMCSD_SAMPLE: create partition successful

    Writing into MMC/SD via "fwrite"

    T1: 1077921486

    T2: 1607998261

    dT: 530076775

    dT(us): 1766922

    Freq: 300000000

    MMCSD_SAMPLE: Media for remote client is unregsitered

    MMCSD_SAMPLE: mmcsdStorageDeInit success

    MMCSD_SAMPLE: Sample Application Ends Using BLOCK MEDIA

    1MiB -> BUF -> 4096bytes ==> 1.4MiB/s

    [C674X_0]

    MMCSD_SAMPLE : Starting Sample Application Using BLOCK MEDIA

    MMCSD_SAMPLE:Card is inserted

    MMCSD_SAMPLE: Media is registered with FATfs

    MMCSD_SAMPLE: Create Fat format on MMCSD

    MMCSD_SAMPLE: create partition successful

    Writing into MMC/SD via "fwrite"

    T1: 1055332912

    T2: 1277749037

    dT: 222416125

    dT(us): 741387

    Freq: 300000000

    MMCSD_SAMPLE: Media for remote client is unregsitered

    MMCSD_SAMPLE: mmcsdStorageDeInit success

    MMCSD_SAMPLE: Sample Application Ends Using BLOCK MEDIA


    Please try the attached libraries and let us know the results.

  • Titus Thanks fora the reply, this seems like a workable solution. I will test them out when I get into the office on Monday. In the mean time I found a sort of work around. Looking at the source code for setvbuf I noticed that it would use the static buffer I passed in but would recalculate buf end and set it to 256 from the array starting location. Once my code that called setvbuf returned I just reset the bufend pointer to a length I wanted. In my example I'm trying to write large image files so I passed a 256Kbyte array as my static buffer. After moving the buffend to a bigger size I was able to achieve 3.3Mbytes/sec on my slow class 1 card. I'm not sure if this is an optimal solution in the TI framework, any thoughts? Thank you again for all your help, David
  • Dear David,
    Sounds good!
    Thanks for your update.
    Let me check with compiler folks on further questions and let you know.
  • Hi David, Titus,

    I am investigating the same issue and found this thread very helpful in improving write speed of the MMCSD controller to SD card. I am still a long way off my target of 6-7MB/s. I have a couple of questions I hope you may be able to shed some light on.

    1. How can I increase TI file stream buffer size? I used the rts6740_elf_4096.lib file and that did bump write speeds up to over 1 MB/s, but it seems that David has reached higher speeds by further increasing this buffer size. Code composer won't allow me to step into the stdio.h functions for some reason. And when I have called fopen(), Code Composer (v6) can't resolve the values of the pointer; see image below. Resetting the bufend after opening the file has no effect for me. It sounds like you just did something like this David:

    pFile = fopen(filename, "w+");

    pFile->bufend = pFile->buf + DESIRED_STREAM_BUFFER_LENGTH;

    ?

    This will not work for me unfortunately. 

    2. Is there a difference between data write speeds for OMAP and C6748? I see some very high benchmarks here compared to what I am getting we are seeing with this C6748 MMCSD_FatFs example 

    There is a suggestion to mount the filesystem in ASYNC mode for performance sensitive applications; I haven't tried this yet, any thoughts?

    Thanks

    Brian

  • Brian,
    Here's the code that I used to reset my buffer size. The main key is you had to call the setvbuf function and then after the return reset the buffer end size. Hope this helps!

    setvbuf(pFile, vBuf, _IOFBF, sizeof(vBuf));
    pFile->bufend = &vBuf[sizeof(vBuf) - 1];

    David
  • Hi David,

    That worked like a charm; write speed of just over 7 MB/s now, using a class 10 SD card. I also squeezed a bit more out of it by clocking the DSP up to 456 MHz. Many thanks!

    Titus, I would like to rebuild the rts6740_elf.lib library with the new BUFSIZ myself. I have tried this from the command line using maklib.exe, but it always fails, as it cannot find the .obf files. I specify the build scratch directory, but no .obj files. I can't see any build errors from compiling the .obj fies? I have attached mklib build output. Do you know why this might happen? I'm using ti-cgt-c6000_8.0.3, xdctools_3_31_01_33_core on Windows 10.

    Brian

    C:\ti\ti-cgt-c6000_8.0.3\lib>mklib --all --tmpdir="C:\ti\ti-cgt-c6000_8.0.3\lib\temp"
    cl6x c99_complex.c -O --embed_icode --keep_asm --diag_warning=225 --quiet  -mo --mem_model:data=far --no_visible_enums -c --ti_lib --keep_unneeded_types=false -mv64+ --abi=eabi -me  --vectypes --building_runtime -Ic:/ti/ti-cgt~1.3/lib/src -fr c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -fs c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -ft c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj
    process_begin: CreateProcess(NULL, cl6x c99_complex.c -O --embed_icode --keep_asm --diag_warning=225 --quiet -mo --mem_model:data=far --no_visible_enums -c --ti_lib --keep_unneeded_types=false -mv64+ --abi=eabi -me --vectypes --building_runtime -Ic:/ti/ti-cgt~1.3/lib/src -fr c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -fs c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -ft c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj, ...) failed.
    cl6x exception_.cpp -O --embed_icode --keep_asm --diag_warning=225 --quiet  -mo --mem_model:data=far --no_visible_enums -c --ti_lib --keep_unneeded_types=false -mv64+ --abi=eabi -me  -fg --rtti --building_runtime -DUSE_EDG_EXCEPTION_CLASSES=1 -Ic:/ti/ti-cgt~1.3/lib/src -fr c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -fs c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -ft c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj
    process_begin: CreateProcess(NULL, cl6x exception_.cpp -O --embed_icode --keep_asm --diag_warning=225 --quiet -mo --mem_model:data=far --no_visible_enums -c --ti_lib --keep_unneeded_types=false -mv64+ --abi=eabi -me -fg --rtti --building_runtime -DUSE_EDG_EXCEPTION_CLASSES=1 -Ic:/ti/ti-cgt~1.3/lib/src -fr c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -fs c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -ft c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj, ...) failed.
    cl6x bad_alloc.cpp -O --embed_icode --keep_asm --diag_warning=225 --quiet  -mo --mem_model:data=far --no_visible_enums -c --ti_lib --keep_unneeded_types=false -mv64+ --abi=eabi -me  -fg --rtti --building_runtime -DUSE_EDG_EXCEPTION_CLASSES=1 -Ic:/ti/ti-cgt~1.3/lib/src -fr c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -fs c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -ft c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj
    process_begin: CreateProcess(NULL, cl6x bad_alloc.cpp -O --embed_icode --keep_asm --diag_warning=225 --quiet -mo --mem_model:data=far --no_visible_enums -c --ti_lib --keep_unneeded_types=false -mv64+ --abi=eabi -me -fg --rtti --building_runtime -DUSE_EDG_EXCEPTION_CLASSES=1 -Ic:/ti/ti-cgt~1.3/lib/src -fr c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -fs c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -ft c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj, ...) failed.
    cl6x catrig.c -O --embed_icode --keep_asm --diag_warning=225 --quiet  -mo --mem_model:data=far --no_visible_enums -c --ti_lib --keep_unneeded_types=false -mv64+ --abi=eabi -me  --vectypes --gcc -DFLT_EVAL_METHOD=0 -Dlint=1 -Ic:/ti/ti-cgt~1.3/lib/src -fr c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -fs c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -ft c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj
    process_begin: CreateProcess(NULL, cl6x catrig.c -O --embed_icode --keep_asm --diag_warning=225 --quiet -mo --mem_model:data=far --no_visible_enums -c --ti_lib --keep_unneeded_types=false -mv64+ --abi=eabi -me --vectypes --gcc -DFLT_EVAL_METHOD=0 -Dlint=1 -Ic:/ti/ti-cgt~1.3/lib/src -fr c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -fs c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -ft c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj, ...) failed.
    cl6x catrigf.c -O --embed_icode --keep_asm --diag_warning=225 --quiet  -mo --mem_model:data=far --no_visible_enums -c --ti_lib --keep_unneeded_types=false -mv64+ --abi=eabi -me  --vectypes --gcc -DFLT_EVAL_METHOD=0 -Dlint=1 -Ic:/ti/ti-cgt~1.3/lib/src -fr c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -fs c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -ft c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj
    process_begin: CreateProcess(NULL, cl6x catrigf.c -O --embed_icode --keep_asm --diag_warning=225 --quiet -mo --mem_model:data=far --no_visible_enums -c --ti_lib --keep_unneeded_types=false -mv64+ --abi=eabi -me --vectypes --gcc -DFLT_EVAL_METHOD=0 -Dlint=1 -Ic:/ti/ti-cgt~1.3/lib/src -fr c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -fs c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -ft c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj, ...) failed.
    cl6x k_exp.c -O --embed_icode --keep_asm --diag_warning=225 --quiet  -mo --mem_model:data=far --no_visible_enums -c --ti_lib --keep_unneeded_types=false -mv64+ --abi=eabi -me  --vectypes --gcc -DFLT_EVAL_METHOD=0 -Dlint=1 -Ic:/ti/ti-cgt~1.3/lib/src -fr c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -fs c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -ft c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj
    process_begin: CreateProcess(NULL, cl6x k_exp.c -O --embed_icode --keep_asm --diag_warning=225 --quiet -mo --mem_model:data=far --no_visible_enums -c --ti_lib --keep_unneeded_types=false -mv64+ --abi=eabi -me --vectypes --gcc -DFLT_EVAL_METHOD=0 -Dlint=1 -Ic:/ti/ti-cgt~1.3/lib/src -fr c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -fs c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -ft c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj, ...) failed.
    cl6x k_expf.c -O --embed_icode --keep_asm --diag_warning=225 --quiet  -mo --mem_model:data=far --no_visible_enums -c --ti_lib --keep_unneeded_types=false -mv64+ --abi=eabi -me  --vectypes --gcc -DFLT_EVAL_METHOD=0 -Dlint=1 -Ic:/ti/ti-cgt~1.3/lib/src -fr c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -fs c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -ft c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj
    process_begin: CreateProcess(NULL, cl6x k_expf.c -O --embed_icode --keep_asm --diag_warning=225 --quiet -mo --mem_model:data=far --no_visible_enums -c --ti_lib --keep_unneeded_types=false -mv64+ --abi=eabi -me --vectypes --gcc -DFLT_EVAL_METHOD=0 -Dlint=1 -Ic:/ti/ti-cgt~1.3/lib/src -fr c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -fs c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -ft c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj, ...) failed.
    cl6x s_carg.c -O --embed_icode --keep_asm --diag_warning=225 --quiet  -mo --mem_model:data=far --no_visible_enums -c --ti_lib --keep_unneeded_types=false -mv64+ --abi=eabi -me  --vectypes --gcc -DFLT_EVAL_METHOD=0 -Dlint=1 -Ic:/ti/ti-cgt~1.3/lib/src -fr c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -fs c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -ft c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj
    process_begin: CreateProcess(NULL, cl6x s_carg.c -O --embed_icode --keep_asm --diag_warning=225 --quiet -mo --mem_model:data=far --no_visible_enums -c --ti_lib --keep_unneeded_types=false -mv64+ --abi=eabi -me --vectypes --gcc -DFLT_EVAL_METHOD=0 -Dlint=1 -Ic:/ti/ti-cgt~1.3/lib/src -fr c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -fs c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj -ft c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj, ...) failed.
    make (e=2): The system cannot find the file specified.
    gmake.exe: *** [c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj/c99_complex.obj] Error 2
    gmake.exe: *** Waiting for unfinished jobs....
    make (e=2): The system cannot find the file specified.
    gmake.exe: *** [c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj/exception_.obj] Error 2
    make (e=2): The system cannot find the file specified.
    gmake.exe: *** [c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj/bad_alloc.obj] Error 2
    make (e=2): The system cannot find the file specified.
    gmake.exe: *** [c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj/catrig.obj] Error 2
    make (e=2): The system cannot find the file specified.
    gmake.exe: *** [c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj/catrigf.obj] Error 2
    make (e=2): The system cannot find the file specified.
    gmake.exe: *** [c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj/k_exp.obj] Error 2
    make (e=2): The system cannot find the file specified.
    gmake.exe: *** [c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj/k_expf.obj] Error 2
    make (e=2): The system cannot find the file specified.
    gmake.exe: *** [c:/ti/ti-cgt~1.3/lib/temp/rts64p~1.lib/obj/s_carg.obj] Error 2
    >> ERROR: mklib: gmake error during rts64pluse_elf.lib build

  • Dear David,
    Thanks for sharing the other workaround and helping as well as other community members.

    Dear Brian,
    I too faced the same problem and fixed by exporting the CGT DSP tool chain binary path.
    Did you export the DSP tool chain "cl6x" ??
    You may have to add the following location in PC environment variable PATH.
    C:\ti\ccsv5\tools\compiler\c6000_7.4.4\bin

    After that you have to modify the file "stdio.h" then you need to rezip the file and replace with original file since "mklib" would build the zip based source file (rtssrc.zip)

    C:\ti\ccsv5\tools\compiler\c6000_7.4.4\lib

    Please refer to the following TI wiki page for more details.
    processors.wiki.ti.com/.../Mklib
  • Hi Titus,

    Thanks for your swift response. I did as you said, but now I have a different build error. mklib gets as far as unzipping the source files, but then falls over with the following error:

    gmake.exe: *** No rule to make target `library'. Stop.
    >> ERROR: mklib: gmake error during rts67plus.lib build

    Any idea?

    Brian
  • Dear Brian,

    Have you tried to build the library without any change as it is "rtssrc.zip" ?

    gmake.exe: *** No rule to make target `library'. Stop.

    >> ERROR: mklib: gmake error during rts67plus.lib build

    Where you are using this step ?

    You can't build into that library source directory, you can build only with zip based library source file "rtssrc.zip".

    Can you please do the following steps.

    1) Go to this directory "C:\ti\ccsv5\tools\compiler\c6000_7.4.4\lib" in command terminal.

    2) Rename the library "rts6740_elf.lib" to "rts6740_elf_bkp.lib" else you may get the following error.

    C:\ti\ccsv5\tools\compiler\c6000_7.4.4\lib>mklib --pattern=rts6740_elf.lib

    >> ERROR: mklib: destination library c:/ti/ccsv5/tools/compiler/c6000_~1.4/lib/\

    rts6740_elf.lib already exists

    3) Build the library without changing the source.

    mklib --pattern=rts6740_elf.lib

    4) Create one directory and copy the "rtssrc.zip" file into it then unzip there and modify the files then re-zip it again in same name "rtssrc.zip" and replace it "C:\ti\ccsv5\tools\compiler\c6000_7.4.4\lib\rtssrc.zip" (please take a backup of this src file)

    5) Build the modified library again.

    mklib --pattern=rts6740_elf.lib

    Dear Brian,

    Have you tried to build the library without any change as it is "rtssrc.zip" ?



    gmake.exe: *** No rule to make target `library'. Stop.
    >> ERROR: mklib: gmake error during rts67plus.lib build


    Where you are using this step ?

    You can't build into that library source directory, you can build only with zip based library source file "rtssrc.zip".

    processors.wiki.ti.com/.../How_to_rebuild_the_C6000_RTS

    Can you please do the following steps.

    1) Go to this directory "C:\ti\ccsv5\tools\compiler\c6000_7.4.4\lib" in command terminal.

    2) Rename the library "rts6740_elf.lib" to "rts6740_elf_bkp.lib" else you may get the following error.

    C:\ti\ccsv5\tools\compiler\c6000_7.4.4\lib>mklib --pattern=rts6740_elf.lib
    >> ERROR: mklib: destination library c:/ti/ccsv5/tools/compiler/c6000_~1.4/lib/\
    rts6740_elf.lib already exists

    3) Build the library without changing the source.

    mklib --pattern=rts6740_elf.lib

    4) Create one directory and copy the "rtssrc.zip" file into it then unzip there and modify the files then re-zip it again in same name "rtssrc.zip" and replace it "C:\ti\ccsv5\tools\compiler\c6000_7.4.4\lib\rtssrc.zip" (please take a backup of this src file)

    5) Build the modified library again.

    mklib --pattern=rts6740_elf.lib



    Dear Brian,

    Have you tried to build the library without any change as it is "rtssrc.zip" ?



    gmake.exe: *** No rule to make target `library'. Stop.
    >> ERROR: mklib: gmake error during rts67plus.lib build


    Where you are using this step ?

    You can't build into that library source directory, you can build only with zip based library source file "rtssrc.zip".

    processors.wiki.ti.com/.../How_to_rebuild_the_C6000_RTS

    Can you please do the following steps.

    1) Go to this directory "C:\ti\ccsv5\tools\compiler\c6000_7.4.4\lib" in command terminal.

    2) Rename the library "rts6740_elf.lib" to "rts6740_elf_bkp.lib" else you may get the following error.

    C:\ti\ccsv5\tools\compiler\c6000_7.4.4\lib>mklib --pattern=rts6740_elf.lib
    >> ERROR: mklib: destination library c:/ti/ccsv5/tools/compiler/c6000_~1.4/lib/\
    rts6740_elf.lib already exists

    3) Build the library without changing the source.

    mklib --pattern=rts6740_elf.lib

    4) Create one directory and copy the "rtssrc.zip" file into it then unzip there and modify the files then re-zip it again in same name "rtssrc.zip" and replace it "C:\ti\ccsv5\tools\compiler\c6000_7.4.4\lib\rtssrc.zip" (please take a backup of this src file)

    5) Build the modified library again.

    mklib --pattern=rts6740_elf.lib

    Dear Brian,

    Have you tried to build the library without any change as it is "rtssrc.zip" ?



    gmake.exe: *** No rule to make target `library'. Stop.
    >> ERROR: mklib: gmake error during rts67plus.lib build


    Where you are using this step ?

    You can't build into that library source directory, you can build only with zip based library source file "rtssrc.zip".

    processors.wiki.ti.com/.../How_to_rebuild_the_C6000_RTS

    Can you please do the following steps.

    1) Go to this directory "C:\ti\ccsv5\tools\compiler\c6000_7.4.4\lib" in command terminal.

    2) Rename the library "rts6740_elf.lib" to "rts6740_elf_bkp.lib" else you may get the following error.

    C:\ti\ccsv5\tools\compiler\c6000_7.4.4\lib>mklib --pattern=rts6740_elf.lib
    >> ERROR: mklib: destination library c:/ti/ccsv5/tools/compiler/c6000_~1.4/lib/\
    rts6740_elf.lib already exists

    3) Build the library without changing the source.

    mklib --pattern=rts6740_elf.lib

    4) Create one directory and copy the "rtssrc.zip" file into it then unzip there and modify the files then re-zip it again in same name "rtssrc.zip" and replace it "C:\ti\ccsv5\tools\compiler\c6000_7.4.4\lib\rtssrc.zip" (please take a backup of this src file)

    5) Build the modified library again.

    mklib --pattern=rts6740_elf.lib





  • Hi Titus,

    I had followed the steps as you specified, but I tried again just building rts6740_elf.lib with the originial rtsscr.zip file and now I am back to the original error, mklib can't find object files; build output attached.

    Thanks

    Brian

    C:\ti\ccsv6\tools\compiler\c6000_7.4.15\lib>mklib --pattern=rts6740_elf.lib
    Archive:  c:/ti/ccsv6/tools/compiler/c6000_~1.15/lib/rtssrc.zip
      inflating: cabs.c                  [text]
      inflating: decode.c                [text]
      inflating: memzero.h               [text]
      inflating: ispunct.c               [text]
      inflating: cwchar                  [text]
      inflating: isfinite.c              [text]
      inflating: csetjmp                 [text]
      inflating: acos.c                  [text]
      inflating: fwide.c                 [text]
      inflating: xmemory                 [text]
      inflating: cerrno                  [text]
      inflating: printf.c                [text]
      inflating: log10f_i.h              [text]
      inflating: rtti.cpp                [text]
      inflating: fmod.c                  [text]
      inflating: strpbrk.c               [text]
      inflating: cstring                 [text]
      inflating: cvtdf.c                 [text]
      inflating: fixfx_i.h               [text]
      inflating: catanl.c                [text]
      inflating: strtold.c               [text]
      inflating: _io_perm.c              [text]
      inflating: catanhl.c               [text]
      inflating: signal.h                [text]
      inflating: xxclog.h                [text]
      inflating: acot2f_i.h              [text]
      inflating: xlocinfo                [text]
      inflating: mpyll.c                 [text]
      inflating: xlcsubcr.c              [text]
      inflating: pure_virt.cpp           [text]
      inflating: cctype                  [text]
      inflating: xfcmulcr.c              [text]
      inflating: frcmpyf2_i.h            [text]
      inflating: vsnprintf.c             [text]
      inflating: mktime.c                [text]
      inflating: strtod.c                [text]
      inflating: locale.h                [text]
      inflating: ldexpf_i.h              [text]
      inflating: formi64.h               [text]
      inflating: tanhf_i.h               [text]
      inflating: feof.c                  [text]
      inflating: xfcosh.c                [text]
      inflating: ctanl.c                 [text]
      inflating: config.h                [text]
      inflating: ctime                   [text]
      inflating: frcaddd.c               [text]
      inflating: iostream.cpp            [text]
      inflating: csinf.c                 [text]
      inflating: tdeh_c6000.h            [text]
      inflating: modff_i.h               [text]
      inflating: cpow.c                  [text]
      inflating: inttypes.h              [text]
      inflating: strncpy.c               [text]
      inflating: xxcimag.h               [text]
      inflating: tan.c                   [text]
      inflating: iscntrl.c               [text]
      inflating: absf.c                  [text]
      inflating: tanhf.c                 [text]
      inflating: ccosf.c                 [text]
      inflating: remi_c.c                [text]
      inflating: stdiostream.h           [text]
      inflating: placedel.cpp            [text]
      inflating: fltyf_i.h               [text]
      inflating: defs.c                  [text]
      inflating: fltud.c                 [text]
      inflating: absf_i.h                [text]
      inflating: strlen.c                [text]
      inflating: tolower.c               [text]
      inflating: cos.c                   [text]
      inflating: ctime_.c                [text]
      inflating: fltllid.c               [text]
      inflating: complex.h               [text]
      inflating: _printfi_nf.c           [text]
      inflating: sinh.c                  [text]
      inflating: fixfu.c                 [text]
      inflating: xxxcsubcc.h             [text]
      inflating: xxcarg.h                [text]
      inflating: utility                 [text]
      inflating: xxxdtent.h              [text]
      inflating: isupper.c               [text]
      inflating: fmodf_i.h               [text]
      inflating: sqrtf_i.h               [text]
      inflating: float_config.h          [text]
      inflating: addf.c                  [text]
      inflating: elf_linkage.h           [text]
      inflating: trgcio.h                [text]
      inflating: file.h                  [text]
      inflating: addf_i.h                [text]
      inflating: cmpd.c                  [text]
      inflating: fclose.c                [text]
      inflating: xcmulcr.c               [text]
      inflating: gmtime.c                [text]
      inflating: addd.c                  [text]
      inflating: frcaddf.c               [text]
      inflating: coshf.c                 [text]
      inflating: xxdftype.h              [text]
      inflating: xlocmon                 [text]
      inflating: fixdull.c               [text]
      inflating: csinh.c                 [text]
      inflating: xxcsin.h                [text]
      inflating: gsmfuncs.c              [text]
      inflating: xxxcdivcr.h             [text]
      inflating: sqrt.c                  [text]
      inflating: isfinitef_i.h           [text]
      inflating: cimagl.c                [text]
      inflating: strtol.c                [text]
      inflating: locale.cpp              [text]
      inflating: fabsf_i.h               [text]
      inflating: renormf_i.h             [text]
      inflating: exp10f_i.h              [text]
      inflating: xlcmulcc.c              [text]
      inflating: xwcc.h                  [text]
      inflating: xferaise.c              [text]
      inflating: xxxcosh.h               [text]
      inflating: strstrea.cpp            [text]
      inflating: roundf_i.h              [text]
      inflating: atan2f.c                [text]
      inflating: frcdivf2_i.h            [text]
      inflating: xcosh.c                 [text]
      inflating: _mutex.h                [text]
      inflating: xfdscale.c              [text]
      inflating: fcvt.c                  [text]
      inflating: tanh.c                  [text]
      inflating: fstream                 [text]
      inflating: casin.c                 [text]
      inflating: istream                 [text]
      inflating: pprof_user.c            [text]
      inflating: cprojf.c                [text]
      inflating: xxctanh.h               [text]
      inflating: csqrtf.c                [text]
      inflating: atanhf.c                [text]
      inflating: eh.h                    [text]
      inflating: sinit.c                 [text]
      inflating: mathf.h                 [text]
      inflating: sinf_i.h                [text]
      inflating: imath40.c               [text]
      inflating: fixfy_i.h               [text]
      inflating: xfpoly.c                [text]
      inflating: hypotl.c                [text]
      inflating: stdlib.h                [text]
      inflating: fputs.c                 [text]
      inflating: xlexp.c                 [text]
      inflating: assert.h                [text]
      inflating: tdeh_uwentry_c6000.asm  [text]
      inflating: csignal                 [text]
      inflating: frcdivd.c               [text]
      inflating: memset.c                [text]
      inflating: negf.c                  [text]
      inflating: longdouble_config.h     [text]
      inflating: hypot.c                 [text]
      inflating: acothf_i.h              [text]
      inflating: asinh.c                 [text]
      inflating: ccosl.c                 [text]
      inflating: ltoa.c                  [text]
      inflating: ios.cpp                 [text]
      inflating: ldiv.c                  [text]
      inflating: xfdnorm.c               [text]
      inflating: numconst.h              [text]
      inflating: xcsubcr.c               [text]
      inflating: tls_get_tp.asm          [text]
      inflating: cosf.c                  [text]
      inflating: fpclassifyf.c           [text]
      inflating: expf.c                  [text]
      inflating: limits                  [text]
      inflating: xxccos.h                [text]
      inflating: fixfi.c                 [text]
      inflating: list                    [text]
      inflating: isnormalf_i.h           [text]
      inflating: xxxsinh.h               [text]
      inflating: xxcsqrt.h               [text]
      inflating: roundf.c                [text]
      inflating: vars.cpp                [text]
      inflating: imaxabs.c               [text]
      inflating: acoshf_i.h              [text]
      inflating: qsort.c                 [text]
      inflating: fltulf.c                [text]
      inflating: xlcosh.c                [text]
      inflating: vfprintf.c              [text]
      inflating: rand.c                  [text]
      inflating: ctanhl.c                [text]
      inflating: fixdul.c                [text]
      inflating: catanf.c                [text]
      inflating: isdigit.c               [text]
      inflating: xlocnum                 [text]
      inflating: cargf.c                 [text]
      inflating: fstream.h               [text]
      inflating: clog.c                  [text]
      inflating: memzero.cpp             [text]
      inflating: ymath.h                 [text]
      inflating: atof.c                  [text]
      inflating: atanh.c                 [text]
      inflating: fwrite.c                [text]
      inflating: ctanf.c                 [text]
      inflating: ctanhf.c                [text]
      inflating: typeinfo                [text]
      inflating: remi.asm                [text]
      inflating: strtof.c                [text]
      inflating: xxlftype.h              [text]
      inflating: array_nonew.cpp         [text]
      inflating: cstdlib                 [text]
      inflating: xxcasin.h               [text]
      inflating: isprint.c               [text]
      inflating: perror.c                [text]
      inflating: fltuf.c                 [text]
      inflating: xlcaddcc.c              [text]
      inflating: cacoshl.c               [text]
      inflating: nextafter_i.h           [text]
      inflating: csqrt.c                 [text]
      inflating: setjmp.asm              [text]
      inflating: tdeh_common.h           [text]
      inflating: powif_i.h               [text]
      inflating: xlocmes                 [text]
      inflating: frcdivf1_i.h            [text]
      inflating: stdint.h                [text]
      inflating: catanh.c                [text]
      inflating: unaccess.h              [text]
      inflating: cothf.c                 [text]
      inflating: c6x.h                   [text]
      inflating: csqrtl.c                [text]
      inflating: rsqrt.c                 [text]
      inflating: xxxcmulcc.h             [text]
      inflating: cmpf.c                  [text]
      inflating: wctype.c                [text]
      inflating: strcat.c                [text]
      inflating: setlocale.c             [text]
      inflating: fltulld.c               [text]
      inflating: typeinfo_.cpp           [text]
      inflating: xxcatanh.h              [text]
      inflating: cacosf.c                [text]
      inflating: _tvaltostr.c            [text]
      inflating: elfnames.h              [text]
      inflating: xfpostox.cpp            [text]
      inflating: Makefile                [text]
      inflating: cotf.c                  [text]
      inflating: xfcsubcr.c              [text]
      inflating: xfsinh.c                [text]
      inflating: setbuf.c                [text]
      inflating: pprof.h                 [text]
      inflating: valarray                [text]
      inflating: ciso646                 [text]
      inflating: ceil.c                  [text]
      inflating: iostream                [text]
      inflating: iso646.h                [text]
      inflating: log.c                   [text]
      inflating: cxxabi.h                [text]
      inflating: isgraph.c               [text]
      inflating: xlocinfo.h              [text]
      inflating: hypotf.c                [text]
      inflating: wiostrea.cpp            [text]
      inflating: xxxsin.h                [text]
      inflating: acoth.c                 [text]
      inflating: xxcexp.h                [text]
      inflating: xxcproj.h               [text]
      inflating: remu.asm                [text]
      inflating: strasgi_c.c             [text]
      inflating: acosf.c                 [text]
      inflating: raisehan.cpp            [text]
      inflating: _pthread.c              [text]
      inflating: toascii.c               [text]
      inflating: xxclog10.h              [text]
      inflating: memchr.c                [text]
      inflating: limits.h                [text]
      inflating: divtypes.h              [text]
      inflating: multibyte.c             [text]
      inflating: log10.c                 [text]
      inflating: autoinit.c              [text]
      inflating: strtoumax.c             [text]
      inflating: numeric                 [text]
      inflating: strcmp.c                [text]
      inflating: xpoly.c                 [text]
      inflating: xlpoly.c                [text]
      inflating: ctan.c                  [text]
      inflating: carg.c                  [text]
      inflating: stdarg.h                [text]
      inflating: atan2.c                 [text]
      inflating: setvbuf.c               [text]
      inflating: ldexp.c                 [text]
      inflating: xlvalues.c              [text]
      inflating: frcmpyd.c               [text]
      inflating: exp10f.c                [text]
      inflating: isfinitef.c             [text]
      inflating: _reg_mutex_api.h        [text]
      inflating: _dtor_list.h            [text]
      inflating: tdeh_cpp_abi.cpp        [text]
      inflating: xcdivcc.c               [text]
      inflating: xxcpow.h                [text]
      inflating: new_.cpp                [text]
      inflating: localtim.c              [text]
      inflating: powf.c                  [text]
      inflating: atoi.c                  [text]
      inflating: ungetc.c                [text]
      inflating: xcsubcc.c               [text]
      inflating: xxccosh.h               [text]
      inflating: floor.c                 [text]
      inflating: format.h                [text]
      inflating: newhandler.cpp          [text]
      inflating: set                     [text]
      inflating: xxxcdivcc.h             [text]
      inflating: cargl.c                 [text]
      inflating: ieeed.h                 [text]
      inflating: isinff_i.h              [text]
      inflating: mathl.h                 [text]
      inflating: sstream                 [text]
      inflating: atexit.c                [text]
      inflating: divi_t.asm              [text]
      inflating: isalnum.c               [text]
      inflating: cstddef                 [text]
      inflating: ctanh.c                 [text]
      inflating: isnan.c                 [text]
      inflating: rope                    [text]
      inflating: xlhypot.c               [text]
      inflating: fseek.c                 [text]
      inflating: new                     [text]
      inflating: new.h                   [text]
      inflating: subf.c                  [text]
      inflating: ldexpf.c                [text]
      inflating: ccoshl.c                [text]
      inflating: strtok.c                [text]
      inflating: _isfuncdef.h            [text]
      inflating: functional              [text]
      inflating: xtree                   [text]
      inflating: log1pl.c                [text]
      inflating: catanhf.c               [text]
      inflating: array_pdel.cpp          [text]
      inflating: xstddef                 [text]
      inflating: strftime.c              [text]
      inflating: xxctan.h                [text]
      inflating: floorf_i.h              [text]
      inflating: fabsf.c                 [text]
      inflating: crealf.c                [text]
      inflating: divd.c                  [text]
      inflating: global.h                [text]
      inflating: fread.c                 [text]
      inflating: isspace.c               [text]
      inflating: subf_i.h                [text]
      inflating: _mutex.c                [text]
      inflating: divf_i.h                [text]
      inflating: div.c                   [text]
      inflating: asinhf_i.h              [text]
      inflating: fltxf_i.h               [text]
      inflating: _scanfi_nf.c            [text]
      inflating: log1p.c                 [text]
      inflating: coth.c                  [text]
      inflating: xxcatan.h               [text]
      inflating: snprintf.c              [text]
      inflating: cpp_inline_math.h       [text]
      inflating: xldscale.c              [text]
      inflating: isnormalf.c             [text]
      inflating: array_nodel.cpp         [text]
      inflating: cstdarg                 [text]
      inflating: fgets.c                 [text]
      inflating: newnothrow.cpp          [text]
      inflating: ctype.h                 [text]
      inflating: xfcaddcr.c              [text]
      inflating: xhash                   [text]
      inflating: xdnorm.c                [text]
      inflating: memory.c                [text]
      inflating: lldiv.c                 [text]
      inflating: ios                     [text]
      inflating: fpclassifyf_i.h         [text]
      inflating: tdeh_pr_common.cpp      [text]
      inflating: imaxdiv.c               [text]
      inflating: complex                 [text]
      inflating: set_new.cpp             [text]
      inflating: strcpy.c                [text]
      inflating: exp2f.c                 [text]
      inflating: frcdivf.h               [text]
      inflating: reald.h                 [text]
      inflating: asinf.c                 [text]
      inflating: clogl.c                 [text]
      inflating: exp.c                   [text]
      inflating: stdio.h                 [text]
      inflating: asinf_i.h               [text]
      inflating: gtrf_i.h                [text]
      inflating: tls.h                   [text]
      inflating: _fmt_specifier.h        [text]
      inflating: xlcdivcc.c              [text]
      inflating: ccoshf.c                [text]
      inflating: atan.c                  [text]
      inflating: exp10.c                 [text]
      inflating: xfcbuild.c              [text]
      inflating: _printfi_min.c          [text]
      inflating: round.c                 [text]
      inflating: time.h                  [text]
      inflating: guard.cpp               [text]
      inflating: locale0.cpp             [text]
      inflating: _tls.h                  [text]
      inflating: frcmpyf.c               [text]
      inflating: fmodf.c                 [text]
      inflating: bitset                  [text]
      inflating: vec_newdel.h            [text]
      inflating: powf_i.h                [text]
      inflating: xmath.h                 [text]
      inflating: xlcmulcr.c              [text]
      inflating: bsearch.c               [text]
      inflating: memcpy62.c              [text]
      inflating: isnormal.c              [text]
      inflating: fltllif.c               [text]
      inflating: tls.c                   [text]
      inflating: xfhypot.c               [text]
      inflating: clearerr.c              [text]
      inflating: cotf_i.h                [text]
      inflating: _scanfi.c               [text]
      inflating: rtti.h                  [text]
      inflating: formi32.h               [text]
      inflating: stl.h                   [text]
      inflating: xexp.c                  [text]
      inflating: xlocale.cpp             [text]
      inflating: frcmpyf.h               [text]
      inflating: clogf.c                 [text]
      inflating: xxhypot.h               [text]
      inflating: xxxpoly.h               [text]
      inflating: log2.c                  [text]
      inflating: cpy_tbl.h               [text]
      inflating: exit.c                  [text]
      inflating: eqlf_i.h                [text]
      inflating: yvals.h                 [text]
      inflating: xcmulcc.c               [text]
      inflating: runtime.h               [text]
      inflating: gsm.h                   [text]
      inflating: renormd.h               [text]
      inflating: trunc.c                 [text]
      inflating: fixdli.c                [text]
      inflating: xfcaddcc.c              [text]
      inflating: cpowl.c                 [text]
      inflating: xcaddcc.c               [text]
      inflating: cosf_i.h                [text]
      inflating: ctype.c                 [text]
      inflating: xxcsinh.h               [text]
      inflating: divu.asm                [text]
      inflating: wlocale.cpp             [text]
      inflating: fixdi.c                 [text]
      inflating: push.asm                [text]
      inflating: memory                  [text]
      inflating: exception               [text]
      inflating: strchr.c                [text]
      inflating: call_stub.asm           [text]
      inflating: strncmp.c               [text]
      inflating: xsinh.c                 [text]
      inflating: wchar.h                 [text]
      inflating: string.h                [text]
      inflating: cacos.c                 [text]
      inflating: rewind.c                [text]
      inflating: modf.c                  [text]
      inflating: double_config.h         [text]
      inflating: asin.c                  [text]
      inflating: hash_map                [text]
      inflating: xlsinh.c                [text]
      inflating: subd.c                  [text]
      inflating: memcpy64.asm            [text]
      inflating: vsprintf.c              [text]
      inflating: xlocale                 [text]
      inflating: xfexp.c                 [text]
      inflating: sinhf_i.h               [text]
      inflating: isxdigit.c              [text]
      inflating: frexpf_i.h              [text]
      inflating: tmzone.c                [text]
      inflating: _lock.h                 [text]
      inflating: deque                   [text]
      inflating: vec_newdel.cpp          [text]
      inflating: remu_t.asm              [text]
      inflating: fltif.c                 [text]
      inflating: fltlid.c                [text]
      inflating: c60asm.i                [text]
      inflating: strcspn.c               [text]
      inflating: strtoull.c              [text]
      inflating: divi_c.c                [text]
      inflating: ieeemask.h              [text]
      inflating: gsmvars.c               [text]
      inflating: clog10.c                [text]
      inflating: delnothrow.cpp          [text]
      inflating: streambuf               [text]
      inflating: xcbuild.c               [text]
     extracting: .preprocessed           [empty]
      inflating: exp2f_i.h               [text]
      inflating: xfsin.c                 [text]
      inflating: frexp2_i.h              [text]
      inflating: slist                   [text]
      inflating: xxxcbuild.h             [text]
      inflating: cimag.c                 [text]
      inflating: creall.c                [text]
      inflating: clocale                 [text]
      inflating: outprof.c               [text]
      inflating: casinhl.c               [text]
      inflating: iomanip                 [text]
      inflating: sprintf.c               [text]
      inflating: isalpha.c               [text]
      inflating: cassert                 [text]
      inflating: sinhf.c                 [text]
      inflating: fputc.c                 [text]
      inflating: frcaddf.h               [text]
      inflating: neqf_i.h                [text]
      inflating: conj.c                  [text]
      inflating: algorithm               [text]
      inflating: errno.h                 [text]
      inflating: vec_cctor.cpp           [text]
      inflating: csinl.c                 [text]
      inflating: strasgi_t.asm           [text]
      inflating: climits                 [text]
      inflating: strstream.h             [text]
      inflating: isascii.c               [text]
      inflating: cstdio                  [text]
      inflating: xxcacos.h               [text]
      inflating: xhypot.c                [text]
      inflating: xdtest.c                [text]
      inflating: lssf_i.h                [text]
      inflating: strncat.c               [text]
      inflating: strstream               [text]
      inflating: vprintf.c               [text]
      inflating: cmpf_i.h                [text]
      inflating: delete.cpp              [text]
      inflating: cimagf.c                [text]
      inflating: stdbool.h               [text]
      inflating: atol.c                  [text]
      inflating: ccosh.c                 [text]
      inflating: xxxcaddcr.h             [text]
      inflating: hash_set                [text]
      inflating: acotf_i.h               [text]
      inflating: cmath                   [text]
      inflating: strtoul.c               [text]
      inflating: renormf.c               [text]
      inflating: cexpl.c                 [text]
      inflating: fgetc.c                 [text]
      inflating: iomanip.cpp             [text]
      inflating: array_pnew.cpp          [text]
      inflating: xxxhypot.h              [text]
      inflating: wchar.cx                [text]
      inflating: cacosl.c                [text]
      inflating: fsetpos.c               [text]
      inflating: isinff.c                [text]
      inflating: dtor_list.cpp           [text]
      inflating: throw.cpp               [text]
      inflating: cacoshf.c               [text]
      inflating: cacosh.c                [text]
      inflating: ftell.c                 [text]
      inflating: casinh.c                [text]
      inflating: negll.sa                [text]
      inflating: xvalues.c               [text]
      inflating: tmpfile.c               [text]
      inflating: fixdlli.c               [text]
      inflating: cfloat                  [text]
      inflating: acoshf.c                [text]
      inflating: creal.c                 [text]
      inflating: formi.h                 [text]
      inflating: pow.c                   [text]
      inflating: queue                   [text]
      inflating: acot.c                  [text]
      inflating: iomanip.h               [text]
      inflating: logf_i.h                [text]
      inflating: divu_t.asm              [text]
      inflating: log1pf.c                [text]
      inflating: geqf_i.h                [text]
      inflating: modfl.c                 [text]
      inflating: asinhf.c                [text]
      inflating: fflush.c                [text]
      inflating: xcomplex                [text]
      inflating: xxxcaddcc.h             [text]
      inflating: ostream                 [text]
      inflating: sinf.c                  [text]
      inflating: copy_decompress_none.c  [text]
      inflating: difftime.c              [text]
      inflating: xatexit.cx0             [text]
      inflating: truncf.c                [text]
      inflating: copy_decompress_rle.c   [text]
      inflating: placenew.cpp            [text]
      inflating: coshf_i.h               [text]
      inflating: ceilf_i.h               [text]
      inflating: mpyf_i.h                [text]
      inflating: syntf.h                 [text]
      inflating: renormd.c               [text]
      inflating: logf.c                  [text]
      inflating: atan2f_i.h              [text]
      inflating: xsin.c                  [text]
      inflating: cproj.c                 [text]
      inflating: stddef.h                [text]
      inflating: fabs.c                  [text]
      inflating: strspn.c                [text]
      inflating: xstring                 [text]
      inflating: fixdu.c                 [text]
      inflating: _printfi.c              [text]
      inflating: vector                  [text]
      inflating: cexpf.c                 [text]
      inflating: iostream.h              [text]
      inflating: tmpnam.c                [text]
      inflating: xlsin.c                 [text]
      inflating: xutility                [text]
      inflating: xfcsubcc.c              [text]
      inflating: boot.c                  [text]
      inflating: fixfull.c               [text]
      inflating: cvtfd.c                 [text]
      inflating: xfdtest.c               [text]
      inflating: floorf.c                [text]
      inflating: cabsf.c                 [text]
      inflating: llshift.c               [text]
      inflating: cothf_i.h               [text]
      inflating: _data_synch.c           [text]
      inflating: xfcdivcc.c              [text]
      inflating: isnanf.c                [text]
      inflating: remi_t.asm              [text]
      inflating: xlcdivcr.c              [text]
      inflating: atoll.c                 [text]
      inflating: xxconj.h                [text]
      inflating: powi.c                  [text]
      inflating: xxcabs.h                [text]
      inflating: xxcasinh.h              [text]
      inflating: stox.c                  [text]
      inflating: fiopen.cpp              [text]
      inflating: cpowf.c                 [text]
      inflating: strcoll.c               [text]
      inflating: fixfli.c                [text]
      inflating: tanf_i.h                [text]
      inflating: xxxcmulcr.h             [text]
      inflating: syntd.h                 [text]
      inflating: asctime.c               [text]
      inflating: strxfrm.c               [text]
      inflating: fpclassify.c            [text]
      inflating: float.h                 [text]
      inflating: _reg_synch_api.h        [text]
      inflating: pprof_cio.c             [text]
      inflating: xcaddcr.c               [text]
      inflating: cpp_init.c              [text]
      inflating: _lock.c                 [text]
      inflating: renormf.h               [text]
      inflating: getenv.c                [text]
      inflating: mpyf.c                  [text]
      inflating: divf.c                  [text]
      inflating: abs.c                   [text]
      inflating: catan.c                 [text]
      inflating: cabsl.c                 [text]
      inflating: sin.c                   [text]
      inflating: absd.c                  [text]
      inflating: nothrow.cpp             [text]
      inflating: atanf_i.h               [text]
      inflating: acot2.c                 [text]
      inflating: trgdrv.c                [text]
      inflating: copy_decompress_lzss.c  [text]
      inflating: xxstod.h                [text]
      inflating: strrchr.c               [text]
      inflating: raise.c                 [text]
      inflating: acotf.c                 [text]
      inflating: wctype.h                [text]
      inflating: fltuld.c                [text]
      inflating: xxcctype.h              [text]
      inflating: signal.c                [text]
      inflating: cargs.h                 [text]
      inflating: divi.asm                [text]
      inflating: casinhf.c               [text]
      inflating: csinhf.c                [text]
      inflating: xxcacosh.h              [text]
      inflating: strstr.c                [text]
      inflating: sscanf.c                [text]
      inflating: xxcreal.h               [text]
      inflating: clog10l.c               [text]
      inflating: xlcaddcr.c              [text]
      inflating: memccpy.c               [text]
      inflating: rsqrtf_i.h              [text]
      inflating: expf_i.h                [text]
      inflating: args_main.c             [text]
      inflating: string.cpp              [text]
      inflating: xfvalues.c              [text]
      inflating: fprintf.c               [text]
      inflating: remove.c                [text]
      inflating: islower.c               [text]
      inflating: cwctype                 [text]
      inflating: fixflli.c               [text]
      inflating: isinf.c                 [text]
      inflating: c60.h                   [text]
      inflating: _bufread.c              [text]
      inflating: stdexcept               [text]
      inflating: cosh.c                  [text]
      inflating: _isfuncdcl.h            [text]
      inflating: memcmp.c                [text]
      inflating: tdeh_pr_c6000.cpp       [text]
      inflating: log2f_i.h               [text]
      inflating: divu_c.c                [text]
      inflating: errno.c                 [text]
      inflating: xdebug                  [text]
      inflating: setjmp.h                [text]
      inflating: imath64.c               [text]
      inflating: defines.h               [text]
      inflating: truncf_i.h              [text]
      inflating: clog10f.c               [text]
      inflating: xxfftype.h              [text]
      inflating: atanhf_i.h              [text]
      inflating: frcaddd.h               [text]
      inflating: acosf_i.h               [text]
      inflating: xiosbase                [text]
      inflating: limits.cpp              [text]
      inflating: ceilf.c                 [text]
      inflating: math.h                  [text]
      inflating: log2f.c                 [text]
      inflating: mpyd.c                  [text]
      inflating: lowlev.c                [text]
      inflating: divrem.c                [text]
      inflating: lltoa.c                 [text]
      inflating: negd.c                  [text]
      inflating: xxxexp.h                [text]
      inflating: modff.c                 [text]
      inflating: frcmpyf1_i.h            [text]
      inflating: throw_edg.cpp           [text]
      inflating: vect.h                  [text]
      inflating: copy_zero_init.c        [text]
      inflating: target.h                [text]
      inflating: cprojl.c                [text]
      inflating: xcdivcr.c               [text]
      inflating: rsqrtf.c                [text]
      inflating: cexp.c                  [text]
      inflating: negf_i.h                [text]
      inflating: ieeef.h                 [text]
      inflating: access.h                [text]
      inflating: error.cpp               [text]
      inflating: vtbl.h                  [text]
      inflating: xlcbuild.c              [text]
      inflating: time.c                  [text]
      inflating: log10f.c                [text]
      inflating: fltullf.c               [text]
      inflating: weak_return.c           [text]
      inflating: error.h                 [text]
      inflating: _pthread.h              [text]
      inflating: frcmpyf_div.c           [text]
      inflating: xxxcsubcr.h             [text]
      inflating: cpy_tbl.c               [text]
      inflating: leqf_i.h                [text]
      inflating: casinf.c                [text]
      inflating: frexpf.c                [text]
      inflating: cot.c                   [text]
      inflating: iterator                [text]
      inflating: linkage.h               [text]
      inflating: c99_complex.c           [text]
      inflating: fltid.c                 [text]
      inflating: trgmsg.c                [text]
      inflating: strtoll.c               [text]
      inflating: tanf.c                  [text]
      inflating: tdeh_init.cpp           [text]
      inflating: frcmpyd_div.c           [text]
      inflating: ecvt.c                  [text]
      inflating: atanf.c                 [text]
      inflating: iosfwd                  [text]
      inflating: frcaddf_i.h             [text]
      inflating: casinl.c                [text]
      inflating: fltlif.c                [text]
      inflating: acot2f.c                [text]
      inflating: remu_c.c                [text]
      inflating: xfcdivcr.c              [text]
      inflating: ccos.c                  [text]
      inflating: strtoimax.c             [text]
      inflating: csin.c                  [text]
      inflating: stack                   [text]
      inflating: frcmpyd.h               [text]
      inflating: powif.c                 [text]
      inflating: xloctime                [text]
      inflating: xlcsubcc.c              [text]
      inflating: frcdivf.c               [text]
      inflating: toupper.c               [text]
      inflating: ferror.c                [text]
      inflating: frcdivd.h               [text]
      inflating: chunk.h                 [text]
      inflating: array_new.cpp           [text]
      inflating: string                  [text]
      inflating: _scanfi_min.c           [text]
      inflating: xfcmulcc.c              [text]
      inflating: dtos.c                  [text]
      inflating: assert.c                [text]
      inflating: dtor_list.h             [text]
      inflating: clock.c                 [text]
      inflating: acothf.c                [text]
      inflating: strerror.c              [text]
      inflating: sqrtf.c                 [text]
      inflating: fixful.c                [text]
      inflating: _data_synch.h           [text]
      inflating: xxlog1p.h               [text]
      inflating: array_del.cpp           [text]
      inflating: frcmpyf_div_i.h         [text]
      inflating: xlocinfo.cpp            [text]
      inflating: tdeh_unwinder.cpp       [text]
      inflating: acosh.c                 [text]
      inflating: exp2.c                  [text]
      inflating: frexp.c                 [text]
      inflating: eh_util.cpp             [text]
      inflating: basics.h                [text]
      inflating: conjl.c                 [text]
      inflating: strasg.asm              [text]
      inflating: xldtest.c               [text]
      inflating: map                     [text]
      inflating: fgetpos.c               [text]
      inflating: memmov.c                [text]
      inflating: divremx_i.h             [text]
      inflating: xdscale.c               [text]
      inflating: fscanf.c                [text]
      inflating: wchar.hx                [text]
      inflating: locale                  [text]
      inflating: conjf.c                 [text]
      inflating: csinhl.c                [text]
      inflating: xldnorm.c               [text]
      inflating: fopen.c                 [text]
    cl6x decode.c -o -oe -k -pdsw225 -q  -mo --mem_model:data=far --no_visible_enums -c --ti_lib --building_runtime -D_BOOL --abi=eabi -mv6740 -fg --rtti -Ic:/users/briand~1/appdata/local/temp/ti2bc9~1/src -fr c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -fs c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -ft c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj
    process_begin: CreateProcess(NULL, cl6x decode.c -o -oe -k -pdsw225 -q -mo --mem_model:data=far --no_visible_enums -c --ti_lib --building_runtime -D_BOOL --abi=eabi -mv6740 -fg --rtti -Ic:/users/briand~1/appdata/local/temp/ti2bc9~1/src -fr c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -fs c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -ft c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj, ...) failed.
    cl6x negll.sa -o -oe -k -pdsw225 -q  -mo --mem_model:data=far --no_visible_enums -c --ti_lib --building_runtime -D_BOOL --abi=eabi -mv6740 --gcc -Ic:/users/briand~1/appdata/local/temp/ti2bc9~1/src -fr c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -fs c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -ft c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj
    process_begin: CreateProcess(NULL, cl6x negll.sa -o -oe -k -pdsw225 -q -mo --mem_model:data=far --no_visible_enums -c --ti_lib --building_runtime -D_BOOL --abi=eabi -mv6740 --gcc -Ic:/users/briand~1/appdata/local/temp/ti2bc9~1/src -fr c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -fs c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -ft c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj, ...) failed.
    cl6x wchar.cx -o -oe -k -pdsw225 -q  -mo --mem_model:data=far --no_visible_enums -c --ti_lib --building_runtime -D_BOOL --abi=eabi -mv6740 --gcc -Ic:/users/briand~1/appdata/local/temp/ti2bc9~1/src -fr c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -fs c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -ft c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj
    process_begin: CreateProcess(NULL, cl6x wchar.cx -o -oe -k -pdsw225 -q -mo --mem_model:data=far --no_visible_enums -c --ti_lib --building_runtime -D_BOOL --abi=eabi -mv6740 --gcc -Ic:/users/briand~1/appdata/local/temp/ti2bc9~1/src -fr c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -fs c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -ft c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj, ...) failed.
    cl6x tanh.c -o -oe -k -pdsw225 -q  -mo --mem_model:data=far --no_visible_enums -c --ti_lib --building_runtime -D_BOOL --abi=eabi -mv6740 --gcc  -Ic:/users/briand~1/appdata/local/temp/ti2bc9~1/src -fr c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -fs c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -ft c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj
    process_begin: CreateProcess(NULL, cl6x tanh.c -o -oe -k -pdsw225 -q -mo --mem_model:data=far --no_visible_enums -c --ti_lib --building_runtime -D_BOOL --abi=eabi -mv6740 --gcc -Ic:/users/briand~1/appdata/local/temp/ti2bc9~1/src -fr c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -fs c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -ft c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj, ...) failed.
    cl6x autoinit.c -o -oe -k -pdsw225 -q  -mo --mem_model:data=far --no_visible_enums -c --ti_lib --building_runtime -D_BOOL --abi=eabi -mv6740 --gcc -Ic:/users/briand~1/appdata/local/temp/ti2bc9~1/src -fr c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -fs c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -ft c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj
    process_begin: CreateProcess(NULL, cl6x autoinit.c -o -oe -k -pdsw225 -q -mo --mem_model:data=far --no_visible_enums -c --ti_lib --building_runtime -D_BOOL --abi=eabi -mv6740 --gcc -Ic:/users/briand~1/appdata/local/temp/ti2bc9~1/src -fr c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -fs c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -ft c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj, ...) failed.
    cl6x cpp_init.c -o -oe -k -pdsw225 -q  -mo --mem_model:data=far --no_visible_enums -c --ti_lib --building_runtime -D_BOOL --abi=eabi -mv6740 --gcc -Ic:/users/briand~1/appdata/local/temp/ti2bc9~1/src -fr c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -fs c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -ft c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj
    process_begin: CreateProcess(NULL, cl6x cpp_init.c -o -oe -k -pdsw225 -q -mo --mem_model:data=far --no_visible_enums -c --ti_lib --building_runtime -D_BOOL --abi=eabi -mv6740 --gcc -Ic:/users/briand~1/appdata/local/temp/ti2bc9~1/src -fr c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -fs c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -ft c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj, ...) failed.
    cl6x boot.c -o -oe -k -pdsw225 -q  -mo --mem_model:data=far --no_visible_enums -c --ti_lib --building_runtime -D_BOOL --abi=eabi -mv6740 --gcc -Ic:/users/briand~1/appdata/local/temp/ti2bc9~1/src -fr c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -fs c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -ft c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj
    process_begin: CreateProcess(NULL, cl6x boot.c -o -oe -k -pdsw225 -q -mo --mem_model:data=far --no_visible_enums -c --ti_lib --building_runtime -D_BOOL --abi=eabi -mv6740 --gcc -Ic:/users/briand~1/appdata/local/temp/ti2bc9~1/src -fr c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -fs c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -ft c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj, ...) failed.
    cl6x dtos.c -o -oe -k -pdsw225 -q  -mo --mem_model:data=far --no_visible_enums -c --ti_lib --building_runtime -D_BOOL --abi=eabi -mv6740 --gcc -Ic:/users/briand~1/appdata/local/temp/ti2bc9~1/src -fr c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -fs c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -ft c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj
    process_begin: CreateProcess(NULL, cl6x dtos.c -o -oe -k -pdsw225 -q -mo --mem_model:data=far --no_visible_enums -c --ti_lib --building_runtime -D_BOOL --abi=eabi -mv6740 --gcc -Ic:/users/briand~1/appdata/local/temp/ti2bc9~1/src -fr c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -fs c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj -ft c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj, ...) failed.
    make (e=2): The system cannot find the file specified.
    gmake.exe: *** [c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj/decode.obj] Error 2
    gmake.exe: *** Waiting for unfinished jobs....
    make (e=2): The system cannot find the file specified.
    gmake.exe: *** [c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj/negll.obj] Error 2
    make (e=2): The system cannot find the file specified.
    gmake.exe: *** [c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj/wchar.obj] Error 2
    make (e=2): The system cannot find the file specified.
    gmake.exe: *** [c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj/tanh.obj] Error 2
    make (e=2): The system cannot find the file specified.
    gmake.exe: *** [c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj/autoinit.obj] Error 2
    make (e=2): The system cannot find the file specified.
    gmake.exe: *** [c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj/cpp_init.obj] Error 2
    make (e=2): The system cannot find the file specified.
    gmake.exe: *** [c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj/boot.obj] Error 2
    make (e=2): The system cannot find the file specified.
    gmake.exe: *** [c:/users/briand~1/appdata/local/temp/ti2bc9~1/obj/dtos.obj] Error 2
    >> ERROR: mklib: gmake error during rts6740_elf.lib build
    
    C:\ti\ccsv6\tools\compiler\c6000_7.4.15\lib>

  • Hi Titus,

    I got it working at last, there was an issue with my Path where it wasn't picking up the compiler binaries (added using --compiler_bin_dir=DIRECTORY) and also there was a permission issue with one of the Windows temp directories, I removed the permission restriction and it now builds.

    Thank you for your help.

    Brian

  • Dear Brian,
    Sounds good.
    Thanks for your update.
  • Titus,

    I'm trying to see if I can improve the SD write speed but it isn't clear what changes to what files in the rtssrc.zip. I mainly see instructions for rebuilding the library.

    Could you specify what changes are needed?

    Thank you.
  • Dear DSPwork,
    You can refer the below replies.

    One solution is that we can modify the buffer size without modifying the library.
    Second solution is that we have rebuild the library for new Buffer size.

    e2e.ti.com/.../1685448
    e2e.ti.com/.../1679409

    1)
    setvbuf(pFile, vBuf, _IOFBF, sizeof(vBuf));
    pFile->bufend = &vBuf[sizeof(vBuf) - 1];

    2)
    C:\ti\ccsv5\tools\compiler\c6000_7.4.4\lib\build\rtssrc\stdio.h
    #define BUFSIZ 2048 //Titus : to improve the speed

    I hope this helps.
    Let me know the results.