Code Monkey home page Code Monkey logo

esp32usb's People

Contributors

atanisoft avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

esp32usb's Issues

esp32s3, can't build basic example

Environment

Development Kit: Adafruit Feather esp32s3
Module or chip used: ESP32-S3-MINI-1
IDF version: v4.4.1 (last stable)
Operating System: Windows 10
Using an IDE?: Yes (VS Code with espressif plugin)
Power Supply: USB

Problem Description

Trying to compile code provided in README to test MSC.

main.cpp

#include "usb.h"

static const char *const readme_txt =
    "This is esp32usb's MassStorage Class demo.\r\n\r\n"
    "If you find any bugs or get any questions, feel free to file an\r\n"
    "issue at github.com/atanisoft/esp32usb";

extern "C" void app_main(void)
{
    init_usb_subsystem();
    configure_usb_descriptor_str(USB_DESC_MANUFACTURER, "esp32usb");
    configure_usb_descriptor_str(USB_DESC_PRODUCT, "esp32usb Device");
    configure_usb_descriptor_str(USB_DESC_SERIAL_NUMBER, "1234567890");
    configure_virtual_disk("esp32usb", 0x0100);
    add_readonly_file_to_virtual_disk("readme.txt", readme_txt, strlen(readme_txt));
    add_partition_to_virtual_disk("spiffs", "spiffs.bin");
    add_firmware_to_virtual_disk();
    start_usb_task();
}

Component configuration:

tinyusb 1

Build output:

Bootloader binary size 0x5190 bytes. 0x2e70 bytes (36%) free.
[1053/1055] Linking CXX executable tinyusb-msc-test.elf
FAILED: tinyusb-msc-test.elf 
cmd.exe /C "cd . && C:\Users\JM\.espressif\tools\xtensa-esp32s3-elf\esp-2021r2-patch3-8.4.0\xtensa-esp32s3-elf\bin\xtensa-esp32s3-elf-g++.exe -mlongcalls  @CMakeFiles\tinyusb-msc-test.elf.rsp -o tinyusb-msc-test.elf  && cd ."
c:/users/jm/.espressif/tools/xtensa-esp32s3-elf/esp-2021r2-patch3-8.4.0/xtensa-esp32s3-elf/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld.exe: esp-idf/main/libmain.a(usb_msc.cpp.obj):F:\Tools\espressif\test-examples\tinyusb-msc-test\build/../components/esp32usb/src/usb_msc.cpp:279: multiple definition of `ota_update_partition'; CMakeFiles/tinyusb-msc-test.elf.dir/components/esp32usb/src/usb_msc.cpp.obj:(.bss+0x0): first defined here
c:/users/jm/.espressif/tools/xtensa-esp32s3-elf/esp-2021r2-patch3-8.4.0/xtensa-esp32s3-elf/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld.exe: esp-idf/main/libmain.a(usb_msc.cpp.obj): in function `configure_virtual_disk(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int)':
F:\Tools\espressif\test-examples\tinyusb-msc-test\build/../components/esp32usb/src/usb_msc.cpp:342: multiple definition of `configure_virtual_disk(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int)'; CMakeFiles/tinyusb-msc-test.elf.dir/components/esp32usb/src/usb_msc.cpp.obj:usb_msc.cpp:(.text+0x17c): first defined here
c:/users/jm/.espressif/tools/xtensa-esp32s3-elf/esp-2021r2-patch3-8.4.0/xtensa-esp32s3-elf/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld.exe: esp-idf/main/libmain.a(usb_msc.cpp.obj): in function `tud_msc_inquiry_cb':
F:\Tools\espressif\test-examples\tinyusb-msc-test\build/../components/esp32usb/src/usb_msc.cpp:694: multiple definition of `tud_msc_inquiry_cb'; CMakeFiles/tinyusb-msc-test.elf.dir/components/esp32usb/src/usb_msc.cpp.obj:usb_msc.cpp:(.text+0xbd8): first defined here
c:/users/jm/.espressif/tools/xtensa-esp32s3-elf/esp-2021r2-patch3-8.4.0/xtensa-esp32s3-elf/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld.exe: esp-idf/main/libmain.a(usb_msc.cpp.obj): in function `tud_msc_test_unit_ready_cb':
F:\Tools\espressif\test-examples\tinyusb-msc-test\build/../components/esp32usb/src/usb_msc.cpp:702: multiple definition of `tud_msc_test_unit_ready_cb'; CMakeFiles/tinyusb-msc-test.elf.dir/components/esp32usb/src/usb_msc.cpp.obj:usb_msc.cpp:(.text+0xc68): first defined here
c:/users/jm/.espressif/tools/xtensa-esp32s3-elf/esp-2021r2-patch3-8.4.0/xtensa-esp32s3-elf/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld.exe: esp-idf/main/libmain.a(usb_msc.cpp.obj): in function `tud_msc_capacity_cb':
F:\Tools\espressif\test-examples\tinyusb-msc-test\build/../components/esp32usb/src/usb_msc.cpp:710: multiple definition of `tud_msc_capacity_cb'; CMakeFiles/tinyusb-msc-test.elf.dir/components/esp32usb/src/usb_msc.cpp.obj:usb_msc.cpp:(.text+0xc74): first defined here
c:/users/jm/.espressif/tools/xtensa-esp32s3-elf/esp-2021r2-patch3-8.4.0/xtensa-esp32s3-elf/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld.exe: esp-idf/main/libmain.a(usb_msc.cpp.obj): in function `tud_msc_read10_cb':
F:\Tools\espressif\test-examples\tinyusb-msc-test\build/../components/esp32usb/src/usb_msc.cpp:727: multiple definition of `tud_msc_read10_cb'; CMakeFiles/tinyusb-msc-test.elf.dir/components/esp32usb/src/usb_msc.cpp.obj:usb_msc.cpp:(.text+0xce0): first defined here
c:/users/jm/.espressif/tools/xtensa-esp32s3-elf/esp-2021r2-patch3-8.4.0/xtensa-esp32s3-elf/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld.exe: esp-idf/main/libmain.a(usb_msc.cpp.obj): in function `tud_msc_write10_cb':
F:\Tools\espressif\test-examples\tinyusb-msc-test\build/../components/esp32usb/src/usb_msc.cpp:887: multiple definition of `tud_msc_write10_cb'; CMakeFiles/tinyusb-msc-test.elf.dir/components/esp32usb/src/usb_msc.cpp.obj:usb_msc.cpp:(.text+0x1188): first defined here
c:/users/jm/.espressif/tools/xtensa-esp32s3-elf/esp-2021r2-patch3-8.4.0/xtensa-esp32s3-elf/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld.exe: esp-idf/main/libmain.a(usb_msc.cpp.obj): in function `tud_msc_scsi_cb':
F:\Tools\espressif\test-examples\tinyusb-msc-test\build/../components/esp32usb/src/usb_msc.cpp:1042: multiple definition of `tud_msc_scsi_cb'; CMakeFiles/tinyusb-msc-test.elf.dir/components/esp32usb/src/usb_msc.cpp.obj:usb_msc.cpp:(.text+0x17e4): first defined here
c:/users/jm/.espressif/tools/xtensa-esp32s3-elf/esp-2021r2-patch3-8.4.0/xtensa-esp32s3-elf/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld.exe: esp-idf/main/libmain.a(usb_msc.cpp.obj): in function `register_virtual_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char const*, unsigned int, bool, esp_partition_t const*)':
F:\Tools\espressif\test-examples\tinyusb-msc-test\build/../components/esp32usb/src/usb_msc.cpp:424: multiple definition of `register_virtual_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char const*, unsigned int, bool, esp_partition_t const*)'; CMakeFiles/tinyusb-msc-test.elf.dir/components/esp32usb/src/usb_msc.cpp.obj:usb_msc.cpp:(.text+0x428): first defined here
c:/users/jm/.espressif/tools/xtensa-esp32s3-elf/esp-2021r2-patch3-8.4.0/xtensa-esp32s3-elf/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld.exe: esp-idf/main/libmain.a(usb_msc.cpp.obj): in function `add_readonly_file_to_virtual_disk(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char const*, unsigned int)':
F:\Tools\espressif\test-examples\tinyusb-msc-test\build/../components/esp32usb/src/usb_msc.cpp:607: multiple definition of `add_readonly_file_to_virtual_disk(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char const*, unsigned int)'; CMakeFiles/tinyusb-msc-test.elf.dir/components/esp32usb/src/usb_msc.cpp.obj:usb_msc.cpp:(.text+0xa1c): first defined here
c:/users/jm/.espressif/tools/xtensa-esp32s3-elf/esp-2021r2-patch3-8.4.0/xtensa-esp32s3-elf/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld.exe: esp-idf/main/libmain.a(usb_msc.cpp.obj): in function `add_partition_to_virtual_disk(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)':
F:\Tools\espressif\test-examples\tinyusb-msc-test\build/../components/esp32usb/src/usb_msc.cpp:614: multiple definition of `add_partition_to_virtual_disk(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)'; CMakeFiles/tinyusb-msc-test.elf.dir/components/esp32usb/src/usb_msc.cpp.obj:usb_msc.cpp:(.text+0xa64): first defined here
c:/users/jm/.espressif/tools/xtensa-esp32s3-elf/esp-2021r2-patch3-8.4.0/xtensa-esp32s3-elf/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld.exe: esp-idf/main/libmain.a(usb_msc.cpp.obj): in function `add_firmware_to_virtual_disk(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)':
F:\Tools\espressif\test-examples\tinyusb-msc-test\build/../components/esp32usb/src/usb_msc.cpp:638: multiple definition of `add_firmware_to_virtual_disk(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'; CMakeFiles/tinyusb-msc-test.elf.dir/components/esp32usb/src/usb_msc.cpp.obj:usb_msc.cpp:(.text+0xb2c): first defined here
collect2.exe: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

Could you suggest what can I try to solve it?

It's my first time trying to implement an USB app and I'm completely lost. I have seen many working examples using Arduino code but I need to reuse code from other esp-idf firmware I have developed. I would like to implement USB MSC with SD Card through SPI. Could I use your component or should I add raw tinyusb and rewrite all MSC callbacks to accomodate read/write... to SD Card API?

Thanks in advance. Any suggestion would be appreciated.

Enabling HID driver results in compilation failure

Hi there, thanks for providing such a useful component, but I encountered some problems when deploying.

I tried both esp-idf v4.4 stable version(the latest release) and the master branch which seems to be a beta version of esp-idf 5.0, they both failed compiling.

The chip is esp32s3, I followed the instruction and put your repo under ${IDF_PATH}/components then use idf.py menuconfig to open the esp32usb with it’s hid component and leave the original tinyusb closed.

I managed to fix some missing header problems but the ‘std::string’ in function declarations blocked me, would you please update this repo to fix it? Thanks a lot!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.