avr-libc-dev
[Top][All Lists]
Advanced

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

RE: [avr-libc-dev] [RFC] Unified ELF file


From: Eric Weddington
Subject: RE: [avr-libc-dev] [RFC] Unified ELF file
Date: Sun, 30 Sep 2007 08:47:49 -0600

Hi All,

Ok, here's take 2. See attached files.

The 2 avr-libc patches adds fuse.h (a different variation), changes io.h to
include fuse.h, and adds defines to iom128.h (IO header file for ATmega128).
The binutils patch is the same as before: it changes the linker scripts to
handle the new memory areas. test.c is a test case and an example of the API
usage. Remember, my patches are uuencoded if you have any problems with
them.

This API places more of the onus onto the user. They must specify a global
variable of type __fuse_t, and specifically place it into the fuse memory
using the FUSEMEM convenience macro, which somewhat mirrors the PROGMEM
macro. I say somewhat, because the implementation of the macro is a subtle
difference. The __fuse_t type is a structure containing the correct number
of fuse bytes, per device that this is being compiled for. At least this
ensures that the correct number of bytes will be put into the .fuse linker
output section.

This method at least seems to work. I couldn't get the previous idea I had
(about modifying the startup code) to work properly.

Any concrete suggestions, or feedback welcome. But I don't want to get into
philosophical discussions or splitting hairs. I plan on committing it
sometime before Friday.

Thanks,
Eric Weddington



begin 666 35-avr-libc-1.4.6-fuse-iom128.patch
M+2TM(&EN8VQU9&4O879R+VEO;3$R."YH+F]L9 DR,# W+3 Y+3(Y(#$U.C,P
M.C,address@hidden P," M,#8P, HK*RL@:6YC;'5D92]A=G(O:6]M,3(X+F@)
M,C P-RTP.2TR.2 Q-3HS-CHS,2XU,# P,# P,# @+3 V,# *0$ @+3$L-" K
M,2PU($! "B O*B!#;W!Y<FEG:'address@hidden&,I(#(P,#(L(%!E=&5R($IA;G-E;@HK
M(" @0V]P>7)I9VAT("AC*2 R,# W+"!!=&UE;"!#;W)P;W)A=&EO;@H@(" @
M06QL(')I9VAT<R!R97-E<G9E9"X*( H@(" @4F5D:7-T<FEB=71I;address@hidden
M('5S92!I;B!S;address@hidden(&)I;F%R>2!F;W)M<address@hidden:"!O<B!W:71H
M;W5T"D! ("TQ,address@hidden@0$ *("-D969I;F4@(" @13)%3D0@
M(" @,'@P1D9&"B C9&5F:6YE(" @($9,05-(14Y$(#!X,49&1D8*( HK"BLO
M*B!&=7-E<R J+PHK"BLC9&5F:6YE($954T5?345-3U)97U-)6D4@,PHK"BLO
M*B!,;W<@1G5S92!">71E("HO"BLC9&5F:6YE($-+4T5,," @(" @('Y?0E8H
M,"D**R-D969I;address@hidden(" @(" @?E]"address@hidden(V1E9FEN92!#2U-%
M3#(@(" @("!^7T)6*#(I"BLC9&5F:6YE($-+4T5,,R @(" @('Y?0E8H,RD*
M*R-D969I;address@hidden," @(" @(" @?E]"address@hidden(V1E9FEN92!3550Q(" @
M(" @("!^7T)6*#4I"BLC9&5F:6YE($)/1$5.(" @(" @('Y?0E8H-BD**R-D
M969I;address@hidden@(" @?E]"address@hidden"BLC9&5F:6YE($Q&55-%7T1%
address@hidden @)B!#2U-%3#,@)B!#2U-%3#(@)B!#2U-%3#$I"BL**PHK
address@hidden&EG:"!&=7-E($)Y=&address@hidden;address@hidden/5%)35" @(" @?E]"
address@hidden(V1E9FEN92!"3T]44UHP(" @("!^7T)6*#$I"BLC9&5F:6YE($)/
M3U136C$@(" @('Y?0E8H,BD**R-D969I;address@hidden(" @(" @?E]"address@hidden
M*0HK(V1E9FEN92!#2T]05" @(" @("!^7T)6*#0I"BLC9&5F:6YE(%-0245.
M(" @(" @('Y?0E8H-2D**R-D969I;address@hidden(" @(" @?E]"address@hidden
M(V1E9FEN92!/0T1%3B @(" @("!^7T)6*#<I"BL**R-D969I;address@hidden
M1$5&055,5" H2E1!1T5.("address@hidden)14X@)B!"3T]44UHQ("address@hidden/5%-:,"D*
M*PHK"BLO*B!%>'1E;F1E9"!&=7-E($)Y=&address@hidden;address@hidden@
M(" @(" @?E]"address@hidden(V1E9FEN92!-,3 S0R @(" @("!^7T)6*#$I"BL*
M*R-D969I;address@hidden&055,5" H33$P,T,I"BL*("-E;F1I9B O*B!?
105927TE/33$R.%](7R J+PH`
`
end

begin 666 34-avr-libc-1.4.6-fuse.patch
M+2TM("]D978O;G5L; DR,# W+3 Y+3(Y(#(P.C$W.C U+CDR,address@hidden P," M
M,#8P, HK*RL@:6YC;'5D92]A=G(O9G5S92YH"3(P,#<M,#DM,CD@,3DZ-3<Z
M,C(N-C Y,S<U,# P("TP-C P"D! ("TP+# @*S$L-S@@0$ **R\J($-O<'ER
M:6=H=" H8RD@,C address@hidden@0V]R<&]R871I;VX**R @($%L;"!R:6=H
M=',@<F5S97)V960N"BL**R @(%)E9&ES=')I8G5T:6]N(&%N9"!U<V4@:6X@
M<V]U<F-E(&%N9"!B:6YA<address@hidden;7,L('=I=&@@;W(@=VET:&]U= HK(" @
M;6]D:69I8V%T:6]N+"!A<F4@<&5R;6ET=&5D('!R;W9I9&5D('address@hidden&AE
M(&9O;&QO=VEN9R!C;VYD:71I;VYS(&%R92!M970Z"BL**R @("address@hidden:7-T
M<FEB=71I;VYS(&]F('-O=7)C92!C;V1E(&UU<W0@<F5T86EN('1H92!A8F]V
M92!C;W!Y<FEG:'0**R @(" @;F]T:6-E+"!T:&ES(&QI<W0@;address@hidden&ET
M:6]N<R!A;address@hidden&AE(&9O;&QO=VEN9R!D:7-C;&%I;address@hidden"BL@(" J(%)E
M9&ES=')I8G5T:6]N<R!I;B!B:6YA<address@hidden;2!M=7-T(')E<')O9'5C92!T
M:&address@hidden)address@hidden>7)I9VAT"BL@(" 
@(&YO=&address@hidden&AI<R!L:7-T(&]F
M(&-O;F1I=&EO;G,@86YD('1H92!F;VQL;W=I;F<@9&ES8VQA:6UE<B!I;@HK
M(" @("!T:&address@hidden&]C=6UE;G1A=&EO;B!A;F0O;W(@;W1H97(@;6%T97)I86QS
M('!R;W9I9&5D('=I=&@@=&AE"BL@(" @(&1I<W1R:6)U=&EO;BX**PHK(" @
M*B!.96ET:&5R('1H92!N86UE(&]F('1H92!C;W!Y<FEG:'0@:&]L9&5R<R!N
M;W(@=&AE(&YA;65S(&]F"BL@(" @(&-O;G1R:6)U=&]R<address@hidden@=7-E
M9"!T;R!E;F1O<G-E(&]R('!R;VUO=&4@<')O9'5C=',@9&5R:79E9 HK(" @
M("!F<F]M('1H:7,@<V]F='=A<address@hidden:&]U="!S<&5C:69I8R!P<FEO<B!W
M<FET=&5N('!E<FUI<W-I;VXN"BL**R @5$A)4R!33T945T%212!)4R!04D]6
M241%1"!"address@hidden))1TA4($A/3$1%4E,@04Y$($-/3E1224)55$]2
M4R B05,@25,B"BL@($%.1"address@hidden/4B!)35!,245$(%=!4E)!
M3E1)15,L(address@hidden($Y/5"!,24U)5$5$(%1/+"!42$4**R @
M24U03$E%1"!705)204Y42453($]&($U%4D-(04Y404))address@hidden
M3D534R!&3U(@02!005)424-53$%2(%!54E!/4T4**R @05)%($1)4T-,04E-
M140N($E.($Y/($5614Y4(%-(04Q,(%1(12!#3U!94DE'address@hidden(@3U(@
M0T].5%))0E543U)3($)%"BL@($Q)04),12!&3U(@04Y9($1)4D5#5"address@hidden
M25)%0U0L($E.0TE$14Y404PL(%-014-)04PL(address@hidden(**R @
M0T].4T51545.5$E!3"!$04U!1T53("A)3D-,541)3D<L($)55"address@hidden
M251%1"address@hidden)/address@hidden @4U5"4U1)5%5412!'3T]$4R!/
M4B!315)address@hidden/1B!54T4L($1!5$$L($]2(%!23T9)5%,[($]2
M($)54TE.15-3"BL@($E.5$524E505$E/address@hidden@04Y$
M($].($%.62!42$5/address@hidden@3$E!0DE,2519+"!72$542$52($E."BL@($-/
M3E1204-4+"!35%))address@hidden,2519+"!/4B!43U)4("A)3D-,541)3D<@
M3D5'3$E'14Y#12!/4B!/5$A%4E=)4T4I"BL@($%225-)3D<@address@hidden(%=!
M62!/address@hidden@5$A%(%5312!/1B!42$E3(%-/1E1705)%+"!%5D5.($E&($%$
address@hidden@5$A%"BL@(%!/4U-)0DE,2519($]&(%-50T@@1$%-04=%+B J
M+PHK"BLO*B D260D("HO"BL**R\J(&%V<B]F=7-E+F@@+2!&=7-E($%022 J
M+PHK"BLC:69N9&5F(%]!5E)?1E5315](7PHK(V1E9FEN92!?05927T954T5?
M2%\@,0HK"BLC:69N9&5F(%]?05-314U"3$527U\**PHK(V1E9FEN92!&55-%
M345-("!?7V%T=')I8G5T95]?*"AS96-T:6]N("@B+F9U<V4B*2DI"BL**R-I
M9B!&55-%7TU%34]265]325I%(#X@,PHK"BMT>7!E9&5F('-T<G5C= HK>PHK
M(" @('5N<VEG;F5D(&-H87(@8GET95M&55-%7TU%34]265]325I%73L**WT@
M7U]F=7-E7W0["BL**PHK(V5L:address@hidden/4EE?4TE:12 ]/2 S"BL*
M*W1Y<&5D968@<W1R=6-T"BM["BL@(" @=6YS:address@hidden<B!L;W<["BL@
M(" @=6YS:address@hidden<B!H:6=H.PHK(" @('5N<VEG;F5D(&-H87(@97AT
M96YD960["BM](%]?9G5S95]T.PHK"BLC96QI9B!&55-%7TU%34]265]325I%
M(#T](#(**PHK='EP961E9B!S=')U8W0**WL**R @("!U;G-I9VYE9"!C:&%R
M(&QO=SL**R @("!U;G-I9VYE9"!C:&%R(&address@hidden"BM](%]?9G5S95]T.PHK
M"BLC96QI9B!&55-%7TU%34]265]325I%(#T](#$**PHK='EP961E9B!S=')U
M8W0**WL**R @("!U;G-I9VYE9"!C:&%R(&)Y=&4["BM](%]?9G5S95]T.PHK
M"BLC96YD:68**PHK(V5N9&EF("\J("%?7T%34T5-0DQ%4E]?("HO"BL**R-E
M;F1I9B address@hidden(&EN8VQU9&address@hidden
M;VQD"3(P,#<M,#DM,CD@,C Z,#0Z,S(N,34V,C4P,# P("TP-C P"BLK*R!I
M;F-L=61E+V%V<B]I;RYH"3(P,#<M,#DM,CD@,C Z,#8Z-#DN.34S,3(U,# P
M("TP-C P"D! ("TR.3(L-" K,CDR+#<@0$ *( H@(VEN8VQU9&4@/&%V<B]V
M97)S:address@hidden"B **R\J($EN8VQU9&address@hidden(&%F=&5R(&EN9&EV:61U
address@hidden@:&5A9&5R(&9I;&5S+B J+PHK(VEN8VQU9&4@/&%V<address@hidden
M"BL*("-E;F1I9B O*B!?05927TE/7TA?("HO"BTM+2!I;F-L=61E+V%V<B]-
M86ME9FEL92YA;2YO;&0),C P-RTP.2TR,B R,#HU,3HT-"XT-#<P,# P,# @
M+3 V,# **RLK(&EN8VQU9&4O879R+TUA:V5F:6QE+F%M"3(P,#<M,#DM,C(@
M,C Z-3$Z-3,N.3 P,3(U,# P("TP-C P"D! ("TS-BPV("LS-BPW($! "B @
M(" @8W)C,38N:"!<"B @(" @9&5L87DN:"!<"B @(" @965P<F]M+F@@7 HK
M(" @(&9U<V4N:"!<"B @(" @:6YT97)R=7!T+F@@7 H@(" @(&EO+F@@7 H@
/(" @(&EO,3(P,"YH(%P*
`
end

begin 666 test.c
M"B-I;F-L=61E(#QA=G(O:6\N:#X*"E]?9G5S95]T(&9U<address@hidden ]
M( I["B @(" N;&]W(address@hidden&055,5"P*(" @("YH:6=H(address@hidden
M4T5?1$5&055,5"P*(" @("YE>'1E;F1E9" ]($5&55-%7T1%1D%53%0L"GT[
C"@II;G0@;6%I;BAV;VED*0I["B @("!R971U<FX@,#L*?0H`
`
end

begin 666 32-binutils-2.18-unified.patch
M+2TM(&QD+W-C<FEP='1E;7!L+V%V<BYS8RYO;&0),C P-RTP.2TQ-" P-CHS
M,CHP,BXT,S<U,# P,# @+3 V,# **RLK(&QD+W-C<FEP='1E;7!L+V%V<BYS
M8PDR,# W+3 Y+3$T(# V.C4P.C(address@hidden P," M,#8P, I 0" M-"PY
M("LT+#$R($! ($]55%!55%]!4D-(*"1[05)#2'TI"B *($U%34]260H@>PHM
M("!T97AT(" @*')X*2 @(address@hidden))1TE.(#T@,"address@hidden((#T@)%1%6%1?
M3$5.1U1("BT@(&1A=&$@(" H<G<A>"address@hidden/4DE'24X@/2 P>address@hidden,# 
V,"P@
M3$5.1U1((#T@)$1!5$%?3$5.1U1("BT@(&5E<')O;2 H<G<A>"address@hidden/4DE'
M24X@/2 P>address@hidden,# P,"address@hidden((address@hidden"BL@('1E>'0@(" @(" 
H<address@hidden
M(" @.B!/4DE'24X@/2 P+"!,14Y'5$@@/2 D5$585%],14Y'address@hidden @9&%T
M82 @(" @("AR=R%X*2 Z($]224=)3B ](#!X.# P,#8P+"!,14Y'5$@@/2 D
M1$%405],14Y'address@hidden @965P<F]M(" @("AR=R%X*2 Z($]224=)3B ](#!X
M.#$P,# P+"!,14Y'5$@@/2 V-$L**R @9G5S92 @(" @("AR=R%X*2 Z($]2
M24=)3B ](#!X.#(P,# P+"!,14Y'5$@@/2 Q2PHK("!L;V-K(" @(" @*')W
M(address@hidden(address@hidden))1TE.(#T@,'@X,S P,# L($Q%3D=42" 
](#%+"BL@('-I9VYA
M='5R92 H<G<A>"address@hidden/4DE'24X@/2 P>address@hidden,# 
P,"address@hidden((#T@,4L*
M('T*( address@hidden/3E,*0$ @+3$Y-BPV("LQ.3DL,address@hidden @4T5#5$E/3E,*
M(" @(" D>U)%3$]#051)3D<K(%]?965P<F]M7V5N9" ]("address@hidden"B @('T@
M)'M214Q/0T%424Y'*R ^(&5E<')O;7T*( HK(" N9G5S92 D>U)%3$]#051)
M3D<M,'address@hidden/3$]!1"DZ"BL@('L**R @("!+1450*"HH+F9U<V4I*0HK(" @
M($M%15 address@hidden;&9U<V4I*0HK(" @($M%15 address@hidden:&9U<V4I*0HK(" @($M%
M15 address@hidden<V4I*0HK("!]("1[4D5,3T-!5$E.1RL@/B!F=7-E?0HK"BL@
M("YL;V-K("1[4D5,3T-!5$E.1RTP?2 H3D],3T%$*3H**R @>PHK(" @($M%
M15 address@hidden;&]C:RHI*0HK("!]("1[4D5,3T-!5$E.1RL@/B!L;V-K?0HK"BL@
M("YS:6=N871U<F4@)'M214Q/0T%424Y'+3!]("A.3TQ/address@hidden("!["BL@
M(" @2T5%4"@J*"YS:6=N871U<F4J*2D**R @?2 D>U)%3$]#051)3D<K(#X@
M<VEG;F%T=7)E?0HK"B @("\J(%-T86)S(&1E8G5G9VEN9R!S96-T:6]N<RX@
M("HO"B @("YS=&%B(# @.B![("HH+G-T86(I('T*(" @+G-T86)S='(@," Z
1('address@hidden@N<W1A8G-T<address@hidden
`
end





reply via email to

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