How do I create a bare minimum embedded project? The new project wizard seems to want to create a blinking LED project using either the HAL, FreeRTOS, or the older peripheral library. When the project is created it pulls in loads of peripheral drivers and a bunch of other stuff that I don’t want or need.
What I want to do is create a bare minimum embedded project with just the startup code (that does the minimum possible: setting up the stack pointer, copying initialized data to SRAM, zeroing the BSS, and jumping to main() and defines all of the interrupt and exception handlers as “weak” defaults) and perhaps a skeleton main(). That’s all. I don’t want or need all that peripheral driver code (I write my own), nor do I need a bunch of other junk the wizard seems to throw into the project. The only way I’ve found to achieve this is to manually delete files and edit some of the startup files. There should be a way to do this as a new project option. After all, professional users of VisualGDB will almost always have their own driver code and they most assuredly will not be writing applications to blink LEDs. “Blank Project” should be one of the options in the wizard.
Another thorny issue I’ve found is the call to the library initialization code made right before the startup code jumps to main(). This seems to call malloc(), among other things, and this plays havoc with the memory mapping my applications use (I have my own malloc(), which uses one of the blocks of SRAM on an STM32F4 not used by the mainline code, and I think this conflicts with the library’s malloc and the way it allocates memory). In fact, all I need from the library is sprintf() and nothing else.
I admit that I haven’t had too much of a chance to try other ways of creating an embedded project in VS/VisualGDB, so please enlighten me if there’s a way to create a bare minimum embedded project that doesn’t pull in everything including the kitchen sink.
Thanks.