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:
A way to disable FSP entirely in e2studio while still being able to use the default linker script and startup code.
To retain the default memory map and low-level initialization code (such as system clock setup and interrupt vector table) without FSP interfering.
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!
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.
Duc Le said: 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.
main.c
hal_entry.c
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.
Duc Le said: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: