Decreasing BSS size for STM32F4
Chris Nott
chrisn at vl.com.au
Wed Oct 29 16:49:19 UTC 2014
Hi,
I have a BSP almost identical to STM32F4 except I want a slight change
to the linker settings (I want to offset the start location because
there is a bootloader at location 0).
Two questions:
- Is there any way to do this other than to
a) duplicate the BSP and change just the linker files
b) use the STM32F4 BSP as-is but copy the linker files into the
application project and modify (this is the solution I am using now)
- As a matter of policy, how different should a platform be before we
fork a BSP?
On 29/10/2014 8:07 AM, Joel Sherrill wrote:
> On 10/29/2014 10:03 AM, Мороз Олег wrote:
>> looks like the BSS segment is depend from RAM_SIZE. I'm changing file
>> called linkcmds:
>>
>> MEMORY {
>> RAM_INT : ORIGIN = 0x20000000, LENGTH = 128k
>>
>> after building has
>>
>> arm-rtems4.11-size shell.exe
>> text data bss dec hex filename
>> 364756 32256 98824 495836 790dc shell.exe
>>
>> .BSS is 98824
>>
>>
>> MEMORY {
>> RAM_INT : ORIGIN = 0x20000000, LENGTH = 192k
>>
>> arm-rtems4.11-size shell.exe
>> text data bss dec hex filename
>> 364756 32256 164360 561372 890dc shell.exe
>>
>> .BSS raised up to 164360
>>
>>
>> MEMORY {
>> RAM_INT : ORIGIN = 0x20000000, LENGTH = 256K
>>
>> arm-rtems4.11-size shell.exe
>> text data bss dec hex filename
>> 364756 32256 229896 626908 990dc shell.exe
>>
>>
>> How can i fix the BSS size?
>
> Sebastian should look into this but as a quick hint, the symbol marking
> bss end sounds like it is after something indicating end of RAM. I have
> seen this on other BSPs but the ARM linkcmds is shared, Sebastian did the
> magic for that.
>
> You should be able to spot the issue since you have test cases.
>>
>> On 14.10.2014 14:47, Мороз Олег wrote:
>>> arm-rtems4.11-readelf -l shell.exe
>>>
>>> Elf file type is EXEC (Executable file)
>>> Entry point 0x8000189
>>> There are 4 program headers, starting at offset 52
>>>
>>> Program Headers:
>>> Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg
>>> Align
>>> EXIDX 0x027aa0 0x080279e8 0x080279e8 0x00008 0x00008 R
>>> 0x4
>>> LOAD 0x0000b8 0x08000000 0x08000000 0x27a00 0x27a00 RWE
>>> 0x8
>>> LOAD 0x027ab8 0x20001188 0x08027a00 0x0061c 0x0061c RW
>>> 0x8
>>> LOAD 0x0280e0 0x20000000 0x20000000 0x00000 0x30000 RW
>>> 0x20
>>>
>>> Section to Segment mapping:
>>> Segment Sections...
>>> 00 .ARM.exidx
>>> 01 .start .text .init .fini .rodata .ARM.exidx .eh_frame
>>> .init_array .fini_array .jcr
>>> 02 .data
>>> 03 .vector .bss .work
>>>
>>>
>>> On 14.10.2014 14:10, Sebastian Huber wrote:
>>>> arm-rtems4.11-readelf -l
>>> _______________________________________________
>>> devel mailing list
>>> devel at rtems.org
>>> http://lists.rtems.org/mailman/listinfo/devel
>> _______________________________________________
>> devel mailing list
>> devel at rtems.org
>> http://lists.rtems.org/mailman/listinfo/devel
>
>
More information about the devel
mailing list