diff options
author | Tim <cpldcpu@gmail.com> | 2015-06-06 22:40:52 +0200 |
---|---|---|
committer | Tim <cpldcpu@gmail.com> | 2015-06-06 22:40:52 +0200 |
commit | 1548e70077127c079a801c396e2d790763b23e08 (patch) | |
tree | 233cd87a07fd1fdbb91d710e9870dd9a28111d2b /firmware/crt1.S | |
parent | 21d57991d6b321e1cc3690df9addb3b26e4145aa (diff) | |
parent | f0bb13678d45c2c87fb3439aef50e92de1f0e52b (diff) | |
download | micronucleus-1548e70077127c079a801c396e2d790763b23e08.tar.gz micronucleus-1548e70077127c079a801c396e2d790763b23e08.tar.bz2 micronucleus-1548e70077127c079a801c396e2d790763b23e08.zip |
Merge pull request #43 from micronucleus/testing-V2-New
First release of V2.0 to master.
Diffstat (limited to 'firmware/crt1.S')
-rw-r--r-- | firmware/crt1.S | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/firmware/crt1.S b/firmware/crt1.S index 29693ac..1f68351 100644 --- a/firmware/crt1.S +++ b/firmware/crt1.S @@ -43,7 +43,12 @@ #include <avr/io.h> //#include <avr/pgmspace.h> +#ifdef __AVR_HAVE_JMP_CALL__ + #define XJMP jmp +#else #define XJMP rjmp +#endif + #define XCALL rcall .macro vector name @@ -56,12 +61,13 @@ .global __vectors .global __bad_interrupt .func __vectors + __bad_interrupt: __vectors: XJMP __init - vector __vector_1 - vector __vector_2 - vector __vector_3 +; vector __vector_1 +; vector __vector_2 +; vector __vector_3 .endfunc /* Handle unexpected interrupts (enabled and no handler), which @@ -89,19 +95,18 @@ __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 XJMP main + ; .endfunc - - .section .zerotable,"ax",@progbits -zerovectors: - XJMP __init - XJMP __vector_1 - XJMP __vector_2 - XJMP __vector_3 |