diff options
author | cpldcpu <cpldcpu@gmail.com> | 2015-01-12 00:46:06 +0100 |
---|---|---|
committer | cpldcpu <cpldcpu@gmail.com> | 2015-01-12 00:46:06 +0100 |
commit | 42f2d8cc38064c67a9478826f563f5110c3848ee (patch) | |
tree | 2add26052b2d424d9efaa5848b654b16f0e3d4cf /firmware/crt1.S | |
parent | 80419704f68bf0783c5de63a6a4b9d89b45235c7 (diff) | |
download | micronucleus-42f2d8cc38064c67a9478826f563f5110c3848ee.tar.gz micronucleus-42f2d8cc38064c67a9478826f563f5110c3848ee.tar.bz2 micronucleus-42f2d8cc38064c67a9478826f563f5110c3848ee.zip |
#ENABLE_UNSAFE_OPTIMIZATIONS
Added new global flag to enable unsafe optimizations:
This will disable several safety features in microncleus to save around
40 more bytes
Disabled features:
* Stack pointer and SREG initialization in CRT
* Client side reset vector patching
* USB collision detection. Micronucleus will not work reliability with
hubs if this is disabled.
See t85_aggressive configuration for usage examples.
Diffstat (limited to 'firmware/crt1.S')
-rw-r--r-- | firmware/crt1.S | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/firmware/crt1.S b/firmware/crt1.S index b018ff1..1f68351 100644 --- a/firmware/crt1.S +++ b/firmware/crt1.S @@ -95,11 +95,14 @@ __init: .section .init2,"ax",@progbits clr R1 + +#ifndef ENABLE_UNSAFE_OPTIMIZATIONS out 0x3f,r1 ldi r28,lo8(__stack) ldi r29,hi8(__stack) out 0x3d, r28 out 0x3e, r29 +#endif .section .init9,"ax",@progbits ; rcall main ; XJMP __vectors-2 |