Add wildcards to the input section names.
This fixes the script for use with the "-ffunction-sections
-fdata-sections -Wl,--gc-sections" options when compiling/linking.
Also, discard the .eh_frame section. This section is emitted by GCC 4.4,
but not 4.5. Discarding it doesn't appear to break anything. I suspect this is
used for C++ exception implementation.
I found this to be a problem when building with GCC 4.4 (arm-elf),
because the USB DFU demo exceeded the 8k I allowed for it.
Thanks to Gareth McMullin <gareth@blacksphere.co.nz> for the patch.
The C runtime wasn't initialized correctly (there was garbage in the data
and bss sections). Add a reset_handler which initializes these sections
before calling the application's main() function.
The initial stack pointer is also defined in the linker script, allowing the
application to override with a linker command line option
"-Wl,--defsym,_stack=0x20005000".
Thanks to Gareth McMullin <gareth@blacksphere.co.nz>.
This patch, a slightly modified version of a patch from Thomas Otto,
should fix the following two issues:
- It generally sets the submited config to the mentioned GPIO pins but
kills configs for other pins on the same GPIO port. So if we want to set
PB6 and PB7 to push-pull and I2C2 SDA and SCL (PB10 and PB11) to open
drain it's simply impossible, because the second config try kills the first.
- The floating-bit thing isn't working correctly. If we enable a config
for PB6 for instance, the same config will also apply to all following
pins of that port (i.e. PB7-PB15). That's because the shifting isn't only
done if a pin isn't to configure, if you are hitting a matching bit the
shiftig is missing. I think shifting isn't nessessary for a separate
variable. We have the counting index from the for statement.
Both issues should now be fixed.