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.

Implementing C6747 Sys/Bios USB driver

Hi. I need to implement USB on the C6747 EVM platform. The PC side will be the host. The aim is for the EVM to support a FAT file system.

I am using latest CCS and SYS/BIOS versions. I am not booting the ARM core of the EVM board, nor interested in Linux.

Can you point me in the right direction, ideally to a working sys/bios driver with source code/project and documentation.

Otherwise, documentation, examples etc.

Many thanks.....

  • Hi,
    We have BIOS USB package support for C6747.
    software-dl.ti.com/.../index.html
    Its CCSv3.3 projects, so you have to import this legacy projects as "Import legacy CCS3.3 projects" option in later CCS IDE (CCS5.5 or CCSv6.1)
  • Hi

    Thank you for your response.

    I have tried importing project as you suggest and I have tried to build it.

    Loads of directories had to be added to project to compile, and now I have some other errors. I have included the errors in this post.

    What general work plan would you suggest? As you can see I went for the usb_dual_hid_sample project.

    Do TI not have a supported SYS/BIOS version of this project. Are you able to build and copy me the project to import into CCS Version: 6.1.0.00104 ?


    **** Build of configuration Debug for project usb_dual_hid_sample ****

    "C:\\ti\\ccsv6\\utils\\bin\\gmake" -k all
    'Building target: C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/examples/usbdualhid/build/C6747/ccs3/usb_dual_hid_sample/../../../../build/C6747/ccs3/bin/Debug/dualhid_sample.out'
    'Invoking: C6000 Linker'
    "C:/ti/ccsv6/tools/compiler/c6000_7.4.12/bin/cl6x" -mv6740 --abi=coffabi -g --define="CONFIG_DUAL" --define="CONFIG_INCLUDE_FD" --define="CHIP_C6747" --display_error_number --diag_wrap=off --obj_directory="C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/examples/usbdualhid/build/C6747/ccs3/Debug" -z -m"C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/examples/usbdualhid/build/C6747/ccs3/Debug/dualhid_sample.map" -i"C:/ti/ccsv6/tools/compiler/c6000_7.4.12/lib" -i"C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/examples/usbdualhid/build/C6747/ccs3" -i"C:/ti/pspdrivers_01_30_00_05/packages/ti/pspiom/platforms/evm6747/lib/Debug" -i"C:/ti/pspdrivers_01_30_00_05/packages/ti/pspiom/psc/lib/C6747/Debug" -i"C:/ti/pspdrivers_01_30_00_05/packages/ti/pspiom/blkmedia/lib/C6747/Debug" -i"C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/examples/usbdualhid/build/C6747" -i"C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/platforms/C6747/lib/Release" -i"C:/ti/ccsv6/tools/compiler/c6000_7.4.12/include" -i"C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/examples/usbdualhid/build/C6747/ccs3/usb_dual_hid_sample" -i"C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/examples/usbdualhid/build/C6747/ccs3" -i"/lib" -i"/packages/ti/pspiom/blkmedia/lib/C6747/Debug" -i"C:/Program Files/Texas Instruments/edma3_lld_01_10_00_01/packages/ti/sdo/edma3/rm/lib/C6747/Debug" -i"C:/Program Files/Texas Instruments/edma3_lld_01_10_00_01/packages/ti/sdo/edma3/drv/sample/lib/C6747/Debug" -i"C:/Program Files/Texas Instruments/edma3_lld_01_10_00_01/packages/ti/sdo/edma3/drv/lib/Debug" -i"C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/dual/C6747/Release" -i"C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/device/C6747/Release" -i"C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/host/C6747/Release" -i"C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/platforms/C6747/lib/Debug" -i"/packages/ti/pspiom/platforms/evm6747/lib/Debug" -i"/packages/ti/pspiom/psc/lib/C6747/Debug" --reread_libs --warn_sections --display_error_number --diag_wrap=off --xml_link_info="usb_dual_hid_sample_linkInfo.xml" --rom_model -o "C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/examples/usbdualhid/build/C6747/ccs3/usb_dual_hid_sample/../../../../build/C6747/ccs3/bin/Debug/dualhid_sample.out" "C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/examples/usbdualhid/build/C6747/ccs3/Debug/bios_sample_main.obj" "C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/examples/usbdualhid/build/C6747/ccs3/Debug/fd_hid_kbd.obj" "C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/examples/usbdualhid/build/C6747/ccs3/Debug/hid_devmgr_app.obj" "C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/examples/usbdualhid/build/C6747/ccs3/Debug/hid_init.obj" "C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/examples/usbdualhid/build/C6747/ccs3/Debug/input_sample.obj" "C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/examples/usbdualhid/build/C6747/ccs3/Debug/keyboard_app.obj" "C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/examples/usbdualhid/build/C6747/ccs3/Debug/keyboard_sample.obj" "C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/examples/usbdualhid/build/C6747/ccs3/Debug/mouse_app.obj" "C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/examples/usbdualhid/build/C6747/usbdualhid.cmd" -l"edma3_rm_bios.lib" -l"edma3_drv_bios_sample.lib" -l"edma3_drv_bios_c674.lib" -l"ti.biosusb.device.core.a674" -l"ti.biosusb.device.dcd.a674" -l"ti.biosusb.dual.port.a674" -l"ti.biosusb.dual.portcom.a674" -l"ti.pspiom.blkmedia.raw.a674" -l"ti.biosusb.device.fd.hid.a674" -l"ti.biosusb.device.fd.scsi.a674" -l"ti.biosusb.dual.jos.a674" -l"ti.pspiom.psc.a674" -l"ti.biosusb.platforms.a674" -l"ti.pspiom.platforms.evm6747.evmInit.a674" -l"ti.biosusb.host.mass.a674" -l"ti.biosusb.host.hid.a674" -l"ti.biosusb.host.core.a674"
    <Linking>
    error #10008-D: cannot find file "..\usbdualhidcfg.cmd"
    warning #10247-D: creating output section ".bss" without a SECTIONS specification
    warning #10247-D: creating output section ".cinit" without a SECTIONS specification
    warning #10247-D: creating output section ".cio" without a SECTIONS specification
    warning #10247-D: creating output section ".const" without a SECTIONS specification
    warning #10247-D: creating output section ".far" without a SECTIONS specification
    warning #10247-D: creating output section ".stack" without a SECTIONS specification
    warning #10247-D: creating output section ".switch" without a SECTIONS specification
    warning #10247-D: creating output section ".sysmem" without a SECTIONS specification
    warning #10247-D: creating output section ".text" without a SECTIONS specification
    warning #10210-D: creating ".stack" section with default size of 0x400; use the -stack option to change the default size
    warning #10210-D: creating ".sysmem" section with default size of 0x400; use the -heap option to change the default size
    "C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/examples/usbdualhid/build/C6747/usbdualhid.cmd", line 4: warning #10097: memory range not found: IRAM on page 0
    "C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/examples/usbdualhid/build/C6747/usbdualhid.cmd", line 4: error #10099-D: program will not fit into available memory. run placement with alignment fails for section "my_sect" size 0x0

    undefined first referenced
    symbol in file
    --------- ----------------
    _BCACHE_inv C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/dual/C6747/Release/ti.biosusb.dual.port.a674<mem.obj>
    _BCACHE_wb C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/dual/C6747/Release/ti.biosusb.dual.port.a674<mem.obj>
    _BCACHE_wbInv C:/ti/pspdrivers_01_30_00_05/packages/ti/pspiom/blkmedia/lib/C6747/Debug/ti.pspiom.blkmedia.raw.a674<blkmedia.obj>
    _C64_disableIER C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/dual/C6747/Release/ti.biosusb.dual.port.a674<bus.obj>
    _C64_enableIER C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/dual/C6747/Release/ti.biosusb.dual.port.a674<bus.obj>
    _CLK_countspms C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/dual/C6747/Release/ti.biosusb.dual.port.a674<sync.obj>
    _CLK_getltime C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/dual/C6747/Release/ti.biosusb.dual.port.a674<sync.obj>
    _CLK_getprd C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/dual/C6747/Release/ti.biosusb.dual.port.a674<sync.obj>
    _ECM_ATTRS C:/Program Files/Texas Instruments/edma3_lld_01_10_00_01/packages/ti/sdo/edma3/drv/sample/lib/C6747/Debug/edma3_drv_bios_sample.lib<bios_edma3_drv_sample_init.obj>
    _ECM_disableEvent C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/dual/C6747/Release/ti.biosusb.dual.port.a674<bus.obj>
    _ECM_dispatchPlug C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/dual/C6747/Release/ti.biosusb.dual.port.a674<bus.obj>
    _ECM_enableEvent C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/dual/C6747/Release/ti.biosusb.dual.port.a674<bus.obj>
    _HWI_disable C:/ti/pspdrivers_01_30_00_05/packages/ti/pspiom/blkmedia/lib/C6747/Debug/ti.pspiom.blkmedia.raw.a674<blkmedia.obj>
    _HWI_restore C:/ti/pspdrivers_01_30_00_05/packages/ti/pspiom/blkmedia/lib/C6747/Debug/ti.pspiom.blkmedia.raw.a674<blkmedia.obj>
    _KNL_curtask C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/dual/C6747/Release/ti.biosusb.dual.port.a674<sync.obj>
    _KNL_dummy C:/Program Files/Texas Instruments/edma3_lld_01_10_00_01/packages/ti/sdo/edma3/drv/sample/lib/C6747/Debug/edma3_drv_bios_sample.lib<bios_edma3_drv_sample_cs.obj>
    _SEM_create C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/dual/C6747/Release/ti.biosusb.dual.port.a674<sync.obj>
    _SEM_delete C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/dual/C6747/Release/ti.biosusb.dual.port.a674<sync.obj>
    _SEM_pend C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/dual/C6747/Release/ti.biosusb.dual.port.a674<sync.obj>
    _SEM_pendBinary C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/dual/C6747/Release/ti.biosusb.dual.port.a674<sync.obj>
    _SEM_post C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/dual/C6747/Release/ti.biosusb.dual.port.a674<sync.obj>
    _SEM_postBinary C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/dual/C6747/Release/ti.biosusb.dual.port.a674<sync.obj>
    _TSK_create C:/ti/pspdrivers_01_30_00_05/packages/ti/pspiom/blkmedia/lib/C6747/Debug/ti.pspiom.blkmedia.raw.a674<blkmedia.obj>
    _TSK_delete C:/ti/pspdrivers_01_30_00_05/packages/ti/pspiom/blkmedia/lib/C6747/Debug/ti.pspiom.blkmedia.raw.a674<blkmedia.obj>
    _TSK_disable C:/ti/pspdrivers_01_30_00_05/packages/ti/pspiom/blkmedia/lib/C6747/Debug/ti.pspiom.blkmedia.raw.a674<blkmedia.obj>
    _TSK_enable C:/ti/pspdrivers_01_30_00_05/packages/ti/pspiom/blkmedia/lib/C6747/Debug/ti.pspiom.blkmedia.raw.a674<blkmedia.obj>
    _TSK_timerSem C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/dual/C6747/Release/ti.biosusb.dual.port.a674<sync.obj>

    error #10234-D: unresolved symbols remain

    >> Compilation failure
    error #10010: errors encountered during linking; "C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/examples/usbdualhid/build/C6747/ccs3/usb_dual_hid_sample/../../../../build/C6747/ccs3/bin/Debug/dualhid_sample.out" not built
    gmake: *** [C:/Work/TI/biosusb_01_10_03/packages/ti/biosusb/examples/usbdualhid/build/C6747/ccs3/usb_dual_hid_sample/../../../../build/C6747/ccs3/bin/Debug/dualhid_sample.out] Error 1
    gmake: Target `all' not remade because of errors.

    **** Build Finished ****
  • Hi Rex,

    Rex said:
    I need to implement USB on the C6747 EVM platform. The PC side will be the host.


    This means, you would want to configure the C6747 EVM as a USB device and the PC will act as a host.

    BIOS USB is the one for C6747. But that package was no more supported and not maintained. As long as it works for you, it would be good. But it was a very old package compatible with older version of CCS e.t.c., BUt if it doesnot work, tough to get support as it is an older one.

    Only for C6748, USB starterware packages are available. Device side examples are enclosed in that package. ( usb_dev_bulk, usb_dev_mouse, usb_dev_msc, usb_dev_serial ). And a nominal FAT support is also there enclosed in C6748 starterware package. ( "../C6748_StarterWare_1_20_04_01\third_party\fatfs" )


    -------