avr-gcc-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[avr-gcc-list] Save RAMPZ register in interrupt handler routines


From: Anatoly Sokolov
Subject: [avr-gcc-list] Save RAMPZ register in interrupt handler routines
Date: Sun, 27 Jan 2008 17:32:03 +0300

Hello.

  For FLASH memory access for 128KB avr-libc have pgm_read_*_far macros. 
These macros modify RAMPZ register and is non-reenterable. Using these 
macros in main loop/interrupts code can cause collisions of access to FLASH 
memory.

  For solving of this problem I offer save RAMPZ register in interrupt 
handler routines for 128KB devices ('avr31' and 'avr51' architectures). The 
'-mno-save-rampz' switch restore old behaviour.

Patch attached.

Anatoly. 


begin 666 gcc-4.3-save_rampz.txt
address@hidden(&=C8R]C;VYF:6<O879R+V%V<BYM9 H]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]"BTM+2!G8V,O8V]N9FEG+V%V<B]A=G(N;60)*')E=FES:6]N(#$S
M,3<W-2D**RLK(&=C8R]C;VYF:6<O879R+V%V<BYM9 DH=V]R:VEN9R!C;W!Y
M*0I 0" M-#<L-B K-#<L-R! 0 H@(" @*%I%4D]?4D5'3D\),2D).R!Z97)O
M(')E9VES=&5R('(Q"B @(" *(" @("A34D5'7T%$1%(@(" P>#5&*0HK(" @
M*%)!35!:7T%$1%(@(#!X-4(I"B @(" *(" @("A53E-014-?4U123$5."3 I
M"B @(" H54Y34$5#7TE.1$587TI-4 DQ*0I);F1E>address@hidden;F9I9R]A
M=G(O879R+F,*/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/address@hidden;F9I
M9R]A=G(O879R+F,)*')E=FES:6]N(#$S,3<W-2D**RLK(&=C8R]C;VYF:6<O
M879R+V%V<BYC"2AW;W)K:6YG(&-O<'DI"D! ("TV,SDL-R K-C,Y+#$W($! 
M"B @(" @("!25%A?1E)!345?4D5,051%1%]0("AI;G-N*2 ](#$["B @(" @
M("!I;G-N(address@hidden;W9E7VEN<address@hidden'!U<VAB>71E+"!T;7!?<F5G7W)T
M>"D["B @(" @("!25%A?1E)!345?4D5,051%1%]0("AI;G-N*2 ](#$["BT@
M(" @(" **PHK(" @(" @address@hidden'5S:"!204U06BX@("HO"BL@(" @("!I9BA!
M5E)?2$%615]204U06B F)B A5$%21T547TY/7U-!5D5?4D%-4%HI"BL@(" @
M(" @('L**R @(" @(" @("!I;G-N(address@hidden;W9E7VEN<address@hidden'1M<%]R
M96=?<G1X+" **R @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(&=E
M;E]R='A?345-("A126UO9&4L($=%3E])address@hidden)!35!:7T%$1%(I*2D["BL@
M(" @(" @(" @4E187T9204U%7U)%3$%4141?4" H:6YS;BD@/2 Q.PHK(" @
M(" @(" @(&EN<VX@/2!E;6ET7VUO=F5?:6YS;B H<'5S:&)Y=&4L('1M<%]R
M96=?<G1X*3L**R @(" @(" @("!25%A?1E)!345?4D5,051%1%]0("AI;G-N
M*2 ](#$["BL@(" @(" @('T**PD*(" @(" @("\J($-L96%R('IE<F\@<F5G
M+B @*B\*(" @(" @(&EN<VX@/2!E;6ET7VUO=F5?:6YS;B H>F5R;U]R96=?
M<G1X+"!C;VYS=#!?<G1X*3L*(" @(" @(%)46%]&4D%-15]214Q!5$5$7U @
M*&EN<VXI(#T@,3L*0$ @+3DP-2PV("LY,34L,address@hidden *(" @(" @(&EF("AC
M9G5N+3YM86-H:6YE+3YI<U]I;G1E<G)U<'address@hidden'address@hidden;BT^;6%C:&EN92T^
M:7-?<VEG;F%L*0H@(" @(" @("!["B **R @(" @(" @(" O*B!297-T;W)E
M(%)!35!:('5S:6YG('1M<"!R96<@87,@<V-R871C:"X@("HO"BL@(" @(" @
M(" @:68H05927TA!5D5?4D%-4%H@)B8@(51!4D=%5%].3U]3059%7U)!35!:
M*0HK(" @(" @(" @(" @>PHK"2 @(" @(&5M:71?:6YS;B H9V5N7W!O<'%I
M("AT;7!?<F5G7W)T>"DI.PHK"2 @(" @(&5M:71?;6]V95]I;G-N("AG96Y?
M<G1X7TU%32A126UO9&4L($=%3E])3E0H4D%-4%I?041$4BDI+" **PD)"2 @
M(" @('1M<%]R96=?<G1X*3L**PD@(" @?0HK"B @(" @(" @(" @address@hidden
M=&]R92!34D5'('5S:6YG('1M<"!R96<@87,@<V-R871C:"X@("HO"B @(" @
M(" @(" @96UI=%]I;G-N("AG96Y?<&]P<address@hidden'1M<%]R96=?<G1X*2D["B @
M(" @(" address@hidden(&=C8R]C;VYF:6<O879R+V%V<BYO<'0*/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/address@hidden;F9I9R]A=G(O879R+F]P= DH<F5V
M:7-I;VX@,3,Q-S<address@hidden;F9I9R]A=G(O879R+F]P= DH=V]R
M:VEN9R!C;W!Y*0I 0" M-C8L,R K-C8L-R! 0 H@;7!M96TM=W)A<"UA<F]U
M;F0*(%1A<F=E="!297!O<G0*($UA:address@hidden&AE(&QI;FME<B!R96QA>&%T:6]N
M(&UA8VAI;address@hidden('address@hidden<F]G<F%M(&-O=6YT97(@=W)A<"UA
M<F]U;F0@;V-C=7)E<RX**PHK;6YO+7-A=F4M<F%M<'H**U1A<F=E="!297!O
M<address@hidden@36%S:RA.3U]3059%7U)!35!:*0HK1&]N)W0@
M<V%V92!204U06B!I;B!I;G1E<G)U<'0@<V5R=FEC92!R;W5T:6YE<RX*26YD
address@hidden(&=C8R]C;VYF:6<O879R+V%V<BYH"CT]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T*+2TM(&=C8R]C;VYF:6<O879R+V%V<BYH"2AR979I<VEO;B Q,S$W-S4I
M"BLK*R!G8V,O8V]N9FEG+V%V<B]A=G(N: DH=V]R:VEN9R!C;W!Y*0I 0" M
M.3DL-B K.3DL-R! 0 H@(V1E9FEN92!!5E)address@hidden&%V<E]H879E
M7VUU;%]P*0H@(V1E9FEN92!!5E)?2$%615]-3U97("AA=G)?:&%V95]M;W9W
M7VQP;7A?<"D*("-D969I;address@hidden" H879R7VAA=F5?;6]V
M=U]L<&UX7W I"BLC9&5F:6YE($%64E](059%7U)!35!:("AA=G)?8W5R<F5N
M=%]A<F-H+3YH879E7V5L<&TI"B *("-D969I;address@hidden)?0EE415]00R Q
:"B C9&5F:6YE($%64E\S7T)95$5?4$,@, H`
`
end





reply via email to

[Prev in Thread] Current Thread [Next in Thread]