[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[avr-libc-dev] [RFC] Lockbits API
From: |
Eric Weddington |
Subject: |
[avr-libc-dev] [RFC] Lockbits API |
Date: |
Sun, 21 Oct 2007 17:46:57 -0600 |
Hi All,
The attached patch (uuencoded) adds an API for setting the lockbits from
within an application. This is a companion to the earlier Fuses API, and the
earliler patch to binutils to change the default linker script to have these
additional memory areas. Also attached is an additional test program
(including fuses) and a build shell script for the test program.
Because the lock bits are similar to the fuses, in that a 1 means
'unprogrammed' and 0 means 'programmed', to assign the lockbits requires
using a bit-wise 'and' operator with various flags, like so:
LOCKBITS = (LB_MODE_1 & BLB0_MODE_3 & BLB1_MODE_4);
(which is taken from the test program)
Eric Weddington
begin 666 37-avr-libc-1.4.6-lockbits.patch
M3&]C:R!":71S($%022!F;W(@879R+6QI8F,*/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T*+2TM(&EN8VQU9&4O879R+TUA:V5F
M:6QE+F%M+F]L9 DR,# W+3$P+3(Q(#$Q.C,U.C,X+C S-S(U,# P," M,#8P
M, HK*RL@:6YC;'5D92]A=G(O36%K969I;&4N86T),C P-RTQ,"TR,2 Q,3HS
M-3HU-BXS.38V,C4P,# @+3 V,# *0$ @+3$S-RPV("LQ,S<L-R! 0"!A=G)?
M2$5!1$524R ](%P*(" @("!I;W1N>#0N:"!<"B @(" @:6]T;address@hidden@@7 H@
M(" @(&EO=&YX-C$N:"!<"BL@(" @;&]C:RYH(%P*(" @("!P87)I='DN:"!<
M"B @(" @<&=M<W!A8V4N:"!<"B @(" @<&]R='!I;G,N:"!<"BTM+2!I;F-L
M=61E+V%V<B]I;RYH+F]L9 DR,# W+3$P+3(Q(#$Q.C(T.C address@hidden P
M," M,#8P, HK*RL@:6YC;'5D92]A=G(O:6\N: DR,# W+3$P+3(Q(#$Q.C(T
M.C,U+C,P,address@hidden P," M,#8P, I 0" M,address@hidden(Y-RPW($! "B O*B!)
M;F-L=61E(&9U<V4N:"!A9G1E<B!I;F1I=FED=6%L($E/(&AE861E<B!F:6QE
M<address@hidden("-I;F-L=61E(#QA=G(O9G5S92YH/@H@"BLO*B!);F-L=61E(&QO
M8VLN:"!A9G1E<B!I;F1I=FED=6%L($E/(&AE861E<B!F:6QE<address@hidden
M;F-L=61E(#QA=G(O;&]C:RYH/@HK"B C96YD:address@hidden@7T%64E])3U](7R J
M+PHM+2T@:6YC;'5D92]A=G(O:6]M,3(address@hidden;VQD"3(P,#<M,3 M,C$@,3$Z
M,C$Z,3<N-#<T-S4P,# P("TP-C P"BLK*R!I;F-L=61E+V%V<B]I;VTQ,address@hidden
M: DR,# W+3$P+3(Q(#$Q.C(S.C4W+C(X-S(U,# P," M,#8P, I 0" M,3$Y
M,2PT("LQ,3DQ+#$Q($! "B *("-D969I;address@hidden&055,5" H33$P
M,T,I"B address@hidden&]C:R!":71S("HO"BLC9&5F:6YE(%]?3$]#2U]"2513
M7T5825-4"BLC9&5F:6YE(%]?0D]/5%],3T-+7T))5%-?,%]%6$E35 HK(V1E
M9FEN92!?7T)/3U1?3$]#2U]"25137S%?15A)4U0@"BL**PH@(V5N9&EF("\J
M(%]!5E)?24]-,3(X7TA?("HO"BTM+2!I;F-L=61E+V%V<B]I;VTT."YH+F]L
M9 DR,# W+3$P+3(Q(#$Q.C(Y.C$Q+C8V,C(U,# P," M,#8P, HK*RL@:6YC
M;'5D92]A=G(O:address@hidden: DR,# W+3$P+3(Q(#$Q.C(Y.C,S+C$V,C(U,# P
M," M,#8P, I 0" M-#(L-" K-#(L.2! 0 H@(V1E9FEN92!%,D5.1" @(" @
M(" P>$9&"B C9&5F:6YE($9,05-(14Y$(" @(#!X1D9&"B address@hidden&]C
M:R!":71S("HO"BLC9&5F:6YE(%]?3$]#2U]"25137T5825-4"BL**PH@(V5N
M9&EF("\J(%]!5E)address@hidden(&EN8VQU9&4O879R+VEO;address@hidden
address@hidden;VQD"3(P,#<M,3 M,C$@,3$Z,CDZ,address@hidden,C<Q-C(U,# P("TP-C
P"BLK
M*R!I;F-L=61E+V%V<B]I;VTX."YH"3(P,#<M,3 M,C$@,3$Z,S$Z,S<N,S$X
M-3 P,# P("TP-C P"D! ("TT,BPU("LT,BPQ,B! 0 H@(V1E9FEN92!%,D5.
M1" @(" @(" P>#%&address@hidden@(V1E9FEN92!&3$%32$5.1" @(" P>#%&1D8*( HK
M"BLO*B!,;V-K($)I=',@*B\**R-D969I;address@hidden,3T-+7T))5%-?15A)4U0*
M*R-D969I;address@hidden"3T]47TQ/0TM?0DE44U\P7T5825-4"BLC9&5F:6YE(%]?
M0D]/5%],3T-+7T))5%-?,5]%6$E35" **PHK"B C96YD:address@hidden@7T%64E])
M3TTX.%](7R J+PH@"BTM+2!I;F-L=61E+V%V<B]I;address@hidden:"YO;&0),C P
M-RTQ,"TR,2 Q,3HS,3HU."XX,address@hidden,# P,# @+3 V,# **RLK(&EN8VQU9&4O
M879R+VEO;3$V."YH"3(P,#<M,3 M,C$@,3$Z,S(Z-#,N.#8U,S<U,# P("TP
M-C P"D! ("TT,BPT("LT,BPQ,2! 0 H@(V1E9FEN92!%,D5.1" @(" @(" P
M>#%&address@hidden@(V1E9FEN92!&3$%32$5.1" @(" P>#-&1D8*( HK"BLO*B!,;V-K
M($)I=',@*B\**R-D969I;address@hidden,3T-+7T))5%-?15A)4U0**R-D969I;F4@
M7U]"3T]47TQ/0TM?0DE44U\P7T5825-4"BLC9&5F:6YE(%]?0D]/5%],3T-+
M7T))5%-?,5]%6$E35" **PHK"B C96YD:address@hidden@7T%64E])3TTQ-CA?2%\@
M*B\*+2TM("]D978O;G5L; DR,# W+3$P+3(Q(#$U.C(R.C0Q+C$S,3 P,# P
M," M,#8P, HK*RL@:6YC;'5D92]A=G(O;&]C:RYH"3(P,#<M,3 M,C$@,34Z
M,address@hidden<W.#<U,# P("TP-C P"D! ("TP+# @address@hidden **R\J($-O
M<'ER:6=H=" H8RD@,C address@hidden@0V]R<&]R871I;VX**R @($%L;"!R
M:6=H=',@<F5S97)V960N"BL**R @(%)E9&ES=')I8G5T:6]N(&%N9"!U<V4@
M:6X@<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('1H870@
M=&AE(&9O;&QO=VEN9R!C;VYD:71I;VYS(&%R92!M970Z"BL**R @("address@hidden
M:7-T<FEB=71I;VYS(&]F('-O=7)C92!C;V1E(&UU<W0@<F5T86EN('1H92!A
M8F]V92!C;W!Y<FEG:'0**R @(" @;F]T:6-E+"!T:&ES(&QI<W0@;address@hidden
M9&ET:6]N<R!A;address@hidden&AE(&9O;&QO=VEN9R!D:7-C;&%I;address@hidden"BL@(" J
M(%)E9&ES=')I8G5T:6]N<R!I;B!B:6YA<address@hidden;2!M=7-T(')E<')O9'5C
M92!T:&address@hidden)address@hidden>7)I9VAT"BL@("
@(&YO=&address@hidden&AI<R!L:7-T
M(&]F(&-O;F1I=&EO;G,@86YD('1H92!F;VQL;W=I;F<@9&ES8VQA:6UE<B!I
M;@HK(" @("!T:&address@hidden&]C=6UE;G1A=&EO;B!A;F0O;W(@;W1H97(@;6%T97)I
M86QS('!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
M<R!N;W(@=&AE(&YA;65S(&]F"BL@(" @(&-O;G1R:6)U=&]R<address@hidden@
M=7-E9"!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
M<B!W<FET=&5N('!E<FUI<W-I;VXN"BL**R @5$A)4R!33T945T%212!)4R!0
M4D]6241%1"!"address@hidden))1TA4($A/3$1%4E,@04Y$($-/3E1224)5
M5$]24R B05,@25,B"BL@($%.1"address@hidden/4B!)35!,245$(%=!
M4E)!3E1)15,L(address@hidden($Y/5"!,24U)5$5$(%1/+"!42$4*
M*R @24U03$E%1"!705)204Y42453($]&($U%4D-(04Y404))3$E462!!3D0@
M1DE43D534R!&3U(@02!005)424-53$%2(%!54E!/4T4**R @05)%($1)4T-,
M04E-140N($E.($Y/($5614Y4(%-(04Q,(%1(12!#3U!94DE'address@hidden(@
M3U(@0T].5%))0E543U)3($)%"BL@($Q)04),12!&3U(@04Y9($1)4D5#5"P@
M24Y$25)%0U0L($E.0TE$14Y404PL(%-014-)04PL(address@hidden(*
M*R @0T].4T51545.5$E!3"!$04U!1T53("A)3D-,541)3D<L($)55"!.3U0@
M3$E-251%1"address@hidden)/address@hidden @4U5"4U1)5%5412!'3T]$
M4R!/4B!315)address@hidden/1B!54T4L($1!5$$L($]2(%!23T9)5%,[
M($]2($)54TE.15-3"BL@($E.5$524E505$E/address@hidden@
M04Y$($].($%.62!42$5/address@hidden@3$E!0DE,2519+"!72$542$52($E."BL@
M($-/3E1204-4+"!35%))address@hidden,2519+"!/4B!43U)4("A)3D-,541)
M3D<@3D5'3$E'14Y#12!/4B!/5$A%4E=)4T4I"BL@($%225-)3D<@address@hidden
M(%=!62!/address@hidden@5$A%(%5312!/1B!42$E3(%-/1E1705)%+"!%5D5.($E&
M(address@hidden@5$A%"BL@(%!/4U-)0DE,2519($]&(%-50T@@1$%-04=%
M+B J+PHK"BLO*B D260D("HO"BL**R\J(&%V<B]L;V-K+F@@+2!,;V-K($)I
M=',@05!)("HO"address@hidden,3T-+7TA?"BLC9&5F:6YE(%]!
M5E)?3$]#2U](7R @,0HK"address@hidden),15)?7PHK"BLC
M9&5F:6YE($Q/0TM-14T@(%]?871T<FEB=71E7U\H*'-E8W1I;address@hidden"(N;&]C
M:R(I*2D**PHK(V1E9FEN92!,3T-+0DE44R!U;G-I9VYE9"!C:&%R(%]?;&]C
M:R!,3T-+345-"BL**R-E;F1I9B @+RH@(5]?05-314U"3$52("HO"BL**PHK
address@hidden&]C:R!":address@hidden,@*B\**R-I9B!D969I;F5D*%]?3$]#2U]"2513
M7T5825-4*0HK(V1E9FEN92!,0E]-3T1%7S$@("@P>$9&*0HK(V1E9FEN92!,
M0E]-3T1%7S(@("@P>$9%*0HK(V1E9FEN92!,0E]-3T1%7S,@("@P>$9#*0HK
M(V5N9&EF"BL**R-I9B!D969I;F5D*%]?0D]/5%],3T-+7T))5%-?,%]%6$E3
M5"D**R-D969I;address@hidden",%]-3T1%7S$@("@P>$9&*0HK(V1E9FEN92!"3$(P
M7TU/1$5?,B @*#!X1D(I"BLC9&5F:6YE($),0C!?34]$15\S(" H,'A&,RD*
M*R-D969I;address@hidden",%]-3T1%7S0@("@P>$8W*0HK(V5N9&EF"BL**R-I9B!D
M969I;F5D*%]?0D]/5%],3T-+7T))5%-?,5]%6$E35"D**R-D969I;address@hidden"
M,5]-3T1%7S$@("@P>$9&*0HK(V1E9FEN92!"3$(Q7TU/1$5?,B @*#!X148I
M"BLC9&5F:6YE($),0C%?34]$15\S(" H,'A#1BD**R-D969I;address@hidden",5]-
M3T1%7S0@("@P>$1&*0HK(V5N9&EF"BL**R-D969I;address@hidden))5%-?1$5&
I055,5" H,'A&1BD**PHK(V5N9&EF("\J(%]!5E)?3$]#2U](7R J+PH`
`
end
begin 666 test.c
M"B-I;F-L=61E(#QA=G(O:6\N:#X*"D954T53(#T@"GL*(" @("YL;W<@/2!,
M1E5315]$149!54Q4+ H@(" @+FAI9V@@/2!(1E5315]$149!54Q4+ H@(" @
M+F5X=&5N9&5D(address@hidden&055,5"P*?3L*"DQ/0TM"2513(address@hidden"
M7TU/1$5?,2 F($),0C!?34]$15\S("address@hidden",5]-3T1%7S0I.PH*:6YT(&UA
;:6XH=F]I9"D*>PH@(" @<F5T=7)N(# ["GT*
`
end
begin 666 build.sh
M(address@hidden)I;B]S: address@hidden"F,Z+U=I;D%64B]B:6XO879R+6=C8R M+79E
M<G-I;VX*8SHO5VEN0592+V)I;B]A=G(M9V-C("US879E+71E;7!S("UM;6-U
M/6%T;65G83$R." M3W,@+6,@=&5S="YC("UO('1E<W0N;PIC.B]7:6Y!5E(O
M8FEN+V%V<BUG8V,@+6UM8W4]871M96=A,3(X("U/<R M5VPL+4UA<#UT97-T
?+FUA<"address@hidden&5S="YO("UO('1E<W0N96QF"@``
`
end
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [avr-libc-dev] [RFC] Lockbits API,
Eric Weddington <=