How to Create a Bare Minimum Project?

Sysprogs forums Forums VisualGDB How to Create a Bare Minimum Project?

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #7439
    Sodaant
    Participant

    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.

    #7446
    support
    Keymaster

    Hi,

    You can go to the VisualGDB Project Properties, open the Embedded Frameworks page and remove references to HAL or StdPeriph. This will only leave the startup file and the linker script in your project.

    We are not aware of any code that calls malloc() during initialization. Can you reproduce this on a “Hello, World” project and send it to us?

Viewing 2 posts - 1 through 2 (of 2 total)
  • You must be logged in to reply to this topic.