2020-10-23 12:37 AM
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.
Solved! Go to Solution.
2020-11-12 12:54 AM
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
2020-10-23 09:13 AM
Hi @bas86
This will be internally checked, I'll give you an update ASAP.
Best Regards,
Khouloud
2020-11-12 12:54 AM
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