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

[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





reply via email to

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