Synergy configurator displays this error: express logic source and pre-build library should not be combined in the stack configurator

I'm trying to add filex on usb host using the Synergy configurator for a S5D9 mcu and i'm getting an error with which I have no idea what to do.

Im on SSP 1.6.0 and E2 studio 7.3.0 and adding to stack: X-Ware -> Filex -> FileX on usb storage.

Looks like this.

I have no idea what to about this error message. I found a post on this forum but that solution did not help for me, or i'm doing something wrong, https://renesasrulz.com/synergy/f/synergy---forum/11895/error-filex---usbx-host-updating-to-ssp-1-5-3-and-e2-studio-v7-2-0.

Has somebody got an idea what to do or at least get some more debug information?

Kind regards,

Rene

  • Hi Rene-
    Which board are you targeting?
  • In reply to WarrenM:

    Targeting the SK-S7G2 gives no error for me.
  • In reply to WarrenM:

    Hi WarrenM,

    Our own board, which is mostly based on the S5D9-PK. We are using the R7FS5D97E3A01CFC
  • In reply to WarrenM:

    I just made a new Synergy project with blinky on ThreadX and indeed no issue when adding FileX on USB.

    So it's probably something with my project. Any idea how to get more information about which source or which library is being referenced with the error message?
  • In reply to Rene:

    Are you using any other modules?
  • In reply to WarrenM:

    You mean components? In that case, yes, quite a few. These are the ones enabled from: Express Logic -> all

    -filex_stub
    -fx
    -gx
    -nx_md5
    -nxd
    -nxd_dhcp
    -nxd_http_server
    -nxd_src
    -nxd_tls_secure
    -nxd_web_http_client
    -tx
    -tx_src
    -ux
    -ux_host_class_storage
  • In reply to Rene:

    Rene-
    Try removing tx_src and see if that helps- as an experiment. I will ask Express Logic if they have any thoughts too.
  • In reply to WarrenM:

    Thank you for your suggestion, unfortunately it did not help, same error in the configurator.

    Compiling also fails with a conflicting type error message, maybe a version mismatch. (conflicting types for '_fxe_directory_attributes_read')
  • In reply to Rene:

    Ok, let me see if Express Logic has any ideas. I will post when I hear back.
  • In reply to WarrenM:

    Thank you.
  • In reply to Rene:

    Why do you have filex_stub included in your project? Try removing that (I think you do this via the properties of the HTTP server.)
  • In reply to JanetC:

    Hi JanetC and WarrenM,

    Ok, I've got a lot to tell, hope I'm able to make any sense and please tell me if I got something wrong.

    I asked my colleague why file_stub is in the http_server, we're both not quite sure but it seems to be some kind of placeholder (maybe when he added the http server, to long ago to remember). Then we figured out that instead of the file_stub we should add the FileX on usb mass storage (will be qspi flash eventually, just for now).

    At this point we still had the same error in the configurator as when I started this topic. Then we took a closer look at the http_server and there where a couple of ThreadX sources blocks. Thinking maybe this is the "source" mentioned in the error message we deleted them, still the same error. Then we wanted to add them again, the only option when clicking to add was "use". Didn't think anything of it and moved on. Then I think after removing tx_src from the components which apparently also removes those ThreadX source blocks, we clicked to add a ThreadX source en then the only option was "new". Then we also noticed the original error was gone. So somewhere the issue was fixed, not sure when or why it wasn't when I did this yesterday.

    So long story short, configurator seems to be happy now and the project builds again, no idea if it works yet.

    Could someone explain what those ThreadX source blocks are used for? In the http_server for example you can add them but it doesn't say optional, should I add them? I can't add an image to this post otherwise I would.


    Kind regards

  • In reply to Rene:

    By default in a Synergy project when you add a Thread, ThreadX is added as a pre-built library (this is to reduce build time for a project). The same occurs when add a NetX IP instance, NetX (or NetX DUO) is added as a prebuilt library, when FileX is added, USBX is added or GUIX is added, by default they are also added as prebuilt libraries. Other things such as HTTP server are only ever added as source code to a project (as they are not so big), so there is no source code option for all X-Ware components.

    However both ThreadX, Netx/NetX DUO, FileX, USBX and GUIX have configuration options. So to change the configuration of these X-Ware components from the default configuration requires these components to be re-built from the source code, with the modified configuration. Changing the configuration of these X-Ware components can also change things internally, e.g. the size of the internal structures, for example. This means that if one library (e.g. FileX) relies on something in another Library (e.g. ThreadX) e.g. accessing a member of a structure in ThreadX, and the configuration of ThreadX has been changed from the default by adding the ThreadX source code, then the source code of FIleX should be added, so that FileX is built against the correct definition of the ThreadX internal structures, and accesses the structure members at the correct offset into the structure.

    This is why you saw the error message in the configurator "express logic source and pre-build library should not be combined in the stack configurator", once you add the source code for one of the Express Logic pre-built libraries, you have to add the source code for all of the X-Ware components that are included in the project as pre-built libraries, so that all the source code is complied against the correct definitions of structures etc. . Not adding the source code for all the X-Ware components that have pre-built libraries can either cause the application to crash, or behave in strange ways due.
  • In reply to Jeremy:

    Hi Jerermy,

    Thank you for your answer.

    So in the future, if I needed to add source to every X-Ware component, I would do this in the threads tab of the configurator, not the components tab? Just making sure I understand correctly.

    Maybe it's an idea to add the "[optional]" tag to those "add ThreadX source" blocks just like other blocks that aren't necessary, this had us chasing our tail a bit.

    Kind regards
  • In reply to Rene:

    Yes, if an X-Ware component has been added via the Threads tab as a pre-built library, and it has the option to add the source code via the Threads tab, then the source code should be added via the threads tab.