[SOLVED] Feedback on SES

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • [SOLVED] Feedback on SES

    Dear SEGGER and community,

    Last week I decided to test SES and I expected to fall in love with it as with all SEGGER products but even though I saw a LOT of potential I felt it needs more work. I just wanted to leave some feedback about it here since I would very much like to use SES in the future and maybe some of my observations are just wrong and I can be corrected and others may be implemented down the line...

    The first thing I liked is how the packs for different vendors work. I like that they get their own project templates and everything is neatly organized. Also, SES looks very clean, simple and very focused on developer tasks. Good job there.

    I tried creating a project and found the project explorer/manager lackluster. I understand its decoupling from the actual filesystem but it just makes things more confusing, since in the end you work with the real filesystem for compilation. The first pain point was importing libraries. I have a lot of libraries that have their own subfolders and I would rather just copy everything and then mark whatever I want for exclusion. In SES I could reference the folder o just import one by one the sources. The first one is a no go since later you can't create new files, remove files, exclude files (this can be done with pattern matching but not the best option I think), etc. The second is very time consuming and you have to worry about how things are in your filesystem and how things are organised in your project.

    Long story short, maybe I am very wrong, but I felt I liked the Eclipse CDT way better. Your project view is analogous to the filesystem, you can copy, move, exclude and work easily from the editor and keep eveyrthing organised in the filesystem from there. Also, little features like adding an specific directory to the include list from the project manager is very useful when you are setting up everything. I think SES right now is good for editing and debugging but setting a project up and managing looks tedious.

    Am I wrong in my observations or is this something that could be looked into?

    Thank you for your attention and best regards,
  • Hi,

    Thank you for the feedback. Much appreciated.
    Let me explain the project management a bit.

    Studio has been designed to be as flexible as possible and to fit most
    user's needs, providing the most capable options to create manage and
    develop your projects.

    The Project Manager features two options to manage your project sources:

    1. Virtual folders:
    Folders in an Embedded Studio project are virtual, i.e. they do not need to reflect the actual file system.
    You can create as many virtual folders and sub-folders as you need.
    can add files from anywhere on your disk into any virtual folder. Even
    files from different folders on disk can be in the same virtual folder.
    Through the file selection dialog or via drag&drop from the Windows Explorer you can add multiple files at once.

    2. Dynamic folders:
    Dynamic folders in Embedded Studio are bound to a directory on disk and show its contents.
    files to include in a dynamic folders can be set by filter and exclude
    specifications. E.g. *.c; *.h to only include C sources and headers.
    A dynamic folder can include either only files from one directory or recurse into its sub-directories.
    folders are automatically synchronized with disc contents on (re-)load
    of a project. Synchronization can be done manually, too, e.g. when new
    sources have been added.
    The dynamic folder options can also be changed later from the context menu, e.g. to change the exclude filters.

    Within one project you can of course use virtual folders and dynamic folders in parallel.
    You can also convert dynamic folders into virtual folders from the context menu.

    Does this help or maybe even change your mind?

  • Hi Johannes,

    I did test both options, but I found it cumbersome. Let me explain with an example.

    I start a new project with the wizard, getting an initial main.c, the assembly startup file, RTT, etc. These files are actually just put in the project directory (I would much prefer a more organised initial layout). First things first, get microcontroller libraries, RTOS and my own libraries inside the project. Lets look for example at something like the recent Amazon FreeRTOS that includes a lot of things and has a lot of subdirectories.

    In Eclipse CDT, I do the following:

    + Copy the library directory to my project directory (it can be pasted directly in Eclipse or in the OS explorer). Just doing this I already get the whole thing in the project explorer, ready to work.
    + I exclude files or directories (ports for other microcontrollers, all heap managers except one, etc.). Just right click and exclude, I can select many items at once.
    + I set the include paths for the project. In normal Eclipse CDT this is cumbersome since you have to go to Project Properties, and add the paths one by one. Atollic has a quick way, just right click on a folder and you have a context menu item to add that path to the included paths.

    That to import a library (source) to the project. Now, with SES:

    + Copy the library directory using the OS explorer. Yes, I can reference an external path but I like my project self-contained to ease compilation in other machines or in the future.
    + Two options:
    ++ Create virtual folders to my liking and add sources to these folders one subfolder at a time (remember, these libraries are file trees!)
    ++ Create a dynamic folder referencing the copied library
    + To exclude files and directories...
    ++ I can do it like in Eclipse CDT in the case of virtual folders
    ++ In the case of dynamic folders, I must use the exclude filter, which can get cumbersome and you dont get the excluded files represented in the manager.
    + Set the include paths for the project. This is where having a virtual folder system is confusing, since include paths are for the compiler and the compiler works with the actual filesystem, not the virtual representation. Not too bad, mind me, but I think it is more clear if you always work against the actual filesystem.

    When i update one of these libraries, if they carry new files or new subdirectories I must remember to add the for virtual folders case.

    If the library is one of my own, a lot of times I may want to add new files, rename files, reorganise, etc. If I use dynamic folders SES won't leave me, so I must do that outside. If I use virtual folders, once again the separation between the real filesystem and the virtual filesystem of the project makes things confusing. In the end, it seems the best way is to remove and add everything again.

    In my opinion, having a virtual project view is very nice for custom organisation of files, but it should not be the only way (and in my case, it sure would not be the main way). There should be a way to work with the project in a filesystem like fashion, like you do with Visual Studio or Eclipse.

    I hope the example is clear enough, it is difficult for me to explain in just written form and in a language that is not my own ;) .

    Anyway, I don't want to focus on the negatives. I liked a lot of what I saw, and for me SES has the potential to be the best environment for microcontroller firmware development. I just feel this is a rather philosophical issue that reaches far into the usability of the application and how to work with it.
  • Hi,

    Thanks for the detailed explanation.
    I got your point, and you are right, it is mostly a philosophical issue. But that does not mean we can't change it.

    We probably will not switch to the Eclipse way of filesystem oriented organization.
    But we might add improvements to enable you to better work on the filesystem level.