cancel
Showing results for 
Search instead for 
Did you mean: 

Feature request for STM32CubeMX: keep <FileOption> sections while regenerating Keil project.

bas86
Associate II

Hi, guys!

I like CubeMX and it's code+project generation features very much, thank you for a great job! But now I've faced the followed issue. Cube deletes <FileOption> and <GroupOption> sections when regenerates project.

That is inconvenient because I use Keil's project/file setting in order to allocate code, const and other data to the specific memory ranges. It works well and much more conveniently for me than writing scatter file by hands and writing a lot of __attributes__(.sections()) over all the files and variables/arrays, especially generated by CubeMX. That is extra important when I want to use handy HAL IRQ handlers, but they work too slow from the FLASH.

So, my feature request is the following:

when CubeMX regenerates Keil project let it keep <FileOption> sections near regenerated files.

For example:

Here is the Keil Project fragment with file stm32h7xx_hal_dma.c allocated by file settings menu to the specific RAM area, defined in Project Settings-> Target tab.

            <File>
              <FileName>stm32h7xx_hal_dma.c</FileName>
              <FileType>1</FileType>
              <FilePath>../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c</FilePath>
              <FileOption>
                <CommonProperty>
                  <UseCPPCompiler>2</UseCPPCompiler>
                  <RVCTCodeConst>9</RVCTCodeConst>
                  <RVCTZI>0</RVCTZI>
                  <RVCTOtherData>0</RVCTOtherData>
                  <ModuleSelection>0</ModuleSelection>
                  <IncludeInBuild>2</IncludeInBuild>
                  <AlwaysBuild>2</AlwaysBuild>
                  <GenerateAssemblyFile>2</GenerateAssemblyFile>
                  <AssembleAssemblyFile>2</AssembleAssemblyFile>
                  <PublicsOnly>2</PublicsOnly>
                  <StopOnExitCode>11</StopOnExitCode>
                  <CustomArgument></CustomArgument>
                  <IncludeLibraryModules></IncludeLibraryModules>
                  <ComprImg>1</ComprImg>
                </CommonProperty>
                <FileArmAds>
                  <Cads>
                    <interw>2</interw>
                    <Optim>0</Optim>
                    <oTime>2</oTime>
                    <SplitLS>2</SplitLS>
                    <OneElfS>2</OneElfS>
                    <Strict>2</Strict>
                    <EnumInt>2</EnumInt>
                    <PlainCh>2</PlainCh>
                    <Ropi>2</Ropi>
                    <Rwpi>2</Rwpi>
                    <wLevel>0</wLevel>
                    <uThumb>2</uThumb>
                    <uSurpInc>2</uSurpInc>
                    <uC99>2</uC99>
                    <useXO>2</useXO>
                    <v6Lang>0</v6Lang>
                    <v6LangP>0</v6LangP>
                    <vShortEn>2</vShortEn>
                    <vShortWch>2</vShortWch>
                    <v6Lto>2</v6Lto>
                    <v6WtE>2</v6WtE>
                    <v6Rtti>2</v6Rtti>
                    <VariousControls>
                      <MiscControls></MiscControls>
                      <Define></Define>
                      <Undefine></Undefine>
                      <IncludePath></IncludePath>
                    </VariousControls>
                  </Cads>
                </FileArmAds>
              </FileOption>
            </File>

And this one after regeneration:

            <File>
              <FileName>stm32h7xx_hal_dma.c</FileName>
              <FileType>1</FileType>
              <FilePath>../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c</FilePath>
            </File>

As you can see, the <FileOption> ... </FileOption> section is totally gone, and I have to revert it by hands (Thanks, Git!) before compilation.

All the above is also relevant to the <GroupOption> sections, e.g. to allocate the whole FreeRTOS file group also to the specific RAM section.

Looking forward for CubeMX updates!

Best regards

Aleksandr.

1 ACCEPTED SOLUTION

Accepted Solutions
Khouloud ZEMMELI
ST Employee

Hello @bas86​ ,

You're right, it's too late for this new release (6.1.0) , but it will be supported in a next CubeMX release.

Thanks for your feedback.

Best Regards,

Khouloud

View solution in original post

2 REPLIES 2
Khouloud ZEMMELI
ST Employee

Hi @bas86​ 

This will be internally checked, I'll give you an update ASAP.

Best Regards,

Khouloud

Khouloud ZEMMELI
ST Employee

Hello @bas86​ ,

You're right, it's too late for this new release (6.1.0) , but it will be supported in a next CubeMX release.

Thanks for your feedback.

Best Regards,

Khouloud