How to Use Default Linker Script and Startup Code in e2studio Without FSP

Hello Renesas Community,

I'm currently working with Renesas microcontrollers using e2studio, and I’m encountering a problem that’s preventing me from using a straightforward development flow.

Here’s the issue: every time I create a new project, e2studio automatically includes FSP, which forces me to use the associated middleware, peripheral drivers, and configuration tools that I don’t want. While I understand that FSP can be useful for many, I prefer to avoid it and handle the peripheral initialization myself.

However, when I try to bypass FSP, I lose access to the default startup code and linker script that Renesas provides out of the box, which are tightly coupled with FSP. I don’t want to write my own linker script from scratch, as this would take a lot of time.

What I’m looking for is:

  1. A way to disable FSP entirely in e2studio while still being able to use the default linker script and startup code.

  2. To retain the default memory map and low-level initialization code (such as system clock setup and interrupt vector table) without FSP interfering.

  3. A project template or setup that gives me a clean slate with the default Renesas configuration without being forced into using FSP.

I’ve tried:

  • Starting a new project with minimal FSP configurations, but e2studio still automatically includes the parts of FSP I don’t need.

  • Manually removing FSP from an existing project, but this disrupts the default startup files and linker script.

Is there a way to disable FSP completely while keeping the startup code and linker script intact? Any advice or best practices would be greatly appreciated!

Thank you in advance!

Parents
  • Hello,

    You can avoid using the FSP stacks and modules if you do not want to. Just create a blank project and start developing your own code.This will include the basic initialization for the device and also a default linker script.

    every time I create a new project, e2studio automatically includes FSP, which forces me to use the associated middleware, peripheral drivers, and configuration tools that I don’t want.

    What are the associated middleware, peripheral drivers, and configuration tools which you are force to use ?

  • Thank you for your response.

    What I meant is that every time I need to make small modifications or add some debugging code directly into the FSP-generated source files, those changes get deleted when I rebuild the project. This makes it difficult to experiment or tweak things temporarily, since FSP overwrites those files during code generation.

    That's why I'm looking for a way to avoid FSP entirely.

  • The FSP generated files are not to be modified. However if you want to disable the code generation you can do it as described on this post:

     Extracting support files 

    However it does not make sense that you want to avoid FSP and then use the FSP generated files...

  • Thank you for the clarification! Could you please guide me on how to create a blank project with basic device initialization and the default linker script? I’d like to directly develop my code in main.c without using hal_entry.c or relying on the middleware and peripheral drivers included by the FSP stacks.

    Additionally, the link you provided to disable the code generation seems to have a broken image, so I couldn't follow the steps. Could you kindly provide an alternative link or guide me through the process?

    Your help would be greatly appreciated!

    Best regards,
    Duc Le

  • A blank project is just a project you create on e2studio when you select 'Minimal' project without adding any FSP module.

    I’d like to directly develop my code in main.c without using hal_entry.c

    The hal_entry function is just an empty function, why would you dont want to use it ?

    This is the missing image:

Reply Children
No Data