From b1dbe51d850d210b452f831bb3fbc852f8a862fd Mon Sep 17 00:00:00 2001 From: supperthomas <78900636@qq.com> Date: Sun, 11 Apr 2021 12:24:47 +0800 Subject: [PATCH] add the templete of nrfx --- .../docs/images/image-20210403182031505.png | Bin 0 -> 20730 bytes .../docs/images/image-20210403182242202.png | Bin 0 -> 22587 bytes .../docs/images/microbit-overview-1-5.png | Bin 0 -> 145141 bytes bsp/nrf5x/docs/nRF5x系列BSP制作教程.md | 92 + bsp/nrf5x/libraries/templates/nrfx/.config | 540 + bsp/nrf5x/libraries/templates/nrfx/Kconfig | 21 + bsp/nrf5x/libraries/templates/nrfx/README.md | 77 + bsp/nrf5x/libraries/templates/nrfx/SConscript | 15 + bsp/nrf5x/libraries/templates/nrfx/SConstruct | 57 + .../templates/nrfx/applications/SConscript | 11 + .../templates/nrfx/applications/application.c | 23 + .../libraries/templates/nrfx/board/Kconfig | 97 + .../libraries/templates/nrfx/board/SConscript | 11 + .../libraries/templates/nrfx/board/board.c | 90 + .../libraries/templates/nrfx/board/board.h | 30 + .../nrfx/board/linker_scripts/link.lds | 16 + .../nrfx/board/linker_scripts/link.sct | 15 + .../templates/nrfx/board/nrfx_config.h | 47 + .../templates/nrfx/board/nrfx_glue.h | 269 + .../libraries/templates/nrfx/board/nrfx_log.h | 135 + .../templates/nrfx/board/sdk_config.h | 11701 ++++++++++++++++ .../libraries/templates/nrfx/project.uvoptx | 1080 ++ .../libraries/templates/nrfx/project.uvprojx | 777 + bsp/nrf5x/libraries/templates/nrfx/rtconfig.h | 186 + .../libraries/templates/nrfx/rtconfig.py | 92 + .../libraries/templates/nrfx/template.uvoptx | 184 + .../libraries/templates/nrfx/template.uvprojx | 390 + bsp/nrf5x/nrf51822/.config | 540 + bsp/nrf5x/nrf51822/Kconfig | 21 + bsp/nrf5x/nrf51822/README.md | 76 + bsp/nrf5x/nrf51822/SConscript | 15 + bsp/nrf5x/nrf51822/SConstruct | 57 + bsp/nrf5x/nrf51822/applications/SConscript | 11 + bsp/nrf5x/nrf51822/applications/application.c | 23 + bsp/nrf5x/nrf51822/board/Kconfig | 101 + bsp/nrf5x/nrf51822/board/SConscript | 11 + bsp/nrf5x/nrf51822/board/board.c | 90 + bsp/nrf5x/nrf51822/board/board.h | 30 + .../nrf51822/board/linker_scripts/link.lds | 16 + .../nrf51822/board/linker_scripts/link.sct | 15 + bsp/nrf5x/nrf51822/board/nrfx_config.h | 47 + bsp/nrf5x/nrf51822/board/nrfx_glue.h | 269 + bsp/nrf5x/nrf51822/board/nrfx_log.h | 135 + bsp/nrf5x/nrf51822/board/sdk_config.h | 11701 ++++++++++++++++ bsp/nrf5x/nrf51822/project.uvoptx | 1080 ++ bsp/nrf5x/nrf51822/project.uvprojx | 777 + bsp/nrf5x/nrf51822/rtconfig.h | 187 + bsp/nrf5x/nrf51822/rtconfig.py | 92 + bsp/nrf5x/nrf51822/template.uvoptx | 184 + bsp/nrf5x/nrf51822/template.uvprojx | 390 + 50 files changed, 31824 insertions(+) create mode 100644 bsp/nrf5x/docs/images/image-20210403182031505.png create mode 100644 bsp/nrf5x/docs/images/image-20210403182242202.png create mode 100644 bsp/nrf5x/docs/images/microbit-overview-1-5.png create mode 100644 bsp/nrf5x/libraries/templates/nrfx/.config create mode 100644 bsp/nrf5x/libraries/templates/nrfx/Kconfig create mode 100644 bsp/nrf5x/libraries/templates/nrfx/README.md create mode 100644 bsp/nrf5x/libraries/templates/nrfx/SConscript create mode 100644 bsp/nrf5x/libraries/templates/nrfx/SConstruct create mode 100644 bsp/nrf5x/libraries/templates/nrfx/applications/SConscript create mode 100644 bsp/nrf5x/libraries/templates/nrfx/applications/application.c create mode 100644 bsp/nrf5x/libraries/templates/nrfx/board/Kconfig create mode 100644 bsp/nrf5x/libraries/templates/nrfx/board/SConscript create mode 100644 bsp/nrf5x/libraries/templates/nrfx/board/board.c create mode 100644 bsp/nrf5x/libraries/templates/nrfx/board/board.h create mode 100644 bsp/nrf5x/libraries/templates/nrfx/board/linker_scripts/link.lds create mode 100644 bsp/nrf5x/libraries/templates/nrfx/board/linker_scripts/link.sct create mode 100644 bsp/nrf5x/libraries/templates/nrfx/board/nrfx_config.h create mode 100644 bsp/nrf5x/libraries/templates/nrfx/board/nrfx_glue.h create mode 100644 bsp/nrf5x/libraries/templates/nrfx/board/nrfx_log.h create mode 100644 bsp/nrf5x/libraries/templates/nrfx/board/sdk_config.h create mode 100644 bsp/nrf5x/libraries/templates/nrfx/project.uvoptx create mode 100644 bsp/nrf5x/libraries/templates/nrfx/project.uvprojx create mode 100644 bsp/nrf5x/libraries/templates/nrfx/rtconfig.h create mode 100644 bsp/nrf5x/libraries/templates/nrfx/rtconfig.py create mode 100644 bsp/nrf5x/libraries/templates/nrfx/template.uvoptx create mode 100644 bsp/nrf5x/libraries/templates/nrfx/template.uvprojx create mode 100644 bsp/nrf5x/nrf51822/.config create mode 100644 bsp/nrf5x/nrf51822/Kconfig create mode 100644 bsp/nrf5x/nrf51822/README.md create mode 100644 bsp/nrf5x/nrf51822/SConscript create mode 100644 bsp/nrf5x/nrf51822/SConstruct create mode 100644 bsp/nrf5x/nrf51822/applications/SConscript create mode 100644 bsp/nrf5x/nrf51822/applications/application.c create mode 100644 bsp/nrf5x/nrf51822/board/Kconfig create mode 100644 bsp/nrf5x/nrf51822/board/SConscript create mode 100644 bsp/nrf5x/nrf51822/board/board.c create mode 100644 bsp/nrf5x/nrf51822/board/board.h create mode 100644 bsp/nrf5x/nrf51822/board/linker_scripts/link.lds create mode 100644 bsp/nrf5x/nrf51822/board/linker_scripts/link.sct create mode 100644 bsp/nrf5x/nrf51822/board/nrfx_config.h create mode 100644 bsp/nrf5x/nrf51822/board/nrfx_glue.h create mode 100644 bsp/nrf5x/nrf51822/board/nrfx_log.h create mode 100644 bsp/nrf5x/nrf51822/board/sdk_config.h create mode 100644 bsp/nrf5x/nrf51822/project.uvoptx create mode 100644 bsp/nrf5x/nrf51822/project.uvprojx create mode 100644 bsp/nrf5x/nrf51822/rtconfig.h create mode 100644 bsp/nrf5x/nrf51822/rtconfig.py create mode 100644 bsp/nrf5x/nrf51822/template.uvoptx create mode 100644 bsp/nrf5x/nrf51822/template.uvprojx diff --git a/bsp/nrf5x/docs/images/image-20210403182031505.png b/bsp/nrf5x/docs/images/image-20210403182031505.png new file mode 100644 index 0000000000000000000000000000000000000000..5fcba55d3b453b476d270d99ea658bd88ed5ed50 GIT binary patch literal 20730 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 Cgt(#r literal 0 HcmV?d00001 diff --git a/bsp/nrf5x/docs/images/microbit-overview-1-5.png b/bsp/nrf5x/docs/images/microbit-overview-1-5.png new file mode 100644 index 0000000000000000000000000000000000000000..f7977b38997c07e67a1c129ed27c390a335b6198 GIT binary patch literal 145141 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

^-4ahDzmol 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%0DfDFxC<2P=8J|URzI5S_n z^vZKo?{aBEMj=5c`(zvSu$6pIdMW(BuMLjM_gwVrrer6$6{#^!6WF3pmNqOPr~zY7 zE!qWGQxkPv3DP>Wd>%}ol5l=t7!R(`wYz^}zZCFrA_LF!%*HByk)g!amWO3-8Bf!L zw@|1+8&$quaRTlAjf$z;u>1p!h?!*NM;zK7xjUR*xnG4Le?Bt?iHJE&-QjD*$x1J@Sp+xLM#f&n zEgZ7rIEm4l-~9`P6-GSmySizh_rK6OHWTBIvJCcj9jAfgAJ79=>8V@aqAA9kR$dWe z!>9+-ud+T#qd=9Gs|A`7eWx1thk}qez!7-D@00C`9Ayv+PZpCfAI?(9apERxRoh&b z-tr-Vu_!Zqd&7($ltPFtQWrDlRZ4(47r;+C{!SgM15Z9%spj$p#(}+T*VVtMjw%4- z8{wljkthj3^{CrBrn7f4v}qxLQidOcn+|yO+trEA|1o`2>FX!js`x~a_%n+yD_$9t z20=rYhXJnf1v%Y+dj%7)U|CMPe}kD~ZMK_gAlmI@)`WyUjp^E%A?1!^uN1SIxXiJA2VY7aJ`_bquO6Km{@{4Y{X@$zDI^=#lD3MjS@WPqi+wEg- zx+uL_uy>f!Xb=judDM*}qTdi=#G-K!t{ zOPoFsnMw@64%rB2p2jk0@dprz*#Dkzb|vt-%o|d~0QbMu%Vp7b*xs`73~{v?%;DoA z`%SeYDKY*h9O{mc`Z#!OCc3gjP`IronGGiYf1%RB_+*vxB{w-Vjju!mPDymMzmF^n z$NHugSM3xTEAN;v5#RPtwqMWHTv17FC*1&WH`gs$33|-w)s;}4R}-oT5$5YbIiHPs zp)@9W-#qxvw`7$##b8e!}AfB zhc-4ms!CK68Hb#LHL?#Ehg{)nusyS#KiUTF^T$ttHXHQu%whTb0`FuWxV2Tmw8O3m zK|xb>@>#?r5e&}Al65r8YI=fTX^mzka2Qzxq^5V2HSNwmT_4uc6_*^D7x z>20OSNo^+D3BP&cHYAnDxiwSPh?W~@BdgQwZ^=ok6Fkf!Hx z#OJ38%qT>aF%~WKi(e$an}ua(^a$R`KF>GB7MozikT=z{m*cz%tDO=fvp9hr8`nYt z)Lhv?ok=fSwU`sxV)KBbb|X~00-Xnjho1~u0&fD>o*ed4gsocY(}k;pv_Jg|*bV&~ z&8owA$!nMrlY?tM_hR5);#uQt;&K6x7iN2iXusb2^k^rXy_SZRG+$qz9|ZF~oc`o{ z$>ufn^SBi^Q2MSd<0o=pbrXw7_<^>W&@~4Kfe8<3V@|`xJC6^ryd2y-UiJEraqqDK zK3+Yb$p~WFT;E*A4}YB~JP^DZ6p8u|asQ2D!B5MY%#Sf+ctx8Ctnc{xo|t8q2i9O!XHTps!lLbN0`ha-MUg3i~=DCk}a6ReNz zznlwXi$JAG?P6)_3cm}Ja5^4`s?z%R;ebk=g@2>zf zw2-!kn?36#sQsZgaRqxU>bzy`Ajzauf>zH2nFpW7)4QtHL&|B*=dC|XNH7)BylbUm zq@G{IH=)PNZM5!WPpSreJR%GVtdqD!W#ioXetow5Hy!_XCwnYW0Dwe}WTpyJQrCWQ z#N9vNFb?E;(*}JYJo+Ko|1}FBBK3uO-#gEFbz$A4V#ha`G;9SscpdXZ3G;+u0bCX* zR9rL?#y_>_Kd5{%#6q&Ozvy3Vj$uoh1R-j_BYvoeM??;+zKt3AosRugDmUsxNs^HM zAq%O;G3hr-_5)FA^E##KZ)@yu)^x4@kw;K~!J_{a;{5b=?&lIq@RD>8DZ8$X-(XQH z-?ci<@cx=xd@afNDp6~YYxarYU_phd^-qsoa7^I#x#`PSDGll-$K!UG))p>{*qV!QKajz zM9RpunlNT!1IqbRf>9`O@@@;!Y@!L-rhCzRq0}*)oCcYz zB^hRZy(CF2{17{c9ti$*4|r8jm&wAuSlOxk&9@!ajelSY`%IJWE<% znPT1(Zcr6BPHuQvVEmj5zY5YIg&oKymBQSZ6H??*gX}*AkRP92{){c)nhG#w$=5WYqDkehh@Q9U}fu`qI1wI&V-6s920d1IaTDvQM7cJ!nQuj61Vb8 zal-}N9mnTihC}>ROmG7>3$yz7p#3kT{rW|8xa>#U13HY?T8#KgjMw7IQ-3z>%7mR^ zFo(y$a{s?VQd3JED&p8S>a44bq;dz}EOf=%Q<>Sato4?Cug8V%kqwWTynyS9(Of-` zOd1k{J|{2p&H(RyR<8RRCbUcQCznPmCrwxF&Zb)9;?3&P_X#;5c(;I+>7e6Kda?S? z?8-=Ob>UUs%4PyXzIKJGNB5GpO_Ypl{I(c&ckNlpU30ZL-vqq7PQdi34!kpY9lSmh z=ONCLB`z?vrjtDJIPD7_!mO+<^Mg2Yj?Q?m{BTnQj~1#=rS2q)>55xT7snx!T(pv^ zAFUvx8O9z);+!PMBeSpo$zj}N9OT7y8Ei?@aMAl+r~jWk;UP?0=t#@B;Z(Ub52XG< z@B21HldOI;r`FskO7iN;2K=aBJTy_2$8)+xb_N#YagoaT$u4j?u=!fV{Lp-Lpn~8p z7QDB5jhR=vTD9f0uE;iD^BKYhKPAaSZMk4>^3cuo(o54uA{p_*HP06hT^|rzQ4Z7U^0Yj(%UciHl2~pk==AFRS&qdDa~CChu;mIMA@pjOxq4>=Gjq zYN^O0>i(nRz<@EJ$R5h2B75jDhi?bV%pZ+v6wioEkxqm|x3 zCIaP$;7ZMZE7h$JC0SN?y4`M%r-fR9!hU2DVOIhIsOx2Aaj=BCq7L)J*k)Nt$|AH} z_W+zLDAc-9%|W+>I6gTGi~B|0lH(wQXT8FfECNT4*Q6{x`QoGA5ZYB-t^RXy@^yoB7&* ze=DHLyiOLWsDxh5m?h4S98K|qXHHy#aUm^=X>rrS~_Ag+XD0#MTy7io@%%@nI7j|X{a zXwWLmCK6a6P}|`SfeLTae7joXZGmTIDbgNbsLAI>-2~EZNFq+ zq9WXVTY#c`D^OeZw1y|1M87k9%!z5@D zvqY_EwB$&QG9hMwp}^`#S=k%$))8c<{)2qS11$^V#FDm-6f@-_p4abz*syNtnGg>Y4OYKB#E27zjXXuDd)PzU! zNHIeSWf>-aZieJ2t4J++_?&VDZ zI`bvh;$uEGqtz{wI_*-jBnGvD(ngJ3n>;QxlK^CrEHZcfx}g4`QAk*Vs6xE7V-kcI z9~vVcMQE>DWDNgCnp68{hzg-w?fYIUXbEIkZ~c?H;V%RDJPI4`*O|v!S2CYh38dW* zq~*eM1uu2;8=LgDTdLJ~IqB&ETa6lqUhBNFM*POS9HNq*Vbgy&c>=znU>n(pm=-ix zn>C!NCJh+;Zv8L~)F19}>P&wGD@Ua+$EP|0oIqz&t#J6rGQ68D?Nz-mX$NW}hl}u} zmT-Le;&b{)Zo<7V9M?YMwGeN@yCDqzouq)Rsx+C09ro)+7i&bw7#r+e)IouD z7NYpKVI=ZOjU`K4nxTa5PXGGM82TW>`R&kY4zwqb;a5J|Y~GPCeH#T-DP>JI#9oaHC{HZHowWXq>)44vmi=;?wnK!`r zFsb0-n`-W3kGgd+@=Nl|T))>H5WX+En`+uAdk?PZ{@dL1Lw5lQsSoloqb?6w(s@PE zx)&GAjerp*eWaLCTwy;d-PgoNuf}Oacooqo%`)M)6;j*m7fIc|Pb&sr3`ouj>d5xJ z1F^rvT4}98-dq>8m3e46cLvE`Oay%BIGNl*c4ac9zF%dCYA@6jc6=B5OYo|hYQM36 zyLTn!E?L&cPw7JIUhux0vo3jS{qd5+u;KBY&MPY`n?r)dM=-nC{Si-+b&SzU3y_mn zAK-TUMYq}OdW=pF*4chsq9#h1tSMCoFMZPpi?tn1hZKKVOV2*?rDbfo5)7OcB*5%6 zksj5wgv9eCtx?SlqsHthANAVD{bfX|I;YN8-;iwIjSeI5?RQDLOfNd-jI#arUO!CS zSMQOT0)Z?pL96Is$5lpE2eFHsz$~atj$!Ec)~JTDXiNwl!0RRrrK%pILF;p2N))c7 z`L{s98yGJ`d3n49{L!AGTtuFsPeTg4Fa|0N>$2(kEH)#vSI*KrK}RjR@Z;-74ml2( z1Mm_nL%M!3LQch8!~Dvt3g_F$pY*o5EgH1kCLH>Kk59eV4cT~;PqmL+_of6-i~^s4 z(I6tNlpCD^SC`}sgvM@JY7d)v^D5QU#c{0$EQz{sd>5Y_XyZ#Ejp3(lg-8Z^_hwca zL+2FRJnz!B9f|ajCFP?ejUUXbX}$2y^`br~)83S7C}IrR?~*Igxp`zS>WT{0``q(e z^1jdo!I09;8xaDjvg4@*5UE#n<9|~CT1^^SlD^+Mm{{;WSh!e2`7K>O>HNw20gF}^ zRQ26yg)h47Cx^Y1WW1F0gsxl_Y1Uc`WR-mvLx{Pi6VQ(~~cIV?S`mpAK(E@&II;{MlRz&w@+BqBq%5$T>> zW<$2Qi(AcQBlsJg;w1Ot0LYc?&K1pD##o}Rj+5v?b9CaI&MPR%%i-2ezes4>Q8JtO zWx7jer+S0qRPhH*Dg)a4y9Jk#tm|v*6HL^vcmuL+7gM>1jUT>!Xt^mKk*;G%6a)8C z0a>J^OnKJf8JvjkTwX$!*34@H+Sv>)597F2O1oY=hj~?sm8Q{lX2WSMeCMY#IFR{C zdb0-6V|R(4B3tlVx$z`7kO_a!FpUp7MepCQ-A!pu?Zu~;rIYrp&&Q{}ej3=;)u>#mG6;eCZw9Q^g7)~u z98d0R?--NxJ8nMcaGc@!cA~zpz~wk9F$eTM#sAMEPkL4TrFvO%GD{4~0B7r=8q{G% z+nJ3rEjlKeJ8=Rq+8q^&tR59%I9+PLW0)EXOZ?` z<>gQR^tk_S91CCflMQr&uQGiFmJWIk2lcD9KfRmJyebpd*ZlISo7PR(1c_AKl4rj@*^Gh}A>5PrQ(b+ziNBhy!+1&Ym6cMSCzB<5#ijKCIi*VBg z&f0+eHv{=?cg4Xc%Q2wtx<|7c-&WHMdfk&Ytzi_04!9>uLL65D97;vHoCNUANvflFMRrl$w?`;jjTZ6gF>J$4pS=cap6GVBAY3Ved9yCV5PqvYaLsf zAM|(x?+%pJE|Ul8lxb8zmLd3A=2__Or-a3j;kG*pd)2e1<((ZTBN~Q3N#gB)yXQ8% zUAswBuv#2dw$|L%x&F;5VZFD7$7$`LG8}UR!SGwZFu~ELxZe(^;kFut#NORzH4H^o zVe&huMYSQ@13<$Wyz?r)pTI2ZkV_xKJO0|2pp)#t=7K$;+Kui(<`N7K#FjO3N5mOb z>5IKAeHiB=>{=opxVv{n-LK_;O>rsWz`;X|B)06P%##T8-+vRW)v;53M$_0)g-+E( zblb+1Z8Oa>4u>GENkClTQ%(}AjwkL)2Ri!@KVcxfdr3v|SUWCa%GOJ@F}cM@dJ`;Q zKpP+eIK;6+QS7`V`kqN0hpBBh8?|Tf5*W0&1WqQxoq7)$11*tsQg@uJzRG*f<33XC zi--E1c+{9kW}Kybe>OrMbaZ!dubb93 zy0rZUv8Hvxf0Gl zxX(-dwcY6M=UOP=9UG%e9x_&D)yG~evK!+6ShyZ<_wC02ImFKdy*`f-)q=j!| zk>+6dZZFc-Gp;;u`=7}3pNZ1JqNh8YA~bk4k1TJJ+o9EFq^&Fqjy>N9OO6nrp5(W% zMu(JB1X6*|R>$(|CC;I`@XU2WJ2iW;%hcExxAZbRJCqvaZkoikalc+w^bhJA5Xh8j zbL=!v&FLgQUU`|t%Uu7Z6ce^^^r{Lptn|OY5>|$AjjMMw z1v~^?$$OW&s;c-3pKN0-Qv6jNaUa(~X1gRePYc8F33=vg^*;eZd<@6PpGGfpo3yMj z5jslg+cZ=pRkjPjDcH`M+4VG65NL|vQW8$Oz=!+oUpNX8KYc#gv;Ps_PGui|INfWt zdQ{L#^$)ChITaKYh-yMBlB5i6S#`45UvCDC6bjWD&UvB~blQ865DZOUrbIeUW$x+^ z? zvP3Gp&wWe>J-`nc%g{rmFydWR$?An6V;yOfudqScjseY2NJE9bi{5wnMo~+w4Tvnt zm|C7@!iCUQDLQmLeG#6ZE$crGn>g$p%~<3rZ%ni?E7s28$gm-(sKR|^4vq$RlQfvW z`uL}JgEMssr5gyC65`V|(xCwjDliVx2Go#*LS#6@w8I1BVqbT*v_3;-hOa}|t+EKi5?r2wr@R$|{BIK-TOdtmbCrEdoyRH() zSd{wwoEE!Y@zA$hcu_Twgl=QCKMCGYXMXeWwfCm5F6f8Es|Rn97;13e0}pq3lvh3S zT7TWyV)Pg@5C1+&McpgrjI4P0+lX2i)-%1sLL^|Nl8171Y`=K2cWhU@xKV~>kXAC^ z3G_q5VewVxjj__pafkWi$*ytaE|4ADa~ALL1PKbh5woS`S-%y+PECiJOe31YzSMgr z*=$^6DbaFk{NL@cg+1AlBL|r$UT=A<;9UXPF)No>!K1lCW7iD+lX?rY;pr3@B&7Y05Su^-n}AFVHiwCpP$gwrlPQNRsP;iRN{x>z z(QK5#)yW!uzixAN5LKBK3%73YdbynXUT9>WVv>zkuAt4(5HCEYH4bCNlF}N;`JN-1 zx=oUI^$=Hrk+6!$u<31Hd*nAfz4)e8oJgRJz{~heO9Bb2=#?@>$s$FYxwGWkn*<=% ze%x>eQw@k!N~Bdjo6scL8<=Z9d^WN)X0&xZX=FCin%4VB!^=DIB4RH z_&Wf@KG|?ujYmp-8Hw2D&7Hq;NrYqV9xmy{*c*!H_4abAeZ;nMKkC?}b^_IbT;&1gcL!lH*QghtbL_bC0&fTCi>G6$fRr8v2Ar)InFjo(Lv7Pb$&cWmWWTaC@oN}qPXU1vn}O_3 zj>E5ZN@0Jnx0nfUOK)6duq-f%6uZJRuCEXK_Eu(7IW_FPResJ?FzcKaJZ9&gVQkwa zdgS$s82o0)e^WgA>kMjA{Es=})kI+P9p^xJ9R<+b*kHquuS5Zf5FQfR6VUVe z@UFYF071$AiV9p)Yvem_8tue7SXV8IKUZtb7!dGA`A1V!joyII_1!u-?q(D(B-3g~ zM=)2-Ms!HE?(K;R_Q`D_42iQ5D1p9FCyL#l6Tj>BEj#7SsY2}*e6A`(?996 zJzpifIt-w8xdcjIe5;F<-#L+;8gy^eA``39@YweMRqBl?kKIT8$b^&AgI1PyV;dYB z=&AIN?^-0Pwgq*9A)KwDlGoP#@p%!a>&mDXm}VA2N>pRp8!ktU6V{y*^rlvfB^r^e zkth77!P$txe}E`Nff{uXI_lH{XZij{_sZ*XSKibTnDl8&p@HLvkVqw4|Id(qu~*J4 zo=yjqnIBcfMH)xgOY(DKkapM5av(wM{lF8FQYBerL2uKGeEx zQNDv~LR5-7LF#9jo)%{euz^{m$H?b4XHp(=qd#2RFUC%${vobj+U2~_b~8}FnqG^~ zzjN}t8>M)SeKgATB>09vLe}bj;7|_nL=xaf5MJ-?yz~W_{p5-8qN<|Yd;OJ)wk@+V zE32W=wB%~2!}r~ZIu<#?lXVGn^{jHHrSW&C6+1;UPWe;JBioL%-A}S+zuy^3LECPu zCVQ>`61ao>gvDEAV;xXIXdm=aE)7R71LfH|l9Wb69Y_>y2(pgJ$|BVUxZp^8L^cy20PEg;sI7vj)LU z?qb8TW?yuM#!{HlrP+(r6h-|PTpqtf%Y^-HRO$Gdq)X5VZ19+vYD#mh`8!2gq;)tz z6*n~`^v2Xn8)&%ZYN+;rY*bEt|0dHNaEbJPMR+u|65MRO$n?HYWSxhN)(16xkmb)q z@N}qqIA2{RU!uUBgy?eib_JWw8#@HoaRe zwCooTo(aC;IT^&mjv3ki`v2-5PCnug^G}2wT8td8Bw9*_w%5{A$~%G-G>Ni))m~kV zd54TS_h4J}9KlirHCnR+R$Q#kGp*HLsjD?GB86WJ=+UR8nb#QnWJajTp-#6;9ChgU zKw|#`u{hk9#_txFKEG1okF%~D->xezqLJJyuzA1=0m z`n*SkI&yNQpT^&m6NG+05=tpfTjWhaL~ttNiag#c1I2eC05az%vy9%q*f~0MazeI{eSkki`3Y4&e+TtPXNr}kM93M3k2*i3jOK`ZII`6&BuM;T zjiQ$Oq}EVgFLQ0w;a+Hd_!?gq(#F@rwM~D?GG=|Fprq&JuTdm0x^O4$6UZ?a`ZkiL zP#z%hK#mgOluIhmn*CJekvNjuSsH+5B$Emz6-EYeA9RDEZ9?c48|b6F)8?rxDOuky zT`OS$^U?l~!kE3J5wiY8r-z!!Zc+%UCjljrnhRMUJ?>{TVGj(^g znorPYh55)bzPa)J0y^oBDS{&A)xvj;xMCNZmu_QPjTf8(DnWCT^J*R5@dG2ihTQHX znR_>W>Y>`sI102>5i|sP(vQ0vI$<^x4jiUQv*osX^mZ{TUh}@*bQX6lJ6VO^qb|E+ zH}yv6^^qNR0&gl-EQ>rjoAvoFONwl+SK`uVwV0&Yrsb2{q2R zH1f}m5aYjK^m`-hHI_n_bBDh;)BjrKU6W%x8XChM<%p6B$MV}hC@nYBzgnF0H!jAs z8ToO{-F3fMC^rW_5rhQ{a%#PUm*XOg*Y61J^TbP7!(ZbtS5YrGdEv4=J6vpn4)SF-aWa`YrxDMWNN=64KVb}8^!%jdnqn2pdim-L6KFyu%S`>I zl?!uhK6NGp)W81tcBmUq8D~h~lE^mo($}z3Qg1wYt@G2p#`V0&9je2jtCYE)#wst%LBBYluj-!x9V z?TWXG9{|^}f+C(nb@2~Ljt6Gn-<{6BtmK`|5rT(-ZcDez;{WC-{`uHV^3#+&ZhF`C zMMB5&CsUYp))|?-{9ixo`z*U1uTJCk_Qk z(_KahEv-52P1l!Jd2DGOOp_RueZGavLC*q(XI)vid(i##-F~|S7CLoSQvd%ZM4w1% z5BlXHGlh>-*-7*@61NN`Bn{^0w9qbHr`jfMVE zf3&Mh_N>(aGB^(%Atk#@7sQ7)S=#FKm7~Xj1+0*fae!K{%1lqNVQUAy!yMTx!DKmX zU<^8otm;x|m`J#_7)b2&!yXpNBHRGhz4&5>+KAW^WEEI0`T^!4A147cj>^aHe%98h%nosP+y;C%sch* zRl+@hbmw5&zxlE>aF+kH<16do-`HV<4BH(!HqkokW%lQo?e~x>C$(dB$=;5?G_6-^ zwQ`zy#j`V`w$H$XRq(0GBlDeP0K$~_${TeirDOiv()kZ~M~jb6*1%S9e6|scxK zi)>QL=da$_3%9bcE_li&?xZNw%II`lj86cbFy13P6X( z*(u;~GnmU4)YVOUE+mRz;LJZf1nwLhcwTgLNVDjph=Vzv^tQ8z%QL&Ypm>~4KQQi9n<33mC_E4oo;6-s&wF^2^f~NmpRtD?)M%~S)6|FkAJ4ZzFrVo zrN1?{n*x|vrtiGj5wO~8(Mr1s&|$w&Rq{m?w>AuEHj0d3ue&#$Ij(N4aQbSy>vsBI zWEmrV7o?B8(avK7v`g)-m4N@I?M!3A#i~u&2pUacu^~y;i;uePwUM^(aP^SrSjhxSJjG*+_MmQz!NgVfTI9ZD_h`n(w&3- zsT8V*k3=>~zao>|dtq?B?WW{C0@I0; zcaQ_~)UN_oclH0Ke_0cGGjd)v;SAZ9+%^~6fl;WL_@06P)=kxpWxu8;Yxk`*x$U%7 z*H4Jl7nwvB7i!ZQ&oX&e!-j%7+h1ur!Nhd1eAe+^#!Fhub_CA81C5Yu!+OL5_>0mC zGIZ45e)mkRIC#It0Embs&S!1@ohmcDPIJZCd_JBr)sqo1yPY1%xBUh5#~Sl`y*iuT zl&aMfT(rQu=#h7KBt*kld5S=iaiu-buIYEC3MEW0-5@?Zw!C||9vg%`s2dgi>ePg~ z8j1K?52T`jFZSj~Tmrpv9nGeT0148U)B;ny-ZCrPGFO^L(znr;R?AyA?i(p7zz4JR zY|y9jwi^oY&Y{cfHW4BTG@6l~BIYhUqTF%szmwE!HGURYDeygvncF>{1*b|dKJgr1 zP#qW~XBN;sUugYX75r({zY>>-8%DhCWCPc4bWB`dZSFL=*vFhIL41!lGHt!W-$MjF zY`(}?`T^D5gZ`D^acCayM{C~CF@~Bw<~W)zBUWD92LOZG>eUbZOEuT-8x)F46gJ)e z+!j_g1J`bT@-!dKlY-9}q-7|RM36~N!?5lsNrt0)Bxj*aedlOShIiC=+q&~pZYGej z&jB5hon>Ge@tvfDZIJ6Gj(9RmNKybWd27W!Fn4Dpb{|2JA;rnq>)NlfSN<}tG{5jH zwj_^X!guaXl~#RYt!sS6Hcz#PtuG4j4$$?P@D-IFqPfjnqbv+UE!v2l`A; zf-dh*nP(f`XS!n!(U(nWa`?x9U>o?L0XJ<}x4`2o?^V-ejg)6+@1=5+)y@lYz48UQ zZ)A4bE{JM> zYO7r<(_Mmh>5`3v5ss&Ju1ISi8jC3pXGCz^33e96Y79B0F-n?lQSX!zD zo!4iD%M=teHdZMfb4_HZcCOa_DyIQh7_smp>;LHwipE=J|Y=1orIv9)M_+!FF69G7* zuod*0dTA(luPS!&mW4EGm9d<5M~{C=8!_x9+*|}Fx`RdlHwE!V4g&R2m{K|8A@7RGd&*{!Wr}%Ac)Yh(d#`rITuaPZv z4JzJ&&x%~#LRG>bkb(qu*bn?^_+^lUJgu2u@QW$+G?jNpXU!jc5y27Ku;?fm<|y8~ zx)r~P_h*4O`=8l3L=GHxQ!DP^6EsFL@er~+WYd`*stLQhgl05PV8}`1oy+E+zgB$C zv{cqZ9A${&N3sPxWPhFuf`30AR<=JvAQg8P#hS=zDzc#j=~-q@J?BZm0+5?9BBFYc zYd*mHhveClZ4)JC;^TO=q6%tv|ELwON8;n9nL1Q}L?4ILgdTwAzeG&2Zz zDWY+>U;8%0(ZDpdl4g2^7@LlQ#$@IEeM013TJMF6yU}IoO6J@1ccAs!<#_8sF2 zd<&v#ZYFq zY-iUrGGB8otSn7dMZQW@BMVkkmYE zyR{h7n-0ycFl{vI2t1HOqE43MaF`R2qMqPBVld)u^fKfA+A+j!RXvE1W=%0F7OMpXQR{PFKi%ZRVvkbJ2pUUa` z=y=m~)cpYk|BaA)iVqGe84;R0G3P_vCge2iztAP!(Ha1~0k7pE_EU(w{Y47B5Oln>f~<1E`CE}8 z!COraf*p@9haG;WLr3y}`uqfZWO}~Tq@|4G&$)o1 zB&&o)}9b5B@aq?$> zQC}{DvS#X^*eoiZo8G)Iy_UjcQV;g*4a4Vlp7DeMI5b$?+DKBwzL$S+d;X+;32)Fi z{h)otChH2bQoY6YRvumZHC^Zw@bhXE2vM?Ga*|4_=1lo8MhmbrU*SfJisfOsJoAi~ zlTcom!AxzMool$xSjx_HnMYReV9O))bT_NE1;RP!n;{bKMX+4yd~#E<{qc%v8x?R7GUtT{bTcaW(?vin*+#n$?FEpr+ z=ed9_h1J0UxU74qu?H1L$I>HhPDVV`e0)X^^#`l#%-4yrIq-4Lg=qLMdj zHl|*y!eb!e7|>7s_3M*yv4zAEE|4CdyBjR1^#jHJ;rZ_vaoAF{VxCq?|2n3Cn8iQk z+p9*8v~7ARfpNXk^JHmTg7~>qxpQpp+PV(QmRbKQ-Z*h!FOFhF=tsP;>5Vm;{-slf zxOa>`${2ORcFwu~d(Uybdh$b@O?*dMx=u6g#bFFb*~M-70HE?LVT!^WIc&Nw3QPRR z^P6f~E3ONaGy|!vS#zz>DhP_s(;jEx`Ansi-Ciy4d3lezT&!z*7@2DC=$CveWHMgz zqfnl2d`PS-P`UeKv+Tm7v4=!^mDmh`t_AH&4vnCi3w=p}I*MAguWF^ujNkI9m1Z-h zJI*D?&aj%g5VbtIR+nYV1YMSduTHe@%m<4C${VYT&7-YOL~SBD`tj(3%v}456n%wk zaHxWM9nD*XmYs4I-sZx!te*haD}atJ2xKbPMql2Zjs1GLTrIBO@tvu=m|QpWWk|WA z|Aj9_Z*X0f=70mjFb@=#+&c8G#{wR1c!ZBv-T#eOxv3ol+iE}q99;3rQJE{Er060d zQ*ELaJ<5@tY5ukPwc#%=OYU(I8t)2yh`t{CS?e47dEvA~-jY0}H(w+Qr@gB~^v{$z^NM4XO)$DNRb;Oz+*59?7 zWN&Zo9EH%g*SImyb%*ojL@!%tSXT}6N=-it-FyXqNmM>r+@kd&5X}uNk9_{R8xKUc zLdgBXRR_f#RUeu;?bZLev0*(InDHaLJ=yR?6d?XnMa@m^l&u~qjiR7>kX(I589RV` zoF{!s5n`6}JFx=9X-wv{1Z^1+3fgp?QaD-{1QUa@Pr zc!%h(yWC8*?TR4J)D1g|I=QTeCS(P{IWL}Eh^Myy5nQE|nUmZg-@)Sr= zK?Fja^u@)q*yGTsCzackLz$+!x*x;@jmJ~2#PyN|vT0m#Z0s6fsfzkc{_~(l zoRFR-?VsR^riG+Rt zRr<8JTLzu_Xy@tR6Rzo9{?>XrlHgPSkS$;AVe)K}@0Sffm|h@pcR2cSg3`e3tp%n2 zIZxL9U!+`78BrR7smS(i%@KCQtCM|>+mcU&7+|I-AqMK@-YkaSKCdnxAJ1F`PU^MY z14C_)0Bw`3j2k~tEC z!1J;&_$64!4?6SXsZT{TGQ65El{@`CLhxZKrJ!)YEEyN`Vt!gaq7`CmI7-Ik zn`?eqrZMISh)*aU(zi6AVM3`BSaVu0Kf2`m2g3wf%{U2Y-p?)Gqo2g+7^+#0y<>8e zLkLv2SPSsfj}q?E#P+LjW!RO5)oqC(<|P2X=H6R&{t9x*Ep(dc1R09-B+}-{ozD2G z0jQY(#721=cPf1K??}0T+XE{_!%stHeaq2Q5+AM}9lhWDYIya@`FSkv#fc^)m!vlw zc%GFJrMB92&TkL49~X+Rb<2PKa5{vgFdnTB0lajRLEY*jyXaGr28UAGBzGt9p zzd0rS4^_&kY9A&6@9fF)FP2q2jdaYY(s0KEAUENu{*Q0O4J!%F6IaSTPeTVe?rXxZ z)TKoxnvwS!>4NHKQ;eG67XHzmRqoroMxF}{S9Z|3_|)&`ijGNDaar2oNR+NQM&Gf# zxn`7#Tw5#7RokFeIGTLRjH_yr$(Q!g-0{vk2!pwacJH;qUbm+l4S@%mF_a(VKchE} zk}NMD^k_Vsi6Sa@c=rxNbF{q-4+p51eSKJ0v-QHRv2gD3N<4S2sBsbelkB*J!{}%1 z2DzH}21fa4rgE(%B9CCw=6BxQEvwAV7091z)ggq-BUEqcoGN!HjE%LL2f>N1R7l#{ zTD>~leCZvN)xDkkT;&~)*GKQ53CcO9>xbodP2I3A5<)txe+a$KGXa`RP>pSbD?{5C|?yu50&P|OF3nb zkyJg{f{>Brm8$i8hrA@&$;VM^9mftC*>HVy?0a=@t(wo*q--tFNL03WoPva`Jg;Ni zIEjTZj#^MEwbsx7bE!D+YM!yB%oE#qljzDooMS`IfHhi&U4rfn-Ks#x`n>W_v2TR? zRZ(YOdNm*4SiUj+ZgL-{T=tM0{lH7lvk^o}fVx2#fh>-6i%OqcrVKv@ z?NxFfji)j{c>6Uywto*-eZyD#wcwr?%$2kf+Yx$&W=;+_z@D9mBX?gg%4{BoW;1)_ z^oubJMf&Di0aI{%_N`qZurtqtV~pR{ohMGm2{@l`$4R}SpHG+X2knq( zsfy_Zg!NWu3o!=0gjsA5Q~cwMMU_cDobsWPg(ip{Z9EK5)&Sf5crNv+cwvx(pS|@# zw(^nP#j4V{^5nqL?=7*Y&Z{8M`qtOtsAHx>za6RS-ijIJz7xfw%Mf|>4kDTdS@BxM z-P&&j7)I|{-|_7$?X{8n$3vSey0#cU2`L0~m;?7(um7A<`v>IQ<=pl=B5e$7e7)vB~VGo@%am~{qJmdFRpkj&eey*3_^ZMq_261(( z65n2St=H{H17ZWMSt|{dKD=%2a>bp#^D}oX`QsDX2XL;E)q9*UE0P944>iZcf_}CH zbGviFFBS*$Mly&wsi*U7x8PGQ7Yz$eIwre|&lEYu*^|tTR;=e&Fb6YK0mBxvb

XJ-DvdH==>{czP2)?v@z@WrFz(rR=xqOb4|h>cwxY?{1| zxpU+i5P`xHp4G2k$mFnBEtXNj=JzZ{M<pyE0I81IQ=0?1p@oCw(uPiRU0ZTdWHn%L z)DdP)vI6=8oCj>oX`E^ENGf^9C-x*rh<DwWR@G#2(^*^=h+C#Z69!GZ0vIqxp33-q z%-O^{d;e>X7o*K1Tn5zXlXI`1Yih<rQlHU_On^Sq+`Y3uf01-}=k<-&F_rxjmls;j zCvCqIM`OUH30o@$87Vq;oi@D_cCTABmZ!_XND2~XuGu9d|BR2QKZh_$Hl+3&-Fx-m zRP~G$*G}&SqnZ2PLPS#j0f~y@WA8)Ni?Z`yN;}njoFWV~tB+i@E5e7CRZR9L=eirf zojUDB;UK3`_`+Sc#)ED4%nxAE9Z)Z*koCO(?fduPv%J+Trl{9r_Ieu*I*VKNdF|Cq z=JoiU;rpRGD+pQ~-Y~SggzROOe$#MC)@p#>BubKl+>&zAni2Nhevqe=ZQ;*KbeUd? zZ$VG13V<zp0)bEOLBf(x<?)w0poEUdz=b36=U~`V5;XMJ$<F&RF6arz<p&)VJ1(E6 zGPt4hn;r>lDsxOo+GjD>XAsp8bGj+?D4$W(t}XA7;QW|a8TKvVsMBvY;KWGK{eToS zh(ZWlM`j(iu@l5oVVYZQ60a=FzGo~M_(3;YQTe!U_+E-C9HQffI}I5tbW;NZDcg&O zQ<>KR6Z3uv-!_-CLG`LckAJt~kWx0TRr$=?<Hm-xVkXd)hCF(IHZr}MfRxCNQ%Sap zyeFEuC+~12No}Elr*nxYk_)!YN>3`s#G)FE^R(vfo>zEvNNtk7@D0y?@4FVu-Hh?; z<8obiLGX$h#x0ca*Ee}?_rLebEMAt6kN;<m8;i3-G~CPEZQ`YVHfvdFguR9<wdwP6 z4r&AyB^%?)B$nO&ozrL8**l<eflV;o$342#xN0BGKJ-rAUj0y5cRBri%8C9fC$d!p zSH0`HD5{zu;Pi-LONe^ak(Z6C`bM<aNX&xw>mFvkW}&e6H5j~Y)b})pYG57WptC|2 z5n2V$9N8McMJ$M5ME~rSp0>3S_C66sCs3xk!Aax~ExgVUzPobv9IUZBa%{03bfP1{ zO2mpG9)78|NLlFMU93=TSF3O2o+5o^GtKgy+MA(724Qw3;>z!7d#S+gN_}Z7vvmKV z%k047XaehTWxQGMUk}i`<TDz10YjKRk7@x)OFVpSWbPy=t=|2~v`SzMF^I<OUGS@^ zcXt*is!SFwqhsG^NsGg`?oOTjYQNaGXlA&}tsLs${F|}uQqhU)yUzWZu&!^K3R*-> zpkq2F+*gI5+8Z_p^Qr3M=I?QuFD(wOMEp>7p5LJj;rn>PeE0B{_VIQL*p>ZZ+4Lue za~eoP>8{(u4sYPOCu7g&f@$A1CqCa4yYw|&TZqKo;}Cj_hjDQP*M@I>2zL+No2+ie zZqcw19gyF2i8b3dmL*B0ZM_D{GqS=$$qqrq4ZQno4jH1Sevge4%q9Jnpu=}b9>wS| z>u$OZ!3g(@|1T_i7hTc3tvCETCZZoRCDCc1E9aN3SJBtPVv+Biy85O9ajQ^KO`~C3 zac+nw171Z)G#vNT<DZlhq{`D!Wrk<u%zE%iRN2s%arW+p0Arq8s2^zsoV)9F#4K*= zOGZyWvA=O;6Q8fy^2r!IdNx{yDuV%`Knq#UE|lWL@b!wQ$hu#UX-3U+Yt|&PNk6Gr z1-n^vS(dhZ|A#YgE}3j7@C|d*!6==hlq9+|d~6ahm`roHhCyj7om_w7zYYnQr?e$h z$33Z4y?DGKS@)b(Saj(y#Tq5mJL-j;EaJSGm|Q|?B)dvUWYc4JC-H?SjA(FOk7V?j zI3fcqhV=?6X_0}#RUx9;HRNWTY1T=yLk&*<mxm6>x$HL*0J<<vg<<+m>9s~Sd`v%T zOSq2W#&l}zVzV_7>LO?oHFt%?^ry(VSF36+xvK~vBj8(x?wp}-7Z#Y|c}1KB0n2qu z$occ<C<;w8*wDAPo*4{b2hWsd>jd8wMmN{^z)~}nH>J2}EtGdmZAe_P7n2`cON+@7 zT#0a!KP3jha~DG(^!{RIg0tD3fIn>HH6QlA+%d=Qh1KIk-#(#OZ|-`YLb=O-VbeYQ z>&;Ii938p`030lIh_f0keR5qw++Ixw4<WX|E?h}M-(lt9nfgf~^r<ie>NOK>ab$?N z!l;jU{e5^$ySiRTqIron+wY+ImQB5AQir9d#rD@J<eqNPu@MovG5^-PYn$7W7ke)Y z<rkv1mm+E>do1qU-dTd=d}RLK&fU>yN6AAvdZ-301XDlt-gv{2KzSG7CnMkKm)7oz z3o*P!P13uMMQYm94xjfO4SqS=+%b+6ufsbY$-h8US)ZCASBy`4s>6v^>ReYuaVA4L zgUO8QX2F|9l2@LlvLI3H@KR`aG-e1%`9<QZZLx=<%%K9fqY#)S>atn+irHK=af?jZ zulZ_>VqWnExw;4iOsTaw7iH{&{*;ZmqJ%9|RMhy=FIj%|EkQ;*@OJ6af9;Ql@t5QN zY@Pb>{3qUuk_xH1^pJ11S!amg4=%FY5=Kr;Q=}z|)i%Qj%1XYWM-un<o;<`04z_KM zV_(0$b#sXhU_ZDn{dlNQV8=e`+u0(HY*`Q5tfZ+w?6T(qLBkD&Xmh^;&e7!?+-wha zJ8px<164Nyz5soH?QrUSSA0XHyt98p7LZ~WR9VmyPP_Q-+(5qSly?Ic6ic5HxuVXr z&e-X5I-+Pln$47y&|0U#1Z5{$|8V((qrWbmw;-IoQ8EOZn9oG!o34)?trj_URKGEY zK<FW^uD+Y8Lf8KceRb&iBe6=47ynJCYT3ir%P8c2ca&^MAGrj`U2PXEPx;0vr1e^Z z1@(BYT|J``?-wie1_10gWTU`26Pw`l$;(Q?hlTESbp+hC%sZ9g1#pxz%p&Tp>Ps}^ zbs5alu>5#a=6QAR@IcP{ENJ2lALdK|4qmQ-?J?0UVrPV&5$|}ykbx(n41;wI8*d(p zx^{FN?78e?h88-U0aQBK>EN5ai>fONluf6CVR<-(j}}Fg{7Ji9Fjga(`Bup9o=?R$ z4VOMEE@X#^Q!cqSa&{)mJ{AKH38Hb;p7q`x`(8V2uS&Y*(pqgg8-F6dxS=<mS07T` z4vYIl?w+|)f6+4Lxl(<tt-%_0dza!#U2)URa4(*;Eza~;=p-iAe`3y(u%1!Qf2pon zrX6n-<k9K*W9kHK3G}XS`9@4<YLo}sf;y~tj?X@2en6|6pxlxA3@N)>Pn?wIm(s84 z%a0ybbls^Oh3}xzHOyi3)4;6kCdmSy-TLXrwL1jS@>SH;fy*S<ts$k}r%*My09#tQ zH^vhDJ;7l5*Y~8@h9oGX-#cC$;5gK`(MQja8r1P2upV0?hA<JOr8?_d*y>{a2cIUd z>xOJo{CHv&5~s{(5bT#LDP?)}7x06kUUj7Mllnb?fBQn%dB=m2Rj9C7nIye)8YiH8 zP9@wds{-eGfgZ5U3VJLf;NzZ^l|?T@2~-ciU9#!g`{+~rO)PBWl4o@hkNCQ$R!5O@ z5W)W<f=aW#L$h20K|l55yJ53|8~B0H4131w5V6d&lVI}V)Seqy60fMq5Mht^V7=Nz zZs4bFwu>JCQ`tXki5HhxyBAS`*%2q}LE`6IK>J56A9LWgqAQA@D(|m|-MDXHlioM^ zratSk&Vm{!P`tH0KE`ktqy%=79k!esT1SN78tuvdDgsz&E2JoeLVL$<6g#e9Jz?4^ zOGyS9^s_zIy1IT9kM+9qHy0^jHrs~#ncLfPk%OK*2;!>wy57$@sLKi!4njU5wQ>9l ziTAsJW^UOT5JCVwsd@&FA16?cw0;x_$z7Vg5D++ZPj|KnY|A(nOn!{S>?S8PZP=1^ z<cbg6Uytb{vZ0$;#BmWk)s7BfJ^#JqSZi1oy1FxPtWIN27;t=yq7yCn;tV@0h+Dy} zL)N69F_v0KBTi8-wtP=N<JJ!^wzvv18O&#@U5|;QSL_{i9^5RhX3IPi?Uz1sds%#a z*3gG{L1^sy)#bC<WS!O47GNn?X^RfoGwHlcZ5WMWQq*J1XN`0?&{cksr+rCD%6pw~ zeKx`^t_;h!`s<kdw@N^UOJ0=ovMZP1O7{0CpAl_o8=1{w)0M#pDL*}a7_@z{Gje_H zmHwhc`1kHd2SLXzQ9%duxy1KAlG6@)mYPqI9j%rYvWpzbF@Q@UkE}scKahR<^otsF zkF8;7rgzGb_*|?)r%=4b3|j^TiH_3R9*nL>)ADq&-Wn&J5lB&Fdnyh6@aa2_wX|i) zPiX(09jk$&NC@$1=)tu!iAdHJ{YzwbKuU;!X)eh{=b|v?^qd&AbAiMV@My&#M{^hv zhvEC|>OhKC1-Z8*@P@r-$B(`7G#*xd^Aq8;(f4##>~S^n(PW<T&SrWO`3OzOB>h%j z*uqw}ahNH3+4qBRUT0@Tq!e|0q|Q<PO^njecQpitCw0W^Za>~C{Nk@wcnk>u2qv-v z$PUGo`J*e6q&%W*sAxUvm~tPz2bt|k|KQUe5u3xA!<zQgk6d<sNSb(NF^xOs&Y5Qk zkQ=}+?JJ%%IC(iN<O7?(7>z*gxs7DL=Vi%t0$NJn=u~d&ms@Pq=f5cz>PD=r@Ol_V zUoV^#sr6V1zG7qWd|N#9nCYi4*2v=n&$hF$LC8H2UCxCEI5}{6RItioPhV{r*qdqA zKui3|<{8PwE~aPM^LO0kDR$L&ONwpX4f*j3o#XzAhcK*AvQD!a6Xl!I&55osPz?^I zKB~VEq6;aPn%ZABUTSEETYdb1<A5G-Tsy}Z?`xq_P~QpBL1b@?2fU3r8z5V7Dcg+B z^6!U|avg$L9nH};8=IP*bZe(Z`B*tlgvdCvQ)4mpqp&}O*Wmi!xE5=|MeD_!yqOkl zy9JgUfgE>-1*E~uN;6mwQS6m@HCN0FT0SPYI8A5IviyA~_mRcS9D$RYTg^VZYqSw> ziuJCxcbV5=eEF&JiOd|u1>wS9o9v9_*`F8q(?<A>=2e=u4cvsEcIhX({aL6Irr-BV zl3RFq__)$JHsXXLquh&wd+{=l$JXRyjtyts2g5WowE=VJ2OY4Z^J=3Lw3z+ng*Z^J zJn2?FaCg!@Sf!2LIE&E9x*<tet{E|v!Sog`)BE&(-kCiUe;d-%Sl^OZ(63y+S7W<% zneWR-`~3TOdWkeStAI%EeTcsDd(Ij){Ta7!XCu``e(!m&%c)21j}M$Dkw4tUXOwI_ z2@9AEGsA&FTao924{Ab;(!(mAJ-8_S2nToSA*`Np5x$2=*6cnLu&CZbbU8l^vRr|t z8F&So<(cKTS|ht^Z2j6mY`dSHo)rhw(duP<M<B3oUDN%$wMSdV6r+n~o(=$Tb%ZH5 z-y|((gUhznnXFr_bIo<-?p?`Woh;dd>o4U;94{UHF}acrTWliJcy#u+OqRE=<wUch zEB~0R{K)`^mRn>neRNz^G2EZb%aW`GgEe<&ca%(AGP7oB^0MsRH=@kngpN&ro{TUU zsZIL`s;_YGRag!y5-#*@o@<Vh`yoF~?PPYO@%@KyL{CHH3pWu=*Pokjw|51`vO7hf z?w|&lGj^dzcxbV&Vh?F_I8*6lxN9)F{0>Yg_puN&?j`e!N`WVN{@$|MZ6{*c^kIpQ z!AEkWQv|9s(c^LAYNXc?chdK%+T2;vlt6r&CxAPBe)nFYjxYItpd~_)a;7VCj%Y1@ z2_G)VS!5)^4twu91Img#Tg;7>u2m?qwqkge4WykTC6X<jW@tq|yvL#Ajimw#(1{Cj z+;hyd%lxhR+$f$0=EEMR0e%%ot*axHs#5#JpbDhw+WB(%?$ytG0vic0^LEs4)*%+G z0y@Ik)S_`(k4o^<&G`*ZRVP?$ty#1dP$jEoB}xIK-yrA-CvOtueT$TWN6`UGw<58& zb2}LtuYBdce$CEr4>#%x$A+dO1V0^Y`LOaZmU_XwZ1MjVXLwoQAN5%`(vK_(8oG0< z3s1<1KDTa@M8=E>1nD~?_81_<oavnfY2At2BUHUEvHfJ8N~Tiq&J8CRBX{zA<n@^@ zx2JB<ebV{-f5Vm6buv+X)4K9zApdA0=2WS=a$`!)v~8!}Bx|tj)%dlw2&{h41GI8~ z{rkT{_66?_S*VARIIi1|0#RH6+z~kGk1n7k!-u=JcN5qTeZCaRcCI@UA&yj)BmP#M z|K2AwY?ShHyRwndM2JYgFO#J2sI-15L0W`}!;2LzeGc-^H#Df{>0}VwG9W_qU(!P1 zYbqe2$0)Syx8>D_>*oDv6igkrKJ;CRSyu{LuN2u5C~TxZdSs8k=ZJ_5=>MluOZR0k zp7o&hHDj~-KTY|O;_DMgv;;K-%LI`M*Uw(Lr3}w&Y}~g0_cbDory6IrJJi;1fgWz( zXOdcfeK=Bjf&V7_Rr6I74LiESr?u;;+{xV-{380FPGYp6>)`kU-zWZ^YRm+ilcXi7 zs#hL^2<!m4{NZ7KM+X>pDAXwA*#{#bB1&WrUEf}eG-e$??+ruXV+HZNLhp(~qHSY^ zr2!<2Fd_d8V~anqX#Q<zMAT0ET!E@Z0!TRm5>u5Q`t<)?9A8NcR}SdU1rUxUhfoV! z<B4hW{c-seOY6icn~hh4lVmV0{=;bg7sCKJ`*Q#Jq4(*GIHAiQJe=s?JVbnr08&;~ zQ4RJ7%A+Zje#JZ-@ZwI=jTN^JyFKEyIvkCcrP@938?Wax!B=kr*bb!~uOm8rfa|fS zL@KS7<ioq10rfqfCzpP+-J7Ia)ne=5yT1S5ei~>fb;9Zb3gw9?<<S8^nPRC0B!w5V zPGV;+3YH#wJ@j<JNoFt{KM}uJ6T6tsJv?tR+elKQ4|4NUmGLcm>v0qm|9kq7=m9&D zfG^|+EcTH9@+a-SIMznN1eV4X>m;1dEB-uqgHOwW(ubCn^9!Px{@bwpzJqWUZ|uO| zrz<2@T{Ny7;^{3AqN%TiRKs`=mSVdX!nN1L0bc+)>>kS$4F4-d$wt8KGG}Vly5;JS zT+^8=58_UUsA1wxx#fE|R1I>wfBp9SI7%Cbw*l#!=Q2Y4lKI|&lF=f*c3Zk->o!8C zB6=<D_58xa^KVL@__wv3LSTWE^Y|kZvAO06T57V&k$p5ci5pK@xj~}0pbDO3XC-!P z__@`(&+V%Id7+pIc7?srnEGYCf$k}`AqdcUzcO(xG&HG>-z1uUgD%>tdf2dM@3^OU z6sa)T(9*c)jT092%XLU)0nc^fu*3FY2t$vYK`V^9gE_sZ0VK9vocJEeSg}-kKk<Lr zXQZGTa!&3f5a_8v9C?vTjKGbtpZBKYLf6)=?%)?DMJ$(lPjRY}-^Lyb<%1-~rJpS8 z<r1*gGcUaUKswW30fN*<S2sW~uDwBE&=a6^<71De7e#v>{KiuQXh@Vw20VLz@6o6i zJG^lD?z8TKB~UK-BhSI1vKTF$$iYN-_S7WoTF||)8{-rJ$5XjrgnxRpK&vY(!zM8N z6Ux-f&S;@KP~4mF0&!;MR4wI1jFz?Tb9@;|9={n#|93C~_Xe8q2f_aiDlUAL?Z09A zm-O}D`2YODeu}|uuHHuIhkM1P5XXPRPTVeeeBAKp55dnPdk3!~qt#pZp{r@6QLknf G_5T34fc^sj literal 0 HcmV?d00001 diff --git a/bsp/nrf5x/docs/nRF5x系列BSP制作教程.md b/bsp/nrf5x/docs/nRF5x系列BSP制作教程.md index e69de29bb2..761db1bde9 100644 --- a/bsp/nrf5x/docs/nRF5x系列BSP制作教程.md +++ b/bsp/nrf5x/docs/nRF5x系列BSP制作教程.md @@ -0,0 +1,92 @@ +# Nordic 系列 BSP 制作教程 + +为了让广大开发者更好、更方便地使用 BSP 进行开发,重新整理了现有的 Nordic 系列的 BSP,推出了新的 BSP 框架。新的 BSP 框架在易用性、移植便利性、驱动完整性、代码规范性等方面都有较大提升,在新的 BSP 框架下进行开发,可以大大提高应用的开发效率。 + +这边参考了官方stm32的相关制作流程,熟悉STM32的可以参考[STM32](https://github.com/RT-Thread/rt-thread/blob/master/bsp/stm32/docs/STM32%E7%B3%BB%E5%88%97BSP%E5%88%B6%E4%BD%9C%E6%95%99%E7%A8%8B.md) + +## 1. 知识准备 + +制作一个 BSP 的过程就是构建一个新系统的过程,因此想要制作出好用的 BSP,要对 RT-Thread 系统的构建过程有一定了解,需要的知识准备如下所示: + +- 掌握 Nordic系列 BSP 的使用方法 + + 了解 BSP 的使用方法,可以阅读 [Nordic 说明文档](../README.md) 中使用教程表格内的文档。 + +- 了解 scons 工程构建方法 + + RT-Thread 使用 scons 作为系统的构建工具,因此了解 scons 的常用命令对制作新 BSP 是基本要求。 + +- 了解设备驱动框架 + + 在 RT-Thread 系统中,应用程序通过设备驱动框架来操作硬件,因此了解设备驱动框架,对添加 BSP 驱动是很重要的。 + +- 了解 kconfig 语法 + + RT-Thread 系统通过 menuconfig 的方式进行配置,而 menuconfig 中的选项是由 kconfig 文件决定的,因此想要对 RT-Thread 系统进行配置,需要对 kconfig 语法有一定了解。 + + +## BSP 制作方法 + +本节以制作microbit添加 BSP。在接下来的章节中将会详细介绍具体步骤,帮助开发者快速创建所需要的 BSP。 + +### 复制通用模板 +制作新 BSP 的第一步是复制一份同系列的 BSP 模板作为基础,通过对 BSP 模板的修改来获得新 BSP。目前提供的 BSP 模板系列如下表所示: + +| 工程模板 | 说明 | +| ------- | ---- | +| libraries/templates/nrfx | nrfx系列 BSP 模板 | + +### 修改芯片类型 + +打开board/Kconfig找到SOC_NRF52840 + +SOC_NRF52840 要改成你对应的芯片类型,例如SOC_NRF51822 这个时候要确认[nrfx](https://github.com/xckhmf/nrfx)软件包中的SConscript中有对应的配置选项,没用的话,可以pr到对应的软件包 + +``` +elif GetDepend('SOC_NRF51822') == True: + define += ['NRF51822_XXAA'] + src += ['./mdk/system_nrf51.c'] + + if rtconfig.PLATFORM == 'armcc': + src += ['./mdk/arm_startup_nrf51.s'] + + if rtconfig.PLATFORM == 'gcc': + src += ['./mdk/gcc_startup_nrf51.S'] + + if rtconfig.PLATFORM == 'iar': + D_SRC += ['./mdk/iar_startup_nrf51.s'] +``` + +### 修改templete.uvprojx模板 + +修改template.uvprojx中的soc和jlink等配置选项,这个可以参考官方SDK sample的keil配置 + +这边如果要配置jlink的话,要注意flash download算法是否需要修改。 + +### 检查rtconfig.py + +检查rtconfig.py中的CPU类型,nrf52是`cortex-m4` 如果是nrf51需要改成`cortex-m0` + +### 修改menuconfig中的相关配置 + +menuconfig中修改RAM size大小。并且修改link.sct文件,这个可以参考官方sample + +![image-20210403182242202](images/image-20210403182242202.png) + +配置UART0相关的的引脚配置, 选中对应的UART0 TX RX引脚 + +![image-20210403182031505](images/image-20210403182031505.png) + +最后调试`scons --target=mdk5` + +### 修改整理readme.md + +修改readme.md, 将你的开发板常用的链接信息整理到readme.md中 + + + +## FAQ: + +1. 编译keil遇到 `No section matches selector - no section to be FIRST` + +这个因为package里面的nrfx中的Sconscript未添加好对应的芯片,没有加载arm_startup_nrf51.s等文件导致 \ No newline at end of file diff --git a/bsp/nrf5x/libraries/templates/nrfx/.config b/bsp/nrf5x/libraries/templates/nrfx/.config new file mode 100644 index 0000000000..33a4d2c017 --- /dev/null +++ b/bsp/nrf5x/libraries/templates/nrfx/.config @@ -0,0 +1,540 @@ +# +# Automatically generated file; DO NOT EDIT. +# RT-Thread Configuration +# + +# +# RT-Thread Kernel +# +CONFIG_RT_NAME_MAX=8 +# CONFIG_RT_USING_ARCH_DATA_TYPE is not set +# CONFIG_RT_USING_SMP is not set +CONFIG_RT_ALIGN_SIZE=4 +# CONFIG_RT_THREAD_PRIORITY_8 is not set +CONFIG_RT_THREAD_PRIORITY_32=y +# CONFIG_RT_THREAD_PRIORITY_256 is not set +CONFIG_RT_THREAD_PRIORITY_MAX=32 +CONFIG_RT_TICK_PER_SECOND=100 +CONFIG_RT_USING_OVERFLOW_CHECK=y +CONFIG_RT_USING_HOOK=y +CONFIG_RT_USING_IDLE_HOOK=y +CONFIG_RT_IDLE_HOOK_LIST_SIZE=4 +CONFIG_IDLE_THREAD_STACK_SIZE=256 +CONFIG_RT_USING_TIMER_SOFT=y +CONFIG_RT_TIMER_THREAD_PRIO=4 +CONFIG_RT_TIMER_THREAD_STACK_SIZE=512 +# CONFIG_RT_KSERVICE_USING_STDLIB is not set +CONFIG_RT_DEBUG=y +# CONFIG_RT_DEBUG_COLOR is not set +# CONFIG_RT_DEBUG_INIT_CONFIG is not set +# CONFIG_RT_DEBUG_THREAD_CONFIG is not set +# CONFIG_RT_DEBUG_SCHEDULER_CONFIG is not set +# CONFIG_RT_DEBUG_IPC_CONFIG is not set +# CONFIG_RT_DEBUG_TIMER_CONFIG is not set +# CONFIG_RT_DEBUG_IRQ_CONFIG is not set +# CONFIG_RT_DEBUG_MEM_CONFIG is not set +# CONFIG_RT_DEBUG_SLAB_CONFIG is not set +# CONFIG_RT_DEBUG_MEMHEAP_CONFIG is not set +# CONFIG_RT_DEBUG_MODULE_CONFIG is not set + +# +# Inter-Thread communication +# +CONFIG_RT_USING_SEMAPHORE=y +CONFIG_RT_USING_MUTEX=y +CONFIG_RT_USING_EVENT=y +CONFIG_RT_USING_MAILBOX=y +CONFIG_RT_USING_MESSAGEQUEUE=y +# CONFIG_RT_USING_SIGNALS is not set + +# +# Memory Management +# +CONFIG_RT_USING_MEMPOOL=y +# CONFIG_RT_USING_MEMHEAP is not set +# CONFIG_RT_USING_NOHEAP is not set +CONFIG_RT_USING_SMALL_MEM=y +# CONFIG_RT_USING_SLAB is not set +# CONFIG_RT_USING_USERHEAP is not set +# CONFIG_RT_USING_MEMTRACE is not set +CONFIG_RT_USING_HEAP=y + +# +# Kernel Device Object +# +CONFIG_RT_USING_DEVICE=y +# CONFIG_RT_USING_DEVICE_OPS is not set +# CONFIG_RT_USING_INTERRUPT_INFO is not set +CONFIG_RT_USING_CONSOLE=y +CONFIG_RT_CONSOLEBUF_SIZE=128 +CONFIG_RT_CONSOLE_DEVICE_NAME="uart0" +CONFIG_RT_VER_NUM=0x40003 +# CONFIG_RT_USING_CPU_FFS is not set +# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set + +# +# RT-Thread Components +# +CONFIG_RT_USING_COMPONENTS_INIT=y +CONFIG_RT_USING_USER_MAIN=y +CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048 +CONFIG_RT_MAIN_THREAD_PRIORITY=10 + +# +# C++ features +# +# CONFIG_RT_USING_CPLUSPLUS is not set + +# +# Command shell +# +CONFIG_RT_USING_FINSH=y +CONFIG_FINSH_THREAD_NAME="tshell" +CONFIG_FINSH_USING_HISTORY=y +CONFIG_FINSH_HISTORY_LINES=5 +CONFIG_FINSH_USING_SYMTAB=y +CONFIG_FINSH_USING_DESCRIPTION=y +# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set +CONFIG_FINSH_THREAD_PRIORITY=20 +CONFIG_FINSH_THREAD_STACK_SIZE=4096 +CONFIG_FINSH_CMD_SIZE=80 +# CONFIG_FINSH_USING_AUTH is not set +CONFIG_FINSH_USING_MSH=y +CONFIG_FINSH_USING_MSH_DEFAULT=y +CONFIG_FINSH_USING_MSH_ONLY=y +CONFIG_FINSH_ARG_MAX=10 + +# +# Device virtual file system +# +# CONFIG_RT_USING_DFS is not set + +# +# Device Drivers +# +CONFIG_RT_USING_DEVICE_IPC=y +CONFIG_RT_PIPE_BUFSZ=512 +# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set +CONFIG_RT_USING_SERIAL=y +# CONFIG_RT_SERIAL_USING_DMA is not set +CONFIG_RT_SERIAL_RB_BUFSZ=64 +# CONFIG_RT_USING_CAN is not set +# CONFIG_RT_USING_HWTIMER is not set +# CONFIG_RT_USING_CPUTIME is not set +# CONFIG_RT_USING_I2C is not set +# CONFIG_RT_USING_PHY is not set +CONFIG_RT_USING_PIN=y +# CONFIG_RT_USING_ADC is not set +# CONFIG_RT_USING_DAC is not set +# CONFIG_RT_USING_PWM is not set +# CONFIG_RT_USING_MTD_NOR is not set +# CONFIG_RT_USING_MTD_NAND is not set +# CONFIG_RT_USING_PM is not set +# CONFIG_RT_USING_RTC is not set +# CONFIG_RT_USING_SDIO is not set +# CONFIG_RT_USING_SPI is not set +# CONFIG_RT_USING_WDT is not set +# CONFIG_RT_USING_AUDIO is not set +# CONFIG_RT_USING_SENSOR is not set +# CONFIG_RT_USING_TOUCH is not set +# CONFIG_RT_USING_HWCRYPTO is not set +# CONFIG_RT_USING_PULSE_ENCODER is not set +# CONFIG_RT_USING_INPUT_CAPTURE is not set +# CONFIG_RT_USING_WIFI is not set + +# +# Using USB +# +# CONFIG_RT_USING_USB_HOST is not set +# CONFIG_RT_USING_USB_DEVICE is not set + +# +# POSIX layer and C standard library +# +# CONFIG_RT_USING_LIBC is not set +# CONFIG_RT_USING_PTHREADS is not set +# CONFIG_RT_LIBC_USING_TIME is not set + +# +# Network +# + +# +# Socket abstraction layer +# +# CONFIG_RT_USING_SAL is not set + +# +# Network interface device +# +# CONFIG_RT_USING_NETDEV is not set + +# +# light weight TCP/IP stack +# +# CONFIG_RT_USING_LWIP is not set + +# +# AT commands +# +# CONFIG_RT_USING_AT is not set + +# +# VBUS(Virtual Software BUS) +# +# CONFIG_RT_USING_VBUS is not set + +# +# Utilities +# +# CONFIG_RT_USING_RYM is not set +# CONFIG_RT_USING_ULOG is not set +# CONFIG_RT_USING_UTEST is not set + +# +# RT-Thread online packages +# + +# +# IoT - internet of things +# +# CONFIG_PKG_USING_LORAWAN_DRIVER is not set +# CONFIG_PKG_USING_PAHOMQTT is not set +# CONFIG_PKG_USING_UMQTT is not set +# CONFIG_PKG_USING_WEBCLIENT is not set +# CONFIG_PKG_USING_WEBNET is not set +# CONFIG_PKG_USING_MONGOOSE is not set +# CONFIG_PKG_USING_MYMQTT is not set +# CONFIG_PKG_USING_KAWAII_MQTT is not set +# CONFIG_PKG_USING_BC28_MQTT is not set +# CONFIG_PKG_USING_WEBTERMINAL is not set +# CONFIG_PKG_USING_CJSON is not set +# CONFIG_PKG_USING_JSMN is not set +# CONFIG_PKG_USING_LIBMODBUS is not set +# CONFIG_PKG_USING_FREEMODBUS is not set +# CONFIG_PKG_USING_LJSON is not set +# CONFIG_PKG_USING_EZXML is not set +# CONFIG_PKG_USING_NANOPB is not set + +# +# Wi-Fi +# + +# +# Marvell WiFi +# +# CONFIG_PKG_USING_WLANMARVELL is not set + +# +# Wiced WiFi +# +# CONFIG_PKG_USING_WLAN_WICED is not set +# CONFIG_PKG_USING_RW007 is not set +# CONFIG_PKG_USING_COAP is not set +# CONFIG_PKG_USING_NOPOLL is not set +# CONFIG_PKG_USING_NETUTILS is not set +# CONFIG_PKG_USING_CMUX is not set +# CONFIG_PKG_USING_PPP_DEVICE is not set +# CONFIG_PKG_USING_AT_DEVICE is not set +# CONFIG_PKG_USING_ATSRV_SOCKET is not set +# CONFIG_PKG_USING_WIZNET is not set + +# +# IoT Cloud +# +# CONFIG_PKG_USING_ONENET is not set +# CONFIG_PKG_USING_GAGENT_CLOUD is not set +# CONFIG_PKG_USING_ALI_IOTKIT is not set +# CONFIG_PKG_USING_AZURE is not set +# CONFIG_PKG_USING_TENCENT_IOT_EXPLORER is not set +# CONFIG_PKG_USING_JIOT-C-SDK is not set +# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set +# CONFIG_PKG_USING_JOYLINK is not set +# CONFIG_PKG_USING_NIMBLE is not set +# CONFIG_PKG_USING_OTA_DOWNLOADER is not set +# CONFIG_PKG_USING_IPMSG is not set +# CONFIG_PKG_USING_LSSDP is not set +# CONFIG_PKG_USING_AIRKISS_OPEN is not set +# CONFIG_PKG_USING_LIBRWS is not set +# CONFIG_PKG_USING_TCPSERVER is not set +# CONFIG_PKG_USING_PROTOBUF_C is not set +# CONFIG_PKG_USING_DLT645 is not set +# CONFIG_PKG_USING_QXWZ is not set +# CONFIG_PKG_USING_SMTP_CLIENT is not set +# CONFIG_PKG_USING_ABUP_FOTA is not set +# CONFIG_PKG_USING_LIBCURL2RTT is not set +# CONFIG_PKG_USING_CAPNP is not set +# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set +# CONFIG_PKG_USING_AGILE_TELNET is not set +# CONFIG_PKG_USING_NMEALIB is not set +# CONFIG_PKG_USING_AGILE_JSMN is not set +# CONFIG_PKG_USING_PDULIB is not set +# CONFIG_PKG_USING_BTSTACK is not set +# CONFIG_PKG_USING_LORAWAN_ED_STACK is not set +# CONFIG_PKG_USING_WAYZ_IOTKIT is not set +# CONFIG_PKG_USING_MAVLINK is not set +# CONFIG_PKG_USING_RAPIDJSON is not set + +# +# security packages +# +# CONFIG_PKG_USING_MBEDTLS is not set +# CONFIG_PKG_USING_libsodium is not set +# CONFIG_PKG_USING_TINYCRYPT is not set +# CONFIG_PKG_USING_TFM is not set +# CONFIG_PKG_USING_YD_CRYPTO is not set + +# +# language packages +# +# CONFIG_PKG_USING_LUA is not set +# CONFIG_PKG_USING_JERRYSCRIPT is not set +# CONFIG_PKG_USING_MICROPYTHON is not set + +# +# multimedia packages +# +# CONFIG_PKG_USING_OPENMV is not set +# CONFIG_PKG_USING_MUPDF is not set +# CONFIG_PKG_USING_STEMWIN is not set +# CONFIG_PKG_USING_WAVPLAYER is not set +# CONFIG_PKG_USING_TJPGD is not set +# CONFIG_PKG_USING_HELIX is not set +# CONFIG_PKG_USING_AZUREGUIX is not set +# CONFIG_PKG_USING_TOUCHGFX2RTT is not set + +# +# tools packages +# +# CONFIG_PKG_USING_CMBACKTRACE is not set +# CONFIG_PKG_USING_EASYFLASH is not set +# CONFIG_PKG_USING_EASYLOGGER is not set +# CONFIG_PKG_USING_SYSTEMVIEW is not set +# CONFIG_PKG_USING_RDB is not set +# CONFIG_PKG_USING_QRCODE is not set +# CONFIG_PKG_USING_ULOG_EASYFLASH is not set +# CONFIG_PKG_USING_ULOG_FILE is not set +# CONFIG_PKG_USING_LOGMGR is not set +# CONFIG_PKG_USING_ADBD is not set +# CONFIG_PKG_USING_COREMARK is not set +# CONFIG_PKG_USING_DHRYSTONE is not set +# CONFIG_PKG_USING_MEMORYPERF is not set +# CONFIG_PKG_USING_NR_MICRO_SHELL is not set +# CONFIG_PKG_USING_CHINESE_FONT_LIBRARY is not set +# CONFIG_PKG_USING_LUNAR_CALENDAR is not set +# CONFIG_PKG_USING_BS8116A is not set +# CONFIG_PKG_USING_GPS_RMC is not set +# CONFIG_PKG_USING_URLENCODE is not set +# CONFIG_PKG_USING_UMCN is not set +# CONFIG_PKG_USING_LWRB2RTT is not set +# CONFIG_PKG_USING_CPU_USAGE is not set +# CONFIG_PKG_USING_GBK2UTF8 is not set +# CONFIG_PKG_USING_VCONSOLE is not set +# CONFIG_PKG_USING_KDB is not set +# CONFIG_PKG_USING_WAMR is not set +# CONFIG_PKG_USING_MICRO_XRCE_DDS_CLIENT is not set +# CONFIG_PKG_USING_LWLOG is not set +# CONFIG_PKG_USING_ANV_TRACE is not set +# CONFIG_PKG_USING_ANV_MEMLEAK is not set +# CONFIG_PKG_USING_ANV_TESTSUIT is not set +# CONFIG_PKG_USING_ANV_BENCH is not set + +# +# system packages +# +# CONFIG_PKG_USING_GUIENGINE is not set +# CONFIG_PKG_USING_CAIRO is not set +# CONFIG_PKG_USING_PIXMAN is not set +# CONFIG_PKG_USING_LWEXT4 is not set +# CONFIG_PKG_USING_PARTITION is not set +# CONFIG_PKG_USING_FAL is not set +# CONFIG_PKG_USING_FLASHDB is not set +# CONFIG_PKG_USING_SQLITE is not set +# CONFIG_PKG_USING_RTI is not set +# CONFIG_PKG_USING_LITTLEVGL2RTT is not set +# CONFIG_PKG_USING_CMSIS is not set +# CONFIG_PKG_USING_DFS_YAFFS is not set +# CONFIG_PKG_USING_LITTLEFS is not set +# CONFIG_PKG_USING_THREAD_POOL is not set +# CONFIG_PKG_USING_ROBOTS is not set +# CONFIG_PKG_USING_EV is not set +# CONFIG_PKG_USING_SYSWATCH is not set +# CONFIG_PKG_USING_SYS_LOAD_MONITOR is not set +# CONFIG_PKG_USING_PLCCORE is not set +# CONFIG_PKG_USING_RAMDISK is not set +# CONFIG_PKG_USING_MININI is not set +# CONFIG_PKG_USING_QBOOT is not set + +# +# Micrium: Micrium software products porting for RT-Thread +# +# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set +# CONFIG_PKG_USING_UCOSII_WRAPPER is not set +# CONFIG_PKG_USING_UC_CRC is not set +# CONFIG_PKG_USING_UC_CLK is not set +# CONFIG_PKG_USING_UC_COMMON is not set +# CONFIG_PKG_USING_UC_MODBUS is not set +# CONFIG_PKG_USING_PPOOL is not set +# CONFIG_PKG_USING_OPENAMP is not set +# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set +# CONFIG_PKG_USING_RT_MEMCPY_CM is not set +# CONFIG_PKG_USING_QFPLIB_M0_FULL is not set +# CONFIG_PKG_USING_QFPLIB_M0_TINY is not set +# CONFIG_PKG_USING_QFPLIB_M3 is not set +# CONFIG_PKG_USING_LPM is not set + +# +# peripheral libraries and drivers +# +# CONFIG_PKG_USING_SENSORS_DRIVERS is not set +# CONFIG_PKG_USING_REALTEK_AMEBA is not set +# CONFIG_PKG_USING_SHT2X is not set +# CONFIG_PKG_USING_SHT3X is not set +# CONFIG_PKG_USING_AS7341 is not set +# CONFIG_PKG_USING_STM32_SDIO is not set +# CONFIG_PKG_USING_ICM20608 is not set +# CONFIG_PKG_USING_U8G2 is not set +# CONFIG_PKG_USING_BUTTON is not set +# CONFIG_PKG_USING_PCF8574 is not set +# CONFIG_PKG_USING_SX12XX is not set +# CONFIG_PKG_USING_SIGNAL_LED is not set +# CONFIG_PKG_USING_LEDBLINK is not set +# CONFIG_PKG_USING_LITTLED is not set +# CONFIG_PKG_USING_LKDGUI is not set +# CONFIG_PKG_USING_NRF5X_SDK is not set +CONFIG_PKG_USING_NRFX=y +CONFIG_PKG_NRFX_PATH="/packages/peripherals/nrfx" +# CONFIG_PKG_USING_NRFX_V210 is not set +CONFIG_PKG_USING_NRFX_LATEST_VERSION=y +CONFIG_PKG_NRFX_VER="latest" +# CONFIG_PKG_USING_WM_LIBRARIES is not set +# CONFIG_PKG_USING_KENDRYTE_SDK is not set +# CONFIG_PKG_USING_INFRARED is not set +# CONFIG_PKG_USING_ROSSERIAL is not set +# CONFIG_PKG_USING_AGILE_BUTTON is not set +# CONFIG_PKG_USING_AGILE_LED is not set +# CONFIG_PKG_USING_AT24CXX is not set +# CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set +# CONFIG_PKG_USING_AD7746 is not set +# CONFIG_PKG_USING_PCA9685 is not set +# CONFIG_PKG_USING_I2C_TOOLS is not set +# CONFIG_PKG_USING_NRF24L01 is not set +# CONFIG_PKG_USING_TOUCH_DRIVERS is not set +# CONFIG_PKG_USING_MAX17048 is not set +# CONFIG_PKG_USING_RPLIDAR is not set +# CONFIG_PKG_USING_AS608 is not set +# CONFIG_PKG_USING_RC522 is not set +# CONFIG_PKG_USING_WS2812B is not set +# CONFIG_PKG_USING_EMBARC_BSP is not set +# CONFIG_PKG_USING_EXTERN_RTC_DRIVERS is not set +# CONFIG_PKG_USING_MULTI_RTIMER is not set +# CONFIG_PKG_USING_MAX7219 is not set +# CONFIG_PKG_USING_BEEP is not set +# CONFIG_PKG_USING_EASYBLINK is not set +# CONFIG_PKG_USING_PMS_SERIES is not set +# CONFIG_PKG_USING_CAN_YMODEM is not set +# CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set +# CONFIG_PKG_USING_QLED is not set +# CONFIG_PKG_USING_PAJ7620 is not set +# CONFIG_PKG_USING_AGILE_CONSOLE is not set +# CONFIG_PKG_USING_LD3320 is not set +# CONFIG_PKG_USING_WK2124 is not set +# CONFIG_PKG_USING_LY68L6400 is not set +# CONFIG_PKG_USING_DM9051 is not set +# CONFIG_PKG_USING_SSD1306 is not set +# CONFIG_PKG_USING_QKEY is not set +# CONFIG_PKG_USING_RS485 is not set +# CONFIG_PKG_USING_NES is not set +# CONFIG_PKG_USING_VIRTUAL_SENSOR is not set +# CONFIG_PKG_USING_VDEVICE is not set +# CONFIG_PKG_USING_SGM706 is not set +# CONFIG_PKG_USING_RDA58XX is not set + +# +# AI packages +# +# CONFIG_PKG_USING_LIBANN is not set +# CONFIG_PKG_USING_NNOM is not set +# CONFIG_PKG_USING_ONNX_BACKEND is not set +# CONFIG_PKG_USING_ONNX_PARSER is not set +# CONFIG_PKG_USING_TENSORFLOWLITEMICRO is not set +# CONFIG_PKG_USING_ELAPACK is not set +# CONFIG_PKG_USING_ULAPACK is not set + +# +# miscellaneous packages +# +# CONFIG_PKG_USING_LIBCSV is not set +# CONFIG_PKG_USING_OPTPARSE is not set +# CONFIG_PKG_USING_FASTLZ is not set +# CONFIG_PKG_USING_MINILZO is not set +# CONFIG_PKG_USING_QUICKLZ is not set +# CONFIG_PKG_USING_LZMA is not set +# CONFIG_PKG_USING_MULTIBUTTON is not set +# CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set +# CONFIG_PKG_USING_CANFESTIVAL is not set +# CONFIG_PKG_USING_ZLIB is not set +# CONFIG_PKG_USING_DSTR is not set +# CONFIG_PKG_USING_TINYFRAME is not set +# CONFIG_PKG_USING_KENDRYTE_DEMO is not set +# CONFIG_PKG_USING_DIGITALCTRL is not set +# CONFIG_PKG_USING_UPACKER is not set +# CONFIG_PKG_USING_UPARAM is not set + +# +# samples: kernel and components samples +# +# CONFIG_PKG_USING_KERNEL_SAMPLES is not set +# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set +# CONFIG_PKG_USING_NETWORK_SAMPLES is not set +# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set +# CONFIG_PKG_USING_HELLO is not set +# CONFIG_PKG_USING_VI is not set +# CONFIG_PKG_USING_KI is not set +# CONFIG_PKG_USING_ARMv7M_DWT is not set +# CONFIG_PKG_USING_VT100 is not set +# CONFIG_PKG_USING_UKAL is not set +# CONFIG_PKG_USING_CRCLIB is not set + +# +# games: games run on RT-Thread console +# +# CONFIG_PKG_USING_THREES is not set +# CONFIG_PKG_USING_2048 is not set +# CONFIG_PKG_USING_SNAKE is not set +# CONFIG_PKG_USING_TETRIS is not set +# CONFIG_PKG_USING_LWGPS is not set +# CONFIG_PKG_USING_STATE_MACHINE is not set +# CONFIG_PKG_USING_MCURSES is not set +# CONFIG_PKG_USING_COWSAY is not set + +# +# Hardware Drivers Config +# +CONFIG_SOC_NRF52840=y +CONFIG_NRFX_CLOCK_ENABLED=1 +CONFIG_NRFX_CLOCK_DEFAULT_CONFIG_IRQ_PRIORITY=7 +CONFIG_NRFX_CLOCK_CONFIG_LF_SRC=1 +CONFIG_SOC_NORDIC=y + +# +# On-chip Peripheral Drivers +# +# CONFIG_BSP_USING_GPIO is not set +CONFIG_BSP_USING_UART=y +CONFIG_NRFX_USING_UART=y +# CONFIG_NRFX_USING_UARTE is not set +CONFIG_NRFX_UART_ENABLED=1 +CONFIG_BSP_USING_UART0=y +CONFIG_NRFX_UART0_ENABLED=1 +CONFIG_BSP_UART0_RX_PIN=8 +CONFIG_BSP_UART0_TX_PIN=6 + +# +# On-chip flash config +# +CONFIG_MCU_FLASH_START_ADDRESS=0x00000000 +CONFIG_MCU_FLASH_SIZE_KB=1024 +CONFIG_MCU_SRAM_START_ADDRESS=0x20000000 +CONFIG_MCU_SRAM_SIZE_KB=256 +CONFIG_MCU_FLASH_PAGE_SIZE=0x1000 diff --git a/bsp/nrf5x/libraries/templates/nrfx/Kconfig b/bsp/nrf5x/libraries/templates/nrfx/Kconfig new file mode 100644 index 0000000000..3640eaa0ed --- /dev/null +++ b/bsp/nrf5x/libraries/templates/nrfx/Kconfig @@ -0,0 +1,21 @@ +mainmenu "RT-Thread Configuration" + +config BSP_DIR + string + option env="BSP_ROOT" + default "." + +config RTT_DIR + string + option env="RTT_ROOT" + default "../../.." + +config PKGS_DIR + string + option env="PKGS_ROOT" + default "packages" + +source "$RTT_DIR/Kconfig" +source "$PKGS_DIR/Kconfig" +source "board/Kconfig" + diff --git a/bsp/nrf5x/libraries/templates/nrfx/README.md b/bsp/nrf5x/libraries/templates/nrfx/README.md new file mode 100644 index 0000000000..c3a4a95f9f --- /dev/null +++ b/bsp/nrf5x/libraries/templates/nrfx/README.md @@ -0,0 +1,77 @@ +# nRF52840-PCA10056 BSP说明 + +## 简介 + +该文件夹主要存放所有主芯片为nRF52840的板级支持包。目前默认支持的开发板是官方[PCA10056](https://www.nordicsemi.com/Software-and-tools/Development-Kits/nRF52840-DK) +本文主要内容如下: + +- 开发板资源介绍 +- 进阶使用方法 + +## 开发板介绍 + +PCA10056-nRF52840是Nordic 官方的开发板,搭载nRF52840 芯片,基于ARM Cortex-M4内核,最高主频64 MHz,具有丰富的外设资源。 + +开发板外观如下图所示 + +![image-20201017202046725](../docs/images/nrf52840.png) + +PCA10056-nrf52840 开发板常用 **板载资源** 如下: + +- MCU:NRF52840,主频 64MHz,1MB FLASH ,256kB RAM +- MCU 外设: GPIO, UART, SPI, I2C(TWI), RTC,TIMER,NFC,QSPI,PWM,ADC,USB,I2S +- 板载设 + - LED:4个,USB communication (LD1), user LED (LD2), power LED (LD3) 。 + - 按键:5个,4个USER and 1个RESET 。 + - USB: 1个 +- 常用接口:USB device、Arduino Uno 接口 +- 调试接口:板载 J-LINK 调试器。 + +开发板更多详细信息请参考NORDIC官方[PCA10056](https://www.nordicsemi.com/Software-and-tools/Development-Kits/nRF52840-DK) + + + +## 外设支持 + +本 BSP 目前对外设的支持情况如下: + +| **片上外设** | **支持情况** | **备注** | +| :----------- | :----------: | :--------------------: | +| GPIO | 支持 | GPION | +| UART | 支持 | UART0 | +| PWM | 支持 | 支持 | +| SPI | 支持 | 支持 | +| QSPI | 支持 | 支持开发板上QSPI FLASH | +| RTC | 支持 | | +| ADC | 支持 | | +| | | | +| | | | +| | | | + + + +### 进阶使用 + +此 BSP 默认只开启了 GPIO 和 串口 0 的功能,更多高级功能需要利用 env 工具对 BSP 进行配置,步骤如下: + +1. 在 bsp 下打开 env 工具。 + +2. 输入`menuconfig`命令配置工程,配置好之后保存退出。 + +3. 输入`pkgs --update`命令更新软件包。 + +4. 输入`scons --target=mdk4/mdk5/iar` 命令重新生成工程。 + + + +## 支持其他开发板 + +客户可以将自己的开发板的.config文件和board/Kconfig文件到board/$(board_name)下面添加README.md即可,使用的时候替换.config文件 + +## 注意事项 + +## 联系人信息 + +维护人: + +- [supperthomas], 邮箱:<78900636@qq.com> \ No newline at end of file diff --git a/bsp/nrf5x/libraries/templates/nrfx/SConscript b/bsp/nrf5x/libraries/templates/nrfx/SConscript new file mode 100644 index 0000000000..20f7689c53 --- /dev/null +++ b/bsp/nrf5x/libraries/templates/nrfx/SConscript @@ -0,0 +1,15 @@ +# for module compiling +import os +Import('RTT_ROOT') +from building import * + +cwd = GetCurrentDir() +objs = [] +list = os.listdir(cwd) + +for d in list: + path = os.path.join(cwd, d) + if os.path.isfile(os.path.join(path, 'SConscript')): + objs = objs + SConscript(os.path.join(d, 'SConscript')) + +Return('objs') diff --git a/bsp/nrf5x/libraries/templates/nrfx/SConstruct b/bsp/nrf5x/libraries/templates/nrfx/SConstruct new file mode 100644 index 0000000000..2ac1ce6674 --- /dev/null +++ b/bsp/nrf5x/libraries/templates/nrfx/SConstruct @@ -0,0 +1,57 @@ +import os +import sys +import rtconfig + +if os.getenv('RTT_ROOT'): + RTT_ROOT = os.getenv('RTT_ROOT') +else: + RTT_ROOT = os.path.normpath(os.getcwd() + '/../../..') + +sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')] +try: + from building import * +except: + print('Cannot found RT-Thread root directory, please check RTT_ROOT') + print(RTT_ROOT) + exit(-1) + +TARGET = 'rt-thread.' + rtconfig.TARGET_EXT + +DefaultEnvironment(tools=[]) +env = Environment(tools = ['mingw'], + AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS, + CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS, + AR = rtconfig.AR, ARFLAGS = '-rc', + LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS) +env.PrependENVPath('PATH', rtconfig.EXEC_PATH) + +if rtconfig.PLATFORM == 'iar': + env.Replace(CCCOM = ['$CC $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES']) + env.Replace(ARFLAGS = ['']) + env.Replace(LINKCOM = env["LINKCOM"] + ' --map rt-thread.map') + +Export('RTT_ROOT') +Export('rtconfig') + +SDK_ROOT = os.path.abspath('./') + +if os.path.exists(SDK_ROOT + '/libraries'): + libraries_path_prefix = SDK_ROOT + '/libraries' +else: + libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries' + +SDK_LIB = libraries_path_prefix +Export('SDK_LIB') +print(SDK_LIB) + +# prepare building environment +objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False) + +# include drivers +objs.extend(SConscript(os.path.join(libraries_path_prefix, 'drivers', 'SConscript'))) + +# include cmsis +objs.extend(SConscript(os.path.join(libraries_path_prefix, 'cmsis', 'SConscript'))) + +# make a building +DoBuilding(TARGET, objs) diff --git a/bsp/nrf5x/libraries/templates/nrfx/applications/SConscript b/bsp/nrf5x/libraries/templates/nrfx/applications/SConscript new file mode 100644 index 0000000000..fc2501998c --- /dev/null +++ b/bsp/nrf5x/libraries/templates/nrfx/applications/SConscript @@ -0,0 +1,11 @@ +Import('RTT_ROOT') +Import('rtconfig') +from building import * + +cwd = os.path.join(str(Dir('#')), 'applications') +src = Glob('*.c') +CPPPATH = [cwd, str(Dir('#'))] + +group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH) + +Return('group') diff --git a/bsp/nrf5x/libraries/templates/nrfx/applications/application.c b/bsp/nrf5x/libraries/templates/nrfx/applications/application.c new file mode 100644 index 0000000000..87d0f04b86 --- /dev/null +++ b/bsp/nrf5x/libraries/templates/nrfx/applications/application.c @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2006-2021, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-04-29 supperthomas first version + * + */ + +#include <rtthread.h> +#include <rtdevice.h> + +int main(void) +{ + while (1) + { + rt_thread_mdelay(500); + } + return RT_EOK; +} + diff --git a/bsp/nrf5x/libraries/templates/nrfx/board/Kconfig b/bsp/nrf5x/libraries/templates/nrfx/board/Kconfig new file mode 100644 index 0000000000..81fa49369d --- /dev/null +++ b/bsp/nrf5x/libraries/templates/nrfx/board/Kconfig @@ -0,0 +1,97 @@ +menu "Hardware Drivers Config" + +config SOC_NRF52840 + bool + select RT_USING_COMPONENTS_INIT + select RT_USING_USER_MAIN + default y + +config SOC_NORDIC + bool + default y + +choice + prompt "Select BSP board " + default BSP_BOARD_PCA_10056 + + config BSP_BOARD_PCA_10056 + bool "NRF52840 pca10056 " + +endchoice + +menu "On-chip Peripheral Drivers" + config BSP_USING_UART + bool "Enable UART" + default y + select RT_USING_SERIAL + config BSP_USING_UART0 + bool "Enable UART0" + default y + depends on BSP_USING_UART + + config BSP_UART0_RX_PIN + depends on BSP_USING_UART0 + int "uart0 rx pin number" + default 8 if BSP_BOARD_PCA_10056 + + config BSP_UART0_TX_PIN + depends on BSP_USING_UART0 + int "uart0 tx pin number" + default 6 if BSP_BOARD_PCA_10056 + + menu "On-chip flash config" + + config MCU_FLASH_START_ADDRESS + hex "MCU FLASH START ADDRESS" + default 0x00000000 + + config MCU_FLASH_SIZE_KB + int "MCU FLASH SIZE, MAX size 1024 KB" + default 1024 + + config MCU_SRAM_START_ADDRESS + hex "MCU RAM START ADDRESS" + default 0x20000000 + + config MCU_SRAM_SIZE_KB + int "MCU RAM SIZE" + default 256 + + config MCU_FLASH_PAGE_SIZE + hex "MCU FLASH PAGE SIZE, please not change,nrfx default is 0x1000" + default 0x1000 + endmenu + +endmenu + +if SOC_NORDIC + config NRFX_CLOCK_ENABLED + int + default 1 + config NRFX_CLOCK_DEFAULT_CONFIG_IRQ_PRIORITY + int + default 7 + config NRFX_CLOCK_CONFIG_LF_SRC + int + default 1 +endif + +if BSP_USING_UART + config NRFX_USING_UART + bool + default y + + config NRFX_UART_ENABLED + int + default 1 + + config NRFX_UART0_ENABLED + int + default 1 + depends on BSP_USING_UART0 +endif + + +endmenu + + diff --git a/bsp/nrf5x/libraries/templates/nrfx/board/SConscript b/bsp/nrf5x/libraries/templates/nrfx/board/SConscript new file mode 100644 index 0000000000..27bcddd310 --- /dev/null +++ b/bsp/nrf5x/libraries/templates/nrfx/board/SConscript @@ -0,0 +1,11 @@ +Import('RTT_ROOT') +Import('rtconfig') +from building import * + +cwd = GetCurrentDir() +src = Glob('*.c') +CPPPATH = [cwd] +define = ['USE_APP_CONFIG'] + +group = DefineGroup('Drivers', src, depend = [''], CPPPATH = CPPPATH,CPPDEFINES = define) +Return('group') diff --git a/bsp/nrf5x/libraries/templates/nrfx/board/board.c b/bsp/nrf5x/libraries/templates/nrfx/board/board.c new file mode 100644 index 0000000000..2cb94fb6fa --- /dev/null +++ b/bsp/nrf5x/libraries/templates/nrfx/board/board.c @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2006-2021, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-04-29 supperthomas first version + * + */ +#include <rtthread.h> +#include <rthw.h> +#include <nrfx_systick.h> + +#include "board.h" +#include "drv_uart.h" +#include <nrfx_clock.h> + +/** + * This is the timer interrupt service routine. + * + */ +void SysTick_Handler(void) +{ + /* enter interrupt */ + rt_interrupt_enter(); + + rt_tick_increase(); + + /* leave interrupt */ + rt_interrupt_leave(); +} + +static void clk_event_handler(nrfx_clock_evt_type_t event){} + +void SysTick_Configuration(void) +{ + nrfx_clock_init(clk_event_handler); + nrfx_clock_enable(); + nrfx_clock_lfclk_start(); + /* Set interrupt priority */ + NVIC_SetPriority(SysTick_IRQn, 0xf); + + /* Configure SysTick to interrupt at the requested rate. */ + nrf_systick_load_set(SystemCoreClock / RT_TICK_PER_SECOND); + nrf_systick_val_clear(); + nrf_systick_csr_set(NRF_SYSTICK_CSR_CLKSOURCE_CPU | NRF_SYSTICK_CSR_TICKINT_ENABLE + | NRF_SYSTICK_CSR_ENABLE); + +} + + +void rt_hw_board_init(void) +{ + rt_hw_interrupt_enable(0); + + SysTick_Configuration(); + +#if defined(RT_USING_HEAP) + rt_system_heap_init((void *)HEAP_BEGIN, (void *)HEAP_END); +#endif + +#ifdef RT_USING_SERIAL + rt_hw_uart_init(); +#endif + +#ifdef RT_USING_CONSOLE + rt_console_set_device(RT_CONSOLE_DEVICE_NAME); +#endif + +#ifdef RT_USING_COMPONENTS_INIT + rt_components_board_init(); +#endif + +#ifdef BSP_USING_SOFTDEVICE + extern uint32_t Image$$RW_IRAM1$$Base; + uint32_t const *const m_ram_start = &Image$$RW_IRAM1$$Base; + if ((uint32_t)m_ram_start == 0x20000000) + { + rt_kprintf("\r\n using softdevice the RAM couldn't be %p,please use the templete from package\r\n", m_ram_start); + while (1); + } + else + { + rt_kprintf("\r\n using softdevice the RAM at %p\r\n", m_ram_start); + } +#endif + +} + diff --git a/bsp/nrf5x/libraries/templates/nrfx/board/board.h b/bsp/nrf5x/libraries/templates/nrfx/board/board.h new file mode 100644 index 0000000000..a3ccadfa36 --- /dev/null +++ b/bsp/nrf5x/libraries/templates/nrfx/board/board.h @@ -0,0 +1,30 @@ +#ifndef _BOARD_H_ +#define _BOARD_H_ + +#include <rtthread.h> +#include <rthw.h> +#include "nrf.h" + +#define MCU_FLASH_SIZE MCU_FLASH_SIZE_KB*1024 +#define MCU_FLASH_END_ADDRESS ((uint32_t)(MCU_FLASH_START_ADDRESS + MCU_FLASH_SIZE)) +#define MCU_SRAM_SIZE MCU_SRAM_SIZE_KB*1024 +#define MCU_SRAM_END_ADDRESS (MCU_SRAM_START_ADDRESS + MCU_SRAM_SIZE) + +#if defined(__CC_ARM) || defined(__CLANG_ARM) +extern int Image$$RW_IRAM1$$ZI$$Limit; +#define HEAP_BEGIN ((void *)&Image$$RW_IRAM1$$ZI$$Limit) +#elif __ICCARM__ +#pragma section="CSTACK" +#define HEAP_BEGIN (__segment_end("CSTACK")) +#else +extern int __bss_end__; +#define HEAP_BEGIN ((void *)&__bss_end__) +#endif + + +#define HEAP_END (MCU_SRAM_END_ADDRESS) + +void rt_hw_board_init(void); + +#endif + diff --git a/bsp/nrf5x/libraries/templates/nrfx/board/linker_scripts/link.lds b/bsp/nrf5x/libraries/templates/nrfx/board/linker_scripts/link.lds new file mode 100644 index 0000000000..9a9609eed7 --- /dev/null +++ b/bsp/nrf5x/libraries/templates/nrfx/board/linker_scripts/link.lds @@ -0,0 +1,16 @@ +/* Linker script to configure memory regions. */ + +SEARCH_DIR(.) +GROUP(-lgcc -lc -lnosys) + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x0, LENGTH = 0x100000 + RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x40000 + CODE_RAM (rwx) : ORIGIN = 0x800000, LENGTH = 0x10000 +} + +INCLUDE "packages/nrfx-v2.1.0/mdk/nrf_common.ld" + + + diff --git a/bsp/nrf5x/libraries/templates/nrfx/board/linker_scripts/link.sct b/bsp/nrf5x/libraries/templates/nrfx/board/linker_scripts/link.sct new file mode 100644 index 0000000000..a2f8ebd922 --- /dev/null +++ b/bsp/nrf5x/libraries/templates/nrfx/board/linker_scripts/link.sct @@ -0,0 +1,15 @@ +; ************************************************************* +; *** Scatter-Loading Description File generated by uVision *** +; ************************************************************* + +LR_IROM1 0x00000000 0x100000 { ; load region size_region + ER_IROM1 0x00000000 0x100000 { ; load address = execution address + *.o (RESET, +First) + *(InRoot$$Sections) + .ANY (+RO) + } + RW_IRAM1 0x20000000 0x40000 { ; RW data + .ANY (+RW +ZI) + } +} + diff --git a/bsp/nrf5x/libraries/templates/nrfx/board/nrfx_config.h b/bsp/nrf5x/libraries/templates/nrfx/board/nrfx_config.h new file mode 100644 index 0000000000..b006b6bcd5 --- /dev/null +++ b/bsp/nrf5x/libraries/templates/nrfx/board/nrfx_config.h @@ -0,0 +1,47 @@ +/** + * Copyright (c) 2017 - 2019, Nordic Semiconductor ASA + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef NRFX_CONFIG_H__ +#define NRFX_CONFIG_H__ + +// TODO - temporary redirection +#include <sdk_config.h> + +#endif // NRFX_CONFIG_H__ diff --git a/bsp/nrf5x/libraries/templates/nrfx/board/nrfx_glue.h b/bsp/nrf5x/libraries/templates/nrfx/board/nrfx_glue.h new file mode 100644 index 0000000000..28025dafae --- /dev/null +++ b/bsp/nrf5x/libraries/templates/nrfx/board/nrfx_glue.h @@ -0,0 +1,269 @@ +/* + * Copyright (c) 2017 - 2020, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef NRFX_GLUE_H__ +#define NRFX_GLUE_H__ + +// THIS IS A TEMPLATE FILE. +// It should be copied to a suitable location within the host environment into +// which nrfx is integrated, and the following macros should be provided with +// appropriate implementations. +// And this comment should be removed from the customized file. + +#ifdef __cplusplus +extern "C" { +#endif +#include <stdbool.h> +#include "nrf.h" +/** + * @defgroup nrfx_glue nrfx_glue.h + * @{ + * @ingroup nrfx + * + * @brief This file contains macros that should be implemented according to + * the needs of the host environment into which @em nrfx is integrated. + */ + +// Uncomment this line to use the standard MDK way of binding IRQ handlers +// at linking time. +#include <soc/nrfx_irqs.h> + +//------------------------------------------------------------------------------ + +/** + * @brief Macro for placing a runtime assertion. + * + * @param expression Expression to be evaluated. + */ +#define NRFX_ASSERT(expression) + +/** + * @brief Macro for placing a compile time assertion. + * + * @param expression Expression to be evaluated. + */ +#define NRFX_STATIC_ASSERT(expression) + +//------------------------------------------------------------------------------ + +/** + * @brief Macro for setting the priority of a specific IRQ. + * + * @param irq_number IRQ number. + * @param priority Priority to be set. + */ +#define NRFX_IRQ_PRIORITY_SET(irq_number, priority) NVIC_SetPriority(irq_number, priority) + +/** + * @brief Macro for enabling a specific IRQ. + * + * @param irq_number IRQ number. + */ +#define NRFX_IRQ_ENABLE(irq_number) NVIC_EnableIRQ(irq_number) + +/** + * @brief Macro for checking if a specific IRQ is enabled. + * + * @param irq_number IRQ number. + * + * @retval true If the IRQ is enabled. + * @retval false Otherwise. + */ +#define NRFX_IRQ_IS_ENABLED(irq_number) _NRFX_IRQ_IS_ENABLED(irq_number) +static inline bool _NRFX_IRQ_IS_ENABLED(IRQn_Type irq_number) +{ + return 0 != (NVIC->ISER[irq_number / 32] & (1UL << (irq_number % 32))); +} + + +/** + * @brief Macro for disabling a specific IRQ. + * + * @param irq_number IRQ number. + */ +#define NRFX_IRQ_DISABLE(irq_number) _NRFX_IRQ_DISABLE(irq_number) +static inline void _NRFX_IRQ_DISABLE(IRQn_Type irq_number) +{ + NVIC_DisableIRQ(irq_number); +} + + +/** + * @brief Macro for setting a specific IRQ as pending. + * + * @param irq_number IRQ number. + */ +#define NRFX_IRQ_PENDING_SET(irq_number) + +/** + * @brief Macro for clearing the pending status of a specific IRQ. + * + * @param irq_number IRQ number. + */ +#define NRFX_IRQ_PENDING_CLEAR(irq_number) + +/** + * @brief Macro for checking the pending status of a specific IRQ. + * + * @retval true If the IRQ is pending. + * @retval false Otherwise. + */ +#define NRFX_IRQ_IS_PENDING(irq_number) + +/** @brief Macro for entering into a critical section. */ +#define NRFX_CRITICAL_SECTION_ENTER() + +/** @brief Macro for exiting from a critical section. */ +#define NRFX_CRITICAL_SECTION_EXIT() + +//------------------------------------------------------------------------------ + +/** + * @brief When set to a non-zero value, this macro specifies that + * @ref nrfx_coredep_delay_us uses a precise DWT-based solution. + * A compilation error is generated if the DWT unit is not present + * in the SoC used. + */ +#define NRFX_DELAY_DWT_BASED 0 + +/** + * @brief Macro for delaying the code execution for at least the specified time. + * + * @param us_time Number of microseconds to wait. + */ +#define NRFX_DELAY_US(us_time) + +//------------------------------------------------------------------------------ + +/** @brief Atomic 32-bit unsigned type. */ +#define nrfx_atomic_t + +/** + * @brief Macro for storing a value to an atomic object and returning its previous value. + * + * @param[in] p_data Atomic memory pointer. + * @param[in] value Value to store. + * + * @return Previous value of the atomic object. + */ +#define NRFX_ATOMIC_FETCH_STORE(p_data, value) + +/** + * @brief Macro for running a bitwise OR operation on an atomic object and returning its previous value. + * + * @param[in] p_data Atomic memory pointer. + * @param[in] value Value of the second operand in the OR operation. + * + * @return Previous value of the atomic object. + */ +#define NRFX_ATOMIC_FETCH_OR(p_data, value) + +/** + * @brief Macro for running a bitwise AND operation on an atomic object + * and returning its previous value. + * + * @param[in] p_data Atomic memory pointer. + * @param[in] value Value of the second operand in the AND operation. + * + * @return Previous value of the atomic object. + */ +#define NRFX_ATOMIC_FETCH_AND(p_data, value) + +/** + * @brief Macro for running a bitwise XOR operation on an atomic object + * and returning its previous value. + * + * @param[in] p_data Atomic memory pointer. + * @param[in] value Value of the second operand in the XOR operation. + * + * @return Previous value of the atomic object. + */ +#define NRFX_ATOMIC_FETCH_XOR(p_data, value) + +/** + * @brief Macro for running an addition operation on an atomic object + * and returning its previous value. + * + * @param[in] p_data Atomic memory pointer. + * @param[in] value Value of the second operand in the ADD operation. + * + * @return Previous value of the atomic object. + */ +#define NRFX_ATOMIC_FETCH_ADD(p_data, value) + +/** + * @brief Macro for running a subtraction operation on an atomic object + * and returning its previous value. + * + * @param[in] p_data Atomic memory pointer. + * @param[in] value Value of the second operand in the SUB operation. + * + * @return Previous value of the atomic object. + */ +#define NRFX_ATOMIC_FETCH_SUB(p_data, value) + +//------------------------------------------------------------------------------ + +/** + * @brief When set to a non-zero value, this macro specifies that the + * @ref nrfx_error_codes and the @ref nrfx_err_t type itself are defined + * in a customized way and the default definitions from @c <nrfx_error.h> + * should not be used. + */ +#define NRFX_CUSTOM_ERROR_CODES 0 + +//------------------------------------------------------------------------------ + +/** @brief Bitmask that defines DPPI channels that are reserved for use outside of the nrfx library. */ +#define NRFX_DPPI_CHANNELS_USED 0 + +/** @brief Bitmask that defines DPPI groups that are reserved for use outside of the nrfx library. */ +#define NRFX_DPPI_GROUPS_USED 0 + +/** @brief Bitmask that defines PPI channels that are reserved for use outside of the nrfx library. */ +#define NRFX_PPI_CHANNELS_USED 0 + +/** @brief Bitmask that defines PPI groups that are reserved for use outside of the nrfx library. */ +#define NRFX_PPI_GROUPS_USED 0 + +/** @brief Bitmask that defines EGU instances that are reserved for use outside of the nrfx library. */ +#define NRFX_EGUS_USED 0 + +/** @brief Bitmask that defines TIMER instances that are reserved for use outside of the nrfx library. */ +#define NRFX_TIMERS_USED 0 + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif // NRFX_GLUE_H__ diff --git a/bsp/nrf5x/libraries/templates/nrfx/board/nrfx_log.h b/bsp/nrf5x/libraries/templates/nrfx/board/nrfx_log.h new file mode 100644 index 0000000000..80d8efbdf1 --- /dev/null +++ b/bsp/nrf5x/libraries/templates/nrfx/board/nrfx_log.h @@ -0,0 +1,135 @@ +/* + * Copyright (c) 2017 - 2020, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef NRFX_LOG_H__ +#define NRFX_LOG_H__ + +// THIS IS A TEMPLATE FILE. +// It should be copied to a suitable location within the host environment into +// which nrfx is integrated, and the following macros should be provided with +// appropriate implementations. +// And this comment should be removed from the customized file. + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @defgroup nrfx_log nrfx_log.h + * @{ + * @ingroup nrfx + * + * @brief This file contains macros that should be implemented according to + * the needs of the host environment into which @em nrfx is integrated. + */ + +/** + * @brief Macro for logging a message with the severity level ERROR. + * + * @param format printf-style format string, optionally followed by arguments + * to be formatted and inserted in the resulting string. + */ +#define NRFX_LOG_ERROR(format, ...) + +/** + * @brief Macro for logging a message with the severity level WARNING. + * + * @param format printf-style format string, optionally followed by arguments + * to be formatted and inserted in the resulting string. + */ +#define NRFX_LOG_WARNING(format, ...) + +/** + * @brief Macro for logging a message with the severity level INFO. + * + * @param format printf-style format string, optionally followed by arguments + * to be formatted and inserted in the resulting string. + */ +#define NRFX_LOG_INFO(format, ...) + +/** + * @brief Macro for logging a message with the severity level DEBUG. + * + * @param format printf-style format string, optionally followed by arguments + * to be formatted and inserted in the resulting string. + */ +#define NRFX_LOG_DEBUG(format, ...) + + +/** + * @brief Macro for logging a memory dump with the severity level ERROR. + * + * @param[in] p_memory Pointer to the memory region to be dumped. + * @param[in] length Length of the memory region in bytes. + */ +#define NRFX_LOG_HEXDUMP_ERROR(p_memory, length) + +/** + * @brief Macro for logging a memory dump with the severity level WARNING. + * + * @param[in] p_memory Pointer to the memory region to be dumped. + * @param[in] length Length of the memory region in bytes. + */ +#define NRFX_LOG_HEXDUMP_WARNING(p_memory, length) + +/** + * @brief Macro for logging a memory dump with the severity level INFO. + * + * @param[in] p_memory Pointer to the memory region to be dumped. + * @param[in] length Length of the memory region in bytes. + */ +#define NRFX_LOG_HEXDUMP_INFO(p_memory, length) + +/** + * @brief Macro for logging a memory dump with the severity level DEBUG. + * + * @param[in] p_memory Pointer to the memory region to be dumped. + * @param[in] length Length of the memory region in bytes. + */ +#define NRFX_LOG_HEXDUMP_DEBUG(p_memory, length) + + +/** + * @brief Macro for getting the textual representation of a given error code. + * + * @param[in] error_code Error code. + * + * @return String containing the textual representation of the error code. + */ +#define NRFX_LOG_ERROR_STRING_GET(error_code) + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif // NRFX_LOG_H__ diff --git a/bsp/nrf5x/libraries/templates/nrfx/board/sdk_config.h b/bsp/nrf5x/libraries/templates/nrfx/board/sdk_config.h new file mode 100644 index 0000000000..da5408025c --- /dev/null +++ b/bsp/nrf5x/libraries/templates/nrfx/board/sdk_config.h @@ -0,0 +1,11701 @@ +/** + * Copyright (c) 2017 - 2019, Nordic Semiconductor ASA + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + + +#ifndef SDK_CONFIG_H +#define SDK_CONFIG_H +// <<< Use Configuration Wizard in Context Menu >>>\n +// <h> nRF_BLE + +#include <rtconfig.h> +//========================================================== +// <q> BLE_ADVERTISING_ENABLED - ble_advertising - Advertising module + + +#ifndef BLE_ADVERTISING_ENABLED +#define BLE_ADVERTISING_ENABLED 0 +#endif + +// <q> BLE_DTM_ENABLED - ble_dtm - Module for testing RF/PHY using DTM commands + + +#ifndef BLE_DTM_ENABLED +#define BLE_DTM_ENABLED 0 +#endif + +// <q> BLE_RACP_ENABLED - ble_racp - Record Access Control Point library + + +#ifndef BLE_RACP_ENABLED +#define BLE_RACP_ENABLED 0 +#endif + +// <e> NRF_BLE_QWR_ENABLED - nrf_ble_qwr - Queued writes support module (prepare/execute write) +//========================================================== +#ifndef NRF_BLE_QWR_ENABLED +#define NRF_BLE_QWR_ENABLED 0 +#endif +// <o> NRF_BLE_QWR_MAX_ATTR - Maximum number of attribute handles that can be registered. This number must be adjusted according to the number of attributes for which Queued Writes will be enabled. If it is zero, the module will reject all Queued Write requests. +#ifndef NRF_BLE_QWR_MAX_ATTR +#define NRF_BLE_QWR_MAX_ATTR 0 +#endif + +// </e> + +// <e> PEER_MANAGER_ENABLED - peer_manager - Peer Manager +//========================================================== +#ifndef PEER_MANAGER_ENABLED +#define PEER_MANAGER_ENABLED 0 +#endif +// <o> PM_MAX_REGISTRANTS - Number of event handlers that can be registered. +#ifndef PM_MAX_REGISTRANTS +#define PM_MAX_REGISTRANTS 3 +#endif + +// <o> PM_FLASH_BUFFERS - Number of internal buffers for flash operations. +// <i> Decrease this value to lower RAM usage. + +#ifndef PM_FLASH_BUFFERS +#define PM_FLASH_BUFFERS 4 +#endif + +// <q> PM_CENTRAL_ENABLED - Enable/disable central-specific Peer Manager functionality. + + +// <i> Enable/disable central-specific Peer Manager functionality. + +#ifndef PM_CENTRAL_ENABLED +#define PM_CENTRAL_ENABLED 1 +#endif + +// <q> PM_SERVICE_CHANGED_ENABLED - Enable/disable the service changed management for GATT server in Peer Manager. + + +// <i> If not using a GATT server, or using a server wihout a service changed characteristic, +// <i> disable this to save code space. + +#ifndef PM_SERVICE_CHANGED_ENABLED +#define PM_SERVICE_CHANGED_ENABLED 1 +#endif + +// <q> PM_PEER_RANKS_ENABLED - Enable/disable the peer rank management in Peer Manager. + + +// <i> Set this to false to save code space if not using the peer rank API. + +#ifndef PM_PEER_RANKS_ENABLED +#define PM_PEER_RANKS_ENABLED 1 +#endif + +// <q> PM_LESC_ENABLED - Enable/disable LESC support in Peer Manager. + + +// <i> If set to true, you need to call nrf_ble_lesc_request_handler() in the main loop to respond to LESC-related BLE events. If LESC support is not required, set this to false to save code space. + +#ifndef PM_LESC_ENABLED +#define PM_LESC_ENABLED 0 +#endif + +// <e> PM_RA_PROTECTION_ENABLED - Enable/disable protection against repeated pairing attempts in Peer Manager. +//========================================================== +#ifndef PM_RA_PROTECTION_ENABLED +#define PM_RA_PROTECTION_ENABLED 0 +#endif +// <o> PM_RA_PROTECTION_TRACKED_PEERS_NUM - Maximum number of peers whose authorization status can be tracked. +#ifndef PM_RA_PROTECTION_TRACKED_PEERS_NUM +#define PM_RA_PROTECTION_TRACKED_PEERS_NUM 8 +#endif + +// <o> PM_RA_PROTECTION_MIN_WAIT_INTERVAL - Minimum waiting interval (in ms) before a new pairing attempt can be initiated. +#ifndef PM_RA_PROTECTION_MIN_WAIT_INTERVAL +#define PM_RA_PROTECTION_MIN_WAIT_INTERVAL 4000 +#endif + +// <o> PM_RA_PROTECTION_MAX_WAIT_INTERVAL - Maximum waiting interval (in ms) before a new pairing attempt can be initiated. +#ifndef PM_RA_PROTECTION_MAX_WAIT_INTERVAL +#define PM_RA_PROTECTION_MAX_WAIT_INTERVAL 64000 +#endif + +// <o> PM_RA_PROTECTION_REWARD_PERIOD - Reward period (in ms). +// <i> The waiting interval is gradually decreased when no new failed pairing attempts are made during reward period. + +#ifndef PM_RA_PROTECTION_REWARD_PERIOD +#define PM_RA_PROTECTION_REWARD_PERIOD 10000 +#endif + +// </e> + +// <o> PM_HANDLER_SEC_DELAY_MS - Delay before starting security. +// <i> This might be necessary for interoperability reasons, especially as peripheral. + +#ifndef PM_HANDLER_SEC_DELAY_MS +#define PM_HANDLER_SEC_DELAY_MS 0 +#endif + +// </e> + +// </h> +//========================================================== + +// <h> nRF_BLE_Services + +//========================================================== +// <q> BLE_ANCS_C_ENABLED - ble_ancs_c - Apple Notification Service Client + + +#ifndef BLE_ANCS_C_ENABLED +#define BLE_ANCS_C_ENABLED 0 +#endif + +// <q> BLE_ANS_C_ENABLED - ble_ans_c - Alert Notification Service Client + + +#ifndef BLE_ANS_C_ENABLED +#define BLE_ANS_C_ENABLED 0 +#endif + +// <q> BLE_BAS_C_ENABLED - ble_bas_c - Battery Service Client + + +#ifndef BLE_BAS_C_ENABLED +#define BLE_BAS_C_ENABLED 0 +#endif + +// <e> BLE_BAS_ENABLED - ble_bas - Battery Service +//========================================================== +#ifndef BLE_BAS_ENABLED +#define BLE_BAS_ENABLED 0 +#endif +// <e> BLE_BAS_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef BLE_BAS_CONFIG_LOG_ENABLED +#define BLE_BAS_CONFIG_LOG_ENABLED 0 +#endif +// <o> BLE_BAS_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef BLE_BAS_CONFIG_LOG_LEVEL +#define BLE_BAS_CONFIG_LOG_LEVEL 3 +#endif + +// <o> BLE_BAS_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef BLE_BAS_CONFIG_INFO_COLOR +#define BLE_BAS_CONFIG_INFO_COLOR 0 +#endif + +// <o> BLE_BAS_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef BLE_BAS_CONFIG_DEBUG_COLOR +#define BLE_BAS_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <q> BLE_CSCS_ENABLED - ble_cscs - Cycling Speed and Cadence Service + + +#ifndef BLE_CSCS_ENABLED +#define BLE_CSCS_ENABLED 0 +#endif + +// <q> BLE_CTS_C_ENABLED - ble_cts_c - Current Time Service Client + + +#ifndef BLE_CTS_C_ENABLED +#define BLE_CTS_C_ENABLED 0 +#endif + +// <q> BLE_DIS_ENABLED - ble_dis - Device Information Service + + +#ifndef BLE_DIS_ENABLED +#define BLE_DIS_ENABLED 0 +#endif + +// <q> BLE_GLS_ENABLED - ble_gls - Glucose Service + + +#ifndef BLE_GLS_ENABLED +#define BLE_GLS_ENABLED 0 +#endif + +// <q> BLE_HIDS_ENABLED - ble_hids - Human Interface Device Service + + +#ifndef BLE_HIDS_ENABLED +#define BLE_HIDS_ENABLED 0 +#endif + +// <q> BLE_HRS_C_ENABLED - ble_hrs_c - Heart Rate Service Client + + +#ifndef BLE_HRS_C_ENABLED +#define BLE_HRS_C_ENABLED 0 +#endif + +// <q> BLE_HRS_ENABLED - ble_hrs - Heart Rate Service + + +#ifndef BLE_HRS_ENABLED +#define BLE_HRS_ENABLED 0 +#endif + +// <q> BLE_HTS_ENABLED - ble_hts - Health Thermometer Service + + +#ifndef BLE_HTS_ENABLED +#define BLE_HTS_ENABLED 0 +#endif + +// <q> BLE_IAS_C_ENABLED - ble_ias_c - Immediate Alert Service Client + + +#ifndef BLE_IAS_C_ENABLED +#define BLE_IAS_C_ENABLED 0 +#endif + +// <e> BLE_IAS_ENABLED - ble_ias - Immediate Alert Service +//========================================================== +#ifndef BLE_IAS_ENABLED +#define BLE_IAS_ENABLED 0 +#endif +// <e> BLE_IAS_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef BLE_IAS_CONFIG_LOG_ENABLED +#define BLE_IAS_CONFIG_LOG_ENABLED 0 +#endif +// <o> BLE_IAS_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef BLE_IAS_CONFIG_LOG_LEVEL +#define BLE_IAS_CONFIG_LOG_LEVEL 3 +#endif + +// <o> BLE_IAS_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef BLE_IAS_CONFIG_INFO_COLOR +#define BLE_IAS_CONFIG_INFO_COLOR 0 +#endif + +// <o> BLE_IAS_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef BLE_IAS_CONFIG_DEBUG_COLOR +#define BLE_IAS_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <q> BLE_LBS_C_ENABLED - ble_lbs_c - Nordic LED Button Service Client + + +#ifndef BLE_LBS_C_ENABLED +#define BLE_LBS_C_ENABLED 0 +#endif + +// <q> BLE_LBS_ENABLED - ble_lbs - LED Button Service + + +#ifndef BLE_LBS_ENABLED +#define BLE_LBS_ENABLED 0 +#endif + +// <q> BLE_LLS_ENABLED - ble_lls - Link Loss Service + + +#ifndef BLE_LLS_ENABLED +#define BLE_LLS_ENABLED 0 +#endif + +// <q> BLE_NUS_C_ENABLED - ble_nus_c - Nordic UART Central Service + + +#ifndef BLE_NUS_C_ENABLED +#define BLE_NUS_C_ENABLED 0 +#endif + +// <e> BLE_NUS_ENABLED - ble_nus - Nordic UART Service +//========================================================== +#ifndef BLE_NUS_ENABLED +#define BLE_NUS_ENABLED 0 +#endif +// <e> BLE_NUS_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef BLE_NUS_CONFIG_LOG_ENABLED +#define BLE_NUS_CONFIG_LOG_ENABLED 0 +#endif +// <o> BLE_NUS_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef BLE_NUS_CONFIG_LOG_LEVEL +#define BLE_NUS_CONFIG_LOG_LEVEL 3 +#endif + +// <o> BLE_NUS_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef BLE_NUS_CONFIG_INFO_COLOR +#define BLE_NUS_CONFIG_INFO_COLOR 0 +#endif + +// <o> BLE_NUS_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef BLE_NUS_CONFIG_DEBUG_COLOR +#define BLE_NUS_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <q> BLE_RSCS_C_ENABLED - ble_rscs_c - Running Speed and Cadence Client + + +#ifndef BLE_RSCS_C_ENABLED +#define BLE_RSCS_C_ENABLED 0 +#endif + +// <q> BLE_RSCS_ENABLED - ble_rscs - Running Speed and Cadence Service + + +#ifndef BLE_RSCS_ENABLED +#define BLE_RSCS_ENABLED 0 +#endif + +// <q> BLE_TPS_ENABLED - ble_tps - TX Power Service + + +#ifndef BLE_TPS_ENABLED +#define BLE_TPS_ENABLED 0 +#endif + +// </h> +//========================================================== + +// <h> nRF_Core + +//========================================================== +// <e> NRF_MPU_LIB_ENABLED - nrf_mpu_lib - Module for MPU +//========================================================== +#ifndef NRF_MPU_LIB_ENABLED +#define NRF_MPU_LIB_ENABLED 0 +#endif +// <q> NRF_MPU_LIB_CLI_CMDS - Enable CLI commands specific to the module. + + +#ifndef NRF_MPU_LIB_CLI_CMDS +#define NRF_MPU_LIB_CLI_CMDS 0 +#endif + +// </e> + +// <e> NRF_STACK_GUARD_ENABLED - nrf_stack_guard - Stack guard +//========================================================== +#ifndef NRF_STACK_GUARD_ENABLED +#define NRF_STACK_GUARD_ENABLED 0 +#endif +// <o> NRF_STACK_GUARD_CONFIG_SIZE - Size of the stack guard. + +// <5=> 32 bytes +// <6=> 64 bytes +// <7=> 128 bytes +// <8=> 256 bytes +// <9=> 512 bytes +// <10=> 1024 bytes +// <11=> 2048 bytes +// <12=> 4096 bytes + +#ifndef NRF_STACK_GUARD_CONFIG_SIZE +#define NRF_STACK_GUARD_CONFIG_SIZE 7 +#endif + +// </e> + +// </h> +//========================================================== + +// <h> nRF_Crypto + +//========================================================== +// <e> NRF_CRYPTO_ENABLED - nrf_crypto - Cryptography library. +//========================================================== +#ifndef NRF_CRYPTO_ENABLED +#define NRF_CRYPTO_ENABLED 1 +#endif +// <o> NRF_CRYPTO_ALLOCATOR - Memory allocator + + +// <i> Choose memory allocator used by nrf_crypto. Default is alloca if possible or nrf_malloc otherwise. If 'User macros' are selected, the user has to create 'nrf_crypto_allocator.h' file that contains NRF_CRYPTO_ALLOC, NRF_CRYPTO_FREE, and NRF_CRYPTO_ALLOC_ON_STACK. +// <0=> Default +// <1=> User macros +// <2=> On stack (alloca) +// <3=> C dynamic memory (malloc) +// <4=> SDK Memory Manager (nrf_malloc) + +#ifndef NRF_CRYPTO_ALLOCATOR +#define NRF_CRYPTO_ALLOCATOR 0 +#endif + +// <e> NRF_CRYPTO_BACKEND_CC310_BL_ENABLED - Enable the ARM Cryptocell CC310 reduced backend. + +// <i> The CC310 hardware-accelerated cryptography backend with reduced functionality and footprint (only available on nRF52840). +//========================================================== +#ifndef NRF_CRYPTO_BACKEND_CC310_BL_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_BL_ENABLED 0 +#endif +// <q> NRF_CRYPTO_BACKEND_CC310_BL_ECC_SECP224R1_ENABLED - Enable the secp224r1 elliptic curve support using CC310_BL. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_BL_ECC_SECP224R1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_BL_ECC_SECP224R1_ENABLED 0 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_BL_ECC_SECP256R1_ENABLED - Enable the secp256r1 elliptic curve support using CC310_BL. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_BL_ECC_SECP256R1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_BL_ECC_SECP256R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_BL_HASH_SHA256_ENABLED - CC310_BL SHA-256 hash functionality. + + +// <i> CC310_BL backend implementation for hardware-accelerated SHA-256. + +#ifndef NRF_CRYPTO_BACKEND_CC310_BL_HASH_SHA256_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_BL_HASH_SHA256_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_BL_HASH_AUTOMATIC_RAM_BUFFER_ENABLED - nrf_cc310_bl buffers to RAM before running hash operation + + +// <i> Enabling this makes hashing of addresses in FLASH range possible. Size of buffer allocated for hashing is set by NRF_CRYPTO_BACKEND_CC310_BL_HASH_AUTOMATIC_RAM_BUFFER_SIZE + +#ifndef NRF_CRYPTO_BACKEND_CC310_BL_HASH_AUTOMATIC_RAM_BUFFER_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_BL_HASH_AUTOMATIC_RAM_BUFFER_ENABLED 0 +#endif + +// <o> NRF_CRYPTO_BACKEND_CC310_BL_HASH_AUTOMATIC_RAM_BUFFER_SIZE - nrf_cc310_bl hash outputs digests in little endian +// <i> Makes the nrf_cc310_bl hash functions output digests in little endian format. Only for use in nRF SDK DFU! + +#ifndef NRF_CRYPTO_BACKEND_CC310_BL_HASH_AUTOMATIC_RAM_BUFFER_SIZE +#define NRF_CRYPTO_BACKEND_CC310_BL_HASH_AUTOMATIC_RAM_BUFFER_SIZE 4096 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_BL_INTERRUPTS_ENABLED - Enable Interrupts while support using CC310 bl. + + +// <i> Select a library version compatible with the configuration. When interrupts are disable, a version named _noint must be used + +#ifndef NRF_CRYPTO_BACKEND_CC310_BL_INTERRUPTS_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_BL_INTERRUPTS_ENABLED 1 +#endif + +// </e> + +// <e> NRF_CRYPTO_BACKEND_CC310_ENABLED - Enable the ARM Cryptocell CC310 backend. + +// <i> The CC310 hardware-accelerated cryptography backend (only available on nRF52840). +//========================================================== +#ifndef NRF_CRYPTO_BACKEND_CC310_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ENABLED 0 +#endif +// <q> NRF_CRYPTO_BACKEND_CC310_AES_CBC_ENABLED - Enable the AES CBC mode using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_AES_CBC_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_AES_CBC_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_AES_CTR_ENABLED - Enable the AES CTR mode using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_AES_CTR_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_AES_CTR_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_AES_ECB_ENABLED - Enable the AES ECB mode using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_AES_ECB_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_AES_ECB_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_AES_CBC_MAC_ENABLED - Enable the AES CBC_MAC mode using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_AES_CBC_MAC_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_AES_CBC_MAC_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_AES_CMAC_ENABLED - Enable the AES CMAC mode using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_AES_CMAC_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_AES_CMAC_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_AES_CCM_ENABLED - Enable the AES CCM mode using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_AES_CCM_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_AES_CCM_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_AES_CCM_STAR_ENABLED - Enable the AES CCM* mode using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_AES_CCM_STAR_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_AES_CCM_STAR_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_CHACHA_POLY_ENABLED - Enable the CHACHA-POLY mode using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_CHACHA_POLY_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_CHACHA_POLY_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_ECC_SECP160R1_ENABLED - Enable the secp160r1 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP160R1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP160R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_ECC_SECP160R2_ENABLED - Enable the secp160r2 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP160R2_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP160R2_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_ECC_SECP192R1_ENABLED - Enable the secp192r1 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP192R1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP192R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_ECC_SECP224R1_ENABLED - Enable the secp224r1 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP224R1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP224R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_ECC_SECP256R1_ENABLED - Enable the secp256r1 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP256R1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP256R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_ECC_SECP384R1_ENABLED - Enable the secp384r1 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP384R1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP384R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_ECC_SECP521R1_ENABLED - Enable the secp521r1 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP521R1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP521R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_ECC_SECP160K1_ENABLED - Enable the secp160k1 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP160K1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP160K1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_ECC_SECP192K1_ENABLED - Enable the secp192k1 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP192K1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP192K1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_ECC_SECP224K1_ENABLED - Enable the secp224k1 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP224K1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP224K1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_ECC_SECP256K1_ENABLED - Enable the secp256k1 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP256K1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP256K1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_ECC_CURVE25519_ENABLED - Enable the Curve25519 curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_CURVE25519_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_CURVE25519_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_ECC_ED25519_ENABLED - Enable the Ed25519 curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_ED25519_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_ED25519_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_HASH_SHA256_ENABLED - CC310 SHA-256 hash functionality. + + +// <i> CC310 backend implementation for hardware-accelerated SHA-256. + +#ifndef NRF_CRYPTO_BACKEND_CC310_HASH_SHA256_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_HASH_SHA256_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_HASH_SHA512_ENABLED - CC310 SHA-512 hash functionality + + +// <i> CC310 backend implementation for SHA-512 (in software). + +#ifndef NRF_CRYPTO_BACKEND_CC310_HASH_SHA512_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_HASH_SHA512_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_HMAC_SHA256_ENABLED - CC310 HMAC using SHA-256 + + +// <i> CC310 backend implementation for HMAC using hardware-accelerated SHA-256. + +#ifndef NRF_CRYPTO_BACKEND_CC310_HMAC_SHA256_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_HMAC_SHA256_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_HMAC_SHA512_ENABLED - CC310 HMAC using SHA-512 + + +// <i> CC310 backend implementation for HMAC using SHA-512 (in software). + +#ifndef NRF_CRYPTO_BACKEND_CC310_HMAC_SHA512_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_HMAC_SHA512_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_RNG_ENABLED - Enable RNG support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_RNG_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_RNG_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_INTERRUPTS_ENABLED - Enable Interrupts while support using CC310. + + +// <i> Select a library version compatible with the configuration. When interrupts are disable, a version named _noint must be used + +#ifndef NRF_CRYPTO_BACKEND_CC310_INTERRUPTS_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_INTERRUPTS_ENABLED 1 +#endif + +// </e> + +// <e> NRF_CRYPTO_BACKEND_CIFRA_ENABLED - Enable the Cifra backend. +//========================================================== +#ifndef NRF_CRYPTO_BACKEND_CIFRA_ENABLED +#define NRF_CRYPTO_BACKEND_CIFRA_ENABLED 0 +#endif +// <q> NRF_CRYPTO_BACKEND_CIFRA_AES_EAX_ENABLED - Enable the AES EAX mode using Cifra. + + +#ifndef NRF_CRYPTO_BACKEND_CIFRA_AES_EAX_ENABLED +#define NRF_CRYPTO_BACKEND_CIFRA_AES_EAX_ENABLED 1 +#endif + +// </e> + +// <e> NRF_CRYPTO_BACKEND_MBEDTLS_ENABLED - Enable the mbed TLS backend. +//========================================================== +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ENABLED 0 +#endif +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_AES_CBC_ENABLED - Enable the AES CBC mode mbed TLS. + + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_AES_CBC_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_AES_CBC_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_AES_CTR_ENABLED - Enable the AES CTR mode using mbed TLS. + + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_AES_CTR_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_AES_CTR_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_AES_CFB_ENABLED - Enable the AES CFB mode using mbed TLS. + + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_AES_CFB_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_AES_CFB_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_AES_ECB_ENABLED - Enable the AES ECB mode using mbed TLS. + + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_AES_ECB_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_AES_ECB_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_AES_CBC_MAC_ENABLED - Enable the AES CBC MAC mode using mbed TLS. + + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_AES_CBC_MAC_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_AES_CBC_MAC_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_AES_CMAC_ENABLED - Enable the AES CMAC mode using mbed TLS. + + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_AES_CMAC_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_AES_CMAC_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_AES_CCM_ENABLED - Enable the AES CCM mode using mbed TLS. + + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_AES_CCM_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_AES_CCM_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_AES_GCM_ENABLED - Enable the AES GCM mode using mbed TLS. + + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_AES_GCM_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_AES_GCM_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP192R1_ENABLED - Enable secp192r1 (NIST 192-bit) curve + + +// <i> Enable this setting if you need secp192r1 (NIST 192-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP192R1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP192R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP224R1_ENABLED - Enable secp224r1 (NIST 224-bit) curve + + +// <i> Enable this setting if you need secp224r1 (NIST 224-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP224R1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP224R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP256R1_ENABLED - Enable secp256r1 (NIST 256-bit) curve + + +// <i> Enable this setting if you need secp256r1 (NIST 256-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP256R1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP256R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP384R1_ENABLED - Enable secp384r1 (NIST 384-bit) curve + + +// <i> Enable this setting if you need secp384r1 (NIST 384-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP384R1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP384R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP521R1_ENABLED - Enable secp521r1 (NIST 521-bit) curve + + +// <i> Enable this setting if you need secp521r1 (NIST 521-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP521R1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP521R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP192K1_ENABLED - Enable secp192k1 (Koblitz 192-bit) curve + + +// <i> Enable this setting if you need secp192k1 (Koblitz 192-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP192K1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP192K1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP224K1_ENABLED - Enable secp224k1 (Koblitz 224-bit) curve + + +// <i> Enable this setting if you need secp224k1 (Koblitz 224-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP224K1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP224K1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP256K1_ENABLED - Enable secp256k1 (Koblitz 256-bit) curve + + +// <i> Enable this setting if you need secp256k1 (Koblitz 256-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP256K1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP256K1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_ECC_BP256R1_ENABLED - Enable bp256r1 (Brainpool 256-bit) curve + + +// <i> Enable this setting if you need bp256r1 (Brainpool 256-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_BP256R1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_BP256R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_ECC_BP384R1_ENABLED - Enable bp384r1 (Brainpool 384-bit) curve + + +// <i> Enable this setting if you need bp384r1 (Brainpool 384-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_BP384R1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_BP384R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_ECC_BP512R1_ENABLED - Enable bp512r1 (Brainpool 512-bit) curve + + +// <i> Enable this setting if you need bp512r1 (Brainpool 512-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_BP512R1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_BP512R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_ECC_CURVE25519_ENABLED - Enable Curve25519 curve + + +// <i> Enable this setting if you need Curve25519 support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_CURVE25519_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_CURVE25519_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_HASH_SHA256_ENABLED - Enable mbed TLS SHA-256 hash functionality. + + +// <i> mbed TLS backend implementation for SHA-256. + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_HASH_SHA256_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_HASH_SHA256_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_HASH_SHA512_ENABLED - Enable mbed TLS SHA-512 hash functionality. + + +// <i> mbed TLS backend implementation for SHA-512. + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_HASH_SHA512_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_HASH_SHA512_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_HMAC_SHA256_ENABLED - Enable mbed TLS HMAC using SHA-256. + + +// <i> mbed TLS backend implementation for HMAC using SHA-256. + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_HMAC_SHA256_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_HMAC_SHA256_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_HMAC_SHA512_ENABLED - Enable mbed TLS HMAC using SHA-512. + + +// <i> mbed TLS backend implementation for HMAC using SHA-512. + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_HMAC_SHA512_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_HMAC_SHA512_ENABLED 1 +#endif + +// </e> + +// <e> NRF_CRYPTO_BACKEND_MICRO_ECC_ENABLED - Enable the micro-ecc backend. +//========================================================== +#ifndef NRF_CRYPTO_BACKEND_MICRO_ECC_ENABLED +#define NRF_CRYPTO_BACKEND_MICRO_ECC_ENABLED 0 +#endif +// <q> NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP192R1_ENABLED - Enable secp192r1 (NIST 192-bit) curve + + +// <i> Enable this setting if you need secp192r1 (NIST 192-bit) support using micro-ecc + +#ifndef NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP192R1_ENABLED +#define NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP192R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP224R1_ENABLED - Enable secp224r1 (NIST 224-bit) curve + + +// <i> Enable this setting if you need secp224r1 (NIST 224-bit) support using micro-ecc + +#ifndef NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP224R1_ENABLED +#define NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP224R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP256R1_ENABLED - Enable secp256r1 (NIST 256-bit) curve + + +// <i> Enable this setting if you need secp256r1 (NIST 256-bit) support using micro-ecc + +#ifndef NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP256R1_ENABLED +#define NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP256R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP256K1_ENABLED - Enable secp256k1 (Koblitz 256-bit) curve + + +// <i> Enable this setting if you need secp256k1 (Koblitz 256-bit) support using micro-ecc + +#ifndef NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP256K1_ENABLED +#define NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP256K1_ENABLED 1 +#endif + +// </e> + +// <e> NRF_CRYPTO_BACKEND_NRF_HW_RNG_ENABLED - Enable the nRF HW RNG backend. + +// <i> The nRF HW backend provide access to RNG peripheral in nRF5x devices. +//========================================================== +#ifndef NRF_CRYPTO_BACKEND_NRF_HW_RNG_ENABLED +#define NRF_CRYPTO_BACKEND_NRF_HW_RNG_ENABLED 0 +#endif +// <q> NRF_CRYPTO_BACKEND_NRF_HW_RNG_MBEDTLS_CTR_DRBG_ENABLED - Enable mbed TLS CTR-DRBG algorithm. + + +// <i> Enable mbed TLS CTR-DRBG standardized by NIST (NIST SP 800-90A Rev. 1). The nRF HW RNG is used as an entropy source for seeding. + +#ifndef NRF_CRYPTO_BACKEND_NRF_HW_RNG_MBEDTLS_CTR_DRBG_ENABLED +#define NRF_CRYPTO_BACKEND_NRF_HW_RNG_MBEDTLS_CTR_DRBG_ENABLED 1 +#endif + +// </e> + +// <e> NRF_CRYPTO_BACKEND_NRF_SW_ENABLED - Enable the legacy nRFx sw for crypto. + +// <i> The nRF SW cryptography backend (only used in bootloader context). +//========================================================== +#ifndef NRF_CRYPTO_BACKEND_NRF_SW_ENABLED +#define NRF_CRYPTO_BACKEND_NRF_SW_ENABLED 0 +#endif +// <q> NRF_CRYPTO_BACKEND_NRF_SW_HASH_SHA256_ENABLED - nRF SW hash backend support for SHA-256 + + +// <i> The nRF SW backend provide access to nRF SDK legacy hash implementation of SHA-256. + +#ifndef NRF_CRYPTO_BACKEND_NRF_SW_HASH_SHA256_ENABLED +#define NRF_CRYPTO_BACKEND_NRF_SW_HASH_SHA256_ENABLED 1 +#endif + +// </e> + +// <e> NRF_CRYPTO_BACKEND_OBERON_ENABLED - Enable the Oberon backend + +// <i> The Oberon backend +//========================================================== +#ifndef NRF_CRYPTO_BACKEND_OBERON_ENABLED +#define NRF_CRYPTO_BACKEND_OBERON_ENABLED 0 +#endif +// <q> NRF_CRYPTO_BACKEND_OBERON_CHACHA_POLY_ENABLED - Enable the CHACHA-POLY mode using Oberon. + + +#ifndef NRF_CRYPTO_BACKEND_OBERON_CHACHA_POLY_ENABLED +#define NRF_CRYPTO_BACKEND_OBERON_CHACHA_POLY_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_OBERON_ECC_SECP256R1_ENABLED - Enable secp256r1 curve + + +// <i> Enable this setting if you need secp256r1 curve support using Oberon library + +#ifndef NRF_CRYPTO_BACKEND_OBERON_ECC_SECP256R1_ENABLED +#define NRF_CRYPTO_BACKEND_OBERON_ECC_SECP256R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_OBERON_ECC_CURVE25519_ENABLED - Enable Curve25519 ECDH + + +// <i> Enable this setting if you need Curve25519 ECDH support using Oberon library + +#ifndef NRF_CRYPTO_BACKEND_OBERON_ECC_CURVE25519_ENABLED +#define NRF_CRYPTO_BACKEND_OBERON_ECC_CURVE25519_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_OBERON_ECC_ED25519_ENABLED - Enable Ed25519 signature scheme + + +// <i> Enable this setting if you need Ed25519 support using Oberon library + +#ifndef NRF_CRYPTO_BACKEND_OBERON_ECC_ED25519_ENABLED +#define NRF_CRYPTO_BACKEND_OBERON_ECC_ED25519_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_OBERON_HASH_SHA256_ENABLED - Oberon SHA-256 hash functionality + + +// <i> Oberon backend implementation for SHA-256. + +#ifndef NRF_CRYPTO_BACKEND_OBERON_HASH_SHA256_ENABLED +#define NRF_CRYPTO_BACKEND_OBERON_HASH_SHA256_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_OBERON_HASH_SHA512_ENABLED - Oberon SHA-512 hash functionality + + +// <i> Oberon backend implementation for SHA-512. + +#ifndef NRF_CRYPTO_BACKEND_OBERON_HASH_SHA512_ENABLED +#define NRF_CRYPTO_BACKEND_OBERON_HASH_SHA512_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_OBERON_HMAC_SHA256_ENABLED - Oberon HMAC using SHA-256 + + +// <i> Oberon backend implementation for HMAC using SHA-256. + +#ifndef NRF_CRYPTO_BACKEND_OBERON_HMAC_SHA256_ENABLED +#define NRF_CRYPTO_BACKEND_OBERON_HMAC_SHA256_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_OBERON_HMAC_SHA512_ENABLED - Oberon HMAC using SHA-512 + + +// <i> Oberon backend implementation for HMAC using SHA-512. + +#ifndef NRF_CRYPTO_BACKEND_OBERON_HMAC_SHA512_ENABLED +#define NRF_CRYPTO_BACKEND_OBERON_HMAC_SHA512_ENABLED 1 +#endif + +// </e> + +// <e> NRF_CRYPTO_BACKEND_OPTIGA_ENABLED - Enable the nrf_crypto Optiga Trust X backend. + +// <i> Enables the nrf_crypto backend for Optiga Trust X devices. +//========================================================== +#ifndef NRF_CRYPTO_BACKEND_OPTIGA_ENABLED +#define NRF_CRYPTO_BACKEND_OPTIGA_ENABLED 0 +#endif +// <q> NRF_CRYPTO_BACKEND_OPTIGA_RNG_ENABLED - Optiga backend support for RNG + + +// <i> The Optiga backend provide external chip RNG. + +#ifndef NRF_CRYPTO_BACKEND_OPTIGA_RNG_ENABLED +#define NRF_CRYPTO_BACKEND_OPTIGA_RNG_ENABLED 0 +#endif + +// <q> NRF_CRYPTO_BACKEND_OPTIGA_ECC_SECP256R1_ENABLED - Optiga backend support for ECC secp256r1 + + +// <i> The Optiga backend provide external chip ECC using secp256r1. + +#ifndef NRF_CRYPTO_BACKEND_OPTIGA_ECC_SECP256R1_ENABLED +#define NRF_CRYPTO_BACKEND_OPTIGA_ECC_SECP256R1_ENABLED 1 +#endif + +// </e> + +// <q> NRF_CRYPTO_CURVE25519_BIG_ENDIAN_ENABLED - Big-endian byte order in raw Curve25519 data + + +// <i> Enable big-endian byte order in Curve25519 API, if set to 1. Use little-endian, if set to 0. + +#ifndef NRF_CRYPTO_CURVE25519_BIG_ENDIAN_ENABLED +#define NRF_CRYPTO_CURVE25519_BIG_ENDIAN_ENABLED 0 +#endif + +// </e> + +// </h> +//========================================================== + +// <h> nRF_DFU + +//========================================================== +// <h> ble_dfu - Device Firmware Update + +//========================================================== +// <q> BLE_DFU_ENABLED - Enable DFU Service. + + +#ifndef BLE_DFU_ENABLED +#define BLE_DFU_ENABLED 0 +#endif + +// <q> NRF_DFU_BLE_BUTTONLESS_SUPPORTS_BONDS - Buttonless DFU supports bonds. + + +#ifndef NRF_DFU_BLE_BUTTONLESS_SUPPORTS_BONDS +#define NRF_DFU_BLE_BUTTONLESS_SUPPORTS_BONDS 0 +#endif + +// </h> +//========================================================== + +// </h> +//========================================================== + +// <h> nRF_Drivers + +//========================================================== +// <e> COMP_ENABLED - nrf_drv_comp - COMP peripheral driver - legacy layer +//========================================================== +#ifndef COMP_ENABLED +#define COMP_ENABLED 0 +#endif +// <o> COMP_CONFIG_REF - Reference voltage + +// <0=> Internal 1.2V +// <1=> Internal 1.8V +// <2=> Internal 2.4V +// <4=> VDD +// <7=> ARef + +#ifndef COMP_CONFIG_REF +#define COMP_CONFIG_REF 1 +#endif + +// <o> COMP_CONFIG_MAIN_MODE - Main mode + +// <0=> Single ended +// <1=> Differential + +#ifndef COMP_CONFIG_MAIN_MODE +#define COMP_CONFIG_MAIN_MODE 0 +#endif + +// <o> COMP_CONFIG_SPEED_MODE - Speed mode + +// <0=> Low power +// <1=> Normal +// <2=> High speed + +#ifndef COMP_CONFIG_SPEED_MODE +#define COMP_CONFIG_SPEED_MODE 2 +#endif + +// <o> COMP_CONFIG_HYST - Hystheresis + +// <0=> No +// <1=> 50mV + +#ifndef COMP_CONFIG_HYST +#define COMP_CONFIG_HYST 0 +#endif + +// <o> COMP_CONFIG_ISOURCE - Current Source + +// <0=> Off +// <1=> 2.5 uA +// <2=> 5 uA +// <3=> 10 uA + +#ifndef COMP_CONFIG_ISOURCE +#define COMP_CONFIG_ISOURCE 0 +#endif + +// <o> COMP_CONFIG_INPUT - Analog input + +// <0=> 0 +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef COMP_CONFIG_INPUT +#define COMP_CONFIG_INPUT 0 +#endif + +// <o> COMP_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef COMP_CONFIG_IRQ_PRIORITY +#define COMP_CONFIG_IRQ_PRIORITY 6 +#endif + +// </e> + +// <q> EGU_ENABLED - nrf_drv_swi - SWI(EGU) peripheral driver - legacy layer + + +#ifndef EGU_ENABLED +#define EGU_ENABLED 0 +#endif + +// <e> GPIOTE_ENABLED - nrf_drv_gpiote - GPIOTE peripheral driver - legacy layer +//========================================================== +#ifndef GPIOTE_ENABLED +#define GPIOTE_ENABLED 0 +#endif +// <o> GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS - Number of lower power input pins +#ifndef GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS +#define GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS 1 +#endif + +// <o> GPIOTE_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef GPIOTE_CONFIG_IRQ_PRIORITY +#define GPIOTE_CONFIG_IRQ_PRIORITY 6 +#endif + +// </e> + +// <e> I2S_ENABLED - nrf_drv_i2s - I2S peripheral driver - legacy layer +//========================================================== +#ifndef I2S_ENABLED +#define I2S_ENABLED 0 +#endif +// <o> I2S_CONFIG_SCK_PIN - SCK pin <0-31> + + +#ifndef I2S_CONFIG_SCK_PIN +#define I2S_CONFIG_SCK_PIN 31 +#endif + +// <o> I2S_CONFIG_LRCK_PIN - LRCK pin <1-31> + + +#ifndef I2S_CONFIG_LRCK_PIN +#define I2S_CONFIG_LRCK_PIN 30 +#endif + +// <o> I2S_CONFIG_MCK_PIN - MCK pin +#ifndef I2S_CONFIG_MCK_PIN +#define I2S_CONFIG_MCK_PIN 255 +#endif + +// <o> I2S_CONFIG_SDOUT_PIN - SDOUT pin <0-31> + + +#ifndef I2S_CONFIG_SDOUT_PIN +#define I2S_CONFIG_SDOUT_PIN 29 +#endif + +// <o> I2S_CONFIG_SDIN_PIN - SDIN pin <0-31> + + +#ifndef I2S_CONFIG_SDIN_PIN +#define I2S_CONFIG_SDIN_PIN 28 +#endif + +// <o> I2S_CONFIG_MASTER - Mode + +// <0=> Master +// <1=> Slave + +#ifndef I2S_CONFIG_MASTER +#define I2S_CONFIG_MASTER 0 +#endif + +// <o> I2S_CONFIG_FORMAT - Format + +// <0=> I2S +// <1=> Aligned + +#ifndef I2S_CONFIG_FORMAT +#define I2S_CONFIG_FORMAT 0 +#endif + +// <o> I2S_CONFIG_ALIGN - Alignment + +// <0=> Left +// <1=> Right + +#ifndef I2S_CONFIG_ALIGN +#define I2S_CONFIG_ALIGN 0 +#endif + +// <o> I2S_CONFIG_SWIDTH - Sample width (bits) + +// <0=> 8 +// <1=> 16 +// <2=> 24 + +#ifndef I2S_CONFIG_SWIDTH +#define I2S_CONFIG_SWIDTH 1 +#endif + +// <o> I2S_CONFIG_CHANNELS - Channels + +// <0=> Stereo +// <1=> Left +// <2=> Right + +#ifndef I2S_CONFIG_CHANNELS +#define I2S_CONFIG_CHANNELS 1 +#endif + +// <o> I2S_CONFIG_MCK_SETUP - MCK behavior + +// <0=> Disabled +// <2147483648=> 32MHz/2 +// <1342177280=> 32MHz/3 +// <1073741824=> 32MHz/4 +// <805306368=> 32MHz/5 +// <671088640=> 32MHz/6 +// <536870912=> 32MHz/8 +// <402653184=> 32MHz/10 +// <369098752=> 32MHz/11 +// <285212672=> 32MHz/15 +// <268435456=> 32MHz/16 +// <201326592=> 32MHz/21 +// <184549376=> 32MHz/23 +// <142606336=> 32MHz/30 +// <138412032=> 32MHz/31 +// <134217728=> 32MHz/32 +// <100663296=> 32MHz/42 +// <68157440=> 32MHz/63 +// <34340864=> 32MHz/125 + +#ifndef I2S_CONFIG_MCK_SETUP +#define I2S_CONFIG_MCK_SETUP 536870912 +#endif + +// <o> I2S_CONFIG_RATIO - MCK/LRCK ratio + +// <0=> 32x +// <1=> 48x +// <2=> 64x +// <3=> 96x +// <4=> 128x +// <5=> 192x +// <6=> 256x +// <7=> 384x +// <8=> 512x + +#ifndef I2S_CONFIG_RATIO +#define I2S_CONFIG_RATIO 2000 +#endif + +// <o> I2S_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef I2S_CONFIG_IRQ_PRIORITY +#define I2S_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> I2S_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef I2S_CONFIG_LOG_ENABLED +#define I2S_CONFIG_LOG_ENABLED 0 +#endif +// <o> I2S_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef I2S_CONFIG_LOG_LEVEL +#define I2S_CONFIG_LOG_LEVEL 3 +#endif + +// <o> I2S_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef I2S_CONFIG_INFO_COLOR +#define I2S_CONFIG_INFO_COLOR 0 +#endif + +// <o> I2S_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef I2S_CONFIG_DEBUG_COLOR +#define I2S_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> LPCOMP_ENABLED - nrf_drv_lpcomp - LPCOMP peripheral driver - legacy layer +//========================================================== +#ifndef LPCOMP_ENABLED +#define LPCOMP_ENABLED 0 +#endif +// <o> LPCOMP_CONFIG_REFERENCE - Reference voltage + +// <0=> Supply 1/8 +// <1=> Supply 2/8 +// <2=> Supply 3/8 +// <3=> Supply 4/8 +// <4=> Supply 5/8 +// <5=> Supply 6/8 +// <6=> Supply 7/8 +// <8=> Supply 1/16 (nRF52) +// <9=> Supply 3/16 (nRF52) +// <10=> Supply 5/16 (nRF52) +// <11=> Supply 7/16 (nRF52) +// <12=> Supply 9/16 (nRF52) +// <13=> Supply 11/16 (nRF52) +// <14=> Supply 13/16 (nRF52) +// <15=> Supply 15/16 (nRF52) +// <7=> External Ref 0 +// <65543=> External Ref 1 + +#ifndef LPCOMP_CONFIG_REFERENCE +#define LPCOMP_CONFIG_REFERENCE 3 +#endif + +// <o> LPCOMP_CONFIG_DETECTION - Detection + +// <0=> Crossing +// <1=> Up +// <2=> Down + +#ifndef LPCOMP_CONFIG_DETECTION +#define LPCOMP_CONFIG_DETECTION 2 +#endif + +// <o> LPCOMP_CONFIG_INPUT - Analog input + +// <0=> 0 +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef LPCOMP_CONFIG_INPUT +#define LPCOMP_CONFIG_INPUT 0 +#endif + +// <q> LPCOMP_CONFIG_HYST - Hysteresis + + +#ifndef LPCOMP_CONFIG_HYST +#define LPCOMP_CONFIG_HYST 0 +#endif + +// <o> LPCOMP_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef LPCOMP_CONFIG_IRQ_PRIORITY +#define LPCOMP_CONFIG_IRQ_PRIORITY 6 +#endif + +// </e> + +// <e> NRFX_CLOCK_ENABLED - nrfx_clock - CLOCK peripheral driver +//========================================================== +#ifndef NRFX_CLOCK_ENABLED +#define NRFX_CLOCK_ENABLED 0 +#endif +// <o> NRFX_CLOCK_CONFIG_LF_SRC - LF Clock Source + +// <0=> RC +// <1=> XTAL +// <2=> Synth +// <131073=> External Low Swing +// <196609=> External Full Swing + +#ifndef NRFX_CLOCK_CONFIG_LF_SRC +#define NRFX_CLOCK_CONFIG_LF_SRC 1 +#endif + +// <o> NRFX_CLOCK_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_CLOCK_CONFIG_IRQ_PRIORITY +#define NRFX_CLOCK_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_CLOCK_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_CLOCK_CONFIG_LOG_ENABLED +#define NRFX_CLOCK_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_CLOCK_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_CLOCK_CONFIG_LOG_LEVEL +#define NRFX_CLOCK_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_CLOCK_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_CLOCK_CONFIG_INFO_COLOR +#define NRFX_CLOCK_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_CLOCK_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_CLOCK_CONFIG_DEBUG_COLOR +#define NRFX_CLOCK_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_COMP_ENABLED - nrfx_comp - COMP peripheral driver +//========================================================== +#ifndef NRFX_COMP_ENABLED +#define NRFX_COMP_ENABLED 0 +#endif +// <o> NRFX_COMP_CONFIG_REF - Reference voltage + +// <0=> Internal 1.2V +// <1=> Internal 1.8V +// <2=> Internal 2.4V +// <4=> VDD +// <7=> ARef + +#ifndef NRFX_COMP_CONFIG_REF +#define NRFX_COMP_CONFIG_REF 1 +#endif + +// <o> NRFX_COMP_CONFIG_MAIN_MODE - Main mode + +// <0=> Single ended +// <1=> Differential + +#ifndef NRFX_COMP_CONFIG_MAIN_MODE +#define NRFX_COMP_CONFIG_MAIN_MODE 0 +#endif + +// <o> NRFX_COMP_CONFIG_SPEED_MODE - Speed mode + +// <0=> Low power +// <1=> Normal +// <2=> High speed + +#ifndef NRFX_COMP_CONFIG_SPEED_MODE +#define NRFX_COMP_CONFIG_SPEED_MODE 2 +#endif + +// <o> NRFX_COMP_CONFIG_HYST - Hystheresis + +// <0=> No +// <1=> 50mV + +#ifndef NRFX_COMP_CONFIG_HYST +#define NRFX_COMP_CONFIG_HYST 0 +#endif + +// <o> NRFX_COMP_CONFIG_ISOURCE - Current Source + +// <0=> Off +// <1=> 2.5 uA +// <2=> 5 uA +// <3=> 10 uA + +#ifndef NRFX_COMP_CONFIG_ISOURCE +#define NRFX_COMP_CONFIG_ISOURCE 0 +#endif + +// <o> NRFX_COMP_CONFIG_INPUT - Analog input + +// <0=> 0 +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_COMP_CONFIG_INPUT +#define NRFX_COMP_CONFIG_INPUT 0 +#endif + +// <o> NRFX_COMP_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_COMP_CONFIG_IRQ_PRIORITY +#define NRFX_COMP_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_COMP_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_COMP_CONFIG_LOG_ENABLED +#define NRFX_COMP_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_COMP_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_COMP_CONFIG_LOG_LEVEL +#define NRFX_COMP_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_COMP_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_COMP_CONFIG_INFO_COLOR +#define NRFX_COMP_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_COMP_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_COMP_CONFIG_DEBUG_COLOR +#define NRFX_COMP_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_GPIOTE_ENABLED - nrfx_gpiote - GPIOTE peripheral driver +//========================================================== +#ifndef NRFX_GPIOTE_ENABLED +#define NRFX_GPIOTE_ENABLED 0 +#endif +// <o> NRFX_GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS - Number of lower power input pins +#ifndef NRFX_GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS +#define NRFX_GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS 1 +#endif + +// <o> NRFX_GPIOTE_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_GPIOTE_CONFIG_IRQ_PRIORITY +#define NRFX_GPIOTE_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_GPIOTE_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_GPIOTE_CONFIG_LOG_ENABLED +#define NRFX_GPIOTE_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_GPIOTE_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_GPIOTE_CONFIG_LOG_LEVEL +#define NRFX_GPIOTE_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_GPIOTE_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_GPIOTE_CONFIG_INFO_COLOR +#define NRFX_GPIOTE_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_GPIOTE_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_GPIOTE_CONFIG_DEBUG_COLOR +#define NRFX_GPIOTE_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_I2S_ENABLED - nrfx_i2s - I2S peripheral driver +//========================================================== +#ifndef NRFX_I2S_ENABLED +#define NRFX_I2S_ENABLED 0 +#endif +// <o> NRFX_I2S_CONFIG_SCK_PIN - SCK pin <0-31> + + +#ifndef NRFX_I2S_CONFIG_SCK_PIN +#define NRFX_I2S_CONFIG_SCK_PIN 31 +#endif + +// <o> NRFX_I2S_CONFIG_LRCK_PIN - LRCK pin <1-31> + + +#ifndef NRFX_I2S_CONFIG_LRCK_PIN +#define NRFX_I2S_CONFIG_LRCK_PIN 30 +#endif + +// <o> NRFX_I2S_CONFIG_MCK_PIN - MCK pin +#ifndef NRFX_I2S_CONFIG_MCK_PIN +#define NRFX_I2S_CONFIG_MCK_PIN 255 +#endif + +// <o> NRFX_I2S_CONFIG_SDOUT_PIN - SDOUT pin <0-31> + + +#ifndef NRFX_I2S_CONFIG_SDOUT_PIN +#define NRFX_I2S_CONFIG_SDOUT_PIN 29 +#endif + +// <o> NRFX_I2S_CONFIG_SDIN_PIN - SDIN pin <0-31> + + +#ifndef NRFX_I2S_CONFIG_SDIN_PIN +#define NRFX_I2S_CONFIG_SDIN_PIN 28 +#endif + +// <o> NRFX_I2S_CONFIG_MASTER - Mode + +// <0=> Master +// <1=> Slave + +#ifndef NRFX_I2S_CONFIG_MASTER +#define NRFX_I2S_CONFIG_MASTER 0 +#endif + +// <o> NRFX_I2S_CONFIG_FORMAT - Format + +// <0=> I2S +// <1=> Aligned + +#ifndef NRFX_I2S_CONFIG_FORMAT +#define NRFX_I2S_CONFIG_FORMAT 0 +#endif + +// <o> NRFX_I2S_CONFIG_ALIGN - Alignment + +// <0=> Left +// <1=> Right + +#ifndef NRFX_I2S_CONFIG_ALIGN +#define NRFX_I2S_CONFIG_ALIGN 0 +#endif + +// <o> NRFX_I2S_CONFIG_SWIDTH - Sample width (bits) + +// <0=> 8 +// <1=> 16 +// <2=> 24 + +#ifndef NRFX_I2S_CONFIG_SWIDTH +#define NRFX_I2S_CONFIG_SWIDTH 1 +#endif + +// <o> NRFX_I2S_CONFIG_CHANNELS - Channels + +// <0=> Stereo +// <1=> Left +// <2=> Right + +#ifndef NRFX_I2S_CONFIG_CHANNELS +#define NRFX_I2S_CONFIG_CHANNELS 1 +#endif + +// <o> NRFX_I2S_CONFIG_MCK_SETUP - MCK behavior + +// <0=> Disabled +// <2147483648=> 32MHz/2 +// <1342177280=> 32MHz/3 +// <1073741824=> 32MHz/4 +// <805306368=> 32MHz/5 +// <671088640=> 32MHz/6 +// <536870912=> 32MHz/8 +// <402653184=> 32MHz/10 +// <369098752=> 32MHz/11 +// <285212672=> 32MHz/15 +// <268435456=> 32MHz/16 +// <201326592=> 32MHz/21 +// <184549376=> 32MHz/23 +// <142606336=> 32MHz/30 +// <138412032=> 32MHz/31 +// <134217728=> 32MHz/32 +// <100663296=> 32MHz/42 +// <68157440=> 32MHz/63 +// <34340864=> 32MHz/125 + +#ifndef NRFX_I2S_CONFIG_MCK_SETUP +#define NRFX_I2S_CONFIG_MCK_SETUP 536870912 +#endif + +// <o> NRFX_I2S_CONFIG_RATIO - MCK/LRCK ratio + +// <0=> 32x +// <1=> 48x +// <2=> 64x +// <3=> 96x +// <4=> 128x +// <5=> 192x +// <6=> 256x +// <7=> 384x +// <8=> 512x + +#ifndef NRFX_I2S_CONFIG_RATIO +#define NRFX_I2S_CONFIG_RATIO 2000 +#endif + +// <o> NRFX_I2S_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_I2S_CONFIG_IRQ_PRIORITY +#define NRFX_I2S_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_I2S_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_I2S_CONFIG_LOG_ENABLED +#define NRFX_I2S_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_I2S_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_I2S_CONFIG_LOG_LEVEL +#define NRFX_I2S_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_I2S_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_I2S_CONFIG_INFO_COLOR +#define NRFX_I2S_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_I2S_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_I2S_CONFIG_DEBUG_COLOR +#define NRFX_I2S_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_LPCOMP_ENABLED - nrfx_lpcomp - LPCOMP peripheral driver +//========================================================== +#ifndef NRFX_LPCOMP_ENABLED +#define NRFX_LPCOMP_ENABLED 0 +#endif +// <o> NRFX_LPCOMP_CONFIG_REFERENCE - Reference voltage + +// <0=> Supply 1/8 +// <1=> Supply 2/8 +// <2=> Supply 3/8 +// <3=> Supply 4/8 +// <4=> Supply 5/8 +// <5=> Supply 6/8 +// <6=> Supply 7/8 +// <8=> Supply 1/16 (nRF52) +// <9=> Supply 3/16 (nRF52) +// <10=> Supply 5/16 (nRF52) +// <11=> Supply 7/16 (nRF52) +// <12=> Supply 9/16 (nRF52) +// <13=> Supply 11/16 (nRF52) +// <14=> Supply 13/16 (nRF52) +// <15=> Supply 15/16 (nRF52) +// <7=> External Ref 0 +// <65543=> External Ref 1 + +#ifndef NRFX_LPCOMP_CONFIG_REFERENCE +#define NRFX_LPCOMP_CONFIG_REFERENCE 3 +#endif + +// <o> NRFX_LPCOMP_CONFIG_DETECTION - Detection + +// <0=> Crossing +// <1=> Up +// <2=> Down + +#ifndef NRFX_LPCOMP_CONFIG_DETECTION +#define NRFX_LPCOMP_CONFIG_DETECTION 2 +#endif + +// <o> NRFX_LPCOMP_CONFIG_INPUT - Analog input + +// <0=> 0 +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_LPCOMP_CONFIG_INPUT +#define NRFX_LPCOMP_CONFIG_INPUT 0 +#endif + +// <q> NRFX_LPCOMP_CONFIG_HYST - Hysteresis + + +#ifndef NRFX_LPCOMP_CONFIG_HYST +#define NRFX_LPCOMP_CONFIG_HYST 0 +#endif + +// <o> NRFX_LPCOMP_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_LPCOMP_CONFIG_IRQ_PRIORITY +#define NRFX_LPCOMP_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_LPCOMP_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_LPCOMP_CONFIG_LOG_ENABLED +#define NRFX_LPCOMP_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_LPCOMP_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_LPCOMP_CONFIG_LOG_LEVEL +#define NRFX_LPCOMP_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_LPCOMP_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_LPCOMP_CONFIG_INFO_COLOR +#define NRFX_LPCOMP_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_LPCOMP_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_LPCOMP_CONFIG_DEBUG_COLOR +#define NRFX_LPCOMP_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_NFCT_ENABLED - nrfx_nfct - NFCT peripheral driver +//========================================================== +#ifndef NRFX_NFCT_ENABLED +#define NRFX_NFCT_ENABLED 0 +#endif +// <o> NRFX_NFCT_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_NFCT_CONFIG_IRQ_PRIORITY +#define NRFX_NFCT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_NFCT_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_NFCT_CONFIG_LOG_ENABLED +#define NRFX_NFCT_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_NFCT_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_NFCT_CONFIG_LOG_LEVEL +#define NRFX_NFCT_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_NFCT_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_NFCT_CONFIG_INFO_COLOR +#define NRFX_NFCT_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_NFCT_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_NFCT_CONFIG_DEBUG_COLOR +#define NRFX_NFCT_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_PDM_ENABLED - nrfx_pdm - PDM peripheral driver +//========================================================== +#ifndef NRFX_PDM_ENABLED +#define NRFX_PDM_ENABLED 0 +#endif +// <o> NRFX_PDM_CONFIG_MODE - Mode + +// <0=> Stereo +// <1=> Mono + +#ifndef NRFX_PDM_CONFIG_MODE +#define NRFX_PDM_CONFIG_MODE 1 +#endif + +// <o> NRFX_PDM_CONFIG_EDGE - Edge + +// <0=> Left falling +// <1=> Left rising + +#ifndef NRFX_PDM_CONFIG_EDGE +#define NRFX_PDM_CONFIG_EDGE 0 +#endif + +// <o> NRFX_PDM_CONFIG_CLOCK_FREQ - Clock frequency + +// <134217728=> 1000k +// <138412032=> 1032k (default) +// <142606336=> 1067k + +#ifndef NRFX_PDM_CONFIG_CLOCK_FREQ +#define NRFX_PDM_CONFIG_CLOCK_FREQ 138412032 +#endif + +// <o> NRFX_PDM_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_PDM_CONFIG_IRQ_PRIORITY +#define NRFX_PDM_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_PDM_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_PDM_CONFIG_LOG_ENABLED +#define NRFX_PDM_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_PDM_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_PDM_CONFIG_LOG_LEVEL +#define NRFX_PDM_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_PDM_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_PDM_CONFIG_INFO_COLOR +#define NRFX_PDM_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_PDM_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_PDM_CONFIG_DEBUG_COLOR +#define NRFX_PDM_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_POWER_ENABLED - nrfx_power - POWER peripheral driver +//========================================================== +#ifndef NRFX_POWER_ENABLED +#define NRFX_POWER_ENABLED 0 +#endif +// <o> NRFX_POWER_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_POWER_DEFAULT_CONFIG_IRQ_PRIORITY +#define NRFX_POWER_DEFAULT_CONFIG_IRQ_PRIORITY 7 +#endif + +// <q> NRFX_POWER_CONFIG_DEFAULT_DCDCEN - The default configuration of main DCDC regulator + + +// <i> This settings means only that components for DCDC regulator are installed and it can be enabled. + +#ifndef NRFX_POWER_CONFIG_DEFAULT_DCDCEN +#define NRFX_POWER_CONFIG_DEFAULT_DCDCEN 0 +#endif + +// <q> NRFX_POWER_CONFIG_DEFAULT_DCDCENHV - The default configuration of High Voltage DCDC regulator + + +// <i> This settings means only that components for DCDC regulator are installed and it can be enabled. + +#ifndef NRFX_POWER_CONFIG_DEFAULT_DCDCENHV +#define NRFX_POWER_CONFIG_DEFAULT_DCDCENHV 0 +#endif + +// </e> + +// <e> NRFX_PPI_ENABLED - nrfx_ppi - PPI peripheral allocator +//========================================================== +#ifndef NRFX_PPI_ENABLED +#define NRFX_PPI_ENABLED 0 +#endif +// <e> NRFX_PPI_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_PPI_CONFIG_LOG_ENABLED +#define NRFX_PPI_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_PPI_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_PPI_CONFIG_LOG_LEVEL +#define NRFX_PPI_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_PPI_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_PPI_CONFIG_INFO_COLOR +#define NRFX_PPI_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_PPI_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_PPI_CONFIG_DEBUG_COLOR +#define NRFX_PPI_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_PWM_ENABLED - nrfx_pwm - PWM peripheral driver +//========================================================== +#ifndef NRFX_PWM_ENABLED +#define NRFX_PWM_ENABLED 0 +#endif +// <q> NRFX_PWM0_ENABLED - Enable PWM0 instance + + +#ifndef NRFX_PWM0_ENABLED +#define NRFX_PWM0_ENABLED 0 +#endif + +// <q> NRFX_PWM1_ENABLED - Enable PWM1 instance + + +#ifndef NRFX_PWM1_ENABLED +#define NRFX_PWM1_ENABLED 0 +#endif + +// <q> NRFX_PWM2_ENABLED - Enable PWM2 instance + + +#ifndef NRFX_PWM2_ENABLED +#define NRFX_PWM2_ENABLED 0 +#endif + +// <q> NRFX_PWM3_ENABLED - Enable PWM3 instance + + +#ifndef NRFX_PWM3_ENABLED +#define NRFX_PWM3_ENABLED 0 +#endif + +// <o> NRFX_PWM_DEFAULT_CONFIG_OUT0_PIN - Out0 pin <0-31> + + +#ifndef NRFX_PWM_DEFAULT_CONFIG_OUT0_PIN +#define NRFX_PWM_DEFAULT_CONFIG_OUT0_PIN 31 +#endif + +// <o> NRFX_PWM_DEFAULT_CONFIG_OUT1_PIN - Out1 pin <0-31> + + +#ifndef NRFX_PWM_DEFAULT_CONFIG_OUT1_PIN +#define NRFX_PWM_DEFAULT_CONFIG_OUT1_PIN 31 +#endif + +// <o> NRFX_PWM_DEFAULT_CONFIG_OUT2_PIN - Out2 pin <0-31> + + +#ifndef NRFX_PWM_DEFAULT_CONFIG_OUT2_PIN +#define NRFX_PWM_DEFAULT_CONFIG_OUT2_PIN 31 +#endif + +// <o> NRFX_PWM_DEFAULT_CONFIG_OUT3_PIN - Out3 pin <0-31> + + +#ifndef NRFX_PWM_DEFAULT_CONFIG_OUT3_PIN +#define NRFX_PWM_DEFAULT_CONFIG_OUT3_PIN 31 +#endif + +// <o> NRFX_PWM_DEFAULT_CONFIG_BASE_CLOCK - Base clock + +// <0=> 16 MHz +// <1=> 8 MHz +// <2=> 4 MHz +// <3=> 2 MHz +// <4=> 1 MHz +// <5=> 500 kHz +// <6=> 250 kHz +// <7=> 125 kHz + +#ifndef NRFX_PWM_DEFAULT_CONFIG_BASE_CLOCK +#define NRFX_PWM_DEFAULT_CONFIG_BASE_CLOCK 4 +#endif + +// <o> NRFX_PWM_DEFAULT_CONFIG_COUNT_MODE - Count mode + +// <0=> Up +// <1=> Up and Down + +#ifndef NRFX_PWM_DEFAULT_CONFIG_COUNT_MODE +#define NRFX_PWM_DEFAULT_CONFIG_COUNT_MODE 0 +#endif + +// <o> NRFX_PWM_DEFAULT_CONFIG_TOP_VALUE - Top value +#ifndef NRFX_PWM_DEFAULT_CONFIG_TOP_VALUE +#define NRFX_PWM_DEFAULT_CONFIG_TOP_VALUE 1000 +#endif + +// <o> NRFX_PWM_DEFAULT_CONFIG_LOAD_MODE - Load mode + +// <0=> Common +// <1=> Grouped +// <2=> Individual +// <3=> Waveform + +#ifndef NRFX_PWM_DEFAULT_CONFIG_LOAD_MODE +#define NRFX_PWM_DEFAULT_CONFIG_LOAD_MODE 0 +#endif + +// <o> NRFX_PWM_DEFAULT_CONFIG_STEP_MODE - Step mode + +// <0=> Auto +// <1=> Triggered + +#ifndef NRFX_PWM_DEFAULT_CONFIG_STEP_MODE +#define NRFX_PWM_DEFAULT_CONFIG_STEP_MODE 0 +#endif + +// <o> NRFX_PWM_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_PWM_DEFAULT_CONFIG_IRQ_PRIORITY +#define NRFX_PWM_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_PWM_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_PWM_CONFIG_LOG_ENABLED +#define NRFX_PWM_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_PWM_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_PWM_CONFIG_LOG_LEVEL +#define NRFX_PWM_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_PWM_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_PWM_CONFIG_INFO_COLOR +#define NRFX_PWM_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_PWM_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_PWM_CONFIG_DEBUG_COLOR +#define NRFX_PWM_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_QDEC_ENABLED - nrfx_qdec - QDEC peripheral driver +//========================================================== +#ifndef NRFX_QDEC_ENABLED +#define NRFX_QDEC_ENABLED 0 +#endif +// <o> NRFX_QDEC_CONFIG_REPORTPER - Report period + +// <0=> 10 Samples +// <1=> 40 Samples +// <2=> 80 Samples +// <3=> 120 Samples +// <4=> 160 Samples +// <5=> 200 Samples +// <6=> 240 Samples +// <7=> 280 Samples + +#ifndef NRFX_QDEC_CONFIG_REPORTPER +#define NRFX_QDEC_CONFIG_REPORTPER 0 +#endif + +// <o> NRFX_QDEC_CONFIG_SAMPLEPER - Sample period + +// <0=> 128 us +// <1=> 256 us +// <2=> 512 us +// <3=> 1024 us +// <4=> 2048 us +// <5=> 4096 us +// <6=> 8192 us +// <7=> 16384 us + +#ifndef NRFX_QDEC_CONFIG_SAMPLEPER +#define NRFX_QDEC_CONFIG_SAMPLEPER 7 +#endif + +// <o> NRFX_QDEC_CONFIG_PIO_A - A pin <0-31> + + +#ifndef NRFX_QDEC_CONFIG_PIO_A +#define NRFX_QDEC_CONFIG_PIO_A 31 +#endif + +// <o> NRFX_QDEC_CONFIG_PIO_B - B pin <0-31> + + +#ifndef NRFX_QDEC_CONFIG_PIO_B +#define NRFX_QDEC_CONFIG_PIO_B 31 +#endif + +// <o> NRFX_QDEC_CONFIG_PIO_LED - LED pin <0-31> + + +#ifndef NRFX_QDEC_CONFIG_PIO_LED +#define NRFX_QDEC_CONFIG_PIO_LED 31 +#endif + +// <o> NRFX_QDEC_CONFIG_LEDPRE - LED pre +#ifndef NRFX_QDEC_CONFIG_LEDPRE +#define NRFX_QDEC_CONFIG_LEDPRE 511 +#endif + +// <o> NRFX_QDEC_CONFIG_LEDPOL - LED polarity + +// <0=> Active low +// <1=> Active high + +#ifndef NRFX_QDEC_CONFIG_LEDPOL +#define NRFX_QDEC_CONFIG_LEDPOL 1 +#endif + +// <q> NRFX_QDEC_CONFIG_DBFEN - Debouncing enable + + +#ifndef NRFX_QDEC_CONFIG_DBFEN +#define NRFX_QDEC_CONFIG_DBFEN 0 +#endif + +// <q> NRFX_QDEC_CONFIG_SAMPLE_INTEN - Sample ready interrupt enable + + +#ifndef NRFX_QDEC_CONFIG_SAMPLE_INTEN +#define NRFX_QDEC_CONFIG_SAMPLE_INTEN 0 +#endif + +// <o> NRFX_QDEC_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_QDEC_CONFIG_IRQ_PRIORITY +#define NRFX_QDEC_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_QDEC_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_QDEC_CONFIG_LOG_ENABLED +#define NRFX_QDEC_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_QDEC_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_QDEC_CONFIG_LOG_LEVEL +#define NRFX_QDEC_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_QDEC_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_QDEC_CONFIG_INFO_COLOR +#define NRFX_QDEC_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_QDEC_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_QDEC_CONFIG_DEBUG_COLOR +#define NRFX_QDEC_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_QSPI_ENABLED - nrfx_qspi - QSPI peripheral driver +//========================================================== +#ifndef NRFX_QSPI_ENABLED +#define NRFX_QSPI_ENABLED 0 +#endif +// <o> NRFX_QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns). <0-255> + + +#ifndef NRFX_QSPI_CONFIG_SCK_DELAY +#define NRFX_QSPI_CONFIG_SCK_DELAY 1 +#endif + +// <o> NRFX_QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. +#ifndef NRFX_QSPI_CONFIG_XIP_OFFSET +#define NRFX_QSPI_CONFIG_XIP_OFFSET 0 +#endif + +// <o> NRFX_QSPI_CONFIG_READOC - Number of data lines and opcode used for reading. + +// <0=> FastRead +// <1=> Read2O +// <2=> Read2IO +// <3=> Read4O +// <4=> Read4IO + +#ifndef NRFX_QSPI_CONFIG_READOC +#define NRFX_QSPI_CONFIG_READOC 0 +#endif + +// <o> NRFX_QSPI_CONFIG_WRITEOC - Number of data lines and opcode used for writing. + +// <0=> PP +// <1=> PP2O +// <2=> PP4O +// <3=> PP4IO + +#ifndef NRFX_QSPI_CONFIG_WRITEOC +#define NRFX_QSPI_CONFIG_WRITEOC 0 +#endif + +// <o> NRFX_QSPI_CONFIG_ADDRMODE - Addressing mode. + +// <0=> 24bit +// <1=> 32bit + +#ifndef NRFX_QSPI_CONFIG_ADDRMODE +#define NRFX_QSPI_CONFIG_ADDRMODE 0 +#endif + +// <o> NRFX_QSPI_CONFIG_MODE - SPI mode. + +// <0=> Mode 0 +// <1=> Mode 1 + +#ifndef NRFX_QSPI_CONFIG_MODE +#define NRFX_QSPI_CONFIG_MODE 0 +#endif + +// <o> NRFX_QSPI_CONFIG_FREQUENCY - Frequency divider. + +// <0=> 32MHz/1 +// <1=> 32MHz/2 +// <2=> 32MHz/3 +// <3=> 32MHz/4 +// <4=> 32MHz/5 +// <5=> 32MHz/6 +// <6=> 32MHz/7 +// <7=> 32MHz/8 +// <8=> 32MHz/9 +// <9=> 32MHz/10 +// <10=> 32MHz/11 +// <11=> 32MHz/12 +// <12=> 32MHz/13 +// <13=> 32MHz/14 +// <14=> 32MHz/15 +// <15=> 32MHz/16 + +#ifndef NRFX_QSPI_CONFIG_FREQUENCY +#define NRFX_QSPI_CONFIG_FREQUENCY 15 +#endif + +// <s> NRFX_QSPI_PIN_SCK - SCK pin value. +#ifndef NRFX_QSPI_PIN_SCK +#define NRFX_QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED +#endif + +// <s> NRFX_QSPI_PIN_CSN - CSN pin value. +#ifndef NRFX_QSPI_PIN_CSN +#define NRFX_QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED +#endif + +// <s> NRFX_QSPI_PIN_IO0 - IO0 pin value. +#ifndef NRFX_QSPI_PIN_IO0 +#define NRFX_QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED +#endif + +// <s> NRFX_QSPI_PIN_IO1 - IO1 pin value. +#ifndef NRFX_QSPI_PIN_IO1 +#define NRFX_QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED +#endif + +// <s> NRFX_QSPI_PIN_IO2 - IO2 pin value. +#ifndef NRFX_QSPI_PIN_IO2 +#define NRFX_QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED +#endif + +// <s> NRFX_QSPI_PIN_IO3 - IO3 pin value. +#ifndef NRFX_QSPI_PIN_IO3 +#define NRFX_QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED +#endif + +// <o> NRFX_QSPI_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_QSPI_DEFAULT_CONFIG_IRQ_PRIORITY +#define NRFX_QSPI_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// </e> + +// <e> NRFX_RNG_ENABLED - nrfx_rng - RNG peripheral driver +//========================================================== +#ifndef NRFX_RNG_ENABLED +#define NRFX_RNG_ENABLED 0 +#endif +// <q> NRFX_RNG_CONFIG_ERROR_CORRECTION - Error correction + + +#ifndef NRFX_RNG_CONFIG_ERROR_CORRECTION +#define NRFX_RNG_CONFIG_ERROR_CORRECTION 1 +#endif + +// <o> NRFX_RNG_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_RNG_CONFIG_IRQ_PRIORITY +#define NRFX_RNG_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_RNG_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_RNG_CONFIG_LOG_ENABLED +#define NRFX_RNG_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_RNG_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_RNG_CONFIG_LOG_LEVEL +#define NRFX_RNG_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_RNG_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_RNG_CONFIG_INFO_COLOR +#define NRFX_RNG_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_RNG_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_RNG_CONFIG_DEBUG_COLOR +#define NRFX_RNG_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_RTC_ENABLED - nrfx_rtc - RTC peripheral driver +//========================================================== +#ifndef NRFX_RTC_ENABLED +#define NRFX_RTC_ENABLED 0 +#endif +// <q> NRFX_RTC0_ENABLED - Enable RTC0 instance + + +#ifndef NRFX_RTC0_ENABLED +#define NRFX_RTC0_ENABLED 0 +#endif + +// <q> NRFX_RTC1_ENABLED - Enable RTC1 instance + + +#ifndef NRFX_RTC1_ENABLED +#define NRFX_RTC1_ENABLED 0 +#endif + +// <q> NRFX_RTC2_ENABLED - Enable RTC2 instance + + +#ifndef NRFX_RTC2_ENABLED +#define NRFX_RTC2_ENABLED 0 +#endif + +// <o> NRFX_RTC_MAXIMUM_LATENCY_US - Maximum possible time[us] in highest priority interrupt +#ifndef NRFX_RTC_MAXIMUM_LATENCY_US +#define NRFX_RTC_MAXIMUM_LATENCY_US 2000 +#endif + +// <o> NRFX_RTC_DEFAULT_CONFIG_FREQUENCY - Frequency <16-32768> + + +#ifndef NRFX_RTC_DEFAULT_CONFIG_FREQUENCY +#define NRFX_RTC_DEFAULT_CONFIG_FREQUENCY 32768 +#endif + +// <q> NRFX_RTC_DEFAULT_CONFIG_RELIABLE - Ensures safe compare event triggering + + +#ifndef NRFX_RTC_DEFAULT_CONFIG_RELIABLE +#define NRFX_RTC_DEFAULT_CONFIG_RELIABLE 0 +#endif + +// <o> NRFX_RTC_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_RTC_DEFAULT_CONFIG_IRQ_PRIORITY +#define NRFX_RTC_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_RTC_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_RTC_CONFIG_LOG_ENABLED +#define NRFX_RTC_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_RTC_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_RTC_CONFIG_LOG_LEVEL +#define NRFX_RTC_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_RTC_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_RTC_CONFIG_INFO_COLOR +#define NRFX_RTC_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_RTC_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_RTC_CONFIG_DEBUG_COLOR +#define NRFX_RTC_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_SAADC_ENABLED - nrfx_saadc - SAADC peripheral driver +//========================================================== +#ifndef NRFX_SAADC_ENABLED +#define NRFX_SAADC_ENABLED 0 +#endif +// <o> NRFX_SAADC_CONFIG_RESOLUTION - Resolution + +// <0=> 8 bit +// <1=> 10 bit +// <2=> 12 bit +// <3=> 14 bit + +#ifndef NRFX_SAADC_CONFIG_RESOLUTION +#define NRFX_SAADC_CONFIG_RESOLUTION 1 +#endif + +// <o> NRFX_SAADC_CONFIG_OVERSAMPLE - Sample period + +// <0=> Disabled +// <1=> 2x +// <2=> 4x +// <3=> 8x +// <4=> 16x +// <5=> 32x +// <6=> 64x +// <7=> 128x +// <8=> 256x + +#ifndef NRFX_SAADC_CONFIG_OVERSAMPLE +#define NRFX_SAADC_CONFIG_OVERSAMPLE 0 +#endif + +// <q> NRFX_SAADC_CONFIG_LP_MODE - Enabling low power mode + + +#ifndef NRFX_SAADC_CONFIG_LP_MODE +#define NRFX_SAADC_CONFIG_LP_MODE 0 +#endif + +// <o> NRFX_SAADC_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_SAADC_CONFIG_IRQ_PRIORITY +#define NRFX_SAADC_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_SAADC_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_SAADC_CONFIG_LOG_ENABLED +#define NRFX_SAADC_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_SAADC_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_SAADC_CONFIG_LOG_LEVEL +#define NRFX_SAADC_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_SAADC_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_SAADC_CONFIG_INFO_COLOR +#define NRFX_SAADC_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_SAADC_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_SAADC_CONFIG_DEBUG_COLOR +#define NRFX_SAADC_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_SPIM_ENABLED - nrfx_spim - SPIM peripheral driver +//========================================================== +#ifndef NRFX_SPIM_ENABLED +#define NRFX_SPIM_ENABLED 0 +#endif +// <q> NRFX_SPIM0_ENABLED - Enable SPIM0 instance + + +#ifndef NRFX_SPIM0_ENABLED +#define NRFX_SPIM0_ENABLED 0 +#endif + +// <q> NRFX_SPIM1_ENABLED - Enable SPIM1 instance + + +#ifndef NRFX_SPIM1_ENABLED +#define NRFX_SPIM1_ENABLED 0 +#endif + +// <q> NRFX_SPIM2_ENABLED - Enable SPIM2 instance + + +#ifndef NRFX_SPIM2_ENABLED +#define NRFX_SPIM2_ENABLED 0 +#endif + +// <q> NRFX_SPIM3_ENABLED - Enable SPIM3 instance + + +#ifndef NRFX_SPIM3_ENABLED +#define NRFX_SPIM3_ENABLED 0 +#endif + +// <q> NRFX_SPIM_EXTENDED_ENABLED - Enable extended SPIM features + + +#ifndef NRFX_SPIM_EXTENDED_ENABLED +#define NRFX_SPIM_EXTENDED_ENABLED 0 +#endif + +// <o> NRFX_SPIM_MISO_PULL_CFG - MISO pin pull configuration. + +// <0=> NRF_GPIO_PIN_NOPULL +// <1=> NRF_GPIO_PIN_PULLDOWN +// <3=> NRF_GPIO_PIN_PULLUP + +#ifndef NRFX_SPIM_MISO_PULL_CFG +#define NRFX_SPIM_MISO_PULL_CFG 1 +#endif + +// <o> NRFX_SPIM_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_SPIM_DEFAULT_CONFIG_IRQ_PRIORITY +#define NRFX_SPIM_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_SPIM_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_SPIM_CONFIG_LOG_ENABLED +#define NRFX_SPIM_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_SPIM_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_SPIM_CONFIG_LOG_LEVEL +#define NRFX_SPIM_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_SPIM_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_SPIM_CONFIG_INFO_COLOR +#define NRFX_SPIM_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_SPIM_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_SPIM_CONFIG_DEBUG_COLOR +#define NRFX_SPIM_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_SPIS_ENABLED - nrfx_spis - SPIS peripheral driver +//========================================================== +#ifndef NRFX_SPIS_ENABLED +#define NRFX_SPIS_ENABLED 0 +#endif +// <q> NRFX_SPIS0_ENABLED - Enable SPIS0 instance + + +#ifndef NRFX_SPIS0_ENABLED +#define NRFX_SPIS0_ENABLED 0 +#endif + +// <q> NRFX_SPIS1_ENABLED - Enable SPIS1 instance + + +#ifndef NRFX_SPIS1_ENABLED +#define NRFX_SPIS1_ENABLED 0 +#endif + +// <q> NRFX_SPIS2_ENABLED - Enable SPIS2 instance + + +#ifndef NRFX_SPIS2_ENABLED +#define NRFX_SPIS2_ENABLED 0 +#endif + +// <o> NRFX_SPIS_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_SPIS_DEFAULT_CONFIG_IRQ_PRIORITY +#define NRFX_SPIS_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <o> NRFX_SPIS_DEFAULT_DEF - SPIS default DEF character <0-255> + + +#ifndef NRFX_SPIS_DEFAULT_DEF +#define NRFX_SPIS_DEFAULT_DEF 255 +#endif + +// <o> NRFX_SPIS_DEFAULT_ORC - SPIS default ORC character <0-255> + + +#ifndef NRFX_SPIS_DEFAULT_ORC +#define NRFX_SPIS_DEFAULT_ORC 255 +#endif + +// <e> NRFX_SPIS_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_SPIS_CONFIG_LOG_ENABLED +#define NRFX_SPIS_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_SPIS_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_SPIS_CONFIG_LOG_LEVEL +#define NRFX_SPIS_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_SPIS_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_SPIS_CONFIG_INFO_COLOR +#define NRFX_SPIS_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_SPIS_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_SPIS_CONFIG_DEBUG_COLOR +#define NRFX_SPIS_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_SPI_ENABLED - nrfx_spi - SPI peripheral driver +//========================================================== +#ifndef NRFX_SPI_ENABLED +#define NRFX_SPI_ENABLED 0 +#endif +// <q> NRFX_SPI0_ENABLED - Enable SPI0 instance + + +#ifndef NRFX_SPI0_ENABLED +#define NRFX_SPI0_ENABLED 0 +#endif + +// <q> NRFX_SPI1_ENABLED - Enable SPI1 instance + + +#ifndef NRFX_SPI1_ENABLED +#define NRFX_SPI1_ENABLED 0 +#endif + +// <q> NRFX_SPI2_ENABLED - Enable SPI2 instance + + +#ifndef NRFX_SPI2_ENABLED +#define NRFX_SPI2_ENABLED 0 +#endif + +// <o> NRFX_SPI_MISO_PULL_CFG - MISO pin pull configuration. + +// <0=> NRF_GPIO_PIN_NOPULL +// <1=> NRF_GPIO_PIN_PULLDOWN +// <3=> NRF_GPIO_PIN_PULLUP + +#ifndef NRFX_SPI_MISO_PULL_CFG +#define NRFX_SPI_MISO_PULL_CFG 1 +#endif + +// <o> NRFX_SPI_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_SPI_DEFAULT_CONFIG_IRQ_PRIORITY +#define NRFX_SPI_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_SPI_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_SPI_CONFIG_LOG_ENABLED +#define NRFX_SPI_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_SPI_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_SPI_CONFIG_LOG_LEVEL +#define NRFX_SPI_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_SPI_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_SPI_CONFIG_INFO_COLOR +#define NRFX_SPI_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_SPI_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_SPI_CONFIG_DEBUG_COLOR +#define NRFX_SPI_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_SWI_ENABLED - nrfx_swi - SWI/EGU peripheral allocator +//========================================================== +#ifndef NRFX_SWI_ENABLED +#define NRFX_SWI_ENABLED 0 +#endif +// <q> NRFX_EGU_ENABLED - Enable EGU support + + +#ifndef NRFX_EGU_ENABLED +#define NRFX_EGU_ENABLED 0 +#endif + +// <q> NRFX_SWI0_DISABLED - Exclude SWI0 from being utilized by the driver + + +#ifndef NRFX_SWI0_DISABLED +#define NRFX_SWI0_DISABLED 0 +#endif + +// <q> NRFX_SWI1_DISABLED - Exclude SWI1 from being utilized by the driver + + +#ifndef NRFX_SWI1_DISABLED +#define NRFX_SWI1_DISABLED 0 +#endif + +// <q> NRFX_SWI2_DISABLED - Exclude SWI2 from being utilized by the driver + + +#ifndef NRFX_SWI2_DISABLED +#define NRFX_SWI2_DISABLED 0 +#endif + +// <q> NRFX_SWI3_DISABLED - Exclude SWI3 from being utilized by the driver + + +#ifndef NRFX_SWI3_DISABLED +#define NRFX_SWI3_DISABLED 0 +#endif + +// <q> NRFX_SWI4_DISABLED - Exclude SWI4 from being utilized by the driver + + +#ifndef NRFX_SWI4_DISABLED +#define NRFX_SWI4_DISABLED 0 +#endif + +// <q> NRFX_SWI5_DISABLED - Exclude SWI5 from being utilized by the driver + + +#ifndef NRFX_SWI5_DISABLED +#define NRFX_SWI5_DISABLED 0 +#endif + +// <e> NRFX_SWI_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_SWI_CONFIG_LOG_ENABLED +#define NRFX_SWI_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_SWI_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_SWI_CONFIG_LOG_LEVEL +#define NRFX_SWI_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_SWI_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_SWI_CONFIG_INFO_COLOR +#define NRFX_SWI_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_SWI_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_SWI_CONFIG_DEBUG_COLOR +#define NRFX_SWI_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_TIMER_ENABLED - nrfx_timer - TIMER periperal driver +//========================================================== +#ifndef NRFX_TIMER_ENABLED +#define NRFX_TIMER_ENABLED 0 +#endif +// <q> NRFX_TIMER0_ENABLED - Enable TIMER0 instance + + +#ifndef NRFX_TIMER0_ENABLED +#define NRFX_TIMER0_ENABLED 0 +#endif + +// <q> NRFX_TIMER1_ENABLED - Enable TIMER1 instance + + +#ifndef NRFX_TIMER1_ENABLED +#define NRFX_TIMER1_ENABLED 0 +#endif + +// <q> NRFX_TIMER2_ENABLED - Enable TIMER2 instance + + +#ifndef NRFX_TIMER2_ENABLED +#define NRFX_TIMER2_ENABLED 0 +#endif + +// <q> NRFX_TIMER3_ENABLED - Enable TIMER3 instance + + +#ifndef NRFX_TIMER3_ENABLED +#define NRFX_TIMER3_ENABLED 0 +#endif + +// <q> NRFX_TIMER4_ENABLED - Enable TIMER4 instance + + +#ifndef NRFX_TIMER4_ENABLED +#define NRFX_TIMER4_ENABLED 0 +#endif + +// <o> NRFX_TIMER_DEFAULT_CONFIG_FREQUENCY - Timer frequency if in Timer mode + +// <0=> 16 MHz +// <1=> 8 MHz +// <2=> 4 MHz +// <3=> 2 MHz +// <4=> 1 MHz +// <5=> 500 kHz +// <6=> 250 kHz +// <7=> 125 kHz +// <8=> 62.5 kHz +// <9=> 31.25 kHz + +#ifndef NRFX_TIMER_DEFAULT_CONFIG_FREQUENCY +#define NRFX_TIMER_DEFAULT_CONFIG_FREQUENCY 0 +#endif + +// <o> NRFX_TIMER_DEFAULT_CONFIG_MODE - Timer mode or operation + +// <0=> Timer +// <1=> Counter + +#ifndef NRFX_TIMER_DEFAULT_CONFIG_MODE +#define NRFX_TIMER_DEFAULT_CONFIG_MODE 0 +#endif + +// <o> NRFX_TIMER_DEFAULT_CONFIG_BIT_WIDTH - Timer counter bit width + +// <0=> 16 bit +// <1=> 8 bit +// <2=> 24 bit +// <3=> 32 bit + +#ifndef NRFX_TIMER_DEFAULT_CONFIG_BIT_WIDTH +#define NRFX_TIMER_DEFAULT_CONFIG_BIT_WIDTH 0 +#endif + +// <o> NRFX_TIMER_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_TIMER_DEFAULT_CONFIG_IRQ_PRIORITY +#define NRFX_TIMER_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_TIMER_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_TIMER_CONFIG_LOG_ENABLED +#define NRFX_TIMER_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_TIMER_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_TIMER_CONFIG_LOG_LEVEL +#define NRFX_TIMER_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_TIMER_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_TIMER_CONFIG_INFO_COLOR +#define NRFX_TIMER_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_TIMER_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_TIMER_CONFIG_DEBUG_COLOR +#define NRFX_TIMER_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_TWIM_ENABLED - nrfx_twim - TWIM peripheral driver +//========================================================== +#ifndef NRFX_TWIM_ENABLED +#define NRFX_TWIM_ENABLED 0 +#endif +// <q> NRFX_TWIM0_ENABLED - Enable TWIM0 instance + + +#ifndef NRFX_TWIM0_ENABLED +#define NRFX_TWIM0_ENABLED 0 +#endif + +// <q> NRFX_TWIM1_ENABLED - Enable TWIM1 instance + + +#ifndef NRFX_TWIM1_ENABLED +#define NRFX_TWIM1_ENABLED 0 +#endif + +// <o> NRFX_TWIM_DEFAULT_CONFIG_FREQUENCY - Frequency + +// <26738688=> 100k +// <67108864=> 250k +// <104857600=> 400k + +#ifndef NRFX_TWIM_DEFAULT_CONFIG_FREQUENCY +#define NRFX_TWIM_DEFAULT_CONFIG_FREQUENCY 26738688 +#endif + +// <q> NRFX_TWIM_DEFAULT_CONFIG_HOLD_BUS_UNINIT - Enables bus holding after uninit + + +#ifndef NRFX_TWIM_DEFAULT_CONFIG_HOLD_BUS_UNINIT +#define NRFX_TWIM_DEFAULT_CONFIG_HOLD_BUS_UNINIT 0 +#endif + +// <o> NRFX_TWIM_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_TWIM_DEFAULT_CONFIG_IRQ_PRIORITY +#define NRFX_TWIM_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_TWIM_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_TWIM_CONFIG_LOG_ENABLED +#define NRFX_TWIM_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_TWIM_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_TWIM_CONFIG_LOG_LEVEL +#define NRFX_TWIM_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_TWIM_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_TWIM_CONFIG_INFO_COLOR +#define NRFX_TWIM_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_TWIM_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_TWIM_CONFIG_DEBUG_COLOR +#define NRFX_TWIM_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_TWIS_ENABLED - nrfx_twis - TWIS peripheral driver +//========================================================== +#ifndef NRFX_TWIS_ENABLED +#define NRFX_TWIS_ENABLED 0 +#endif +// <q> NRFX_TWIS0_ENABLED - Enable TWIS0 instance + + +#ifndef NRFX_TWIS0_ENABLED +#define NRFX_TWIS0_ENABLED 0 +#endif + +// <q> NRFX_TWIS1_ENABLED - Enable TWIS1 instance + + +#ifndef NRFX_TWIS1_ENABLED +#define NRFX_TWIS1_ENABLED 0 +#endif + +// <q> NRFX_TWIS_ASSUME_INIT_AFTER_RESET_ONLY - Assume that any instance would be initialized only once + + +// <i> Optimization flag. Registers used by TWIS are shared by other peripherals. Normally, during initialization driver tries to clear all registers to known state before doing the initialization itself. This gives initialization safe procedure, no matter when it would be called. If you activate TWIS only once and do never uninitialize it - set this flag to 1 what gives more optimal code. + +#ifndef NRFX_TWIS_ASSUME_INIT_AFTER_RESET_ONLY +#define NRFX_TWIS_ASSUME_INIT_AFTER_RESET_ONLY 0 +#endif + +// <q> NRFX_TWIS_NO_SYNC_MODE - Remove support for synchronous mode + + +// <i> Synchronous mode would be used in specific situations. And it uses some additional code and data memory to safely process state machine by polling it in status functions. If this functionality is not required it may be disabled to free some resources. + +#ifndef NRFX_TWIS_NO_SYNC_MODE +#define NRFX_TWIS_NO_SYNC_MODE 0 +#endif + +// <o> NRFX_TWIS_DEFAULT_CONFIG_ADDR0 - Address0 +#ifndef NRFX_TWIS_DEFAULT_CONFIG_ADDR0 +#define NRFX_TWIS_DEFAULT_CONFIG_ADDR0 0 +#endif + +// <o> NRFX_TWIS_DEFAULT_CONFIG_ADDR1 - Address1 +#ifndef NRFX_TWIS_DEFAULT_CONFIG_ADDR1 +#define NRFX_TWIS_DEFAULT_CONFIG_ADDR1 0 +#endif + +// <o> NRFX_TWIS_DEFAULT_CONFIG_SCL_PULL - SCL pin pull configuration + +// <0=> Disabled +// <1=> Pull down +// <3=> Pull up + +#ifndef NRFX_TWIS_DEFAULT_CONFIG_SCL_PULL +#define NRFX_TWIS_DEFAULT_CONFIG_SCL_PULL 0 +#endif + +// <o> NRFX_TWIS_DEFAULT_CONFIG_SDA_PULL - SDA pin pull configuration + +// <0=> Disabled +// <1=> Pull down +// <3=> Pull up + +#ifndef NRFX_TWIS_DEFAULT_CONFIG_SDA_PULL +#define NRFX_TWIS_DEFAULT_CONFIG_SDA_PULL 0 +#endif + +// <o> NRFX_TWIS_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_TWIS_DEFAULT_CONFIG_IRQ_PRIORITY +#define NRFX_TWIS_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_TWIS_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_TWIS_CONFIG_LOG_ENABLED +#define NRFX_TWIS_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_TWIS_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_TWIS_CONFIG_LOG_LEVEL +#define NRFX_TWIS_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_TWIS_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_TWIS_CONFIG_INFO_COLOR +#define NRFX_TWIS_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_TWIS_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_TWIS_CONFIG_DEBUG_COLOR +#define NRFX_TWIS_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_TWI_ENABLED - nrfx_twi - TWI peripheral driver +//========================================================== +#ifndef NRFX_TWI_ENABLED +#define NRFX_TWI_ENABLED 0 +#endif +// <q> NRFX_TWI0_ENABLED - Enable TWI0 instance + + +#ifndef NRFX_TWI0_ENABLED +#define NRFX_TWI0_ENABLED 0 +#endif + +// <q> NRFX_TWI1_ENABLED - Enable TWI1 instance + + +#ifndef NRFX_TWI1_ENABLED +#define NRFX_TWI1_ENABLED 0 +#endif + +// <o> NRFX_TWI_DEFAULT_CONFIG_FREQUENCY - Frequency + +// <26738688=> 100k +// <67108864=> 250k +// <104857600=> 400k + +#ifndef NRFX_TWI_DEFAULT_CONFIG_FREQUENCY +#define NRFX_TWI_DEFAULT_CONFIG_FREQUENCY 26738688 +#endif + +// <q> NRFX_TWI_DEFAULT_CONFIG_HOLD_BUS_UNINIT - Enables bus holding after uninit + + +#ifndef NRFX_TWI_DEFAULT_CONFIG_HOLD_BUS_UNINIT +#define NRFX_TWI_DEFAULT_CONFIG_HOLD_BUS_UNINIT 0 +#endif + +// <o> NRFX_TWI_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_TWI_DEFAULT_CONFIG_IRQ_PRIORITY +#define NRFX_TWI_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_TWI_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_TWI_CONFIG_LOG_ENABLED +#define NRFX_TWI_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_TWI_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_TWI_CONFIG_LOG_LEVEL +#define NRFX_TWI_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_TWI_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_TWI_CONFIG_INFO_COLOR +#define NRFX_TWI_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_TWI_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_TWI_CONFIG_DEBUG_COLOR +#define NRFX_TWI_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_UARTE_ENABLED - nrfx_uarte - UARTE peripheral driver +//========================================================== +#ifndef NRFX_UARTE_ENABLED +#define NRFX_UARTE_ENABLED 0 +#endif +// <o> NRFX_UARTE0_ENABLED - Enable UARTE0 instance +#ifndef NRFX_UARTE0_ENABLED +#define NRFX_UARTE0_ENABLED 0 +#endif + +// <o> NRFX_UARTE1_ENABLED - Enable UARTE1 instance +#ifndef NRFX_UARTE1_ENABLED +#define NRFX_UARTE1_ENABLED 0 +#endif + +// <o> NRFX_UARTE_DEFAULT_CONFIG_HWFC - Hardware Flow Control + +// <0=> Disabled +// <1=> Enabled + +#ifndef NRFX_UARTE_DEFAULT_CONFIG_HWFC +#define NRFX_UARTE_DEFAULT_CONFIG_HWFC 0 +#endif + +// <o> NRFX_UARTE_DEFAULT_CONFIG_PARITY - Parity + +// <0=> Excluded +// <14=> Included + +#ifndef NRFX_UARTE_DEFAULT_CONFIG_PARITY +#define NRFX_UARTE_DEFAULT_CONFIG_PARITY 0 +#endif + +// <o> NRFX_UARTE_DEFAULT_CONFIG_BAUDRATE - Default Baudrate + +// <323584=> 1200 baud +// <643072=> 2400 baud +// <1290240=> 4800 baud +// <2576384=> 9600 baud +// <3862528=> 14400 baud +// <5152768=> 19200 baud +// <7716864=> 28800 baud +// <8388608=> 31250 baud +// <10289152=> 38400 baud +// <15007744=> 56000 baud +// <15400960=> 57600 baud +// <20615168=> 76800 baud +// <30801920=> 115200 baud +// <61865984=> 230400 baud +// <67108864=> 250000 baud +// <121634816=> 460800 baud +// <251658240=> 921600 baud +// <268435456=> 1000000 baud + +#ifndef NRFX_UARTE_DEFAULT_CONFIG_BAUDRATE +#define NRFX_UARTE_DEFAULT_CONFIG_BAUDRATE 30801920 +#endif + +// <o> NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY +#define NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_UARTE_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_UARTE_CONFIG_LOG_ENABLED +#define NRFX_UARTE_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_UARTE_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_UARTE_CONFIG_LOG_LEVEL +#define NRFX_UARTE_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_UARTE_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_UARTE_CONFIG_INFO_COLOR +#define NRFX_UARTE_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_UARTE_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_UARTE_CONFIG_DEBUG_COLOR +#define NRFX_UARTE_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_UART_ENABLED - nrfx_uart - UART peripheral driver +//========================================================== +#ifndef NRFX_UART_ENABLED +#define NRFX_UART_ENABLED 0 +#endif +// <o> NRFX_UART0_ENABLED - Enable UART0 instance +#ifndef NRFX_UART0_ENABLED +#define NRFX_UART0_ENABLED 0 +#endif + +// <o> NRFX_UART_DEFAULT_CONFIG_HWFC - Hardware Flow Control + +// <0=> Disabled +// <1=> Enabled + +#ifndef NRFX_UART_DEFAULT_CONFIG_HWFC +#define NRFX_UART_DEFAULT_CONFIG_HWFC 0 +#endif + +// <o> NRFX_UART_DEFAULT_CONFIG_PARITY - Parity + +// <0=> Excluded +// <14=> Included + +#ifndef NRFX_UART_DEFAULT_CONFIG_PARITY +#define NRFX_UART_DEFAULT_CONFIG_PARITY 0 +#endif + +// <o> NRFX_UART_DEFAULT_CONFIG_BAUDRATE - Default Baudrate + +// <323584=> 1200 baud +// <643072=> 2400 baud +// <1290240=> 4800 baud +// <2576384=> 9600 baud +// <3866624=> 14400 baud +// <5152768=> 19200 baud +// <7729152=> 28800 baud +// <8388608=> 31250 baud +// <10309632=> 38400 baud +// <15007744=> 56000 baud +// <15462400=> 57600 baud +// <20615168=> 76800 baud +// <30924800=> 115200 baud +// <61845504=> 230400 baud +// <67108864=> 250000 baud +// <123695104=> 460800 baud +// <247386112=> 921600 baud +// <268435456=> 1000000 baud + +#ifndef NRFX_UART_DEFAULT_CONFIG_BAUDRATE +#define NRFX_UART_DEFAULT_CONFIG_BAUDRATE 30924800 +#endif + +// <o> NRFX_UART_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_UART_DEFAULT_CONFIG_IRQ_PRIORITY +#define NRFX_UART_DEFAULT_CONFIG_IRQ_PRIORITY 4 +#endif + +// <e> NRFX_UART_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_UART_CONFIG_LOG_ENABLED +#define NRFX_UART_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_UART_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_UART_CONFIG_LOG_LEVEL +#define NRFX_UART_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_UART_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_UART_CONFIG_INFO_COLOR +#define NRFX_UART_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_UART_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_UART_CONFIG_DEBUG_COLOR +#define NRFX_UART_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_USBD_ENABLED - nrfx_usbd - USBD peripheral driver +//========================================================== +#ifndef NRFX_USBD_ENABLED +#define NRFX_USBD_ENABLED 0 +#endif +// <o> NRFX_USBD_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_USBD_CONFIG_IRQ_PRIORITY +#define NRFX_USBD_CONFIG_IRQ_PRIORITY 6 +#endif + +// <o> NRFX_USBD_CONFIG_DMASCHEDULER_MODE - USBD DMA scheduler working scheme + +// <0=> Prioritized access +// <1=> Round Robin + +#ifndef NRFX_USBD_CONFIG_DMASCHEDULER_MODE +#define NRFX_USBD_CONFIG_DMASCHEDULER_MODE 0 +#endif + +// <q> NRFX_USBD_CONFIG_DMASCHEDULER_ISO_BOOST - Give priority to isochronous transfers + + +// <i> This option gives priority to isochronous transfers. +// <i> Enabling it assures that isochronous transfers are always processed, +// <i> even if multiple other transfers are pending. +// <i> Isochronous endpoints are prioritized before the usbd_dma_scheduler_algorithm +// <i> function is called, so the option is independent of the algorithm chosen. + +#ifndef NRFX_USBD_CONFIG_DMASCHEDULER_ISO_BOOST +#define NRFX_USBD_CONFIG_DMASCHEDULER_ISO_BOOST 1 +#endif + +// <q> NRFX_USBD_CONFIG_ISO_IN_ZLP - Respond to an IN token on ISO IN endpoint with ZLP when no data is ready + + +// <i> If set, ISO IN endpoint will respond to an IN token with ZLP when no data is ready to be sent. +// <i> Else, there will be no response. + +#ifndef NRFX_USBD_CONFIG_ISO_IN_ZLP +#define NRFX_USBD_CONFIG_ISO_IN_ZLP 0 +#endif + +// </e> + +// <e> NRFX_WDT_ENABLED - nrfx_wdt - WDT peripheral driver +//========================================================== +#ifndef NRFX_WDT_ENABLED +#define NRFX_WDT_ENABLED 0 +#endif +// <o> NRFX_WDT_CONFIG_BEHAVIOUR - WDT behavior in CPU SLEEP or HALT mode + +// <1=> Run in SLEEP, Pause in HALT +// <8=> Pause in SLEEP, Run in HALT +// <9=> Run in SLEEP and HALT +// <0=> Pause in SLEEP and HALT + +#ifndef NRFX_WDT_CONFIG_BEHAVIOUR +#define NRFX_WDT_CONFIG_BEHAVIOUR 1 +#endif + +// <o> NRFX_WDT_CONFIG_RELOAD_VALUE - Reload value <15-4294967295> + + +#ifndef NRFX_WDT_CONFIG_RELOAD_VALUE +#define NRFX_WDT_CONFIG_RELOAD_VALUE 2000 +#endif + +// <o> NRFX_WDT_CONFIG_NO_IRQ - Remove WDT IRQ handling from WDT driver + +// <0=> Include WDT IRQ handling +// <1=> Remove WDT IRQ handling + +#ifndef NRFX_WDT_CONFIG_NO_IRQ +#define NRFX_WDT_CONFIG_NO_IRQ 0 +#endif + +// <o> NRFX_WDT_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_WDT_CONFIG_IRQ_PRIORITY +#define NRFX_WDT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_WDT_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_WDT_CONFIG_LOG_ENABLED +#define NRFX_WDT_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_WDT_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_WDT_CONFIG_LOG_LEVEL +#define NRFX_WDT_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_WDT_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_WDT_CONFIG_INFO_COLOR +#define NRFX_WDT_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_WDT_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_WDT_CONFIG_DEBUG_COLOR +#define NRFX_WDT_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRF_CLOCK_ENABLED - nrf_drv_clock - CLOCK peripheral driver - legacy layer +//========================================================== +#ifndef NRF_CLOCK_ENABLED +#define NRF_CLOCK_ENABLED 0 +#endif +// <o> CLOCK_CONFIG_LF_SRC - LF Clock Source + +// <0=> RC +// <1=> XTAL +// <2=> Synth +// <131073=> External Low Swing +// <196609=> External Full Swing + +#ifndef CLOCK_CONFIG_LF_SRC +#define CLOCK_CONFIG_LF_SRC 1 +#endif + +// <q> CLOCK_CONFIG_LF_CAL_ENABLED - Calibration enable for LF Clock Source + + +#ifndef CLOCK_CONFIG_LF_CAL_ENABLED +#define CLOCK_CONFIG_LF_CAL_ENABLED 0 +#endif + +// <o> CLOCK_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef CLOCK_CONFIG_IRQ_PRIORITY +#define CLOCK_CONFIG_IRQ_PRIORITY 6 +#endif + +// </e> + +// <e> PDM_ENABLED - nrf_drv_pdm - PDM peripheral driver - legacy layer +//========================================================== +#ifndef PDM_ENABLED +#define PDM_ENABLED 0 +#endif +// <o> PDM_CONFIG_MODE - Mode + +// <0=> Stereo +// <1=> Mono + +#ifndef PDM_CONFIG_MODE +#define PDM_CONFIG_MODE 1 +#endif + +// <o> PDM_CONFIG_EDGE - Edge + +// <0=> Left falling +// <1=> Left rising + +#ifndef PDM_CONFIG_EDGE +#define PDM_CONFIG_EDGE 0 +#endif + +// <o> PDM_CONFIG_CLOCK_FREQ - Clock frequency + +// <134217728=> 1000k +// <138412032=> 1032k (default) +// <142606336=> 1067k + +#ifndef PDM_CONFIG_CLOCK_FREQ +#define PDM_CONFIG_CLOCK_FREQ 138412032 +#endif + +// <o> PDM_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef PDM_CONFIG_IRQ_PRIORITY +#define PDM_CONFIG_IRQ_PRIORITY 6 +#endif + +// </e> + +// <e> POWER_ENABLED - nrf_drv_power - POWER peripheral driver - legacy layer +//========================================================== +#ifndef POWER_ENABLED +#define POWER_ENABLED 0 +#endif +// <o> POWER_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef POWER_CONFIG_IRQ_PRIORITY +#define POWER_CONFIG_IRQ_PRIORITY 6 +#endif + +// <q> POWER_CONFIG_DEFAULT_DCDCEN - The default configuration of main DCDC regulator + + +// <i> This settings means only that components for DCDC regulator are installed and it can be enabled. + +#ifndef POWER_CONFIG_DEFAULT_DCDCEN +#define POWER_CONFIG_DEFAULT_DCDCEN 0 +#endif + +// <q> POWER_CONFIG_DEFAULT_DCDCENHV - The default configuration of High Voltage DCDC regulator + + +// <i> This settings means only that components for DCDC regulator are installed and it can be enabled. + +#ifndef POWER_CONFIG_DEFAULT_DCDCENHV +#define POWER_CONFIG_DEFAULT_DCDCENHV 0 +#endif + +// </e> + +// <q> PPI_ENABLED - nrf_drv_ppi - PPI peripheral driver - legacy layer + + +#ifndef PPI_ENABLED +#define PPI_ENABLED 0 +#endif + +// <e> PWM_ENABLED - nrf_drv_pwm - PWM peripheral driver - legacy layer +//========================================================== +#ifndef PWM_ENABLED +#define PWM_ENABLED 0 +#endif +// <o> PWM_DEFAULT_CONFIG_OUT0_PIN - Out0 pin <0-31> + + +#ifndef PWM_DEFAULT_CONFIG_OUT0_PIN +#define PWM_DEFAULT_CONFIG_OUT0_PIN 31 +#endif + +// <o> PWM_DEFAULT_CONFIG_OUT1_PIN - Out1 pin <0-31> + + +#ifndef PWM_DEFAULT_CONFIG_OUT1_PIN +#define PWM_DEFAULT_CONFIG_OUT1_PIN 31 +#endif + +// <o> PWM_DEFAULT_CONFIG_OUT2_PIN - Out2 pin <0-31> + + +#ifndef PWM_DEFAULT_CONFIG_OUT2_PIN +#define PWM_DEFAULT_CONFIG_OUT2_PIN 31 +#endif + +// <o> PWM_DEFAULT_CONFIG_OUT3_PIN - Out3 pin <0-31> + + +#ifndef PWM_DEFAULT_CONFIG_OUT3_PIN +#define PWM_DEFAULT_CONFIG_OUT3_PIN 31 +#endif + +// <o> PWM_DEFAULT_CONFIG_BASE_CLOCK - Base clock + +// <0=> 16 MHz +// <1=> 8 MHz +// <2=> 4 MHz +// <3=> 2 MHz +// <4=> 1 MHz +// <5=> 500 kHz +// <6=> 250 kHz +// <7=> 125 kHz + +#ifndef PWM_DEFAULT_CONFIG_BASE_CLOCK +#define PWM_DEFAULT_CONFIG_BASE_CLOCK 4 +#endif + +// <o> PWM_DEFAULT_CONFIG_COUNT_MODE - Count mode + +// <0=> Up +// <1=> Up and Down + +#ifndef PWM_DEFAULT_CONFIG_COUNT_MODE +#define PWM_DEFAULT_CONFIG_COUNT_MODE 0 +#endif + +// <o> PWM_DEFAULT_CONFIG_TOP_VALUE - Top value +#ifndef PWM_DEFAULT_CONFIG_TOP_VALUE +#define PWM_DEFAULT_CONFIG_TOP_VALUE 1000 +#endif + +// <o> PWM_DEFAULT_CONFIG_LOAD_MODE - Load mode + +// <0=> Common +// <1=> Grouped +// <2=> Individual +// <3=> Waveform + +#ifndef PWM_DEFAULT_CONFIG_LOAD_MODE +#define PWM_DEFAULT_CONFIG_LOAD_MODE 0 +#endif + +// <o> PWM_DEFAULT_CONFIG_STEP_MODE - Step mode + +// <0=> Auto +// <1=> Triggered + +#ifndef PWM_DEFAULT_CONFIG_STEP_MODE +#define PWM_DEFAULT_CONFIG_STEP_MODE 0 +#endif + +// <o> PWM_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef PWM_DEFAULT_CONFIG_IRQ_PRIORITY +#define PWM_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <q> PWM0_ENABLED - Enable PWM0 instance + + +#ifndef PWM0_ENABLED +#define PWM0_ENABLED 0 +#endif + +// <q> PWM1_ENABLED - Enable PWM1 instance + + +#ifndef PWM1_ENABLED +#define PWM1_ENABLED 0 +#endif + +// <q> PWM2_ENABLED - Enable PWM2 instance + + +#ifndef PWM2_ENABLED +#define PWM2_ENABLED 0 +#endif + +// <q> PWM3_ENABLED - Enable PWM3 instance + + +#ifndef PWM3_ENABLED +#define PWM3_ENABLED 0 +#endif + +// </e> + +// <e> QDEC_ENABLED - nrf_drv_qdec - QDEC peripheral driver - legacy layer +//========================================================== +#ifndef QDEC_ENABLED +#define QDEC_ENABLED 0 +#endif +// <o> QDEC_CONFIG_REPORTPER - Report period + +// <0=> 10 Samples +// <1=> 40 Samples +// <2=> 80 Samples +// <3=> 120 Samples +// <4=> 160 Samples +// <5=> 200 Samples +// <6=> 240 Samples +// <7=> 280 Samples + +#ifndef QDEC_CONFIG_REPORTPER +#define QDEC_CONFIG_REPORTPER 0 +#endif + +// <o> QDEC_CONFIG_SAMPLEPER - Sample period + +// <0=> 128 us +// <1=> 256 us +// <2=> 512 us +// <3=> 1024 us +// <4=> 2048 us +// <5=> 4096 us +// <6=> 8192 us +// <7=> 16384 us + +#ifndef QDEC_CONFIG_SAMPLEPER +#define QDEC_CONFIG_SAMPLEPER 7 +#endif + +// <o> QDEC_CONFIG_PIO_A - A pin <0-31> + + +#ifndef QDEC_CONFIG_PIO_A +#define QDEC_CONFIG_PIO_A 31 +#endif + +// <o> QDEC_CONFIG_PIO_B - B pin <0-31> + + +#ifndef QDEC_CONFIG_PIO_B +#define QDEC_CONFIG_PIO_B 31 +#endif + +// <o> QDEC_CONFIG_PIO_LED - LED pin <0-31> + + +#ifndef QDEC_CONFIG_PIO_LED +#define QDEC_CONFIG_PIO_LED 31 +#endif + +// <o> QDEC_CONFIG_LEDPRE - LED pre +#ifndef QDEC_CONFIG_LEDPRE +#define QDEC_CONFIG_LEDPRE 511 +#endif + +// <o> QDEC_CONFIG_LEDPOL - LED polarity + +// <0=> Active low +// <1=> Active high + +#ifndef QDEC_CONFIG_LEDPOL +#define QDEC_CONFIG_LEDPOL 1 +#endif + +// <q> QDEC_CONFIG_DBFEN - Debouncing enable + + +#ifndef QDEC_CONFIG_DBFEN +#define QDEC_CONFIG_DBFEN 0 +#endif + +// <q> QDEC_CONFIG_SAMPLE_INTEN - Sample ready interrupt enable + + +#ifndef QDEC_CONFIG_SAMPLE_INTEN +#define QDEC_CONFIG_SAMPLE_INTEN 0 +#endif + +// <o> QDEC_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef QDEC_CONFIG_IRQ_PRIORITY +#define QDEC_CONFIG_IRQ_PRIORITY 6 +#endif + +// </e> + +// <e> QSPI_ENABLED - nrf_drv_qspi - QSPI peripheral driver - legacy layer +//========================================================== +#ifndef QSPI_ENABLED +#define QSPI_ENABLED 0 +#endif +// <o> QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns). <0-255> + + +#ifndef QSPI_CONFIG_SCK_DELAY +#define QSPI_CONFIG_SCK_DELAY 1 +#endif + +// <o> QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. +#ifndef QSPI_CONFIG_XIP_OFFSET +#define QSPI_CONFIG_XIP_OFFSET 0 +#endif + +// <o> QSPI_CONFIG_READOC - Number of data lines and opcode used for reading. + +// <0=> FastRead +// <1=> Read2O +// <2=> Read2IO +// <3=> Read4O +// <4=> Read4IO + +#ifndef QSPI_CONFIG_READOC +#define QSPI_CONFIG_READOC 0 +#endif + +// <o> QSPI_CONFIG_WRITEOC - Number of data lines and opcode used for writing. + +// <0=> PP +// <1=> PP2O +// <2=> PP4O +// <3=> PP4IO + +#ifndef QSPI_CONFIG_WRITEOC +#define QSPI_CONFIG_WRITEOC 0 +#endif + +// <o> QSPI_CONFIG_ADDRMODE - Addressing mode. + +// <0=> 24bit +// <1=> 32bit + +#ifndef QSPI_CONFIG_ADDRMODE +#define QSPI_CONFIG_ADDRMODE 0 +#endif + +// <o> QSPI_CONFIG_MODE - SPI mode. + +// <0=> Mode 0 +// <1=> Mode 1 + +#ifndef QSPI_CONFIG_MODE +#define QSPI_CONFIG_MODE 0 +#endif + +// <o> QSPI_CONFIG_FREQUENCY - Frequency divider. + +// <0=> 32MHz/1 +// <1=> 32MHz/2 +// <2=> 32MHz/3 +// <3=> 32MHz/4 +// <4=> 32MHz/5 +// <5=> 32MHz/6 +// <6=> 32MHz/7 +// <7=> 32MHz/8 +// <8=> 32MHz/9 +// <9=> 32MHz/10 +// <10=> 32MHz/11 +// <11=> 32MHz/12 +// <12=> 32MHz/13 +// <13=> 32MHz/14 +// <14=> 32MHz/15 +// <15=> 32MHz/16 + +#ifndef QSPI_CONFIG_FREQUENCY +#define QSPI_CONFIG_FREQUENCY 15 +#endif + +// <s> QSPI_PIN_SCK - SCK pin value. +#ifndef QSPI_PIN_SCK +#define QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED +#endif + +// <s> QSPI_PIN_CSN - CSN pin value. +#ifndef QSPI_PIN_CSN +#define QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED +#endif + +// <s> QSPI_PIN_IO0 - IO0 pin value. +#ifndef QSPI_PIN_IO0 +#define QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED +#endif + +// <s> QSPI_PIN_IO1 - IO1 pin value. +#ifndef QSPI_PIN_IO1 +#define QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED +#endif + +// <s> QSPI_PIN_IO2 - IO2 pin value. +#ifndef QSPI_PIN_IO2 +#define QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED +#endif + +// <s> QSPI_PIN_IO3 - IO3 pin value. +#ifndef QSPI_PIN_IO3 +#define QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED +#endif + +// <o> QSPI_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef QSPI_CONFIG_IRQ_PRIORITY +#define QSPI_CONFIG_IRQ_PRIORITY 6 +#endif + +// </e> + +// <e> RNG_ENABLED - nrf_drv_rng - RNG peripheral driver - legacy layer +//========================================================== +#ifndef RNG_ENABLED +#define RNG_ENABLED 0 +#endif +// <q> RNG_CONFIG_ERROR_CORRECTION - Error correction + + +#ifndef RNG_CONFIG_ERROR_CORRECTION +#define RNG_CONFIG_ERROR_CORRECTION 1 +#endif + +// <o> RNG_CONFIG_POOL_SIZE - Pool size +#ifndef RNG_CONFIG_POOL_SIZE +#define RNG_CONFIG_POOL_SIZE 64 +#endif + +// <o> RNG_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef RNG_CONFIG_IRQ_PRIORITY +#define RNG_CONFIG_IRQ_PRIORITY 6 +#endif + +// </e> + +// <e> RTC_ENABLED - nrf_drv_rtc - RTC peripheral driver - legacy layer +//========================================================== +#ifndef RTC_ENABLED +#define RTC_ENABLED 0 +#endif +// <o> RTC_DEFAULT_CONFIG_FREQUENCY - Frequency <16-32768> + + +#ifndef RTC_DEFAULT_CONFIG_FREQUENCY +#define RTC_DEFAULT_CONFIG_FREQUENCY 32768 +#endif + +// <q> RTC_DEFAULT_CONFIG_RELIABLE - Ensures safe compare event triggering + + +#ifndef RTC_DEFAULT_CONFIG_RELIABLE +#define RTC_DEFAULT_CONFIG_RELIABLE 0 +#endif + +// <o> RTC_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef RTC_DEFAULT_CONFIG_IRQ_PRIORITY +#define RTC_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <q> RTC0_ENABLED - Enable RTC0 instance + + +#ifndef RTC0_ENABLED +#define RTC0_ENABLED 0 +#endif + +// <q> RTC1_ENABLED - Enable RTC1 instance + + +#ifndef RTC1_ENABLED +#define RTC1_ENABLED 0 +#endif + +// <q> RTC2_ENABLED - Enable RTC2 instance + + +#ifndef RTC2_ENABLED +#define RTC2_ENABLED 0 +#endif + +// <o> NRF_MAXIMUM_LATENCY_US - Maximum possible time[us] in highest priority interrupt +#ifndef NRF_MAXIMUM_LATENCY_US +#define NRF_MAXIMUM_LATENCY_US 2000 +#endif + +// </e> + +// <e> SAADC_ENABLED - nrf_drv_saadc - SAADC peripheral driver - legacy layer +//========================================================== +#ifndef SAADC_ENABLED +#define SAADC_ENABLED 0 +#endif +// <o> SAADC_CONFIG_RESOLUTION - Resolution + +// <0=> 8 bit +// <1=> 10 bit +// <2=> 12 bit +// <3=> 14 bit + +#ifndef SAADC_CONFIG_RESOLUTION +#define SAADC_CONFIG_RESOLUTION 1 +#endif + +// <o> SAADC_CONFIG_OVERSAMPLE - Sample period + +// <0=> Disabled +// <1=> 2x +// <2=> 4x +// <3=> 8x +// <4=> 16x +// <5=> 32x +// <6=> 64x +// <7=> 128x +// <8=> 256x + +#ifndef SAADC_CONFIG_OVERSAMPLE +#define SAADC_CONFIG_OVERSAMPLE 0 +#endif + +// <q> SAADC_CONFIG_LP_MODE - Enabling low power mode + + +#ifndef SAADC_CONFIG_LP_MODE +#define SAADC_CONFIG_LP_MODE 0 +#endif + +// <o> SAADC_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef SAADC_CONFIG_IRQ_PRIORITY +#define SAADC_CONFIG_IRQ_PRIORITY 6 +#endif + +// </e> + +// <e> SPIS_ENABLED - nrf_drv_spis - SPIS peripheral driver - legacy layer +//========================================================== +#ifndef SPIS_ENABLED +#define SPIS_ENABLED 0 +#endif +// <o> SPIS_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef SPIS_DEFAULT_CONFIG_IRQ_PRIORITY +#define SPIS_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <o> SPIS_DEFAULT_MODE - Mode + +// <0=> MODE_0 +// <1=> MODE_1 +// <2=> MODE_2 +// <3=> MODE_3 + +#ifndef SPIS_DEFAULT_MODE +#define SPIS_DEFAULT_MODE 0 +#endif + +// <o> SPIS_DEFAULT_BIT_ORDER - SPIS default bit order + +// <0=> MSB first +// <1=> LSB first + +#ifndef SPIS_DEFAULT_BIT_ORDER +#define SPIS_DEFAULT_BIT_ORDER 0 +#endif + +// <o> SPIS_DEFAULT_DEF - SPIS default DEF character <0-255> + + +#ifndef SPIS_DEFAULT_DEF +#define SPIS_DEFAULT_DEF 255 +#endif + +// <o> SPIS_DEFAULT_ORC - SPIS default ORC character <0-255> + + +#ifndef SPIS_DEFAULT_ORC +#define SPIS_DEFAULT_ORC 255 +#endif + +// <q> SPIS0_ENABLED - Enable SPIS0 instance + + +#ifndef SPIS0_ENABLED +#define SPIS0_ENABLED 0 +#endif + +// <q> SPIS1_ENABLED - Enable SPIS1 instance + + +#ifndef SPIS1_ENABLED +#define SPIS1_ENABLED 0 +#endif + +// <q> SPIS2_ENABLED - Enable SPIS2 instance + + +#ifndef SPIS2_ENABLED +#define SPIS2_ENABLED 0 +#endif + +// </e> + +// <e> SPI_ENABLED - nrf_drv_spi - SPI/SPIM peripheral driver - legacy layer +//========================================================== +#ifndef SPI_ENABLED +#define SPI_ENABLED 0 +#endif +// <o> SPI_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef SPI_DEFAULT_CONFIG_IRQ_PRIORITY +#define SPI_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <o> NRF_SPI_DRV_MISO_PULLUP_CFG - MISO PIN pull-up configuration. + +// <0=> NRF_GPIO_PIN_NOPULL +// <1=> NRF_GPIO_PIN_PULLDOWN +// <3=> NRF_GPIO_PIN_PULLUP + +#ifndef NRF_SPI_DRV_MISO_PULLUP_CFG +#define NRF_SPI_DRV_MISO_PULLUP_CFG 1 +#endif + +// <e> SPI0_ENABLED - Enable SPI0 instance +//========================================================== +#ifndef SPI0_ENABLED +#define SPI0_ENABLED 0 +#endif +// <q> SPI0_USE_EASY_DMA - Use EasyDMA + + +#ifndef SPI0_USE_EASY_DMA +#define SPI0_USE_EASY_DMA 1 +#endif + +// </e> + +// <e> SPI1_ENABLED - Enable SPI1 instance +//========================================================== +#ifndef SPI1_ENABLED +#define SPI1_ENABLED 0 +#endif +// <q> SPI1_USE_EASY_DMA - Use EasyDMA + + +#ifndef SPI1_USE_EASY_DMA +#define SPI1_USE_EASY_DMA 1 +#endif + +// </e> + +// <e> SPI2_ENABLED - Enable SPI2 instance +//========================================================== +#ifndef SPI2_ENABLED +#define SPI2_ENABLED 0 +#endif +// <q> SPI2_USE_EASY_DMA - Use EasyDMA + + +#ifndef SPI2_USE_EASY_DMA +#define SPI2_USE_EASY_DMA 1 +#endif + +// </e> + +// </e> + +// <e> TIMER_ENABLED - nrf_drv_timer - TIMER periperal driver - legacy layer +//========================================================== +#ifndef TIMER_ENABLED +#define TIMER_ENABLED 0 +#endif +// <o> TIMER_DEFAULT_CONFIG_FREQUENCY - Timer frequency if in Timer mode + +// <0=> 16 MHz +// <1=> 8 MHz +// <2=> 4 MHz +// <3=> 2 MHz +// <4=> 1 MHz +// <5=> 500 kHz +// <6=> 250 kHz +// <7=> 125 kHz +// <8=> 62.5 kHz +// <9=> 31.25 kHz + +#ifndef TIMER_DEFAULT_CONFIG_FREQUENCY +#define TIMER_DEFAULT_CONFIG_FREQUENCY 0 +#endif + +// <o> TIMER_DEFAULT_CONFIG_MODE - Timer mode or operation + +// <0=> Timer +// <1=> Counter + +#ifndef TIMER_DEFAULT_CONFIG_MODE +#define TIMER_DEFAULT_CONFIG_MODE 0 +#endif + +// <o> TIMER_DEFAULT_CONFIG_BIT_WIDTH - Timer counter bit width + +// <0=> 16 bit +// <1=> 8 bit +// <2=> 24 bit +// <3=> 32 bit + +#ifndef TIMER_DEFAULT_CONFIG_BIT_WIDTH +#define TIMER_DEFAULT_CONFIG_BIT_WIDTH 0 +#endif + +// <o> TIMER_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef TIMER_DEFAULT_CONFIG_IRQ_PRIORITY +#define TIMER_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <q> TIMER0_ENABLED - Enable TIMER0 instance + + +#ifndef TIMER0_ENABLED +#define TIMER0_ENABLED 0 +#endif + +// <q> TIMER1_ENABLED - Enable TIMER1 instance + + +#ifndef TIMER1_ENABLED +#define TIMER1_ENABLED 0 +#endif + +// <q> TIMER2_ENABLED - Enable TIMER2 instance + + +#ifndef TIMER2_ENABLED +#define TIMER2_ENABLED 0 +#endif + +// <q> TIMER3_ENABLED - Enable TIMER3 instance + + +#ifndef TIMER3_ENABLED +#define TIMER3_ENABLED 0 +#endif + +// <q> TIMER4_ENABLED - Enable TIMER4 instance + + +#ifndef TIMER4_ENABLED +#define TIMER4_ENABLED 0 +#endif + +// </e> + +// <e> TWIS_ENABLED - nrf_drv_twis - TWIS peripheral driver - legacy layer +//========================================================== +#ifndef TWIS_ENABLED +#define TWIS_ENABLED 0 +#endif +// <q> TWIS0_ENABLED - Enable TWIS0 instance + + +#ifndef TWIS0_ENABLED +#define TWIS0_ENABLED 0 +#endif + +// <q> TWIS1_ENABLED - Enable TWIS1 instance + + +#ifndef TWIS1_ENABLED +#define TWIS1_ENABLED 0 +#endif + +// <q> TWIS_ASSUME_INIT_AFTER_RESET_ONLY - Assume that any instance would be initialized only once + + +// <i> Optimization flag. Registers used by TWIS are shared by other peripherals. Normally, during initialization driver tries to clear all registers to known state before doing the initialization itself. This gives initialization safe procedure, no matter when it would be called. If you activate TWIS only once and do never uninitialize it - set this flag to 1 what gives more optimal code. + +#ifndef TWIS_ASSUME_INIT_AFTER_RESET_ONLY +#define TWIS_ASSUME_INIT_AFTER_RESET_ONLY 0 +#endif + +// <q> TWIS_NO_SYNC_MODE - Remove support for synchronous mode + + +// <i> Synchronous mode would be used in specific situations. And it uses some additional code and data memory to safely process state machine by polling it in status functions. If this functionality is not required it may be disabled to free some resources. + +#ifndef TWIS_NO_SYNC_MODE +#define TWIS_NO_SYNC_MODE 0 +#endif + +// <o> TWIS_DEFAULT_CONFIG_ADDR0 - Address0 +#ifndef TWIS_DEFAULT_CONFIG_ADDR0 +#define TWIS_DEFAULT_CONFIG_ADDR0 0 +#endif + +// <o> TWIS_DEFAULT_CONFIG_ADDR1 - Address1 +#ifndef TWIS_DEFAULT_CONFIG_ADDR1 +#define TWIS_DEFAULT_CONFIG_ADDR1 0 +#endif + +// <o> TWIS_DEFAULT_CONFIG_SCL_PULL - SCL pin pull configuration + +// <0=> Disabled +// <1=> Pull down +// <3=> Pull up + +#ifndef TWIS_DEFAULT_CONFIG_SCL_PULL +#define TWIS_DEFAULT_CONFIG_SCL_PULL 0 +#endif + +// <o> TWIS_DEFAULT_CONFIG_SDA_PULL - SDA pin pull configuration + +// <0=> Disabled +// <1=> Pull down +// <3=> Pull up + +#ifndef TWIS_DEFAULT_CONFIG_SDA_PULL +#define TWIS_DEFAULT_CONFIG_SDA_PULL 0 +#endif + +// <o> TWIS_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef TWIS_DEFAULT_CONFIG_IRQ_PRIORITY +#define TWIS_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// </e> + +// <e> TWI_ENABLED - nrf_drv_twi - TWI/TWIM peripheral driver - legacy layer +//========================================================== +#ifndef TWI_ENABLED +#define TWI_ENABLED 0 +#endif +// <o> TWI_DEFAULT_CONFIG_FREQUENCY - Frequency + +// <26738688=> 100k +// <67108864=> 250k +// <104857600=> 400k + +#ifndef TWI_DEFAULT_CONFIG_FREQUENCY +#define TWI_DEFAULT_CONFIG_FREQUENCY 26738688 +#endif + +// <q> TWI_DEFAULT_CONFIG_CLR_BUS_INIT - Enables bus clearing procedure during init + + +#ifndef TWI_DEFAULT_CONFIG_CLR_BUS_INIT +#define TWI_DEFAULT_CONFIG_CLR_BUS_INIT 0 +#endif + +// <q> TWI_DEFAULT_CONFIG_HOLD_BUS_UNINIT - Enables bus holding after uninit + + +#ifndef TWI_DEFAULT_CONFIG_HOLD_BUS_UNINIT +#define TWI_DEFAULT_CONFIG_HOLD_BUS_UNINIT 0 +#endif + +// <o> TWI_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef TWI_DEFAULT_CONFIG_IRQ_PRIORITY +#define TWI_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> TWI0_ENABLED - Enable TWI0 instance +//========================================================== +#ifndef TWI0_ENABLED +#define TWI0_ENABLED 0 +#endif +// <q> TWI0_USE_EASY_DMA - Use EasyDMA (if present) + + +#ifndef TWI0_USE_EASY_DMA +#define TWI0_USE_EASY_DMA 0 +#endif + +// </e> + +// <e> TWI1_ENABLED - Enable TWI1 instance +//========================================================== +#ifndef TWI1_ENABLED +#define TWI1_ENABLED 0 +#endif +// <q> TWI1_USE_EASY_DMA - Use EasyDMA (if present) + + +#ifndef TWI1_USE_EASY_DMA +#define TWI1_USE_EASY_DMA 0 +#endif + +// </e> + +// </e> + +// <e> UART_ENABLED - nrf_drv_uart - UART/UARTE peripheral driver - legacy layer +//========================================================== +#ifndef UART_ENABLED +#define UART_ENABLED 0 +#endif +// <o> UART_DEFAULT_CONFIG_HWFC - Hardware Flow Control + +// <0=> Disabled +// <1=> Enabled + +#ifndef UART_DEFAULT_CONFIG_HWFC +#define UART_DEFAULT_CONFIG_HWFC 0 +#endif + +// <o> UART_DEFAULT_CONFIG_PARITY - Parity + +// <0=> Excluded +// <14=> Included + +#ifndef UART_DEFAULT_CONFIG_PARITY +#define UART_DEFAULT_CONFIG_PARITY 0 +#endif + +// <o> UART_DEFAULT_CONFIG_BAUDRATE - Default Baudrate + +// <323584=> 1200 baud +// <643072=> 2400 baud +// <1290240=> 4800 baud +// <2576384=> 9600 baud +// <3862528=> 14400 baud +// <5152768=> 19200 baud +// <7716864=> 28800 baud +// <10289152=> 38400 baud +// <15400960=> 57600 baud +// <20615168=> 76800 baud +// <30801920=> 115200 baud +// <61865984=> 230400 baud +// <67108864=> 250000 baud +// <121634816=> 460800 baud +// <251658240=> 921600 baud +// <268435456=> 1000000 baud + +#ifndef UART_DEFAULT_CONFIG_BAUDRATE +#define UART_DEFAULT_CONFIG_BAUDRATE 30801920 +#endif + +// <o> UART_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef UART_DEFAULT_CONFIG_IRQ_PRIORITY +#define UART_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <q> UART_EASY_DMA_SUPPORT - Driver supporting EasyDMA + + +#ifndef UART_EASY_DMA_SUPPORT +#define UART_EASY_DMA_SUPPORT 1 +#endif + +// <q> UART_LEGACY_SUPPORT - Driver supporting Legacy mode + + +#ifndef UART_LEGACY_SUPPORT +#define UART_LEGACY_SUPPORT 1 +#endif + +// <e> UART0_ENABLED - Enable UART0 instance +//========================================================== +#ifndef UART0_ENABLED +#define UART0_ENABLED 0 +#endif +// <q> UART0_CONFIG_USE_EASY_DMA - Default setting for using EasyDMA + + +#ifndef UART0_CONFIG_USE_EASY_DMA +#define UART0_CONFIG_USE_EASY_DMA 1 +#endif + +// </e> + +// <e> UART1_ENABLED - Enable UART1 instance +//========================================================== +#ifndef UART1_ENABLED +#define UART1_ENABLED 0 +#endif +// </e> + +// </e> + +// <e> USBD_ENABLED - nrf_drv_usbd - Software Component +//========================================================== +#ifndef USBD_ENABLED +#define USBD_ENABLED 0 +#endif +// <o> USBD_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef USBD_CONFIG_IRQ_PRIORITY +#define USBD_CONFIG_IRQ_PRIORITY 6 +#endif + +// <o> USBD_CONFIG_DMASCHEDULER_MODE - USBD SMA scheduler working scheme + +// <0=> Prioritized access +// <1=> Round Robin + +#ifndef USBD_CONFIG_DMASCHEDULER_MODE +#define USBD_CONFIG_DMASCHEDULER_MODE 0 +#endif + +// <q> USBD_CONFIG_DMASCHEDULER_ISO_BOOST - Give priority to isochronous transfers + + +// <i> This option gives priority to isochronous transfers. +// <i> Enabling it assures that isochronous transfers are always processed, +// <i> even if multiple other transfers are pending. +// <i> Isochronous endpoints are prioritized before the usbd_dma_scheduler_algorithm +// <i> function is called, so the option is independent of the algorithm chosen. + +#ifndef USBD_CONFIG_DMASCHEDULER_ISO_BOOST +#define USBD_CONFIG_DMASCHEDULER_ISO_BOOST 1 +#endif + +// <q> USBD_CONFIG_ISO_IN_ZLP - Respond to an IN token on ISO IN endpoint with ZLP when no data is ready + + +// <i> If set, ISO IN endpoint will respond to an IN token with ZLP when no data is ready to be sent. +// <i> Else, there will be no response. +// <i> NOTE: This option does not work on Engineering A chip. + +#ifndef USBD_CONFIG_ISO_IN_ZLP +#define USBD_CONFIG_ISO_IN_ZLP 0 +#endif + +// </e> + +// <e> WDT_ENABLED - nrf_drv_wdt - WDT peripheral driver - legacy layer +//========================================================== +#ifndef WDT_ENABLED +#define WDT_ENABLED 0 +#endif +// <o> WDT_CONFIG_BEHAVIOUR - WDT behavior in CPU SLEEP or HALT mode + +// <1=> Run in SLEEP, Pause in HALT +// <8=> Pause in SLEEP, Run in HALT +// <9=> Run in SLEEP and HALT +// <0=> Pause in SLEEP and HALT + +#ifndef WDT_CONFIG_BEHAVIOUR +#define WDT_CONFIG_BEHAVIOUR 1 +#endif + +// <o> WDT_CONFIG_RELOAD_VALUE - Reload value <15-4294967295> + + +#ifndef WDT_CONFIG_RELOAD_VALUE +#define WDT_CONFIG_RELOAD_VALUE 2000 +#endif + +// <o> WDT_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef WDT_CONFIG_IRQ_PRIORITY +#define WDT_CONFIG_IRQ_PRIORITY 6 +#endif + +// </e> + +// </h> +//========================================================== + +// <h> nRF_Drivers_External + +//========================================================== +// <q> NRF_TWI_SENSOR_ENABLED - nrf_twi_sensor - nRF TWI Sensor module + + +#ifndef NRF_TWI_SENSOR_ENABLED +#define NRF_TWI_SENSOR_ENABLED 0 +#endif + +// </h> +//========================================================== + +// <h> nRF_Libraries + +//========================================================== +// <q> APP_GPIOTE_ENABLED - app_gpiote - GPIOTE events dispatcher + + +#ifndef APP_GPIOTE_ENABLED +#define APP_GPIOTE_ENABLED 0 +#endif + +// <q> APP_PWM_ENABLED - app_pwm - PWM functionality + + +#ifndef APP_PWM_ENABLED +#define APP_PWM_ENABLED 0 +#endif + +// <e> APP_SCHEDULER_ENABLED - app_scheduler - Events scheduler +//========================================================== +#ifndef APP_SCHEDULER_ENABLED +#define APP_SCHEDULER_ENABLED 0 +#endif +// <q> APP_SCHEDULER_WITH_PAUSE - Enabling pause feature + + +#ifndef APP_SCHEDULER_WITH_PAUSE +#define APP_SCHEDULER_WITH_PAUSE 0 +#endif + +// <q> APP_SCHEDULER_WITH_PROFILER - Enabling scheduler profiling + + +#ifndef APP_SCHEDULER_WITH_PROFILER +#define APP_SCHEDULER_WITH_PROFILER 0 +#endif + +// </e> + +// <e> APP_SDCARD_ENABLED - app_sdcard - SD/MMC card support using SPI +//========================================================== +#ifndef APP_SDCARD_ENABLED +#define APP_SDCARD_ENABLED 0 +#endif +// <o> APP_SDCARD_SPI_INSTANCE - SPI instance used + +// <0=> 0 +// <1=> 1 +// <2=> 2 + +#ifndef APP_SDCARD_SPI_INSTANCE +#define APP_SDCARD_SPI_INSTANCE 0 +#endif + +// <o> APP_SDCARD_FREQ_INIT - SPI frequency + +// <33554432=> 125 kHz +// <67108864=> 250 kHz +// <134217728=> 500 kHz +// <268435456=> 1 MHz +// <536870912=> 2 MHz +// <1073741824=> 4 MHz +// <2147483648=> 8 MHz + +#ifndef APP_SDCARD_FREQ_INIT +#define APP_SDCARD_FREQ_INIT 67108864 +#endif + +// <o> APP_SDCARD_FREQ_DATA - SPI frequency + +// <33554432=> 125 kHz +// <67108864=> 250 kHz +// <134217728=> 500 kHz +// <268435456=> 1 MHz +// <536870912=> 2 MHz +// <1073741824=> 4 MHz +// <2147483648=> 8 MHz + +#ifndef APP_SDCARD_FREQ_DATA +#define APP_SDCARD_FREQ_DATA 1073741824 +#endif + +// </e> + +// <e> APP_TIMER_ENABLED - app_timer - Application timer functionality +//========================================================== +#ifndef APP_TIMER_ENABLED +#define APP_TIMER_ENABLED 0 +#endif +// <o> APP_TIMER_CONFIG_RTC_FREQUENCY - Configure RTC prescaler. + +// <0=> 32768 Hz +// <1=> 16384 Hz +// <3=> 8192 Hz +// <7=> 4096 Hz +// <15=> 2048 Hz +// <31=> 1024 Hz + +#ifndef APP_TIMER_CONFIG_RTC_FREQUENCY +#define APP_TIMER_CONFIG_RTC_FREQUENCY 1 +#endif + +// <o> APP_TIMER_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef APP_TIMER_CONFIG_IRQ_PRIORITY +#define APP_TIMER_CONFIG_IRQ_PRIORITY 6 +#endif + +// <o> APP_TIMER_CONFIG_OP_QUEUE_SIZE - Capacity of timer requests queue. +// <i> Size of the queue depends on how many timers are used +// <i> in the system, how often timers are started and overall +// <i> system latency. If queue size is too small app_timer calls +// <i> will fail. + +#ifndef APP_TIMER_CONFIG_OP_QUEUE_SIZE +#define APP_TIMER_CONFIG_OP_QUEUE_SIZE 10 +#endif + +// <q> APP_TIMER_CONFIG_USE_SCHEDULER - Enable scheduling app_timer events to app_scheduler + + +#ifndef APP_TIMER_CONFIG_USE_SCHEDULER +#define APP_TIMER_CONFIG_USE_SCHEDULER 0 +#endif + +// <q> APP_TIMER_KEEPS_RTC_ACTIVE - Enable RTC always on + + +// <i> If option is enabled RTC is kept running even if there is no active timers. +// <i> This option can be used when app_timer is used for timestamping. + +#ifndef APP_TIMER_KEEPS_RTC_ACTIVE +#define APP_TIMER_KEEPS_RTC_ACTIVE 0 +#endif + +// <o> APP_TIMER_SAFE_WINDOW_MS - Maximum possible latency (in milliseconds) of handling app_timer event. +// <i> Maximum possible timeout that can be set is reduced by safe window. +// <i> Example: RTC frequency 16384 Hz, maximum possible timeout 1024 seconds - APP_TIMER_SAFE_WINDOW_MS. +// <i> Since RTC is not stopped when processor is halted in debugging session, this value +// <i> must cover it if debugging is needed. It is possible to halt processor for APP_TIMER_SAFE_WINDOW_MS +// <i> without corrupting app_timer behavior. + +#ifndef APP_TIMER_SAFE_WINDOW_MS +#define APP_TIMER_SAFE_WINDOW_MS 300000 +#endif + +// <h> App Timer Legacy configuration - Legacy configuration. + +//========================================================== +// <q> APP_TIMER_WITH_PROFILER - Enable app_timer profiling + + +#ifndef APP_TIMER_WITH_PROFILER +#define APP_TIMER_WITH_PROFILER 0 +#endif + +// <q> APP_TIMER_CONFIG_SWI_NUMBER - Configure SWI instance used. + + +#ifndef APP_TIMER_CONFIG_SWI_NUMBER +#define APP_TIMER_CONFIG_SWI_NUMBER 0 +#endif + +// </h> +//========================================================== + +// </e> + +// <q> APP_USBD_AUDIO_ENABLED - app_usbd_audio - USB AUDIO class + + +#ifndef APP_USBD_AUDIO_ENABLED +#define APP_USBD_AUDIO_ENABLED 0 +#endif + +// <e> APP_USBD_ENABLED - app_usbd - USB Device library +//========================================================== +#ifndef APP_USBD_ENABLED +#define APP_USBD_ENABLED 0 +#endif +// <o> APP_USBD_VID - Vendor ID. <0x0000-0xFFFF> + + +// <i> Note: This value is not editable in Configuration Wizard. +// <i> Vendor ID ordered from USB IF: http://www.usb.org/developers/vendor/ + +#ifndef APP_USBD_VID +#define APP_USBD_VID 0 +#endif + +// <o> APP_USBD_PID - Product ID. <0x0000-0xFFFF> + + +// <i> Note: This value is not editable in Configuration Wizard. +// <i> Selected Product ID + +#ifndef APP_USBD_PID +#define APP_USBD_PID 0 +#endif + +// <o> APP_USBD_DEVICE_VER_MAJOR - Major device version <0-99> + + +// <i> Major device version, will be converted automatically to BCD notation. Use just decimal values. + +#ifndef APP_USBD_DEVICE_VER_MAJOR +#define APP_USBD_DEVICE_VER_MAJOR 1 +#endif + +// <o> APP_USBD_DEVICE_VER_MINOR - Minor device version <0-9> + + +// <i> Minor device version, will be converted automatically to BCD notation. Use just decimal values. + +#ifndef APP_USBD_DEVICE_VER_MINOR +#define APP_USBD_DEVICE_VER_MINOR 0 +#endif + +// <o> APP_USBD_DEVICE_VER_SUB - Sub-minor device version <0-9> + + +// <i> Sub-minor device version, will be converted automatically to BCD notation. Use just decimal values. + +#ifndef APP_USBD_DEVICE_VER_SUB +#define APP_USBD_DEVICE_VER_SUB 0 +#endif + +// <q> APP_USBD_CONFIG_SELF_POWERED - Self-powered device, as opposed to bus-powered. + + +#ifndef APP_USBD_CONFIG_SELF_POWERED +#define APP_USBD_CONFIG_SELF_POWERED 1 +#endif + +// <o> APP_USBD_CONFIG_MAX_POWER - MaxPower field in configuration descriptor in milliamps. <0-500> + + +#ifndef APP_USBD_CONFIG_MAX_POWER +#define APP_USBD_CONFIG_MAX_POWER 100 +#endif + +// <q> APP_USBD_CONFIG_POWER_EVENTS_PROCESS - Process power events. + + +// <i> Enable processing power events in USB event handler. + +#ifndef APP_USBD_CONFIG_POWER_EVENTS_PROCESS +#define APP_USBD_CONFIG_POWER_EVENTS_PROCESS 1 +#endif + +// <e> APP_USBD_CONFIG_EVENT_QUEUE_ENABLE - Enable event queue. + +// <i> This is the default configuration when all the events are placed into internal queue. +// <i> Disable it when an external queue is used like app_scheduler or if you wish to process all events inside interrupts. +// <i> Processing all events from the interrupt level adds requirement not to call any functions that modifies the USBD library state from the context higher than USB interrupt context. +// <i> Functions that modify USBD state are functions for sleep, wakeup, start, stop, enable, and disable. +//========================================================== +#ifndef APP_USBD_CONFIG_EVENT_QUEUE_ENABLE +#define APP_USBD_CONFIG_EVENT_QUEUE_ENABLE 1 +#endif +// <o> APP_USBD_CONFIG_EVENT_QUEUE_SIZE - The size of the event queue. <16-64> + + +// <i> The size of the queue for the events that would be processed in the main loop. + +#ifndef APP_USBD_CONFIG_EVENT_QUEUE_SIZE +#define APP_USBD_CONFIG_EVENT_QUEUE_SIZE 32 +#endif + +// <o> APP_USBD_CONFIG_SOF_HANDLING_MODE - Change SOF events handling mode. + + +// <i> Normal queue - SOF events are pushed normally into the event queue. +// <i> Compress queue - SOF events are counted and binded with other events or executed when the queue is empty. +// <i> This prevents the queue from filling up with SOF events. +// <i> Interrupt - SOF events are processed in interrupt. +// <0=> Normal queue +// <1=> Compress queue +// <2=> Interrupt + +#ifndef APP_USBD_CONFIG_SOF_HANDLING_MODE +#define APP_USBD_CONFIG_SOF_HANDLING_MODE 1 +#endif + +// </e> + +// <q> APP_USBD_CONFIG_SOF_TIMESTAMP_PROVIDE - Provide a function that generates timestamps for logs based on the current SOF. + + +// <i> The function app_usbd_sof_timestamp_get is implemented if the logger is enabled. +// <i> Use it when initializing the logger. +// <i> SOF processing is always enabled when this configuration parameter is active. +// <i> Note: This option is configured outside of APP_USBD_CONFIG_LOG_ENABLED. +// <i> This means that it works even if the logging in this very module is disabled. + +#ifndef APP_USBD_CONFIG_SOF_TIMESTAMP_PROVIDE +#define APP_USBD_CONFIG_SOF_TIMESTAMP_PROVIDE 0 +#endif + +// <o> APP_USBD_CONFIG_DESC_STRING_SIZE - Maximum size of the NULL-terminated string of the string descriptor. <31-254> + + +// <i> 31 characters can be stored in the internal USB buffer used for transfers. +// <i> Any value higher than 31 creates an additional buffer just for descriptor strings. + +#ifndef APP_USBD_CONFIG_DESC_STRING_SIZE +#define APP_USBD_CONFIG_DESC_STRING_SIZE 31 +#endif + +// <q> APP_USBD_CONFIG_DESC_STRING_UTF_ENABLED - Enable UTF8 conversion. + + +// <i> Enable UTF8-encoded characters. In normal processing, only ASCII characters are available. + +#ifndef APP_USBD_CONFIG_DESC_STRING_UTF_ENABLED +#define APP_USBD_CONFIG_DESC_STRING_UTF_ENABLED 0 +#endif + +// <s> APP_USBD_STRINGS_LANGIDS - Supported languages identifiers. + +// <i> Note: This value is not editable in Configuration Wizard. +// <i> Comma-separated list of supported languages. +#ifndef APP_USBD_STRINGS_LANGIDS +#define APP_USBD_STRINGS_LANGIDS APP_USBD_LANG_AND_SUBLANG(APP_USBD_LANG_ENGLISH, APP_USBD_SUBLANG_ENGLISH_US) +#endif + +// <e> APP_USBD_STRING_ID_MANUFACTURER - Define manufacturer string ID. + +// <i> Setting ID to 0 disables the string. +//========================================================== +#ifndef APP_USBD_STRING_ID_MANUFACTURER +#define APP_USBD_STRING_ID_MANUFACTURER 1 +#endif +// <q> APP_USBD_STRINGS_MANUFACTURER_EXTERN - Define whether @ref APP_USBD_STRINGS_MANUFACTURER is created by macro or declared as a global variable. + + +#ifndef APP_USBD_STRINGS_MANUFACTURER_EXTERN +#define APP_USBD_STRINGS_MANUFACTURER_EXTERN 0 +#endif + +// <s> APP_USBD_STRINGS_MANUFACTURER - String descriptor for the manufacturer name. + +// <i> Note: This value is not editable in Configuration Wizard. +// <i> Comma-separated list of manufacturer names for each defined language. +// <i> Use @ref APP_USBD_STRING_DESC macro to create string descriptor from a NULL-terminated string. +// <i> Use @ref APP_USBD_STRING_RAW8_DESC macro to create string descriptor from comma-separated uint8_t values. +// <i> Use @ref APP_USBD_STRING_RAW16_DESC macro to create string descriptor from comma-separated uint16_t values. +// <i> Alternatively, configure the macro to point to any internal variable pointer that already contains the descriptor. +// <i> Setting string to NULL disables that string. +// <i> The order of manufacturer names must be the same like in @ref APP_USBD_STRINGS_LANGIDS. +#ifndef APP_USBD_STRINGS_MANUFACTURER +#define APP_USBD_STRINGS_MANUFACTURER APP_USBD_STRING_DESC("Nordic Semiconductor") +#endif + +// </e> + +// <e> APP_USBD_STRING_ID_PRODUCT - Define product string ID. + +// <i> Setting ID to 0 disables the string. +//========================================================== +#ifndef APP_USBD_STRING_ID_PRODUCT +#define APP_USBD_STRING_ID_PRODUCT 2 +#endif +// <q> APP_USBD_STRINGS_PRODUCT_EXTERN - Define whether @ref APP_USBD_STRINGS_PRODUCT is created by macro or declared as a global variable. + + +#ifndef APP_USBD_STRINGS_PRODUCT_EXTERN +#define APP_USBD_STRINGS_PRODUCT_EXTERN 0 +#endif + +// <s> APP_USBD_STRINGS_PRODUCT - String descriptor for the product name. + +// <i> Note: This value is not editable in Configuration Wizard. +// <i> List of product names that is defined the same way like in @ref APP_USBD_STRINGS_MANUFACTURER. +#ifndef APP_USBD_STRINGS_PRODUCT +#define APP_USBD_STRINGS_PRODUCT APP_USBD_STRING_DESC("nRF52 USB Product") +#endif + +// </e> + +// <e> APP_USBD_STRING_ID_SERIAL - Define serial number string ID. + +// <i> Setting ID to 0 disables the string. +//========================================================== +#ifndef APP_USBD_STRING_ID_SERIAL +#define APP_USBD_STRING_ID_SERIAL 3 +#endif +// <q> APP_USBD_STRING_SERIAL_EXTERN - Define whether @ref APP_USBD_STRING_SERIAL is created by macro or declared as a global variable. + + +#ifndef APP_USBD_STRING_SERIAL_EXTERN +#define APP_USBD_STRING_SERIAL_EXTERN 0 +#endif + +// <s> APP_USBD_STRING_SERIAL - String descriptor for the serial number. + +// <i> Note: This value is not editable in Configuration Wizard. +// <i> Serial number that is defined the same way like in @ref APP_USBD_STRINGS_MANUFACTURER. +#ifndef APP_USBD_STRING_SERIAL +#define APP_USBD_STRING_SERIAL APP_USBD_STRING_DESC("000000000000") +#endif + +// </e> + +// <e> APP_USBD_STRING_ID_CONFIGURATION - Define configuration string ID. + +// <i> Setting ID to 0 disables the string. +//========================================================== +#ifndef APP_USBD_STRING_ID_CONFIGURATION +#define APP_USBD_STRING_ID_CONFIGURATION 4 +#endif +// <q> APP_USBD_STRING_CONFIGURATION_EXTERN - Define whether @ref APP_USBD_STRINGS_CONFIGURATION is created by macro or declared as global variable. + + +#ifndef APP_USBD_STRING_CONFIGURATION_EXTERN +#define APP_USBD_STRING_CONFIGURATION_EXTERN 0 +#endif + +// <s> APP_USBD_STRINGS_CONFIGURATION - String descriptor for the device configuration. + +// <i> Note: This value is not editable in Configuration Wizard. +// <i> Configuration string that is defined the same way like in @ref APP_USBD_STRINGS_MANUFACTURER. +#ifndef APP_USBD_STRINGS_CONFIGURATION +#define APP_USBD_STRINGS_CONFIGURATION APP_USBD_STRING_DESC("Default configuration") +#endif + +// </e> + +// <s> APP_USBD_STRINGS_USER - Default values for user strings. + +// <i> Note: This value is not editable in Configuration Wizard. +// <i> This value stores all application specific user strings with the default initialization. +// <i> The setup is done by X-macros. +// <i> Expected macro parameters: +// <i> @code +// <i> X(mnemonic, [=str_idx], ...) +// <i> @endcode +// <i> - @c mnemonic: Mnemonic of the string descriptor that would be added to +// <i> @ref app_usbd_string_desc_idx_t enumerator. +// <i> - @c str_idx : String index value, can be set or left empty. +// <i> For example, WinUSB driver requires descriptor to be present on 0xEE index. +// <i> Then use X(USBD_STRING_WINUSB, =0xEE, (APP_USBD_STRING_DESC(...))) +// <i> - @c ... : List of string descriptors for each defined language. +#ifndef APP_USBD_STRINGS_USER +#define APP_USBD_STRINGS_USER X(APP_USER_1, , APP_USBD_STRING_DESC("User 1")) +#endif + +// </e> + +// <e> APP_USBD_HID_ENABLED - app_usbd_hid - USB HID class +//========================================================== +#ifndef APP_USBD_HID_ENABLED +#define APP_USBD_HID_ENABLED 0 +#endif +// <o> APP_USBD_HID_DEFAULT_IDLE_RATE - Default idle rate for HID class. <0-255> + + +// <i> 0 means indefinite duration, any other value is multiplied by 4 milliseconds. Refer to Chapter 7.2.4 of HID 1.11 Specification. + +#ifndef APP_USBD_HID_DEFAULT_IDLE_RATE +#define APP_USBD_HID_DEFAULT_IDLE_RATE 0 +#endif + +// <o> APP_USBD_HID_REPORT_IDLE_TABLE_SIZE - Size of idle rate table. <1-255> + + +// <i> Must be higher than the highest report ID used. + +#ifndef APP_USBD_HID_REPORT_IDLE_TABLE_SIZE +#define APP_USBD_HID_REPORT_IDLE_TABLE_SIZE 4 +#endif + +// </e> + +// <q> APP_USBD_HID_GENERIC_ENABLED - app_usbd_hid_generic - USB HID generic + + +#ifndef APP_USBD_HID_GENERIC_ENABLED +#define APP_USBD_HID_GENERIC_ENABLED 0 +#endif + +// <q> APP_USBD_HID_KBD_ENABLED - app_usbd_hid_kbd - USB HID keyboard + + +#ifndef APP_USBD_HID_KBD_ENABLED +#define APP_USBD_HID_KBD_ENABLED 0 +#endif + +// <q> APP_USBD_HID_MOUSE_ENABLED - app_usbd_hid_mouse - USB HID mouse + + +#ifndef APP_USBD_HID_MOUSE_ENABLED +#define APP_USBD_HID_MOUSE_ENABLED 0 +#endif + +// <q> APP_USBD_MSC_ENABLED - app_usbd_msc - USB MSC class + + +#ifndef APP_USBD_MSC_ENABLED +#define APP_USBD_MSC_ENABLED 0 +#endif + +// <q> CRC16_ENABLED - crc16 - CRC16 calculation routines + + +#ifndef CRC16_ENABLED +#define CRC16_ENABLED 0 +#endif + +// <q> CRC32_ENABLED - crc32 - CRC32 calculation routines + + +#ifndef CRC32_ENABLED +#define CRC32_ENABLED 0 +#endif + +// <q> ECC_ENABLED - ecc - Elliptic Curve Cryptography Library + + +#ifndef ECC_ENABLED +#define ECC_ENABLED 0 +#endif + +// <e> FDS_ENABLED - fds - Flash data storage module +//========================================================== +#ifndef FDS_ENABLED +#define FDS_ENABLED 0 +#endif +// <h> Pages - Virtual page settings + +// <i> Configure the number of virtual pages to use and their size. +//========================================================== +// <o> FDS_VIRTUAL_PAGES - Number of virtual flash pages to use. +// <i> One of the virtual pages is reserved by the system for garbage collection. +// <i> Therefore, the minimum is two virtual pages: one page to store data and one page to be used by the system for garbage collection. +// <i> The total amount of flash memory that is used by FDS amounts to @ref FDS_VIRTUAL_PAGES * @ref FDS_VIRTUAL_PAGE_SIZE * 4 bytes. + +#ifndef FDS_VIRTUAL_PAGES +#define FDS_VIRTUAL_PAGES 3 +#endif + +// <o> FDS_VIRTUAL_PAGE_SIZE - The size of a virtual flash page. + + +// <i> Expressed in number of 4-byte words. +// <i> By default, a virtual page is the same size as a physical page. +// <i> The size of a virtual page must be a multiple of the size of a physical page. +// <1024=> 1024 +// <2048=> 2048 + +#ifndef FDS_VIRTUAL_PAGE_SIZE +#define FDS_VIRTUAL_PAGE_SIZE 1024 +#endif + +// <o> FDS_VIRTUAL_PAGES_RESERVED - The number of virtual flash pages that are used by other modules. +// <i> FDS module stores its data in the last pages of the flash memory. +// <i> By setting this value, you can move flash end address used by the FDS. +// <i> As a result the reserved space can be used by other modules. + +#ifndef FDS_VIRTUAL_PAGES_RESERVED +#define FDS_VIRTUAL_PAGES_RESERVED 0 +#endif + +// </h> +//========================================================== + +// <h> Backend - Backend configuration + +// <i> Configure which nrf_fstorage backend is used by FDS to write to flash. +//========================================================== +// <o> FDS_BACKEND - FDS flash backend. + + +// <i> NRF_FSTORAGE_SD uses the nrf_fstorage_sd backend implementation using the SoftDevice API. Use this if you have a SoftDevice present. +// <i> NRF_FSTORAGE_NVMC uses the nrf_fstorage_nvmc implementation. Use this setting if you don't use the SoftDevice. +// <1=> NRF_FSTORAGE_NVMC +// <2=> NRF_FSTORAGE_SD + +#ifndef FDS_BACKEND +#define FDS_BACKEND 2 +#endif + +// </h> +//========================================================== + +// <h> Queue - Queue settings + +//========================================================== +// <o> FDS_OP_QUEUE_SIZE - Size of the internal queue. +// <i> Increase this value if you frequently get synchronous FDS_ERR_NO_SPACE_IN_QUEUES errors. + +#ifndef FDS_OP_QUEUE_SIZE +#define FDS_OP_QUEUE_SIZE 4 +#endif + +// </h> +//========================================================== + +// <h> CRC - CRC functionality + +//========================================================== +// <e> FDS_CRC_CHECK_ON_READ - Enable CRC checks. + +// <i> Save a record's CRC when it is written to flash and check it when the record is opened. +// <i> Records with an incorrect CRC can still be 'seen' by the user using FDS functions, but they cannot be opened. +// <i> Additionally, they will not be garbage collected until they are deleted. +//========================================================== +#ifndef FDS_CRC_CHECK_ON_READ +#define FDS_CRC_CHECK_ON_READ 0 +#endif +// <o> FDS_CRC_CHECK_ON_WRITE - Perform a CRC check on newly written records. + + +// <i> Perform a CRC check on newly written records. +// <i> This setting can be used to make sure that the record data was not altered while being written to flash. +// <1=> Enabled +// <0=> Disabled + +#ifndef FDS_CRC_CHECK_ON_WRITE +#define FDS_CRC_CHECK_ON_WRITE 0 +#endif + +// </e> + +// </h> +//========================================================== + +// <h> Users - Number of users + +//========================================================== +// <o> FDS_MAX_USERS - Maximum number of callbacks that can be registered. +#ifndef FDS_MAX_USERS +#define FDS_MAX_USERS 4 +#endif + +// </h> +//========================================================== + +// </e> + +// <q> HARDFAULT_HANDLER_ENABLED - hardfault_default - HardFault default handler for debugging and release + + +#ifndef HARDFAULT_HANDLER_ENABLED +#define HARDFAULT_HANDLER_ENABLED 0 +#endif + +// <e> HCI_MEM_POOL_ENABLED - hci_mem_pool - memory pool implementation used by HCI +//========================================================== +#ifndef HCI_MEM_POOL_ENABLED +#define HCI_MEM_POOL_ENABLED 0 +#endif +// <o> HCI_TX_BUF_SIZE - TX buffer size in bytes. +#ifndef HCI_TX_BUF_SIZE +#define HCI_TX_BUF_SIZE 600 +#endif + +// <o> HCI_RX_BUF_SIZE - RX buffer size in bytes. +#ifndef HCI_RX_BUF_SIZE +#define HCI_RX_BUF_SIZE 600 +#endif + +// <o> HCI_RX_BUF_QUEUE_SIZE - RX buffer queue size. +#ifndef HCI_RX_BUF_QUEUE_SIZE +#define HCI_RX_BUF_QUEUE_SIZE 4 +#endif + +// </e> + +// <e> HCI_SLIP_ENABLED - hci_slip - SLIP protocol implementation used by HCI +//========================================================== +#ifndef HCI_SLIP_ENABLED +#define HCI_SLIP_ENABLED 0 +#endif +// <o> HCI_UART_BAUDRATE - Default Baudrate + +// <323584=> 1200 baud +// <643072=> 2400 baud +// <1290240=> 4800 baud +// <2576384=> 9600 baud +// <3862528=> 14400 baud +// <5152768=> 19200 baud +// <7716864=> 28800 baud +// <10289152=> 38400 baud +// <15400960=> 57600 baud +// <20615168=> 76800 baud +// <30801920=> 115200 baud +// <61865984=> 230400 baud +// <67108864=> 250000 baud +// <121634816=> 460800 baud +// <251658240=> 921600 baud +// <268435456=> 1000000 baud + +#ifndef HCI_UART_BAUDRATE +#define HCI_UART_BAUDRATE 30801920 +#endif + +// <o> HCI_UART_FLOW_CONTROL - Hardware Flow Control + +// <0=> Disabled +// <1=> Enabled + +#ifndef HCI_UART_FLOW_CONTROL +#define HCI_UART_FLOW_CONTROL 0 +#endif + +// <o> HCI_UART_RX_PIN - UART RX pin +#ifndef HCI_UART_RX_PIN +#define HCI_UART_RX_PIN 31 +#endif + +// <o> HCI_UART_TX_PIN - UART TX pin +#ifndef HCI_UART_TX_PIN +#define HCI_UART_TX_PIN 31 +#endif + +// <o> HCI_UART_RTS_PIN - UART RTS pin +#ifndef HCI_UART_RTS_PIN +#define HCI_UART_RTS_PIN 31 +#endif + +// <o> HCI_UART_CTS_PIN - UART CTS pin +#ifndef HCI_UART_CTS_PIN +#define HCI_UART_CTS_PIN 31 +#endif + +// </e> + +// <e> HCI_TRANSPORT_ENABLED - hci_transport - HCI transport +//========================================================== +#ifndef HCI_TRANSPORT_ENABLED +#define HCI_TRANSPORT_ENABLED 0 +#endif +// <o> HCI_MAX_PACKET_SIZE_IN_BITS - Maximum size of a single application packet in bits. +#ifndef HCI_MAX_PACKET_SIZE_IN_BITS +#define HCI_MAX_PACKET_SIZE_IN_BITS 8000 +#endif + +// </e> + +// <q> LED_SOFTBLINK_ENABLED - led_softblink - led_softblink module + + +#ifndef LED_SOFTBLINK_ENABLED +#define LED_SOFTBLINK_ENABLED 0 +#endif + +// <q> LOW_POWER_PWM_ENABLED - low_power_pwm - low_power_pwm module + + +#ifndef LOW_POWER_PWM_ENABLED +#define LOW_POWER_PWM_ENABLED 0 +#endif + +// <e> MEM_MANAGER_ENABLED - mem_manager - Dynamic memory allocator +//========================================================== +#ifndef MEM_MANAGER_ENABLED +#define MEM_MANAGER_ENABLED 0 +#endif +// <o> MEMORY_MANAGER_SMALL_BLOCK_COUNT - Size of each memory blocks identified as 'small' block. <0-255> + + +#ifndef MEMORY_MANAGER_SMALL_BLOCK_COUNT +#define MEMORY_MANAGER_SMALL_BLOCK_COUNT 1 +#endif + +// <o> MEMORY_MANAGER_SMALL_BLOCK_SIZE - Size of each memory blocks identified as 'small' block. +// <i> Size of each memory blocks identified as 'small' block. Memory block are recommended to be word-sized. + +#ifndef MEMORY_MANAGER_SMALL_BLOCK_SIZE +#define MEMORY_MANAGER_SMALL_BLOCK_SIZE 32 +#endif + +// <o> MEMORY_MANAGER_MEDIUM_BLOCK_COUNT - Size of each memory blocks identified as 'medium' block. <0-255> + + +#ifndef MEMORY_MANAGER_MEDIUM_BLOCK_COUNT +#define MEMORY_MANAGER_MEDIUM_BLOCK_COUNT 0 +#endif + +// <o> MEMORY_MANAGER_MEDIUM_BLOCK_SIZE - Size of each memory blocks identified as 'medium' block. +// <i> Size of each memory blocks identified as 'medium' block. Memory block are recommended to be word-sized. + +#ifndef MEMORY_MANAGER_MEDIUM_BLOCK_SIZE +#define MEMORY_MANAGER_MEDIUM_BLOCK_SIZE 256 +#endif + +// <o> MEMORY_MANAGER_LARGE_BLOCK_COUNT - Size of each memory blocks identified as 'large' block. <0-255> + + +#ifndef MEMORY_MANAGER_LARGE_BLOCK_COUNT +#define MEMORY_MANAGER_LARGE_BLOCK_COUNT 0 +#endif + +// <o> MEMORY_MANAGER_LARGE_BLOCK_SIZE - Size of each memory blocks identified as 'large' block. +// <i> Size of each memory blocks identified as 'large' block. Memory block are recommended to be word-sized. + +#ifndef MEMORY_MANAGER_LARGE_BLOCK_SIZE +#define MEMORY_MANAGER_LARGE_BLOCK_SIZE 256 +#endif + +// <o> MEMORY_MANAGER_XLARGE_BLOCK_COUNT - Size of each memory blocks identified as 'extra large' block. <0-255> + + +#ifndef MEMORY_MANAGER_XLARGE_BLOCK_COUNT +#define MEMORY_MANAGER_XLARGE_BLOCK_COUNT 0 +#endif + +// <o> MEMORY_MANAGER_XLARGE_BLOCK_SIZE - Size of each memory blocks identified as 'extra large' block. +// <i> Size of each memory blocks identified as 'extra large' block. Memory block are recommended to be word-sized. + +#ifndef MEMORY_MANAGER_XLARGE_BLOCK_SIZE +#define MEMORY_MANAGER_XLARGE_BLOCK_SIZE 1320 +#endif + +// <o> MEMORY_MANAGER_XXLARGE_BLOCK_COUNT - Size of each memory blocks identified as 'extra extra large' block. <0-255> + + +#ifndef MEMORY_MANAGER_XXLARGE_BLOCK_COUNT +#define MEMORY_MANAGER_XXLARGE_BLOCK_COUNT 0 +#endif + +// <o> MEMORY_MANAGER_XXLARGE_BLOCK_SIZE - Size of each memory blocks identified as 'extra extra large' block. +// <i> Size of each memory blocks identified as 'extra extra large' block. Memory block are recommended to be word-sized. + +#ifndef MEMORY_MANAGER_XXLARGE_BLOCK_SIZE +#define MEMORY_MANAGER_XXLARGE_BLOCK_SIZE 3444 +#endif + +// <o> MEMORY_MANAGER_XSMALL_BLOCK_COUNT - Size of each memory blocks identified as 'extra small' block. <0-255> + + +#ifndef MEMORY_MANAGER_XSMALL_BLOCK_COUNT +#define MEMORY_MANAGER_XSMALL_BLOCK_COUNT 0 +#endif + +// <o> MEMORY_MANAGER_XSMALL_BLOCK_SIZE - Size of each memory blocks identified as 'extra small' block. +// <i> Size of each memory blocks identified as 'extra large' block. Memory block are recommended to be word-sized. + +#ifndef MEMORY_MANAGER_XSMALL_BLOCK_SIZE +#define MEMORY_MANAGER_XSMALL_BLOCK_SIZE 64 +#endif + +// <o> MEMORY_MANAGER_XXSMALL_BLOCK_COUNT - Size of each memory blocks identified as 'extra extra small' block. <0-255> + + +#ifndef MEMORY_MANAGER_XXSMALL_BLOCK_COUNT +#define MEMORY_MANAGER_XXSMALL_BLOCK_COUNT 0 +#endif + +// <o> MEMORY_MANAGER_XXSMALL_BLOCK_SIZE - Size of each memory blocks identified as 'extra extra small' block. +// <i> Size of each memory blocks identified as 'extra extra small' block. Memory block are recommended to be word-sized. + +#ifndef MEMORY_MANAGER_XXSMALL_BLOCK_SIZE +#define MEMORY_MANAGER_XXSMALL_BLOCK_SIZE 32 +#endif + +// <e> MEM_MANAGER_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef MEM_MANAGER_CONFIG_LOG_ENABLED +#define MEM_MANAGER_CONFIG_LOG_ENABLED 0 +#endif +// <o> MEM_MANAGER_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef MEM_MANAGER_CONFIG_LOG_LEVEL +#define MEM_MANAGER_CONFIG_LOG_LEVEL 3 +#endif + +// <o> MEM_MANAGER_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef MEM_MANAGER_CONFIG_INFO_COLOR +#define MEM_MANAGER_CONFIG_INFO_COLOR 0 +#endif + +// <o> MEM_MANAGER_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef MEM_MANAGER_CONFIG_DEBUG_COLOR +#define MEM_MANAGER_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <q> MEM_MANAGER_DISABLE_API_PARAM_CHECK - Disable API parameter checks in the module. + + +#ifndef MEM_MANAGER_DISABLE_API_PARAM_CHECK +#define MEM_MANAGER_DISABLE_API_PARAM_CHECK 0 +#endif + +// </e> + +// <e> NRF_BALLOC_ENABLED - nrf_balloc - Block allocator module +//========================================================== +#ifndef NRF_BALLOC_ENABLED +#define NRF_BALLOC_ENABLED 1 +#endif +// <e> NRF_BALLOC_CONFIG_DEBUG_ENABLED - Enables debug mode in the module. +//========================================================== +#ifndef NRF_BALLOC_CONFIG_DEBUG_ENABLED +#define NRF_BALLOC_CONFIG_DEBUG_ENABLED 0 +#endif +// <o> NRF_BALLOC_CONFIG_HEAD_GUARD_WORDS - Number of words used as head guard. <0-255> + + +#ifndef NRF_BALLOC_CONFIG_HEAD_GUARD_WORDS +#define NRF_BALLOC_CONFIG_HEAD_GUARD_WORDS 1 +#endif + +// <o> NRF_BALLOC_CONFIG_TAIL_GUARD_WORDS - Number of words used as tail guard. <0-255> + + +#ifndef NRF_BALLOC_CONFIG_TAIL_GUARD_WORDS +#define NRF_BALLOC_CONFIG_TAIL_GUARD_WORDS 1 +#endif + +// <q> NRF_BALLOC_CONFIG_BASIC_CHECKS_ENABLED - Enables basic checks in this module. + + +#ifndef NRF_BALLOC_CONFIG_BASIC_CHECKS_ENABLED +#define NRF_BALLOC_CONFIG_BASIC_CHECKS_ENABLED 0 +#endif + +// <q> NRF_BALLOC_CONFIG_DOUBLE_FREE_CHECK_ENABLED - Enables double memory free check in this module. + + +#ifndef NRF_BALLOC_CONFIG_DOUBLE_FREE_CHECK_ENABLED +#define NRF_BALLOC_CONFIG_DOUBLE_FREE_CHECK_ENABLED 0 +#endif + +// <q> NRF_BALLOC_CONFIG_DATA_TRASHING_CHECK_ENABLED - Enables free memory corruption check in this module. + + +#ifndef NRF_BALLOC_CONFIG_DATA_TRASHING_CHECK_ENABLED +#define NRF_BALLOC_CONFIG_DATA_TRASHING_CHECK_ENABLED 0 +#endif + +// <q> NRF_BALLOC_CLI_CMDS - Enable CLI commands specific to the module + + +#ifndef NRF_BALLOC_CLI_CMDS +#define NRF_BALLOC_CLI_CMDS 0 +#endif + +// </e> + +// </e> + +// <e> NRF_CSENSE_ENABLED - nrf_csense - Capacitive sensor module +//========================================================== +#ifndef NRF_CSENSE_ENABLED +#define NRF_CSENSE_ENABLED 0 +#endif +// <o> NRF_CSENSE_PAD_HYSTERESIS - Minimum value of change required to determine that a pad was touched. +#ifndef NRF_CSENSE_PAD_HYSTERESIS +#define NRF_CSENSE_PAD_HYSTERESIS 15 +#endif + +// <o> NRF_CSENSE_PAD_DEVIATION - Minimum value measured on a pad required to take it into account while calculating the step. +#ifndef NRF_CSENSE_PAD_DEVIATION +#define NRF_CSENSE_PAD_DEVIATION 70 +#endif + +// <o> NRF_CSENSE_MIN_PAD_VALUE - Minimum normalized value on a pad required to take its value into account. +#ifndef NRF_CSENSE_MIN_PAD_VALUE +#define NRF_CSENSE_MIN_PAD_VALUE 20 +#endif + +// <o> NRF_CSENSE_MAX_PADS_NUMBER - Maximum number of pads used for one instance. +#ifndef NRF_CSENSE_MAX_PADS_NUMBER +#define NRF_CSENSE_MAX_PADS_NUMBER 20 +#endif + +// <o> NRF_CSENSE_MAX_VALUE - Maximum normalized value obtained from measurement. +#ifndef NRF_CSENSE_MAX_VALUE +#define NRF_CSENSE_MAX_VALUE 1000 +#endif + +// <o> NRF_CSENSE_OUTPUT_PIN - Output pin used by the low-level module. +// <i> This is used when capacitive sensor does not use COMP. + +#ifndef NRF_CSENSE_OUTPUT_PIN +#define NRF_CSENSE_OUTPUT_PIN 26 +#endif + +// </e> + +// <e> NRF_DRV_CSENSE_ENABLED - nrf_drv_csense - Capacitive sensor low-level module +//========================================================== +#ifndef NRF_DRV_CSENSE_ENABLED +#define NRF_DRV_CSENSE_ENABLED 0 +#endif +// <e> USE_COMP - Use the comparator to implement the capacitive sensor driver. + +// <i> Due to Anomaly 84, COMP I_SOURCE is not functional. It has too high a varation. +//========================================================== +#ifndef USE_COMP +#define USE_COMP 0 +#endif +// <o> TIMER0_FOR_CSENSE - First TIMER instance used by the driver (not used on nRF51). +#ifndef TIMER0_FOR_CSENSE +#define TIMER0_FOR_CSENSE 1 +#endif + +// <o> TIMER1_FOR_CSENSE - Second TIMER instance used by the driver (not used on nRF51). +#ifndef TIMER1_FOR_CSENSE +#define TIMER1_FOR_CSENSE 2 +#endif + +// <o> MEASUREMENT_PERIOD - Single measurement period. +// <i> Time of a single measurement can be calculated as +// <i> T = (1/2)*MEASUREMENT_PERIOD*(1/f_OSC) where f_OSC = I_SOURCE / (2C*(VUP-VDOWN) ). +// <i> I_SOURCE, VUP, and VDOWN are values used to initialize COMP and C is the capacitance of the used pad. + +#ifndef MEASUREMENT_PERIOD +#define MEASUREMENT_PERIOD 20 +#endif + +// </e> + +// </e> + +// <e> NRF_FSTORAGE_ENABLED - nrf_fstorage - Flash abstraction library +//========================================================== +#ifndef NRF_FSTORAGE_ENABLED +#define NRF_FSTORAGE_ENABLED 0 +#endif +// <h> nrf_fstorage - Common settings + +// <i> Common settings to all fstorage implementations +//========================================================== +// <q> NRF_FSTORAGE_PARAM_CHECK_DISABLED - Disable user input validation + + +// <i> If selected, use ASSERT to validate user input. +// <i> This effectively removes user input validation in production code. +// <i> Recommended setting: OFF, only enable this setting if size is a major concern. + +#ifndef NRF_FSTORAGE_PARAM_CHECK_DISABLED +#define NRF_FSTORAGE_PARAM_CHECK_DISABLED 0 +#endif + +// </h> +//========================================================== + +// <h> nrf_fstorage_sd - Implementation using the SoftDevice + +// <i> Configuration options for the fstorage implementation using the SoftDevice +//========================================================== +// <o> NRF_FSTORAGE_SD_QUEUE_SIZE - Size of the internal queue of operations +// <i> Increase this value if API calls frequently return the error @ref NRF_ERROR_NO_MEM. + +#ifndef NRF_FSTORAGE_SD_QUEUE_SIZE +#define NRF_FSTORAGE_SD_QUEUE_SIZE 4 +#endif + +// <o> NRF_FSTORAGE_SD_MAX_RETRIES - Maximum number of attempts at executing an operation when the SoftDevice is busy +// <i> Increase this value if events frequently return the @ref NRF_ERROR_TIMEOUT error. +// <i> The SoftDevice might fail to schedule flash access due to high BLE activity. + +#ifndef NRF_FSTORAGE_SD_MAX_RETRIES +#define NRF_FSTORAGE_SD_MAX_RETRIES 8 +#endif + +// <o> NRF_FSTORAGE_SD_MAX_WRITE_SIZE - Maximum number of bytes to be written to flash in a single operation +// <i> This value must be a multiple of four. +// <i> Lowering this value can increase the chances of the SoftDevice being able to execute flash operations in between radio activity. +// <i> This value is bound by the maximum number of bytes that can be written to flash in a single call to @ref sd_flash_write. +// <i> That is 1024 bytes for nRF51 ICs and 4096 bytes for nRF52 ICs. + +#ifndef NRF_FSTORAGE_SD_MAX_WRITE_SIZE +#define NRF_FSTORAGE_SD_MAX_WRITE_SIZE 4096 +#endif + +// </h> +//========================================================== + +// </e> + +// <q> NRF_GFX_ENABLED - nrf_gfx - GFX module + + +#ifndef NRF_GFX_ENABLED +#define NRF_GFX_ENABLED 0 +#endif + +// <q> NRF_MEMOBJ_ENABLED - nrf_memobj - Linked memory allocator module + + +#ifndef NRF_MEMOBJ_ENABLED +#define NRF_MEMOBJ_ENABLED 1 +#endif + +// <e> NRF_PWR_MGMT_ENABLED - nrf_pwr_mgmt - Power management module +//========================================================== +#ifndef NRF_PWR_MGMT_ENABLED +#define NRF_PWR_MGMT_ENABLED 0 +#endif +// <e> NRF_PWR_MGMT_CONFIG_DEBUG_PIN_ENABLED - Enables pin debug in the module. + +// <i> Selected pin will be set when CPU is in sleep mode. +//========================================================== +#ifndef NRF_PWR_MGMT_CONFIG_DEBUG_PIN_ENABLED +#define NRF_PWR_MGMT_CONFIG_DEBUG_PIN_ENABLED 0 +#endif +// <o> NRF_PWR_MGMT_SLEEP_DEBUG_PIN - Pin number + +// <0=> 0 (P0.0) +// <1=> 1 (P0.1) +// <2=> 2 (P0.2) +// <3=> 3 (P0.3) +// <4=> 4 (P0.4) +// <5=> 5 (P0.5) +// <6=> 6 (P0.6) +// <7=> 7 (P0.7) +// <8=> 8 (P0.8) +// <9=> 9 (P0.9) +// <10=> 10 (P0.10) +// <11=> 11 (P0.11) +// <12=> 12 (P0.12) +// <13=> 13 (P0.13) +// <14=> 14 (P0.14) +// <15=> 15 (P0.15) +// <16=> 16 (P0.16) +// <17=> 17 (P0.17) +// <18=> 18 (P0.18) +// <19=> 19 (P0.19) +// <20=> 20 (P0.20) +// <21=> 21 (P0.21) +// <22=> 22 (P0.22) +// <23=> 23 (P0.23) +// <24=> 24 (P0.24) +// <25=> 25 (P0.25) +// <26=> 26 (P0.26) +// <27=> 27 (P0.27) +// <28=> 28 (P0.28) +// <29=> 29 (P0.29) +// <30=> 30 (P0.30) +// <31=> 31 (P0.31) +// <32=> 32 (P1.0) +// <33=> 33 (P1.1) +// <34=> 34 (P1.2) +// <35=> 35 (P1.3) +// <36=> 36 (P1.4) +// <37=> 37 (P1.5) +// <38=> 38 (P1.6) +// <39=> 39 (P1.7) +// <40=> 40 (P1.8) +// <41=> 41 (P1.9) +// <42=> 42 (P1.10) +// <43=> 43 (P1.11) +// <44=> 44 (P1.12) +// <45=> 45 (P1.13) +// <46=> 46 (P1.14) +// <47=> 47 (P1.15) +// <4294967295=> Not connected + +#ifndef NRF_PWR_MGMT_SLEEP_DEBUG_PIN +#define NRF_PWR_MGMT_SLEEP_DEBUG_PIN 31 +#endif + +// </e> + +// <q> NRF_PWR_MGMT_CONFIG_CPU_USAGE_MONITOR_ENABLED - Enables CPU usage monitor. + + +// <i> Module will trace percentage of CPU usage in one second intervals. + +#ifndef NRF_PWR_MGMT_CONFIG_CPU_USAGE_MONITOR_ENABLED +#define NRF_PWR_MGMT_CONFIG_CPU_USAGE_MONITOR_ENABLED 0 +#endif + +// <e> NRF_PWR_MGMT_CONFIG_STANDBY_TIMEOUT_ENABLED - Enable standby timeout. +//========================================================== +#ifndef NRF_PWR_MGMT_CONFIG_STANDBY_TIMEOUT_ENABLED +#define NRF_PWR_MGMT_CONFIG_STANDBY_TIMEOUT_ENABLED 0 +#endif +// <o> NRF_PWR_MGMT_CONFIG_STANDBY_TIMEOUT_S - Standby timeout (in seconds). +// <i> Shutdown procedure will begin no earlier than after this number of seconds. + +#ifndef NRF_PWR_MGMT_CONFIG_STANDBY_TIMEOUT_S +#define NRF_PWR_MGMT_CONFIG_STANDBY_TIMEOUT_S 3 +#endif + +// </e> + +// <q> NRF_PWR_MGMT_CONFIG_FPU_SUPPORT_ENABLED - Enables FPU event cleaning. + + +#ifndef NRF_PWR_MGMT_CONFIG_FPU_SUPPORT_ENABLED +#define NRF_PWR_MGMT_CONFIG_FPU_SUPPORT_ENABLED 0 +#endif + +// <q> NRF_PWR_MGMT_CONFIG_AUTO_SHUTDOWN_RETRY - Blocked shutdown procedure will be retried every second. + + +#ifndef NRF_PWR_MGMT_CONFIG_AUTO_SHUTDOWN_RETRY +#define NRF_PWR_MGMT_CONFIG_AUTO_SHUTDOWN_RETRY 0 +#endif + +// <q> NRF_PWR_MGMT_CONFIG_USE_SCHEDULER - Module will use @ref app_scheduler. + + +#ifndef NRF_PWR_MGMT_CONFIG_USE_SCHEDULER +#define NRF_PWR_MGMT_CONFIG_USE_SCHEDULER 0 +#endif + +// <o> NRF_PWR_MGMT_CONFIG_HANDLER_PRIORITY_COUNT - The number of priorities for module handlers. +// <i> The number of stages of the shutdown process. + +#ifndef NRF_PWR_MGMT_CONFIG_HANDLER_PRIORITY_COUNT +#define NRF_PWR_MGMT_CONFIG_HANDLER_PRIORITY_COUNT 3 +#endif + +// </e> + +// <e> NRF_QUEUE_ENABLED - nrf_queue - Queue module +//========================================================== +#ifndef NRF_QUEUE_ENABLED +#define NRF_QUEUE_ENABLED 0 +#endif +// <q> NRF_QUEUE_CLI_CMDS - Enable CLI commands specific to the module + + +#ifndef NRF_QUEUE_CLI_CMDS +#define NRF_QUEUE_CLI_CMDS 0 +#endif + +// </e> + +// <q> NRF_SECTION_ITER_ENABLED - nrf_section_iter - Section iterator + + +#ifndef NRF_SECTION_ITER_ENABLED +#define NRF_SECTION_ITER_ENABLED 1 +#endif + +// <q> NRF_SORTLIST_ENABLED - nrf_sortlist - Sorted list + + +#ifndef NRF_SORTLIST_ENABLED +#define NRF_SORTLIST_ENABLED 1 +#endif + +// <q> NRF_SPI_MNGR_ENABLED - nrf_spi_mngr - SPI transaction manager + + +#ifndef NRF_SPI_MNGR_ENABLED +#define NRF_SPI_MNGR_ENABLED 0 +#endif + +// <q> NRF_STRERROR_ENABLED - nrf_strerror - Library for converting error code to string. + + +#ifndef NRF_STRERROR_ENABLED +#define NRF_STRERROR_ENABLED 1 +#endif + +// <q> NRF_TWI_MNGR_ENABLED - nrf_twi_mngr - TWI transaction manager + + +#ifndef NRF_TWI_MNGR_ENABLED +#define NRF_TWI_MNGR_ENABLED 0 +#endif + +// <q> SLIP_ENABLED - slip - SLIP encoding and decoding + + +#ifndef SLIP_ENABLED +#define SLIP_ENABLED 0 +#endif + +// <e> TASK_MANAGER_ENABLED - task_manager - Task manager. +//========================================================== +#ifndef TASK_MANAGER_ENABLED +#define TASK_MANAGER_ENABLED 0 +#endif +// <q> TASK_MANAGER_CLI_CMDS - Enable CLI commands specific to the module + + +#ifndef TASK_MANAGER_CLI_CMDS +#define TASK_MANAGER_CLI_CMDS 0 +#endif + +// <o> TASK_MANAGER_CONFIG_MAX_TASKS - Maximum number of tasks which can be created +#ifndef TASK_MANAGER_CONFIG_MAX_TASKS +#define TASK_MANAGER_CONFIG_MAX_TASKS 2 +#endif + +// <o> TASK_MANAGER_CONFIG_STACK_SIZE - Stack size for every task (power of 2) +#ifndef TASK_MANAGER_CONFIG_STACK_SIZE +#define TASK_MANAGER_CONFIG_STACK_SIZE 1024 +#endif + +// <q> TASK_MANAGER_CONFIG_STACK_PROFILER_ENABLED - Enable stack profiling. + + +#ifndef TASK_MANAGER_CONFIG_STACK_PROFILER_ENABLED +#define TASK_MANAGER_CONFIG_STACK_PROFILER_ENABLED 1 +#endif + +// <o> TASK_MANAGER_CONFIG_STACK_GUARD - Configures stack guard. + +// <0=> Disabled +// <4=> 32 bytes +// <5=> 64 bytes +// <6=> 128 bytes +// <7=> 256 bytes +// <8=> 512 bytes + +#ifndef TASK_MANAGER_CONFIG_STACK_GUARD +#define TASK_MANAGER_CONFIG_STACK_GUARD 7 +#endif + +// </e> + +// <h> app_button - buttons handling module + +//========================================================== +// <q> BUTTON_ENABLED - Enables Button module + + +#ifndef BUTTON_ENABLED +#define BUTTON_ENABLED 0 +#endif + +// <q> BUTTON_HIGH_ACCURACY_ENABLED - Enables GPIOTE high accuracy for buttons + + +#ifndef BUTTON_HIGH_ACCURACY_ENABLED +#define BUTTON_HIGH_ACCURACY_ENABLED 0 +#endif + +// </h> +//========================================================== + +// <h> app_usbd_cdc_acm - USB CDC ACM class + +//========================================================== +// <q> APP_USBD_CDC_ACM_ENABLED - Enabling USBD CDC ACM Class library + + +#ifndef APP_USBD_CDC_ACM_ENABLED +#define APP_USBD_CDC_ACM_ENABLED 0 +#endif + +// <q> APP_USBD_CDC_ACM_ZLP_ON_EPSIZE_WRITE - Send ZLP on write with same size as endpoint + + +// <i> If enabled, CDC ACM class will automatically send a zero length packet after transfer which has the same size as endpoint. +// <i> This may limit throughput if a lot of binary data is sent, but in terminal mode operation it makes sure that the data is always displayed right after it is sent. + +#ifndef APP_USBD_CDC_ACM_ZLP_ON_EPSIZE_WRITE +#define APP_USBD_CDC_ACM_ZLP_ON_EPSIZE_WRITE 1 +#endif + +// </h> +//========================================================== + +// <h> nrf_cli - Command line interface + +//========================================================== +// <q> NRF_CLI_ENABLED - Enable/disable the CLI module. + + +#ifndef NRF_CLI_ENABLED +#define NRF_CLI_ENABLED 0 +#endif + +// <o> NRF_CLI_ARGC_MAX - Maximum number of parameters passed to the command handler. +#ifndef NRF_CLI_ARGC_MAX +#define NRF_CLI_ARGC_MAX 12 +#endif + +// <q> NRF_CLI_BUILD_IN_CMDS_ENABLED - CLI built-in commands. + + +#ifndef NRF_CLI_BUILD_IN_CMDS_ENABLED +#define NRF_CLI_BUILD_IN_CMDS_ENABLED 1 +#endif + +// <o> NRF_CLI_CMD_BUFF_SIZE - Maximum buffer size for a single command. +#ifndef NRF_CLI_CMD_BUFF_SIZE +#define NRF_CLI_CMD_BUFF_SIZE 128 +#endif + +// <q> NRF_CLI_ECHO_STATUS - CLI echo status. If set, echo is ON. + + +#ifndef NRF_CLI_ECHO_STATUS +#define NRF_CLI_ECHO_STATUS 1 +#endif + +// <q> NRF_CLI_WILDCARD_ENABLED - Enable wildcard functionality for CLI commands. + + +#ifndef NRF_CLI_WILDCARD_ENABLED +#define NRF_CLI_WILDCARD_ENABLED 0 +#endif + +// <q> NRF_CLI_METAKEYS_ENABLED - Enable additional control keys for CLI commands like ctrl+a, ctrl+e, ctrl+w, ctrl+u + + +#ifndef NRF_CLI_METAKEYS_ENABLED +#define NRF_CLI_METAKEYS_ENABLED 0 +#endif + +// <o> NRF_CLI_PRINTF_BUFF_SIZE - Maximum print buffer size. +#ifndef NRF_CLI_PRINTF_BUFF_SIZE +#define NRF_CLI_PRINTF_BUFF_SIZE 23 +#endif + +// <e> NRF_CLI_HISTORY_ENABLED - Enable CLI history mode. +//========================================================== +#ifndef NRF_CLI_HISTORY_ENABLED +#define NRF_CLI_HISTORY_ENABLED 1 +#endif +// <o> NRF_CLI_HISTORY_ELEMENT_SIZE - Size of one memory object reserved for CLI history. +#ifndef NRF_CLI_HISTORY_ELEMENT_SIZE +#define NRF_CLI_HISTORY_ELEMENT_SIZE 32 +#endif + +// <o> NRF_CLI_HISTORY_ELEMENT_COUNT - Number of history memory objects. +#ifndef NRF_CLI_HISTORY_ELEMENT_COUNT +#define NRF_CLI_HISTORY_ELEMENT_COUNT 8 +#endif + +// </e> + +// <q> NRF_CLI_VT100_COLORS_ENABLED - CLI VT100 colors. + + +#ifndef NRF_CLI_VT100_COLORS_ENABLED +#define NRF_CLI_VT100_COLORS_ENABLED 1 +#endif + +// <q> NRF_CLI_STATISTICS_ENABLED - Enable CLI statistics. + + +#ifndef NRF_CLI_STATISTICS_ENABLED +#define NRF_CLI_STATISTICS_ENABLED 1 +#endif + +// <q> NRF_CLI_LOG_BACKEND - Enable logger backend interface. + + +#ifndef NRF_CLI_LOG_BACKEND +#define NRF_CLI_LOG_BACKEND 1 +#endif + +// <q> NRF_CLI_USES_TASK_MANAGER_ENABLED - Enable CLI to use task_manager + + +#ifndef NRF_CLI_USES_TASK_MANAGER_ENABLED +#define NRF_CLI_USES_TASK_MANAGER_ENABLED 0 +#endif + +// </h> +//========================================================== + +// <h> nrf_fprintf - fprintf function. + +//========================================================== +// <q> NRF_FPRINTF_ENABLED - Enable/disable fprintf module. + + +#ifndef NRF_FPRINTF_ENABLED +#define NRF_FPRINTF_ENABLED 1 +#endif + +// <q> NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED - For each printed LF, function will add CR. + + +#ifndef NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED +#define NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED 1 +#endif + +// <q> NRF_FPRINTF_DOUBLE_ENABLED - Enable IEEE-754 double precision formatting. + + +#ifndef NRF_FPRINTF_DOUBLE_ENABLED +#define NRF_FPRINTF_DOUBLE_ENABLED 0 +#endif + +// </h> +//========================================================== + +// </h> +//========================================================== + +// <h> nRF_Log + +//========================================================== +// <e> NRF_LOG_ENABLED - nrf_log - Logger +//========================================================== +#ifndef NRF_LOG_ENABLED +#define NRF_LOG_ENABLED 0 +#endif +// <h> Log message pool - Configuration of log message pool + +//========================================================== +// <o> NRF_LOG_MSGPOOL_ELEMENT_SIZE - Size of a single element in the pool of memory objects. +// <i> If a small value is set, then performance of logs processing +// <i> is degraded because data is fragmented. Bigger value impacts +// <i> RAM memory utilization. The size is set to fit a message with +// <i> a timestamp and up to 2 arguments in a single memory object. + +#ifndef NRF_LOG_MSGPOOL_ELEMENT_SIZE +#define NRF_LOG_MSGPOOL_ELEMENT_SIZE 20 +#endif + +// <o> NRF_LOG_MSGPOOL_ELEMENT_COUNT - Number of elements in the pool of memory objects +// <i> If a small value is set, then it may lead to a deadlock +// <i> in certain cases if backend has high latency and holds +// <i> multiple messages for long time. Bigger value impacts +// <i> RAM memory usage. + +#ifndef NRF_LOG_MSGPOOL_ELEMENT_COUNT +#define NRF_LOG_MSGPOOL_ELEMENT_COUNT 8 +#endif + +// </h> +//========================================================== + +// <q> NRF_LOG_ALLOW_OVERFLOW - Configures behavior when circular buffer is full. + + +// <i> If set then oldest logs are overwritten. Otherwise a +// <i> marker is injected informing about overflow. + +#ifndef NRF_LOG_ALLOW_OVERFLOW +#define NRF_LOG_ALLOW_OVERFLOW 1 +#endif + +// <o> NRF_LOG_BUFSIZE - Size of the buffer for storing logs (in bytes). + + +// <i> Must be power of 2 and multiple of 4. +// <i> If NRF_LOG_DEFERRED = 0 then buffer size can be reduced to minimum. +// <128=> 128 +// <256=> 256 +// <512=> 512 +// <1024=> 1024 +// <2048=> 2048 +// <4096=> 4096 +// <8192=> 8192 +// <16384=> 16384 + +#ifndef NRF_LOG_BUFSIZE +#define NRF_LOG_BUFSIZE 1024 +#endif + +// <q> NRF_LOG_CLI_CMDS - Enable CLI commands for the module. + + +#ifndef NRF_LOG_CLI_CMDS +#define NRF_LOG_CLI_CMDS 0 +#endif + +// <o> NRF_LOG_DEFAULT_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_LOG_DEFAULT_LEVEL +#define NRF_LOG_DEFAULT_LEVEL 3 +#endif + +// <q> NRF_LOG_DEFERRED - Enable deffered logger. + + +// <i> Log data is buffered and can be processed in idle. + +#ifndef NRF_LOG_DEFERRED +#define NRF_LOG_DEFERRED 1 +#endif + +// <q> NRF_LOG_FILTERS_ENABLED - Enable dynamic filtering of logs. + + +#ifndef NRF_LOG_FILTERS_ENABLED +#define NRF_LOG_FILTERS_ENABLED 0 +#endif + +// <q> NRF_LOG_NON_DEFFERED_CRITICAL_REGION_ENABLED - Enable use of critical region for non deffered mode when flushing logs. + + +// <i> When enabled NRF_LOG_FLUSH is called from critical section when non deffered mode is used. +// <i> Log output will never be corrupted as access to the log backend is exclusive +// <i> but system will spend significant amount of time in critical section + +#ifndef NRF_LOG_NON_DEFFERED_CRITICAL_REGION_ENABLED +#define NRF_LOG_NON_DEFFERED_CRITICAL_REGION_ENABLED 0 +#endif + +// <o> NRF_LOG_STR_PUSH_BUFFER_SIZE - Size of the buffer dedicated for strings stored using @ref NRF_LOG_PUSH. + +// <16=> 16 +// <32=> 32 +// <64=> 64 +// <128=> 128 +// <256=> 256 +// <512=> 512 +// <1024=> 1024 + +#ifndef NRF_LOG_STR_PUSH_BUFFER_SIZE +#define NRF_LOG_STR_PUSH_BUFFER_SIZE 128 +#endif + +// <o> NRF_LOG_STR_PUSH_BUFFER_SIZE - Size of the buffer dedicated for strings stored using @ref NRF_LOG_PUSH. + +// <16=> 16 +// <32=> 32 +// <64=> 64 +// <128=> 128 +// <256=> 256 +// <512=> 512 +// <1024=> 1024 + +#ifndef NRF_LOG_STR_PUSH_BUFFER_SIZE +#define NRF_LOG_STR_PUSH_BUFFER_SIZE 128 +#endif + +// <e> NRF_LOG_USES_COLORS - If enabled then ANSI escape code for colors is prefixed to every string +//========================================================== +#ifndef NRF_LOG_USES_COLORS +#define NRF_LOG_USES_COLORS 0 +#endif +// <o> NRF_LOG_COLOR_DEFAULT - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_LOG_COLOR_DEFAULT +#define NRF_LOG_COLOR_DEFAULT 0 +#endif + +// <o> NRF_LOG_ERROR_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_LOG_ERROR_COLOR +#define NRF_LOG_ERROR_COLOR 2 +#endif + +// <o> NRF_LOG_WARNING_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_LOG_WARNING_COLOR +#define NRF_LOG_WARNING_COLOR 4 +#endif + +// </e> + +// <e> NRF_LOG_USES_TIMESTAMP - Enable timestamping + +// <i> Function for getting the timestamp is provided by the user +//========================================================== +#ifndef NRF_LOG_USES_TIMESTAMP +#define NRF_LOG_USES_TIMESTAMP 0 +#endif +// <o> NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY - Default frequency of the timestamp (in Hz) or 0 to use app_timer frequency. +#ifndef NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY +#define NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY 0 +#endif + +// </e> + +// <h> nrf_log module configuration + +//========================================================== +// <h> nrf_log in nRF_Core + +//========================================================== +// <e> NRF_MPU_LIB_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_MPU_LIB_CONFIG_LOG_ENABLED +#define NRF_MPU_LIB_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_MPU_LIB_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_MPU_LIB_CONFIG_LOG_LEVEL +#define NRF_MPU_LIB_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_MPU_LIB_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_MPU_LIB_CONFIG_INFO_COLOR +#define NRF_MPU_LIB_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_MPU_LIB_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_MPU_LIB_CONFIG_DEBUG_COLOR +#define NRF_MPU_LIB_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_STACK_GUARD_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_STACK_GUARD_CONFIG_LOG_ENABLED +#define NRF_STACK_GUARD_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_STACK_GUARD_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_STACK_GUARD_CONFIG_LOG_LEVEL +#define NRF_STACK_GUARD_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_STACK_GUARD_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_STACK_GUARD_CONFIG_INFO_COLOR +#define NRF_STACK_GUARD_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_STACK_GUARD_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_STACK_GUARD_CONFIG_DEBUG_COLOR +#define NRF_STACK_GUARD_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> TASK_MANAGER_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef TASK_MANAGER_CONFIG_LOG_ENABLED +#define TASK_MANAGER_CONFIG_LOG_ENABLED 0 +#endif +// <o> TASK_MANAGER_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef TASK_MANAGER_CONFIG_LOG_LEVEL +#define TASK_MANAGER_CONFIG_LOG_LEVEL 3 +#endif + +// <o> TASK_MANAGER_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef TASK_MANAGER_CONFIG_INFO_COLOR +#define TASK_MANAGER_CONFIG_INFO_COLOR 0 +#endif + +// <o> TASK_MANAGER_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef TASK_MANAGER_CONFIG_DEBUG_COLOR +#define TASK_MANAGER_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </h> +//========================================================== + +// <h> nrf_log in nRF_Drivers + +//========================================================== +// <e> CLOCK_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef CLOCK_CONFIG_LOG_ENABLED +#define CLOCK_CONFIG_LOG_ENABLED 0 +#endif +// <o> CLOCK_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef CLOCK_CONFIG_LOG_LEVEL +#define CLOCK_CONFIG_LOG_LEVEL 3 +#endif + +// <o> CLOCK_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef CLOCK_CONFIG_INFO_COLOR +#define CLOCK_CONFIG_INFO_COLOR 0 +#endif + +// <o> CLOCK_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef CLOCK_CONFIG_DEBUG_COLOR +#define CLOCK_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> COMP_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef COMP_CONFIG_LOG_ENABLED +#define COMP_CONFIG_LOG_ENABLED 0 +#endif +// <o> COMP_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef COMP_CONFIG_LOG_LEVEL +#define COMP_CONFIG_LOG_LEVEL 3 +#endif + +// <o> COMP_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef COMP_CONFIG_INFO_COLOR +#define COMP_CONFIG_INFO_COLOR 0 +#endif + +// <o> COMP_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef COMP_CONFIG_DEBUG_COLOR +#define COMP_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> GPIOTE_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef GPIOTE_CONFIG_LOG_ENABLED +#define GPIOTE_CONFIG_LOG_ENABLED 0 +#endif +// <o> GPIOTE_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef GPIOTE_CONFIG_LOG_LEVEL +#define GPIOTE_CONFIG_LOG_LEVEL 3 +#endif + +// <o> GPIOTE_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef GPIOTE_CONFIG_INFO_COLOR +#define GPIOTE_CONFIG_INFO_COLOR 0 +#endif + +// <o> GPIOTE_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef GPIOTE_CONFIG_DEBUG_COLOR +#define GPIOTE_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> LPCOMP_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef LPCOMP_CONFIG_LOG_ENABLED +#define LPCOMP_CONFIG_LOG_ENABLED 0 +#endif +// <o> LPCOMP_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef LPCOMP_CONFIG_LOG_LEVEL +#define LPCOMP_CONFIG_LOG_LEVEL 3 +#endif + +// <o> LPCOMP_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef LPCOMP_CONFIG_INFO_COLOR +#define LPCOMP_CONFIG_INFO_COLOR 0 +#endif + +// <o> LPCOMP_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef LPCOMP_CONFIG_DEBUG_COLOR +#define LPCOMP_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> MAX3421E_HOST_CONFIG_LOG_ENABLED - Enable logging in the module +//========================================================== +#ifndef MAX3421E_HOST_CONFIG_LOG_ENABLED +#define MAX3421E_HOST_CONFIG_LOG_ENABLED 0 +#endif +// <o> MAX3421E_HOST_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef MAX3421E_HOST_CONFIG_LOG_LEVEL +#define MAX3421E_HOST_CONFIG_LOG_LEVEL 3 +#endif + +// <o> MAX3421E_HOST_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef MAX3421E_HOST_CONFIG_INFO_COLOR +#define MAX3421E_HOST_CONFIG_INFO_COLOR 0 +#endif + +// <o> MAX3421E_HOST_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef MAX3421E_HOST_CONFIG_DEBUG_COLOR +#define MAX3421E_HOST_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRFX_USBD_CONFIG_LOG_ENABLED - Enable logging in the module +//========================================================== +#ifndef NRFX_USBD_CONFIG_LOG_ENABLED +#define NRFX_USBD_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_USBD_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_USBD_CONFIG_LOG_LEVEL +#define NRFX_USBD_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_USBD_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_USBD_CONFIG_INFO_COLOR +#define NRFX_USBD_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_USBD_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_USBD_CONFIG_DEBUG_COLOR +#define NRFX_USBD_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> PDM_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef PDM_CONFIG_LOG_ENABLED +#define PDM_CONFIG_LOG_ENABLED 0 +#endif +// <o> PDM_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef PDM_CONFIG_LOG_LEVEL +#define PDM_CONFIG_LOG_LEVEL 3 +#endif + +// <o> PDM_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef PDM_CONFIG_INFO_COLOR +#define PDM_CONFIG_INFO_COLOR 0 +#endif + +// <o> PDM_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef PDM_CONFIG_DEBUG_COLOR +#define PDM_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> PPI_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef PPI_CONFIG_LOG_ENABLED +#define PPI_CONFIG_LOG_ENABLED 0 +#endif +// <o> PPI_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef PPI_CONFIG_LOG_LEVEL +#define PPI_CONFIG_LOG_LEVEL 3 +#endif + +// <o> PPI_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef PPI_CONFIG_INFO_COLOR +#define PPI_CONFIG_INFO_COLOR 0 +#endif + +// <o> PPI_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef PPI_CONFIG_DEBUG_COLOR +#define PPI_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> PWM_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef PWM_CONFIG_LOG_ENABLED +#define PWM_CONFIG_LOG_ENABLED 0 +#endif +// <o> PWM_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef PWM_CONFIG_LOG_LEVEL +#define PWM_CONFIG_LOG_LEVEL 3 +#endif + +// <o> PWM_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef PWM_CONFIG_INFO_COLOR +#define PWM_CONFIG_INFO_COLOR 0 +#endif + +// <o> PWM_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef PWM_CONFIG_DEBUG_COLOR +#define PWM_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> QDEC_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef QDEC_CONFIG_LOG_ENABLED +#define QDEC_CONFIG_LOG_ENABLED 0 +#endif +// <o> QDEC_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef QDEC_CONFIG_LOG_LEVEL +#define QDEC_CONFIG_LOG_LEVEL 3 +#endif + +// <o> QDEC_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef QDEC_CONFIG_INFO_COLOR +#define QDEC_CONFIG_INFO_COLOR 0 +#endif + +// <o> QDEC_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef QDEC_CONFIG_DEBUG_COLOR +#define QDEC_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> RNG_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef RNG_CONFIG_LOG_ENABLED +#define RNG_CONFIG_LOG_ENABLED 0 +#endif +// <o> RNG_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef RNG_CONFIG_LOG_LEVEL +#define RNG_CONFIG_LOG_LEVEL 3 +#endif + +// <o> RNG_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef RNG_CONFIG_INFO_COLOR +#define RNG_CONFIG_INFO_COLOR 0 +#endif + +// <o> RNG_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef RNG_CONFIG_DEBUG_COLOR +#define RNG_CONFIG_DEBUG_COLOR 0 +#endif + +// <q> RNG_CONFIG_RANDOM_NUMBER_LOG_ENABLED - Enables logging of random numbers. + + +#ifndef RNG_CONFIG_RANDOM_NUMBER_LOG_ENABLED +#define RNG_CONFIG_RANDOM_NUMBER_LOG_ENABLED 0 +#endif + +// </e> + +// <e> RTC_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef RTC_CONFIG_LOG_ENABLED +#define RTC_CONFIG_LOG_ENABLED 0 +#endif +// <o> RTC_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef RTC_CONFIG_LOG_LEVEL +#define RTC_CONFIG_LOG_LEVEL 3 +#endif + +// <o> RTC_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef RTC_CONFIG_INFO_COLOR +#define RTC_CONFIG_INFO_COLOR 0 +#endif + +// <o> RTC_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef RTC_CONFIG_DEBUG_COLOR +#define RTC_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> SAADC_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef SAADC_CONFIG_LOG_ENABLED +#define SAADC_CONFIG_LOG_ENABLED 0 +#endif +// <o> SAADC_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef SAADC_CONFIG_LOG_LEVEL +#define SAADC_CONFIG_LOG_LEVEL 3 +#endif + +// <o> SAADC_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef SAADC_CONFIG_INFO_COLOR +#define SAADC_CONFIG_INFO_COLOR 0 +#endif + +// <o> SAADC_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef SAADC_CONFIG_DEBUG_COLOR +#define SAADC_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> SPIS_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef SPIS_CONFIG_LOG_ENABLED +#define SPIS_CONFIG_LOG_ENABLED 0 +#endif +// <o> SPIS_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef SPIS_CONFIG_LOG_LEVEL +#define SPIS_CONFIG_LOG_LEVEL 3 +#endif + +// <o> SPIS_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef SPIS_CONFIG_INFO_COLOR +#define SPIS_CONFIG_INFO_COLOR 0 +#endif + +// <o> SPIS_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef SPIS_CONFIG_DEBUG_COLOR +#define SPIS_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> SPI_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef SPI_CONFIG_LOG_ENABLED +#define SPI_CONFIG_LOG_ENABLED 0 +#endif +// <o> SPI_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef SPI_CONFIG_LOG_LEVEL +#define SPI_CONFIG_LOG_LEVEL 3 +#endif + +// <o> SPI_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef SPI_CONFIG_INFO_COLOR +#define SPI_CONFIG_INFO_COLOR 0 +#endif + +// <o> SPI_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef SPI_CONFIG_DEBUG_COLOR +#define SPI_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> TIMER_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef TIMER_CONFIG_LOG_ENABLED +#define TIMER_CONFIG_LOG_ENABLED 0 +#endif +// <o> TIMER_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef TIMER_CONFIG_LOG_LEVEL +#define TIMER_CONFIG_LOG_LEVEL 3 +#endif + +// <o> TIMER_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef TIMER_CONFIG_INFO_COLOR +#define TIMER_CONFIG_INFO_COLOR 0 +#endif + +// <o> TIMER_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef TIMER_CONFIG_DEBUG_COLOR +#define TIMER_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> TWIS_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef TWIS_CONFIG_LOG_ENABLED +#define TWIS_CONFIG_LOG_ENABLED 0 +#endif +// <o> TWIS_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef TWIS_CONFIG_LOG_LEVEL +#define TWIS_CONFIG_LOG_LEVEL 3 +#endif + +// <o> TWIS_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef TWIS_CONFIG_INFO_COLOR +#define TWIS_CONFIG_INFO_COLOR 0 +#endif + +// <o> TWIS_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef TWIS_CONFIG_DEBUG_COLOR +#define TWIS_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> TWI_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef TWI_CONFIG_LOG_ENABLED +#define TWI_CONFIG_LOG_ENABLED 0 +#endif +// <o> TWI_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef TWI_CONFIG_LOG_LEVEL +#define TWI_CONFIG_LOG_LEVEL 3 +#endif + +// <o> TWI_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef TWI_CONFIG_INFO_COLOR +#define TWI_CONFIG_INFO_COLOR 0 +#endif + +// <o> TWI_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef TWI_CONFIG_DEBUG_COLOR +#define TWI_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> UART_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef UART_CONFIG_LOG_ENABLED +#define UART_CONFIG_LOG_ENABLED 0 +#endif +// <o> UART_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef UART_CONFIG_LOG_LEVEL +#define UART_CONFIG_LOG_LEVEL 3 +#endif + +// <o> UART_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef UART_CONFIG_INFO_COLOR +#define UART_CONFIG_INFO_COLOR 0 +#endif + +// <o> UART_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef UART_CONFIG_DEBUG_COLOR +#define UART_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> USBD_CONFIG_LOG_ENABLED - Enable logging in the module +//========================================================== +#ifndef USBD_CONFIG_LOG_ENABLED +#define USBD_CONFIG_LOG_ENABLED 0 +#endif +// <o> USBD_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef USBD_CONFIG_LOG_LEVEL +#define USBD_CONFIG_LOG_LEVEL 3 +#endif + +// <o> USBD_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef USBD_CONFIG_INFO_COLOR +#define USBD_CONFIG_INFO_COLOR 0 +#endif + +// <o> USBD_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef USBD_CONFIG_DEBUG_COLOR +#define USBD_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> WDT_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef WDT_CONFIG_LOG_ENABLED +#define WDT_CONFIG_LOG_ENABLED 0 +#endif +// <o> WDT_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef WDT_CONFIG_LOG_LEVEL +#define WDT_CONFIG_LOG_LEVEL 3 +#endif + +// <o> WDT_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef WDT_CONFIG_INFO_COLOR +#define WDT_CONFIG_INFO_COLOR 0 +#endif + +// <o> WDT_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef WDT_CONFIG_DEBUG_COLOR +#define WDT_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </h> +//========================================================== + +// <h> nrf_log in nRF_Libraries + +//========================================================== +// <e> APP_BUTTON_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef APP_BUTTON_CONFIG_LOG_ENABLED +#define APP_BUTTON_CONFIG_LOG_ENABLED 0 +#endif +// <o> APP_BUTTON_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef APP_BUTTON_CONFIG_LOG_LEVEL +#define APP_BUTTON_CONFIG_LOG_LEVEL 3 +#endif + +// <o> APP_BUTTON_CONFIG_INITIAL_LOG_LEVEL - Initial severity level if dynamic filtering is enabled. + + +// <i> If module generates a lot of logs, initial log level can +// <i> be decreased to prevent flooding. Severity level can be +// <i> increased on instance basis. +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef APP_BUTTON_CONFIG_INITIAL_LOG_LEVEL +#define APP_BUTTON_CONFIG_INITIAL_LOG_LEVEL 3 +#endif + +// <o> APP_BUTTON_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_BUTTON_CONFIG_INFO_COLOR +#define APP_BUTTON_CONFIG_INFO_COLOR 0 +#endif + +// <o> APP_BUTTON_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_BUTTON_CONFIG_DEBUG_COLOR +#define APP_BUTTON_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> APP_TIMER_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef APP_TIMER_CONFIG_LOG_ENABLED +#define APP_TIMER_CONFIG_LOG_ENABLED 0 +#endif +// <o> APP_TIMER_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef APP_TIMER_CONFIG_LOG_LEVEL +#define APP_TIMER_CONFIG_LOG_LEVEL 3 +#endif + +// <o> APP_TIMER_CONFIG_INITIAL_LOG_LEVEL - Initial severity level if dynamic filtering is enabled. + + +// <i> If module generates a lot of logs, initial log level can +// <i> be decreased to prevent flooding. Severity level can be +// <i> increased on instance basis. +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef APP_TIMER_CONFIG_INITIAL_LOG_LEVEL +#define APP_TIMER_CONFIG_INITIAL_LOG_LEVEL 3 +#endif + +// <o> APP_TIMER_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_TIMER_CONFIG_INFO_COLOR +#define APP_TIMER_CONFIG_INFO_COLOR 0 +#endif + +// <o> APP_TIMER_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_TIMER_CONFIG_DEBUG_COLOR +#define APP_TIMER_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> APP_USBD_CDC_ACM_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef APP_USBD_CDC_ACM_CONFIG_LOG_ENABLED +#define APP_USBD_CDC_ACM_CONFIG_LOG_ENABLED 0 +#endif +// <o> APP_USBD_CDC_ACM_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef APP_USBD_CDC_ACM_CONFIG_LOG_LEVEL +#define APP_USBD_CDC_ACM_CONFIG_LOG_LEVEL 3 +#endif + +// <o> APP_USBD_CDC_ACM_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_USBD_CDC_ACM_CONFIG_INFO_COLOR +#define APP_USBD_CDC_ACM_CONFIG_INFO_COLOR 0 +#endif + +// <o> APP_USBD_CDC_ACM_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_USBD_CDC_ACM_CONFIG_DEBUG_COLOR +#define APP_USBD_CDC_ACM_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> APP_USBD_CONFIG_LOG_ENABLED - Enable logging in the module. +//========================================================== +#ifndef APP_USBD_CONFIG_LOG_ENABLED +#define APP_USBD_CONFIG_LOG_ENABLED 0 +#endif +// <o> APP_USBD_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef APP_USBD_CONFIG_LOG_LEVEL +#define APP_USBD_CONFIG_LOG_LEVEL 3 +#endif + +// <o> APP_USBD_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_USBD_CONFIG_INFO_COLOR +#define APP_USBD_CONFIG_INFO_COLOR 0 +#endif + +// <o> APP_USBD_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_USBD_CONFIG_DEBUG_COLOR +#define APP_USBD_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> APP_USBD_DUMMY_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef APP_USBD_DUMMY_CONFIG_LOG_ENABLED +#define APP_USBD_DUMMY_CONFIG_LOG_ENABLED 0 +#endif +// <o> APP_USBD_DUMMY_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef APP_USBD_DUMMY_CONFIG_LOG_LEVEL +#define APP_USBD_DUMMY_CONFIG_LOG_LEVEL 3 +#endif + +// <o> APP_USBD_DUMMY_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_USBD_DUMMY_CONFIG_INFO_COLOR +#define APP_USBD_DUMMY_CONFIG_INFO_COLOR 0 +#endif + +// <o> APP_USBD_DUMMY_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_USBD_DUMMY_CONFIG_DEBUG_COLOR +#define APP_USBD_DUMMY_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> APP_USBD_MSC_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef APP_USBD_MSC_CONFIG_LOG_ENABLED +#define APP_USBD_MSC_CONFIG_LOG_ENABLED 0 +#endif +// <o> APP_USBD_MSC_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef APP_USBD_MSC_CONFIG_LOG_LEVEL +#define APP_USBD_MSC_CONFIG_LOG_LEVEL 3 +#endif + +// <o> APP_USBD_MSC_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_USBD_MSC_CONFIG_INFO_COLOR +#define APP_USBD_MSC_CONFIG_INFO_COLOR 0 +#endif + +// <o> APP_USBD_MSC_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_USBD_MSC_CONFIG_DEBUG_COLOR +#define APP_USBD_MSC_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_ENABLED +#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_ENABLED 0 +#endif +// <o> APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_LEVEL +#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_LEVEL 3 +#endif + +// <o> APP_USBD_NRF_DFU_TRIGGER_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_INFO_COLOR +#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_INFO_COLOR 0 +#endif + +// <o> APP_USBD_NRF_DFU_TRIGGER_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_DEBUG_COLOR +#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_ATFIFO_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_ATFIFO_CONFIG_LOG_ENABLED +#define NRF_ATFIFO_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_ATFIFO_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_ATFIFO_CONFIG_LOG_LEVEL +#define NRF_ATFIFO_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_ATFIFO_CONFIG_LOG_INIT_FILTER_LEVEL - Initial severity level if dynamic filtering is enabled + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_ATFIFO_CONFIG_LOG_INIT_FILTER_LEVEL +#define NRF_ATFIFO_CONFIG_LOG_INIT_FILTER_LEVEL 3 +#endif + +// <o> NRF_ATFIFO_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_ATFIFO_CONFIG_INFO_COLOR +#define NRF_ATFIFO_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_ATFIFO_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_ATFIFO_CONFIG_DEBUG_COLOR +#define NRF_ATFIFO_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_BALLOC_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_BALLOC_CONFIG_LOG_ENABLED +#define NRF_BALLOC_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_BALLOC_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_BALLOC_CONFIG_LOG_LEVEL +#define NRF_BALLOC_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_BALLOC_CONFIG_INITIAL_LOG_LEVEL - Initial severity level if dynamic filtering is enabled. + + +// <i> If module generates a lot of logs, initial log level can +// <i> be decreased to prevent flooding. Severity level can be +// <i> increased on instance basis. +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_BALLOC_CONFIG_INITIAL_LOG_LEVEL +#define NRF_BALLOC_CONFIG_INITIAL_LOG_LEVEL 3 +#endif + +// <o> NRF_BALLOC_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_BALLOC_CONFIG_INFO_COLOR +#define NRF_BALLOC_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_BALLOC_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_BALLOC_CONFIG_DEBUG_COLOR +#define NRF_BALLOC_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_ENABLED +#define NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_LEVEL +#define NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_INIT_FILTER_LEVEL - Initial severity level if dynamic filtering is enabled + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_INIT_FILTER_LEVEL +#define NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_INIT_FILTER_LEVEL 3 +#endif + +// <o> NRF_BLOCK_DEV_EMPTY_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_INFO_COLOR +#define NRF_BLOCK_DEV_EMPTY_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_BLOCK_DEV_EMPTY_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_DEBUG_COLOR +#define NRF_BLOCK_DEV_EMPTY_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_BLOCK_DEV_QSPI_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_LOG_ENABLED +#define NRF_BLOCK_DEV_QSPI_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_BLOCK_DEV_QSPI_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_LOG_LEVEL +#define NRF_BLOCK_DEV_QSPI_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_BLOCK_DEV_QSPI_CONFIG_LOG_INIT_FILTER_LEVEL - Initial severity level if dynamic filtering is enabled + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_LOG_INIT_FILTER_LEVEL +#define NRF_BLOCK_DEV_QSPI_CONFIG_LOG_INIT_FILTER_LEVEL 3 +#endif + +// <o> NRF_BLOCK_DEV_QSPI_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_INFO_COLOR +#define NRF_BLOCK_DEV_QSPI_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_BLOCK_DEV_QSPI_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_DEBUG_COLOR +#define NRF_BLOCK_DEV_QSPI_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_BLOCK_DEV_RAM_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_BLOCK_DEV_RAM_CONFIG_LOG_ENABLED +#define NRF_BLOCK_DEV_RAM_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_BLOCK_DEV_RAM_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_BLOCK_DEV_RAM_CONFIG_LOG_LEVEL +#define NRF_BLOCK_DEV_RAM_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_BLOCK_DEV_RAM_CONFIG_LOG_INIT_FILTER_LEVEL - Initial severity level if dynamic filtering is enabled + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_BLOCK_DEV_RAM_CONFIG_LOG_INIT_FILTER_LEVEL +#define NRF_BLOCK_DEV_RAM_CONFIG_LOG_INIT_FILTER_LEVEL 3 +#endif + +// <o> NRF_BLOCK_DEV_RAM_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_BLOCK_DEV_RAM_CONFIG_INFO_COLOR +#define NRF_BLOCK_DEV_RAM_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_BLOCK_DEV_RAM_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_BLOCK_DEV_RAM_CONFIG_DEBUG_COLOR +#define NRF_BLOCK_DEV_RAM_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_CLI_BLE_UART_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_CLI_BLE_UART_CONFIG_LOG_ENABLED +#define NRF_CLI_BLE_UART_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_CLI_BLE_UART_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_CLI_BLE_UART_CONFIG_LOG_LEVEL +#define NRF_CLI_BLE_UART_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_CLI_BLE_UART_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_CLI_BLE_UART_CONFIG_INFO_COLOR +#define NRF_CLI_BLE_UART_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_CLI_BLE_UART_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_CLI_BLE_UART_CONFIG_DEBUG_COLOR +#define NRF_CLI_BLE_UART_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_CLI_LIBUARTE_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_CLI_LIBUARTE_CONFIG_LOG_ENABLED +#define NRF_CLI_LIBUARTE_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_CLI_LIBUARTE_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_CLI_LIBUARTE_CONFIG_LOG_LEVEL +#define NRF_CLI_LIBUARTE_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_CLI_LIBUARTE_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_CLI_LIBUARTE_CONFIG_INFO_COLOR +#define NRF_CLI_LIBUARTE_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_CLI_LIBUARTE_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_CLI_LIBUARTE_CONFIG_DEBUG_COLOR +#define NRF_CLI_LIBUARTE_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_CLI_UART_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_CLI_UART_CONFIG_LOG_ENABLED +#define NRF_CLI_UART_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_CLI_UART_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_CLI_UART_CONFIG_LOG_LEVEL +#define NRF_CLI_UART_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_CLI_UART_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_CLI_UART_CONFIG_INFO_COLOR +#define NRF_CLI_UART_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_CLI_UART_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_CLI_UART_CONFIG_DEBUG_COLOR +#define NRF_CLI_UART_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_LIBUARTE_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_LIBUARTE_CONFIG_LOG_ENABLED +#define NRF_LIBUARTE_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_LIBUARTE_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_LIBUARTE_CONFIG_LOG_LEVEL +#define NRF_LIBUARTE_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_LIBUARTE_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_LIBUARTE_CONFIG_INFO_COLOR +#define NRF_LIBUARTE_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_LIBUARTE_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_LIBUARTE_CONFIG_DEBUG_COLOR +#define NRF_LIBUARTE_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_MEMOBJ_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_MEMOBJ_CONFIG_LOG_ENABLED +#define NRF_MEMOBJ_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_MEMOBJ_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_MEMOBJ_CONFIG_LOG_LEVEL +#define NRF_MEMOBJ_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_MEMOBJ_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_MEMOBJ_CONFIG_INFO_COLOR +#define NRF_MEMOBJ_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_MEMOBJ_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_MEMOBJ_CONFIG_DEBUG_COLOR +#define NRF_MEMOBJ_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_PWR_MGMT_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_PWR_MGMT_CONFIG_LOG_ENABLED +#define NRF_PWR_MGMT_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_PWR_MGMT_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_PWR_MGMT_CONFIG_LOG_LEVEL +#define NRF_PWR_MGMT_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_PWR_MGMT_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_PWR_MGMT_CONFIG_INFO_COLOR +#define NRF_PWR_MGMT_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_PWR_MGMT_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_PWR_MGMT_CONFIG_DEBUG_COLOR +#define NRF_PWR_MGMT_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_QUEUE_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_QUEUE_CONFIG_LOG_ENABLED +#define NRF_QUEUE_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_QUEUE_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_QUEUE_CONFIG_LOG_LEVEL +#define NRF_QUEUE_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_QUEUE_CONFIG_LOG_INIT_FILTER_LEVEL - Initial severity level if dynamic filtering is enabled + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_QUEUE_CONFIG_LOG_INIT_FILTER_LEVEL +#define NRF_QUEUE_CONFIG_LOG_INIT_FILTER_LEVEL 3 +#endif + +// <o> NRF_QUEUE_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_QUEUE_CONFIG_INFO_COLOR +#define NRF_QUEUE_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_QUEUE_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_QUEUE_CONFIG_DEBUG_COLOR +#define NRF_QUEUE_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_SDH_ANT_LOG_ENABLED - Enable logging in SoftDevice handler (ANT) module. +//========================================================== +#ifndef NRF_SDH_ANT_LOG_ENABLED +#define NRF_SDH_ANT_LOG_ENABLED 0 +#endif +// <o> NRF_SDH_ANT_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_SDH_ANT_LOG_LEVEL +#define NRF_SDH_ANT_LOG_LEVEL 3 +#endif + +// <o> NRF_SDH_ANT_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_SDH_ANT_INFO_COLOR +#define NRF_SDH_ANT_INFO_COLOR 0 +#endif + +// <o> NRF_SDH_ANT_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_SDH_ANT_DEBUG_COLOR +#define NRF_SDH_ANT_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_SDH_BLE_LOG_ENABLED - Enable logging in SoftDevice handler (BLE) module. +//========================================================== +#ifndef NRF_SDH_BLE_LOG_ENABLED +#define NRF_SDH_BLE_LOG_ENABLED 1 +#endif +// <o> NRF_SDH_BLE_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_SDH_BLE_LOG_LEVEL +#define NRF_SDH_BLE_LOG_LEVEL 3 +#endif + +// <o> NRF_SDH_BLE_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_SDH_BLE_INFO_COLOR +#define NRF_SDH_BLE_INFO_COLOR 0 +#endif + +// <o> NRF_SDH_BLE_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_SDH_BLE_DEBUG_COLOR +#define NRF_SDH_BLE_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_SDH_LOG_ENABLED - Enable logging in SoftDevice handler module. +//========================================================== +#ifndef NRF_SDH_LOG_ENABLED +#define NRF_SDH_LOG_ENABLED 1 +#endif +// <o> NRF_SDH_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_SDH_LOG_LEVEL +#define NRF_SDH_LOG_LEVEL 3 +#endif + +// <o> NRF_SDH_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_SDH_INFO_COLOR +#define NRF_SDH_INFO_COLOR 0 +#endif + +// <o> NRF_SDH_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_SDH_DEBUG_COLOR +#define NRF_SDH_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_SDH_SOC_LOG_ENABLED - Enable logging in SoftDevice handler (SoC) module. +//========================================================== +#ifndef NRF_SDH_SOC_LOG_ENABLED +#define NRF_SDH_SOC_LOG_ENABLED 1 +#endif +// <o> NRF_SDH_SOC_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_SDH_SOC_LOG_LEVEL +#define NRF_SDH_SOC_LOG_LEVEL 3 +#endif + +// <o> NRF_SDH_SOC_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_SDH_SOC_INFO_COLOR +#define NRF_SDH_SOC_INFO_COLOR 0 +#endif + +// <o> NRF_SDH_SOC_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_SDH_SOC_DEBUG_COLOR +#define NRF_SDH_SOC_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_SORTLIST_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_SORTLIST_CONFIG_LOG_ENABLED +#define NRF_SORTLIST_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_SORTLIST_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_SORTLIST_CONFIG_LOG_LEVEL +#define NRF_SORTLIST_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_SORTLIST_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_SORTLIST_CONFIG_INFO_COLOR +#define NRF_SORTLIST_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_SORTLIST_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_SORTLIST_CONFIG_DEBUG_COLOR +#define NRF_SORTLIST_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_TWI_SENSOR_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_TWI_SENSOR_CONFIG_LOG_ENABLED +#define NRF_TWI_SENSOR_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_TWI_SENSOR_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_TWI_SENSOR_CONFIG_LOG_LEVEL +#define NRF_TWI_SENSOR_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_TWI_SENSOR_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_TWI_SENSOR_CONFIG_INFO_COLOR +#define NRF_TWI_SENSOR_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_TWI_SENSOR_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_TWI_SENSOR_CONFIG_DEBUG_COLOR +#define NRF_TWI_SENSOR_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> PM_LOG_ENABLED - Enable logging in Peer Manager and its submodules. +//========================================================== +#ifndef PM_LOG_ENABLED +#define PM_LOG_ENABLED 1 +#endif +// <o> PM_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef PM_LOG_LEVEL +#define PM_LOG_LEVEL 3 +#endif + +// <o> PM_LOG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef PM_LOG_INFO_COLOR +#define PM_LOG_INFO_COLOR 0 +#endif + +// <o> PM_LOG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef PM_LOG_DEBUG_COLOR +#define PM_LOG_DEBUG_COLOR 0 +#endif + +// </e> + +// </h> +//========================================================== + +// <h> nrf_log in nRF_Serialization + +//========================================================== +// <e> SER_HAL_TRANSPORT_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef SER_HAL_TRANSPORT_CONFIG_LOG_ENABLED +#define SER_HAL_TRANSPORT_CONFIG_LOG_ENABLED 0 +#endif +// <o> SER_HAL_TRANSPORT_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef SER_HAL_TRANSPORT_CONFIG_LOG_LEVEL +#define SER_HAL_TRANSPORT_CONFIG_LOG_LEVEL 3 +#endif + +// <o> SER_HAL_TRANSPORT_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef SER_HAL_TRANSPORT_CONFIG_INFO_COLOR +#define SER_HAL_TRANSPORT_CONFIG_INFO_COLOR 0 +#endif + +// <o> SER_HAL_TRANSPORT_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef SER_HAL_TRANSPORT_CONFIG_DEBUG_COLOR +#define SER_HAL_TRANSPORT_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </h> +//========================================================== + +// </h> +//========================================================== + +// </e> + +// <q> NRF_LOG_STR_FORMATTER_TIMESTAMP_FORMAT_ENABLED - nrf_log_str_formatter - Log string formatter + + +#ifndef NRF_LOG_STR_FORMATTER_TIMESTAMP_FORMAT_ENABLED +#define NRF_LOG_STR_FORMATTER_TIMESTAMP_FORMAT_ENABLED 1 +#endif + +// </h> +//========================================================== + +// <h> nRF_NFC + +//========================================================== +// <q> NFC_AC_REC_ENABLED - nfc_ac_rec - NFC NDEF Alternative Carrier record encoder + + +#ifndef NFC_AC_REC_ENABLED +#define NFC_AC_REC_ENABLED 0 +#endif + +// <q> NFC_AC_REC_PARSER_ENABLED - nfc_ac_rec_parser - Alternative Carrier record parser + + +#ifndef NFC_AC_REC_PARSER_ENABLED +#define NFC_AC_REC_PARSER_ENABLED 0 +#endif + +// <e> NFC_BLE_OOB_ADVDATA_ENABLED - nfc_ble_oob_advdata - AD data for OOB pairing encoder +//========================================================== +#ifndef NFC_BLE_OOB_ADVDATA_ENABLED +#define NFC_BLE_OOB_ADVDATA_ENABLED 0 +#endif +// <o> ADVANCED_ADVDATA_SUPPORT - Non-mandatory AD types for BLE OOB pairing are encoded inside the NDEF message (e.g. service UUIDs) + +// <1=> Enabled +// <0=> Disabled + +#ifndef ADVANCED_ADVDATA_SUPPORT +#define ADVANCED_ADVDATA_SUPPORT 0 +#endif + +// </e> + +// <q> NFC_BLE_OOB_ADVDATA_PARSER_ENABLED - nfc_ble_oob_advdata_parser - BLE OOB pairing AD data parser + + +#ifndef NFC_BLE_OOB_ADVDATA_PARSER_ENABLED +#define NFC_BLE_OOB_ADVDATA_PARSER_ENABLED 0 +#endif + +// <e> NFC_BLE_PAIR_LIB_ENABLED - nfc_ble_pair_lib - Library parameters +//========================================================== +#ifndef NFC_BLE_PAIR_LIB_ENABLED +#define NFC_BLE_PAIR_LIB_ENABLED 0 +#endif +// <e> NFC_BLE_PAIR_LIB_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NFC_BLE_PAIR_LIB_LOG_ENABLED +#define NFC_BLE_PAIR_LIB_LOG_ENABLED 0 +#endif +// <o> NFC_BLE_PAIR_LIB_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NFC_BLE_PAIR_LIB_LOG_LEVEL +#define NFC_BLE_PAIR_LIB_LOG_LEVEL 3 +#endif + +// <o> NFC_BLE_PAIR_LIB_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NFC_BLE_PAIR_LIB_INFO_COLOR +#define NFC_BLE_PAIR_LIB_INFO_COLOR 0 +#endif + +// <o> NFC_BLE_PAIR_LIB_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NFC_BLE_PAIR_LIB_DEBUG_COLOR +#define NFC_BLE_PAIR_LIB_DEBUG_COLOR 0 +#endif + +// </e> + +// <h> NFC_BLE_PAIR_LIB_SECURITY_PARAMETERS - Common Peer Manager security parameters. + +//========================================================== +// <e> BLE_NFC_SEC_PARAM_BOND - Enables device bonding. + +// <i> If bonding is enabled at least one of the BLE_NFC_SEC_PARAM_KDIST options must be enabled. +//========================================================== +#ifndef BLE_NFC_SEC_PARAM_BOND +#define BLE_NFC_SEC_PARAM_BOND 1 +#endif +// <q> BLE_NFC_SEC_PARAM_KDIST_OWN_ENC - Enables Long Term Key and Master Identification distribution by device. + + +#ifndef BLE_NFC_SEC_PARAM_KDIST_OWN_ENC +#define BLE_NFC_SEC_PARAM_KDIST_OWN_ENC 1 +#endif + +// <q> BLE_NFC_SEC_PARAM_KDIST_OWN_ID - Enables Identity Resolving Key and Identity Address Information distribution by device. + + +#ifndef BLE_NFC_SEC_PARAM_KDIST_OWN_ID +#define BLE_NFC_SEC_PARAM_KDIST_OWN_ID 1 +#endif + +// <q> BLE_NFC_SEC_PARAM_KDIST_PEER_ENC - Enables Long Term Key and Master Identification distribution by peer. + + +#ifndef BLE_NFC_SEC_PARAM_KDIST_PEER_ENC +#define BLE_NFC_SEC_PARAM_KDIST_PEER_ENC 1 +#endif + +// <q> BLE_NFC_SEC_PARAM_KDIST_PEER_ID - Enables Identity Resolving Key and Identity Address Information distribution by peer. + + +#ifndef BLE_NFC_SEC_PARAM_KDIST_PEER_ID +#define BLE_NFC_SEC_PARAM_KDIST_PEER_ID 1 +#endif + +// </e> + +// <o> BLE_NFC_SEC_PARAM_MIN_KEY_SIZE - Minimal size of a security key. + +// <7=> 7 +// <8=> 8 +// <9=> 9 +// <10=> 10 +// <11=> 11 +// <12=> 12 +// <13=> 13 +// <14=> 14 +// <15=> 15 +// <16=> 16 + +#ifndef BLE_NFC_SEC_PARAM_MIN_KEY_SIZE +#define BLE_NFC_SEC_PARAM_MIN_KEY_SIZE 7 +#endif + +// <o> BLE_NFC_SEC_PARAM_MAX_KEY_SIZE - Maximal size of a security key. + +// <7=> 7 +// <8=> 8 +// <9=> 9 +// <10=> 10 +// <11=> 11 +// <12=> 12 +// <13=> 13 +// <14=> 14 +// <15=> 15 +// <16=> 16 + +#ifndef BLE_NFC_SEC_PARAM_MAX_KEY_SIZE +#define BLE_NFC_SEC_PARAM_MAX_KEY_SIZE 16 +#endif + +// </h> +//========================================================== + +// </e> + +// <q> NFC_BLE_PAIR_MSG_ENABLED - nfc_ble_pair_msg - NDEF message for OOB pairing encoder + + +#ifndef NFC_BLE_PAIR_MSG_ENABLED +#define NFC_BLE_PAIR_MSG_ENABLED 0 +#endif + +// <q> NFC_CH_COMMON_ENABLED - nfc_ble_pair_common - OOB pairing common data + + +#ifndef NFC_CH_COMMON_ENABLED +#define NFC_CH_COMMON_ENABLED 0 +#endif + +// <q> NFC_EP_OOB_REC_ENABLED - nfc_ep_oob_rec - EP record for BLE pairing encoder + + +#ifndef NFC_EP_OOB_REC_ENABLED +#define NFC_EP_OOB_REC_ENABLED 0 +#endif + +// <q> NFC_HS_REC_ENABLED - nfc_hs_rec - Handover Select NDEF record encoder + + +#ifndef NFC_HS_REC_ENABLED +#define NFC_HS_REC_ENABLED 0 +#endif + +// <q> NFC_LE_OOB_REC_ENABLED - nfc_le_oob_rec - LE record for BLE pairing encoder + + +#ifndef NFC_LE_OOB_REC_ENABLED +#define NFC_LE_OOB_REC_ENABLED 0 +#endif + +// <q> NFC_LE_OOB_REC_PARSER_ENABLED - nfc_le_oob_rec_parser - LE record parser + + +#ifndef NFC_LE_OOB_REC_PARSER_ENABLED +#define NFC_LE_OOB_REC_PARSER_ENABLED 0 +#endif + +// <q> NFC_NDEF_LAUNCHAPP_MSG_ENABLED - nfc_launchapp_msg - Encoding data for NDEF Application Launching message for NFC Tag + + +#ifndef NFC_NDEF_LAUNCHAPP_MSG_ENABLED +#define NFC_NDEF_LAUNCHAPP_MSG_ENABLED 0 +#endif + +// <q> NFC_NDEF_LAUNCHAPP_REC_ENABLED - nfc_launchapp_rec - Encoding data for NDEF Application Launching record for NFC Tag + + +#ifndef NFC_NDEF_LAUNCHAPP_REC_ENABLED +#define NFC_NDEF_LAUNCHAPP_REC_ENABLED 0 +#endif + +// <e> NFC_NDEF_MSG_ENABLED - nfc_ndef_msg - NFC NDEF Message generator module +//========================================================== +#ifndef NFC_NDEF_MSG_ENABLED +#define NFC_NDEF_MSG_ENABLED 0 +#endif +// <o> NFC_NDEF_MSG_TAG_TYPE - NFC Tag Type + +// <2=> Type 2 Tag +// <4=> Type 4 Tag + +#ifndef NFC_NDEF_MSG_TAG_TYPE +#define NFC_NDEF_MSG_TAG_TYPE 2 +#endif + +// </e> + +// <e> NFC_NDEF_MSG_PARSER_ENABLED - nfc_ndef_msg_parser - NFC NDEF message parser module +//========================================================== +#ifndef NFC_NDEF_MSG_PARSER_ENABLED +#define NFC_NDEF_MSG_PARSER_ENABLED 0 +#endif +// <e> NFC_NDEF_MSG_PARSER_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NFC_NDEF_MSG_PARSER_LOG_ENABLED +#define NFC_NDEF_MSG_PARSER_LOG_ENABLED 0 +#endif +// <o> NFC_NDEF_MSG_PARSER_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NFC_NDEF_MSG_PARSER_LOG_LEVEL +#define NFC_NDEF_MSG_PARSER_LOG_LEVEL 3 +#endif + +// <o> NFC_NDEF_MSG_PARSER_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NFC_NDEF_MSG_PARSER_INFO_COLOR +#define NFC_NDEF_MSG_PARSER_INFO_COLOR 0 +#endif + +// </e> + +// </e> + +// <q> NFC_NDEF_RECORD_ENABLED - nfc_ndef_record - NFC NDEF Record generator module + + +#ifndef NFC_NDEF_RECORD_ENABLED +#define NFC_NDEF_RECORD_ENABLED 0 +#endif + +// <e> NFC_NDEF_RECORD_PARSER_ENABLED - nfc_ndef_record_parser - NFC NDEF Record parser module +//========================================================== +#ifndef NFC_NDEF_RECORD_PARSER_ENABLED +#define NFC_NDEF_RECORD_PARSER_ENABLED 0 +#endif +// <e> NFC_NDEF_RECORD_PARSER_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NFC_NDEF_RECORD_PARSER_LOG_ENABLED +#define NFC_NDEF_RECORD_PARSER_LOG_ENABLED 0 +#endif +// <o> NFC_NDEF_RECORD_PARSER_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NFC_NDEF_RECORD_PARSER_LOG_LEVEL +#define NFC_NDEF_RECORD_PARSER_LOG_LEVEL 3 +#endif + +// <o> NFC_NDEF_RECORD_PARSER_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NFC_NDEF_RECORD_PARSER_INFO_COLOR +#define NFC_NDEF_RECORD_PARSER_INFO_COLOR 0 +#endif + +// </e> + +// </e> + +// <q> NFC_NDEF_TEXT_RECORD_ENABLED - nfc_text_rec - Encoding data for a text record for NFC Tag + + +#ifndef NFC_NDEF_TEXT_RECORD_ENABLED +#define NFC_NDEF_TEXT_RECORD_ENABLED 0 +#endif + +// <q> NFC_NDEF_URI_MSG_ENABLED - nfc_uri_msg - Encoding data for NDEF message with URI record for NFC Tag + + +#ifndef NFC_NDEF_URI_MSG_ENABLED +#define NFC_NDEF_URI_MSG_ENABLED 0 +#endif + +// <q> NFC_NDEF_URI_REC_ENABLED - nfc_uri_rec - Encoding data for a URI record for NFC Tag + + +#ifndef NFC_NDEF_URI_REC_ENABLED +#define NFC_NDEF_URI_REC_ENABLED 0 +#endif + +// <e> NFC_PLATFORM_ENABLED - nfc_platform - NFC platform module for Clock control. +//========================================================== +#ifndef NFC_PLATFORM_ENABLED +#define NFC_PLATFORM_ENABLED 0 +#endif +// <e> NFC_PLATFORM_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NFC_PLATFORM_LOG_ENABLED +#define NFC_PLATFORM_LOG_ENABLED 0 +#endif +// <o> NFC_PLATFORM_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NFC_PLATFORM_LOG_LEVEL +#define NFC_PLATFORM_LOG_LEVEL 3 +#endif + +// <o> NFC_PLATFORM_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NFC_PLATFORM_INFO_COLOR +#define NFC_PLATFORM_INFO_COLOR 0 +#endif + +// <o> NFC_PLATFORM_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NFC_PLATFORM_DEBUG_COLOR +#define NFC_PLATFORM_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NFC_T2T_PARSER_ENABLED - nfc_type_2_tag_parser - Parser for decoding Type 2 Tag data +//========================================================== +#ifndef NFC_T2T_PARSER_ENABLED +#define NFC_T2T_PARSER_ENABLED 0 +#endif +// <e> NFC_T2T_PARSER_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NFC_T2T_PARSER_LOG_ENABLED +#define NFC_T2T_PARSER_LOG_ENABLED 0 +#endif +// <o> NFC_T2T_PARSER_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NFC_T2T_PARSER_LOG_LEVEL +#define NFC_T2T_PARSER_LOG_LEVEL 3 +#endif + +// <o> NFC_T2T_PARSER_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NFC_T2T_PARSER_INFO_COLOR +#define NFC_T2T_PARSER_INFO_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NFC_T4T_APDU_ENABLED - nfc_t4t_apdu - APDU encoder/decoder for Type 4 Tag +//========================================================== +#ifndef NFC_T4T_APDU_ENABLED +#define NFC_T4T_APDU_ENABLED 0 +#endif +// <e> NFC_T4T_APDU_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NFC_T4T_APDU_LOG_ENABLED +#define NFC_T4T_APDU_LOG_ENABLED 0 +#endif +// <o> NFC_T4T_APDU_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NFC_T4T_APDU_LOG_LEVEL +#define NFC_T4T_APDU_LOG_LEVEL 3 +#endif + +// <o> NFC_T4T_APDU_LOG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NFC_T4T_APDU_LOG_COLOR +#define NFC_T4T_APDU_LOG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NFC_T4T_CC_FILE_PARSER_ENABLED - nfc_t4t_cc_file - Capability Container file for Type 4 Tag +//========================================================== +#ifndef NFC_T4T_CC_FILE_PARSER_ENABLED +#define NFC_T4T_CC_FILE_PARSER_ENABLED 0 +#endif +// <e> NFC_T4T_CC_FILE_PARSER_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NFC_T4T_CC_FILE_PARSER_LOG_ENABLED +#define NFC_T4T_CC_FILE_PARSER_LOG_ENABLED 0 +#endif +// <o> NFC_T4T_CC_FILE_PARSER_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NFC_T4T_CC_FILE_PARSER_LOG_LEVEL +#define NFC_T4T_CC_FILE_PARSER_LOG_LEVEL 3 +#endif + +// <o> NFC_T4T_CC_FILE_PARSER_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NFC_T4T_CC_FILE_PARSER_INFO_COLOR +#define NFC_T4T_CC_FILE_PARSER_INFO_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NFC_T4T_HL_DETECTION_PROCEDURES_ENABLED - nfc_t4t_hl_detection_procedures - NDEF Detection Procedure for Type 4 Tag +//========================================================== +#ifndef NFC_T4T_HL_DETECTION_PROCEDURES_ENABLED +#define NFC_T4T_HL_DETECTION_PROCEDURES_ENABLED 0 +#endif +// <e> NFC_T4T_HL_DETECTION_PROCEDURES_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NFC_T4T_HL_DETECTION_PROCEDURES_LOG_ENABLED +#define NFC_T4T_HL_DETECTION_PROCEDURES_LOG_ENABLED 0 +#endif +// <o> NFC_T4T_HL_DETECTION_PROCEDURES_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NFC_T4T_HL_DETECTION_PROCEDURES_LOG_LEVEL +#define NFC_T4T_HL_DETECTION_PROCEDURES_LOG_LEVEL 3 +#endif + +// <o> NFC_T4T_HL_DETECTION_PROCEDURES_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NFC_T4T_HL_DETECTION_PROCEDURES_INFO_COLOR +#define NFC_T4T_HL_DETECTION_PROCEDURES_INFO_COLOR 0 +#endif + +// </e> + +// <o> APDU_BUFF_SIZE - Size (in bytes) of the buffer for APDU storage +#ifndef APDU_BUFF_SIZE +#define APDU_BUFF_SIZE 250 +#endif + +// <o> CC_STORAGE_BUFF_SIZE - Size (in bytes) of the buffer for CC file storage +#ifndef CC_STORAGE_BUFF_SIZE +#define CC_STORAGE_BUFF_SIZE 64 +#endif + +// </e> + +// <e> NFC_T4T_TLV_BLOCK_PARSER_ENABLED - nfc_t4t_tlv_block - TLV block for Type 4 Tag +//========================================================== +#ifndef NFC_T4T_TLV_BLOCK_PARSER_ENABLED +#define NFC_T4T_TLV_BLOCK_PARSER_ENABLED 0 +#endif +// <e> NFC_T4T_TLV_BLOCK_PARSER_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NFC_T4T_TLV_BLOCK_PARSER_LOG_ENABLED +#define NFC_T4T_TLV_BLOCK_PARSER_LOG_ENABLED 0 +#endif +// <o> NFC_T4T_TLV_BLOCK_PARSER_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NFC_T4T_TLV_BLOCK_PARSER_LOG_LEVEL +#define NFC_T4T_TLV_BLOCK_PARSER_LOG_LEVEL 3 +#endif + +// <o> NFC_T4T_TLV_BLOCK_PARSER_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NFC_T4T_TLV_BLOCK_PARSER_INFO_COLOR +#define NFC_T4T_TLV_BLOCK_PARSER_INFO_COLOR 0 +#endif + +// </e> + +// </e> + +// </h> +//========================================================== + +// <h> nRF_SoftDevice + +//========================================================== +// <e> NRF_SDH_BLE_ENABLED - nrf_sdh_ble - SoftDevice BLE event handler +//========================================================== +#ifndef NRF_SDH_BLE_ENABLED +#define NRF_SDH_BLE_ENABLED 0 +#endif +// <h> BLE Stack configuration - Stack configuration parameters + +// <i> The SoftDevice handler will configure the stack with these parameters when calling @ref nrf_sdh_ble_default_cfg_set. +// <i> Other libraries might depend on these values; keep them up-to-date even if you are not explicitely calling @ref nrf_sdh_ble_default_cfg_set. +//========================================================== +// <o> NRF_SDH_BLE_GAP_DATA_LENGTH <27-251> + + +// <i> Requested BLE GAP data length to be negotiated. + +#ifndef NRF_SDH_BLE_GAP_DATA_LENGTH +#define NRF_SDH_BLE_GAP_DATA_LENGTH 27 +#endif + +// <o> NRF_SDH_BLE_PERIPHERAL_LINK_COUNT - Maximum number of peripheral links. +#ifndef NRF_SDH_BLE_PERIPHERAL_LINK_COUNT +#define NRF_SDH_BLE_PERIPHERAL_LINK_COUNT 0 +#endif + +// <o> NRF_SDH_BLE_CENTRAL_LINK_COUNT - Maximum number of central links. +#ifndef NRF_SDH_BLE_CENTRAL_LINK_COUNT +#define NRF_SDH_BLE_CENTRAL_LINK_COUNT 0 +#endif + +// <o> NRF_SDH_BLE_TOTAL_LINK_COUNT - Total link count. +// <i> Maximum number of total concurrent connections using the default configuration. + +#ifndef NRF_SDH_BLE_TOTAL_LINK_COUNT +#define NRF_SDH_BLE_TOTAL_LINK_COUNT 1 +#endif + +// <o> NRF_SDH_BLE_GAP_EVENT_LENGTH - GAP event length. +// <i> The time set aside for this connection on every connection interval in 1.25 ms units. + +#ifndef NRF_SDH_BLE_GAP_EVENT_LENGTH +#define NRF_SDH_BLE_GAP_EVENT_LENGTH 6 +#endif + +// <o> NRF_SDH_BLE_GATT_MAX_MTU_SIZE - Static maximum MTU size. +#ifndef NRF_SDH_BLE_GATT_MAX_MTU_SIZE +#define NRF_SDH_BLE_GATT_MAX_MTU_SIZE 23 +#endif + +// <o> NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE - Attribute Table size in bytes. The size must be a multiple of 4. +#ifndef NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE +#define NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE 1408 +#endif + +// <o> NRF_SDH_BLE_VS_UUID_COUNT - The number of vendor-specific UUIDs. +#ifndef NRF_SDH_BLE_VS_UUID_COUNT +#define NRF_SDH_BLE_VS_UUID_COUNT 0 +#endif + +// <q> NRF_SDH_BLE_SERVICE_CHANGED - Include the Service Changed characteristic in the Attribute Table. + + +#ifndef NRF_SDH_BLE_SERVICE_CHANGED +#define NRF_SDH_BLE_SERVICE_CHANGED 0 +#endif + +// </h> +//========================================================== + +// <h> BLE Observers - Observers and priority levels + +//========================================================== +// <o> NRF_SDH_BLE_OBSERVER_PRIO_LEVELS - Total number of priority levels for BLE observers. +// <i> This setting configures the number of priority levels available for BLE event handlers. +// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers. + +#ifndef NRF_SDH_BLE_OBSERVER_PRIO_LEVELS +#define NRF_SDH_BLE_OBSERVER_PRIO_LEVELS 4 +#endif + +// <h> BLE Observers priorities - Invididual priorities + +//========================================================== +// <o> BLE_ADV_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Advertising module. + +#ifndef BLE_ADV_BLE_OBSERVER_PRIO +#define BLE_ADV_BLE_OBSERVER_PRIO 1 +#endif + +// <o> BLE_ANCS_C_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Apple Notification Service Client. + +#ifndef BLE_ANCS_C_BLE_OBSERVER_PRIO +#define BLE_ANCS_C_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_ANS_C_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Alert Notification Service Client. + +#ifndef BLE_ANS_C_BLE_OBSERVER_PRIO +#define BLE_ANS_C_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_BAS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Battery Service. + +#ifndef BLE_BAS_BLE_OBSERVER_PRIO +#define BLE_BAS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_BAS_C_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Battery Service Client. + +#ifndef BLE_BAS_C_BLE_OBSERVER_PRIO +#define BLE_BAS_C_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_BPS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Blood Pressure Service. + +#ifndef BLE_BPS_BLE_OBSERVER_PRIO +#define BLE_BPS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_CONN_PARAMS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Connection parameters module. + +#ifndef BLE_CONN_PARAMS_BLE_OBSERVER_PRIO +#define BLE_CONN_PARAMS_BLE_OBSERVER_PRIO 1 +#endif + +// <o> BLE_CONN_STATE_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Connection State module. + +#ifndef BLE_CONN_STATE_BLE_OBSERVER_PRIO +#define BLE_CONN_STATE_BLE_OBSERVER_PRIO 0 +#endif + +// <o> BLE_CSCS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Cycling Speed and Cadence Service. + +#ifndef BLE_CSCS_BLE_OBSERVER_PRIO +#define BLE_CSCS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_CTS_C_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Current Time Service Client. + +#ifndef BLE_CTS_C_BLE_OBSERVER_PRIO +#define BLE_CTS_C_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_DB_DISC_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Database Discovery module. + +#ifndef BLE_DB_DISC_BLE_OBSERVER_PRIO +#define BLE_DB_DISC_BLE_OBSERVER_PRIO 1 +#endif + +// <o> BLE_DFU_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the DFU Service. + +#ifndef BLE_DFU_BLE_OBSERVER_PRIO +#define BLE_DFU_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_DIS_C_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Device Information Client. + +#ifndef BLE_DIS_C_BLE_OBSERVER_PRIO +#define BLE_DIS_C_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_GLS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Glucose Service. + +#ifndef BLE_GLS_BLE_OBSERVER_PRIO +#define BLE_GLS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_HIDS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Human Interface Device Service. + +#ifndef BLE_HIDS_BLE_OBSERVER_PRIO +#define BLE_HIDS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_HRS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Heart Rate Service. + +#ifndef BLE_HRS_BLE_OBSERVER_PRIO +#define BLE_HRS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_HRS_C_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Heart Rate Service Client. + +#ifndef BLE_HRS_C_BLE_OBSERVER_PRIO +#define BLE_HRS_C_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_HTS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Health Thermometer Service. + +#ifndef BLE_HTS_BLE_OBSERVER_PRIO +#define BLE_HTS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_IAS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Immediate Alert Service. + +#ifndef BLE_IAS_BLE_OBSERVER_PRIO +#define BLE_IAS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_IAS_C_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Immediate Alert Service Client. + +#ifndef BLE_IAS_C_BLE_OBSERVER_PRIO +#define BLE_IAS_C_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_LBS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the LED Button Service. + +#ifndef BLE_LBS_BLE_OBSERVER_PRIO +#define BLE_LBS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_LBS_C_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the LED Button Service Client. + +#ifndef BLE_LBS_C_BLE_OBSERVER_PRIO +#define BLE_LBS_C_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_LLS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Link Loss Service. + +#ifndef BLE_LLS_BLE_OBSERVER_PRIO +#define BLE_LLS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_LNS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Location Navigation Service. + +#ifndef BLE_LNS_BLE_OBSERVER_PRIO +#define BLE_LNS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_NUS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the UART Service. + +#ifndef BLE_NUS_BLE_OBSERVER_PRIO +#define BLE_NUS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_NUS_C_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the UART Central Service. + +#ifndef BLE_NUS_C_BLE_OBSERVER_PRIO +#define BLE_NUS_C_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_OTS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Object transfer service. + +#ifndef BLE_OTS_BLE_OBSERVER_PRIO +#define BLE_OTS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_OTS_C_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Object transfer service client. + +#ifndef BLE_OTS_C_BLE_OBSERVER_PRIO +#define BLE_OTS_C_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_RSCS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Running Speed and Cadence Service. + +#ifndef BLE_RSCS_BLE_OBSERVER_PRIO +#define BLE_RSCS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_RSCS_C_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Running Speed and Cadence Client. + +#ifndef BLE_RSCS_C_BLE_OBSERVER_PRIO +#define BLE_RSCS_C_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_TPS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the TX Power Service. + +#ifndef BLE_TPS_BLE_OBSERVER_PRIO +#define BLE_TPS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BSP_BTN_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Button Control module. + +#ifndef BSP_BTN_BLE_OBSERVER_PRIO +#define BSP_BTN_BLE_OBSERVER_PRIO 1 +#endif + +// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the NFC pairing library. + +#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1 +#endif + +// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the NFC pairing library. + +#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1 +#endif + +// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the NFC pairing library. + +#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1 +#endif + +// <o> NRF_BLE_BMS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Bond Management Service. + +#ifndef NRF_BLE_BMS_BLE_OBSERVER_PRIO +#define NRF_BLE_BMS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> NRF_BLE_CGMS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Contiuon Glucose Monitoring Service. + +#ifndef NRF_BLE_CGMS_BLE_OBSERVER_PRIO +#define NRF_BLE_CGMS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> NRF_BLE_ES_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Eddystone module. + +#ifndef NRF_BLE_ES_BLE_OBSERVER_PRIO +#define NRF_BLE_ES_BLE_OBSERVER_PRIO 2 +#endif + +// <o> NRF_BLE_GATTS_C_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the GATT Service Client. + +#ifndef NRF_BLE_GATTS_C_BLE_OBSERVER_PRIO +#define NRF_BLE_GATTS_C_BLE_OBSERVER_PRIO 2 +#endif + +// <o> NRF_BLE_GATT_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the GATT module. + +#ifndef NRF_BLE_GATT_BLE_OBSERVER_PRIO +#define NRF_BLE_GATT_BLE_OBSERVER_PRIO 1 +#endif + +// <o> NRF_BLE_GQ_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the GATT Queue module. + +#ifndef NRF_BLE_GQ_BLE_OBSERVER_PRIO +#define NRF_BLE_GQ_BLE_OBSERVER_PRIO 1 +#endif + +// <o> NRF_BLE_QWR_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Queued writes module. + +#ifndef NRF_BLE_QWR_BLE_OBSERVER_PRIO +#define NRF_BLE_QWR_BLE_OBSERVER_PRIO 2 +#endif + +// <o> NRF_BLE_SCAN_OBSERVER_PRIO +// <i> Priority for dispatching the BLE events to the Scanning Module. + +#ifndef NRF_BLE_SCAN_OBSERVER_PRIO +#define NRF_BLE_SCAN_OBSERVER_PRIO 1 +#endif + +// <o> PM_BLE_OBSERVER_PRIO - Priority with which BLE events are dispatched to the Peer Manager module. +#ifndef PM_BLE_OBSERVER_PRIO +#define PM_BLE_OBSERVER_PRIO 1 +#endif + +// </h> +//========================================================== + +// </h> +//========================================================== + + +// </e> + +// <e> NRF_SDH_ENABLED - nrf_sdh - SoftDevice handler +//========================================================== +#ifndef NRF_SDH_ENABLED +#define NRF_SDH_ENABLED 0 +#endif +// <h> Dispatch model + +// <i> This setting configures how Stack events are dispatched to the application. +//========================================================== +// <o> NRF_SDH_DISPATCH_MODEL + + +// <i> NRF_SDH_DISPATCH_MODEL_INTERRUPT: SoftDevice events are passed to the application from the interrupt context. +// <i> NRF_SDH_DISPATCH_MODEL_APPSH: SoftDevice events are scheduled using @ref app_scheduler. +// <i> NRF_SDH_DISPATCH_MODEL_POLLING: SoftDevice events are to be fetched manually. +// <0=> NRF_SDH_DISPATCH_MODEL_INTERRUPT +// <1=> NRF_SDH_DISPATCH_MODEL_APPSH +// <2=> NRF_SDH_DISPATCH_MODEL_POLLING + +#ifndef NRF_SDH_DISPATCH_MODEL +#define NRF_SDH_DISPATCH_MODEL 0 +#endif + +// </h> +//========================================================== + +// <h> Clock - SoftDevice clock configuration + +//========================================================== +// <o> NRF_SDH_CLOCK_LF_SRC - SoftDevice clock source. + +// <0=> NRF_CLOCK_LF_SRC_RC +// <1=> NRF_CLOCK_LF_SRC_XTAL +// <2=> NRF_CLOCK_LF_SRC_SYNTH + +#ifndef NRF_SDH_CLOCK_LF_SRC +#define NRF_SDH_CLOCK_LF_SRC 1 +#endif + +// <o> NRF_SDH_CLOCK_LF_RC_CTIV - SoftDevice calibration timer interval. +#ifndef NRF_SDH_CLOCK_LF_RC_CTIV +#define NRF_SDH_CLOCK_LF_RC_CTIV 0 +#endif + +// <o> NRF_SDH_CLOCK_LF_RC_TEMP_CTIV - SoftDevice calibration timer interval under constant temperature. +// <i> How often (in number of calibration intervals) the RC oscillator shall be calibrated +// <i> if the temperature has not changed. + +#ifndef NRF_SDH_CLOCK_LF_RC_TEMP_CTIV +#define NRF_SDH_CLOCK_LF_RC_TEMP_CTIV 0 +#endif + +// <o> NRF_SDH_CLOCK_LF_ACCURACY - External clock accuracy used in the LL to compute timing. + +// <0=> NRF_CLOCK_LF_ACCURACY_250_PPM +// <1=> NRF_CLOCK_LF_ACCURACY_500_PPM +// <2=> NRF_CLOCK_LF_ACCURACY_150_PPM +// <3=> NRF_CLOCK_LF_ACCURACY_100_PPM +// <4=> NRF_CLOCK_LF_ACCURACY_75_PPM +// <5=> NRF_CLOCK_LF_ACCURACY_50_PPM +// <6=> NRF_CLOCK_LF_ACCURACY_30_PPM +// <7=> NRF_CLOCK_LF_ACCURACY_20_PPM +// <8=> NRF_CLOCK_LF_ACCURACY_10_PPM +// <9=> NRF_CLOCK_LF_ACCURACY_5_PPM +// <10=> NRF_CLOCK_LF_ACCURACY_2_PPM +// <11=> NRF_CLOCK_LF_ACCURACY_1_PPM + +#ifndef NRF_SDH_CLOCK_LF_ACCURACY +#define NRF_SDH_CLOCK_LF_ACCURACY 7 +#endif + +// </h> +//========================================================== + +// <h> SDH Observers - Observers and priority levels + +//========================================================== +// <o> NRF_SDH_REQ_OBSERVER_PRIO_LEVELS - Total number of priority levels for request observers. +// <i> This setting configures the number of priority levels available for the SoftDevice request event handlers. +// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers. + +#ifndef NRF_SDH_REQ_OBSERVER_PRIO_LEVELS +#define NRF_SDH_REQ_OBSERVER_PRIO_LEVELS 2 +#endif + +// <o> NRF_SDH_STATE_OBSERVER_PRIO_LEVELS - Total number of priority levels for state observers. +// <i> This setting configures the number of priority levels available for the SoftDevice state event handlers. +// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers. + +#ifndef NRF_SDH_STATE_OBSERVER_PRIO_LEVELS +#define NRF_SDH_STATE_OBSERVER_PRIO_LEVELS 2 +#endif + +// <o> NRF_SDH_STACK_OBSERVER_PRIO_LEVELS - Total number of priority levels for stack event observers. +// <i> This setting configures the number of priority levels available for the SoftDevice stack event handlers (ANT, BLE, SoC). +// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers. + +#ifndef NRF_SDH_STACK_OBSERVER_PRIO_LEVELS +#define NRF_SDH_STACK_OBSERVER_PRIO_LEVELS 2 +#endif + + +// <h> State Observers priorities - Invididual priorities + +//========================================================== +// <o> CLOCK_CONFIG_STATE_OBSERVER_PRIO +// <i> Priority with which state events are dispatched to the Clock driver. + +#ifndef CLOCK_CONFIG_STATE_OBSERVER_PRIO +#define CLOCK_CONFIG_STATE_OBSERVER_PRIO 0 +#endif + +// <o> POWER_CONFIG_STATE_OBSERVER_PRIO +// <i> Priority with which state events are dispatched to the Power driver. + +#ifndef POWER_CONFIG_STATE_OBSERVER_PRIO +#define POWER_CONFIG_STATE_OBSERVER_PRIO 0 +#endif + +// <o> RNG_CONFIG_STATE_OBSERVER_PRIO +// <i> Priority with which state events are dispatched to this module. + +#ifndef RNG_CONFIG_STATE_OBSERVER_PRIO +#define RNG_CONFIG_STATE_OBSERVER_PRIO 0 +#endif + +// </h> +//========================================================== + +// <h> Stack Event Observers priorities - Invididual priorities + +//========================================================== +// <o> NRF_SDH_ANT_STACK_OBSERVER_PRIO +// <i> This setting configures the priority with which ANT events are processed with respect to other events coming from the stack. +// <i> Modify this setting if you need to have ANT events dispatched before or after other stack events, such as BLE or SoC. +// <i> Zero is the highest priority. + +#ifndef NRF_SDH_ANT_STACK_OBSERVER_PRIO +#define NRF_SDH_ANT_STACK_OBSERVER_PRIO 0 +#endif + +// <o> NRF_SDH_BLE_STACK_OBSERVER_PRIO +// <i> This setting configures the priority with which BLE events are processed with respect to other events coming from the stack. +// <i> Modify this setting if you need to have BLE events dispatched before or after other stack events, such as ANT or SoC. +// <i> Zero is the highest priority. + +#ifndef NRF_SDH_BLE_STACK_OBSERVER_PRIO +#define NRF_SDH_BLE_STACK_OBSERVER_PRIO 0 +#endif + +// <o> NRF_SDH_SOC_STACK_OBSERVER_PRIO +// <i> This setting configures the priority with which SoC events are processed with respect to other events coming from the stack. +// <i> Modify this setting if you need to have SoC events dispatched before or after other stack events, such as ANT or BLE. +// <i> Zero is the highest priority. + +#ifndef NRF_SDH_SOC_STACK_OBSERVER_PRIO +#define NRF_SDH_SOC_STACK_OBSERVER_PRIO 0 +#endif + +// </h> +//========================================================== + +// </h> +//========================================================== + + +// </e> + +// <e> NRF_SDH_SOC_ENABLED - nrf_sdh_soc - SoftDevice SoC event handler +//========================================================== +#ifndef NRF_SDH_SOC_ENABLED +#define NRF_SDH_SOC_ENABLED 0 +#endif +// <h> SoC Observers - Observers and priority levels + +//========================================================== +// <o> NRF_SDH_SOC_OBSERVER_PRIO_LEVELS - Total number of priority levels for SoC observers. +// <i> This setting configures the number of priority levels available for the SoC event handlers. +// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers. + +#ifndef NRF_SDH_SOC_OBSERVER_PRIO_LEVELS +#define NRF_SDH_SOC_OBSERVER_PRIO_LEVELS 2 +#endif + +// <h> SoC Observers priorities - Invididual priorities + +//========================================================== +// <o> BLE_DFU_SOC_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the DFU Service. + +#ifndef BLE_DFU_SOC_OBSERVER_PRIO +#define BLE_DFU_SOC_OBSERVER_PRIO 1 +#endif + +// <o> CLOCK_CONFIG_SOC_OBSERVER_PRIO +// <i> Priority with which SoC events are dispatched to the Clock driver. + +#ifndef CLOCK_CONFIG_SOC_OBSERVER_PRIO +#define CLOCK_CONFIG_SOC_OBSERVER_PRIO 0 +#endif + +// <o> POWER_CONFIG_SOC_OBSERVER_PRIO +// <i> Priority with which SoC events are dispatched to the Power driver. + +#ifndef POWER_CONFIG_SOC_OBSERVER_PRIO +#define POWER_CONFIG_SOC_OBSERVER_PRIO 0 +#endif + +// </h> +//========================================================== + +// </h> +//========================================================== + +// <e> NRFX_NVMC_ENABLED - nrfx_nvmc - NVMC peripheral driver +//========================================================== +#ifndef NRFX_NVMC_ENABLED +#define NRFX_NVMC_ENABLED 1 +#endif +// </e> + +//========================================================== +#ifndef NRFX_SYSTICK_ENABLED +#define NRFX_SYSTICK_ENABLED 1 +#endif +// <<< end of configuration section >>> +#endif //SDK_CONFIG_H + diff --git a/bsp/nrf5x/libraries/templates/nrfx/project.uvoptx b/bsp/nrf5x/libraries/templates/nrfx/project.uvoptx new file mode 100644 index 0000000000..b65395593c --- /dev/null +++ b/bsp/nrf5x/libraries/templates/nrfx/project.uvoptx @@ -0,0 +1,1080 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<ProjectOpt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_optx.xsd"> + + <SchemaVersion>1.0</SchemaVersion> + + <Header>### uVision Project, (C) Keil Software</Header> + + <Extensions> + <cExt>*.c</cExt> + <aExt>*.s*; *.src; *.a*</aExt> + <oExt>*.obj; *.o</oExt> + <lExt>*.lib</lExt> + <tExt>*.txt; *.h; *.inc</tExt> + <pExt>*.plm</pExt> + <CppX>*.cpp</CppX> + <nMigrate>0</nMigrate> + </Extensions> + + <DaveTm> + <dwLowDateTime>0</dwLowDateTime> + <dwHighDateTime>0</dwHighDateTime> + </DaveTm> + + <Target> + <TargetName>rtthread</TargetName> + <ToolsetNumber>0x4</ToolsetNumber> + <ToolsetName>ARM-ADS</ToolsetName> + <TargetOption> + <CLKADS>12000000</CLKADS> + <OPTTT> + <gFlags>1</gFlags> + <BeepAtEnd>1</BeepAtEnd> + <RunSim>0</RunSim> + <RunTarget>1</RunTarget> + <RunAbUc>0</RunAbUc> + </OPTTT> + <OPTHX> + <HexSelection>1</HexSelection> + <FlashByte>65535</FlashByte> + <HexRangeLowAddress>0</HexRangeLowAddress> + <HexRangeHighAddress>0</HexRangeHighAddress> + <HexOffset>0</HexOffset> + </OPTHX> + <OPTLEX> + <PageWidth>79</PageWidth> + <PageLength>66</PageLength> + <TabStop>8</TabStop> + <ListingPath>.\build\</ListingPath> + </OPTLEX> + <ListingPage> + <CreateCListing>1</CreateCListing> + <CreateAListing>1</CreateAListing> + <CreateLListing>1</CreateLListing> + <CreateIListing>0</CreateIListing> + <AsmCond>1</AsmCond> + <AsmSymb>1</AsmSymb> + <AsmXref>0</AsmXref> + <CCond>1</CCond> + <CCode>0</CCode> + <CListInc>0</CListInc> + <CSymb>0</CSymb> + <LinkerCodeListing>0</LinkerCodeListing> + </ListingPage> + <OPTXL> + <LMap>1</LMap> + <LComments>1</LComments> + <LGenerateSymbols>1</LGenerateSymbols> + <LLibSym>1</LLibSym> + <LLines>1</LLines> + <LLocSym>1</LLocSym> + <LPubSym>1</LPubSym> + <LXref>0</LXref> + <LExpSel>0</LExpSel> + </OPTXL> + <OPTFL> + <tvExp>1</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <IsCurrentTarget>1</IsCurrentTarget> + </OPTFL> + <CpuCode>5</CpuCode> + <DebugOpt> + <uSim>0</uSim> + <uTrg>1</uTrg> + <sLdApp>1</sLdApp> + <sGomain>1</sGomain> + <sRbreak>1</sRbreak> + <sRwatch>1</sRwatch> + <sRmem>1</sRmem> + <sRfunc>1</sRfunc> + <sRbox>1</sRbox> + <tLdApp>1</tLdApp> + <tGomain>1</tGomain> + <tRbreak>1</tRbreak> + <tRwatch>1</tRwatch> + <tRmem>1</tRmem> + <tRfunc>0</tRfunc> + <tRbox>1</tRbox> + <tRtrace>1</tRtrace> + <sRSysVw>1</sRSysVw> + <tRSysVw>1</tRSysVw> + <sRunDeb>0</sRunDeb> + <sLrtime>0</sLrtime> + <bEvRecOn>1</bEvRecOn> + <bSchkAxf>0</bSchkAxf> + <bTchkAxf>0</bTchkAxf> + <nTsel>4</nTsel> + <sDll></sDll> + <sDllPa></sDllPa> + <sDlgDll></sDlgDll> + <sDlgPa></sDlgPa> + <sIfile></sIfile> + <tDll></tDll> + <tDllPa></tDllPa> + <tDlgDll></tDlgDll> + <tDlgPa></tDlgPa> + <tIfile></tIfile> + <pMon>Segger\JL2CM3.dll</pMon> + </DebugOpt> + <TargetDriverDllRegistry> + <SetRegEntry> + <Number>0</Number> + <Key>JL2CM3</Key> + <Name>-U683349164 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8004 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC4000 -FN2 -FF0nrf52xxx.flm -FS00 -FL0200000 -FP0($$Device:nRF52840_xxAA$Flash\nrf52xxx.flm) -FF1nrf52xxx_uicr.flm -FS110001000 -FL11000 -FP1($$Device:nRF52840_xxAA$Flash\nrf52xxx_uicr.flm)</Name> + </SetRegEntry> + <SetRegEntry> + <Number>0</Number> + <Key>UL2CM3</Key> + <Name>UL2CM3(-S0 -C0 -P0 ) -FN2 -FC4000 -FD20000000 -FF0nrf52xxx -FF1nrf52xxx_uicr -FL0200000 -FL11000 -FS00 -FS110001000 -FP0($$Device:nRF52840_xxAA$Flash\nrf52xxx.flm) -FP1($$Device:nRF52840_xxAA$Flash\nrf52xxx_uicr.flm)</Name> + </SetRegEntry> + </TargetDriverDllRegistry> + <Breakpoint/> + <Tracepoint> + <THDelay>0</THDelay> + </Tracepoint> + <DebugFlag> + <trace>0</trace> + <periodic>0</periodic> + <aLwin>0</aLwin> + <aCover>0</aCover> + <aSer1>0</aSer1> + <aSer2>0</aSer2> + <aPa>0</aPa> + <viewmode>0</viewmode> + <vrSel>0</vrSel> + <aSym>0</aSym> + <aTbox>0</aTbox> + <AscS1>0</AscS1> + <AscS2>0</AscS2> + <AscS3>0</AscS3> + <aSer3>0</aSer3> + <eProf>0</eProf> + <aLa>0</aLa> + <aPa1>0</aPa1> + <AscS4>0</AscS4> + <aSer4>0</aSer4> + <StkLoc>0</StkLoc> + <TrcWin>0</TrcWin> + <newCpu>0</newCpu> + <uProt>0</uProt> + </DebugFlag> + <LintExecutable></LintExecutable> + <LintConfigFile></LintConfigFile> + <bLintAuto>0</bLintAuto> + <bAutoGenD>0</bAutoGenD> + <LntExFlags>0</LntExFlags> + <pMisraName></pMisraName> + <pszMrule></pszMrule> + <pSingCmds></pSingCmds> + <pMultCmds></pMultCmds> + <pMisraNamep></pMisraNamep> + <pszMrulep></pszMrulep> + <pSingCmdsp></pSingCmdsp> + <pMultCmdsp></pMultCmdsp> + <DebugDescription> + <Enable>1</Enable> + <EnableFlashSeq>1</EnableFlashSeq> + <EnableLog>0</EnableLog> + <Protocol>2</Protocol> + <DbgClock>10000000</DbgClock> + </DebugDescription> + </TargetOption> + </Target> + + <Group> + <GroupName>Applications</GroupName> + <tvExp>1</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <cbSel>0</cbSel> + <RteFlg>0</RteFlg> + <File> + <GroupNumber>1</GroupNumber> + <FileNumber>1</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>applications\application.c</PathWithFileName> + <FilenameWithoutPath>application.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + </Group> + + <Group> + <GroupName>CPU</GroupName> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <cbSel>0</cbSel> + <RteFlg>0</RteFlg> + <File> + <GroupNumber>2</GroupNumber> + <FileNumber>2</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\libcpu\arm\common\div0.c</PathWithFileName> + <FilenameWithoutPath>div0.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>2</GroupNumber> + <FileNumber>3</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\libcpu\arm\common\backtrace.c</PathWithFileName> + <FilenameWithoutPath>backtrace.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>2</GroupNumber> + <FileNumber>4</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\libcpu\arm\common\showmem.c</PathWithFileName> + <FilenameWithoutPath>showmem.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>2</GroupNumber> + <FileNumber>5</FileNumber> + <FileType>2</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\libcpu\arm\cortex-m4\context_rvds.S</PathWithFileName> + <FilenameWithoutPath>context_rvds.S</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>2</GroupNumber> + <FileNumber>6</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\libcpu\arm\cortex-m4\cpuport.c</PathWithFileName> + <FilenameWithoutPath>cpuport.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + </Group> + + <Group> + <GroupName>DeviceDrivers</GroupName> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <cbSel>0</cbSel> + <RteFlg>0</RteFlg> + <File> + <GroupNumber>3</GroupNumber> + <FileNumber>7</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\components\drivers\misc\pin.c</PathWithFileName> + <FilenameWithoutPath>pin.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>3</GroupNumber> + <FileNumber>8</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\components\drivers\serial\serial.c</PathWithFileName> + <FilenameWithoutPath>serial.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>3</GroupNumber> + <FileNumber>9</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\components\drivers\src\ringblk_buf.c</PathWithFileName> + <FilenameWithoutPath>ringblk_buf.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>3</GroupNumber> + <FileNumber>10</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\components\drivers\src\ringbuffer.c</PathWithFileName> + <FilenameWithoutPath>ringbuffer.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>3</GroupNumber> + <FileNumber>11</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\components\drivers\src\workqueue.c</PathWithFileName> + <FilenameWithoutPath>workqueue.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>3</GroupNumber> + <FileNumber>12</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\components\drivers\src\waitqueue.c</PathWithFileName> + <FilenameWithoutPath>waitqueue.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>3</GroupNumber> + <FileNumber>13</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\components\drivers\src\completion.c</PathWithFileName> + <FilenameWithoutPath>completion.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>3</GroupNumber> + <FileNumber>14</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\components\drivers\src\pipe.c</PathWithFileName> + <FilenameWithoutPath>pipe.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>3</GroupNumber> + <FileNumber>15</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\components\drivers\src\dataqueue.c</PathWithFileName> + <FilenameWithoutPath>dataqueue.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + </Group> + + <Group> + <GroupName>Drivers</GroupName> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <cbSel>0</cbSel> + <RteFlg>0</RteFlg> + <File> + <GroupNumber>4</GroupNumber> + <FileNumber>16</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>board\board.c</PathWithFileName> + <FilenameWithoutPath>board.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>4</GroupNumber> + <FileNumber>17</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\libraries\drivers\drv_uart.c</PathWithFileName> + <FilenameWithoutPath>drv_uart.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + </Group> + + <Group> + <GroupName>finsh</GroupName> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <cbSel>0</cbSel> + <RteFlg>0</RteFlg> + <File> + <GroupNumber>5</GroupNumber> + <FileNumber>18</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\components\finsh\shell.c</PathWithFileName> + <FilenameWithoutPath>shell.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>5</GroupNumber> + <FileNumber>19</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\components\finsh\msh.c</PathWithFileName> + <FilenameWithoutPath>msh.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>5</GroupNumber> + <FileNumber>20</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\components\finsh\cmd.c</PathWithFileName> + <FilenameWithoutPath>cmd.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + </Group> + + <Group> + <GroupName>Kernel</GroupName> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <cbSel>0</cbSel> + <RteFlg>0</RteFlg> + <File> + <GroupNumber>6</GroupNumber> + <FileNumber>21</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\src\irq.c</PathWithFileName> + <FilenameWithoutPath>irq.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>6</GroupNumber> + <FileNumber>22</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\src\clock.c</PathWithFileName> + <FilenameWithoutPath>clock.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>6</GroupNumber> + <FileNumber>23</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\src\kservice.c</PathWithFileName> + <FilenameWithoutPath>kservice.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>6</GroupNumber> + <FileNumber>24</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\src\timer.c</PathWithFileName> + <FilenameWithoutPath>timer.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>6</GroupNumber> + <FileNumber>25</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\src\object.c</PathWithFileName> + <FilenameWithoutPath>object.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>6</GroupNumber> + <FileNumber>26</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\src\components.c</PathWithFileName> + <FilenameWithoutPath>components.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>6</GroupNumber> + <FileNumber>27</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\src\scheduler.c</PathWithFileName> + <FilenameWithoutPath>scheduler.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>6</GroupNumber> + <FileNumber>28</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\src\idle.c</PathWithFileName> + <FilenameWithoutPath>idle.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>6</GroupNumber> + <FileNumber>29</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\src\ipc.c</PathWithFileName> + <FilenameWithoutPath>ipc.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>6</GroupNumber> + <FileNumber>30</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\src\mem.c</PathWithFileName> + <FilenameWithoutPath>mem.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>6</GroupNumber> + <FileNumber>31</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\src\thread.c</PathWithFileName> + <FilenameWithoutPath>thread.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>6</GroupNumber> + <FileNumber>32</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\src\mempool.c</PathWithFileName> + <FilenameWithoutPath>mempool.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>6</GroupNumber> + <FileNumber>33</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\src\device.c</PathWithFileName> + <FilenameWithoutPath>device.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + </Group> + + <Group> + <GroupName>nrfx</GroupName> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <cbSel>0</cbSel> + <RteFlg>0</RteFlg> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>34</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_spim.c</PathWithFileName> + <FilenameWithoutPath>nrfx_spim.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>35</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_pwm.c</PathWithFileName> + <FilenameWithoutPath>nrfx_pwm.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>36</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_spi.c</PathWithFileName> + <FilenameWithoutPath>nrfx_spi.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>37</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_saadc.c</PathWithFileName> + <FilenameWithoutPath>nrfx_saadc.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>38</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_usbd.c</PathWithFileName> + <FilenameWithoutPath>nrfx_usbd.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>39</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_nvmc.c</PathWithFileName> + <FilenameWithoutPath>nrfx_nvmc.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>40</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_comp.c</PathWithFileName> + <FilenameWithoutPath>nrfx_comp.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>41</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_clock.c</PathWithFileName> + <FilenameWithoutPath>nrfx_clock.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>42</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_twi_twim.c</PathWithFileName> + <FilenameWithoutPath>nrfx_twi_twim.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>43</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_uart.c</PathWithFileName> + <FilenameWithoutPath>nrfx_uart.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>44</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_temp.c</PathWithFileName> + <FilenameWithoutPath>nrfx_temp.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>45</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_twis.c</PathWithFileName> + <FilenameWithoutPath>nrfx_twis.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>46</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_ipc.c</PathWithFileName> + <FilenameWithoutPath>nrfx_ipc.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>47</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_adc.c</PathWithFileName> + <FilenameWithoutPath>nrfx_adc.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>48</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_dppi.c</PathWithFileName> + <FilenameWithoutPath>nrfx_dppi.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>49</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_usbreg.c</PathWithFileName> + <FilenameWithoutPath>nrfx_usbreg.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>50</FileNumber> + <FileType>2</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\mdk\arm_startup_nrf52840.s</PathWithFileName> + <FilenameWithoutPath>arm_startup_nrf52840.s</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>51</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_systick.c</PathWithFileName> + <FilenameWithoutPath>nrfx_systick.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>52</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_spis.c</PathWithFileName> + <FilenameWithoutPath>nrfx_spis.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>53</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_uarte.c</PathWithFileName> + <FilenameWithoutPath>nrfx_uarte.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>54</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_gpiote.c</PathWithFileName> + <FilenameWithoutPath>nrfx_gpiote.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>55</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_timer.c</PathWithFileName> + <FilenameWithoutPath>nrfx_timer.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>56</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_qspi.c</PathWithFileName> + <FilenameWithoutPath>nrfx_qspi.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>57</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_pdm.c</PathWithFileName> + <FilenameWithoutPath>nrfx_pdm.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>58</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_rng.c</PathWithFileName> + <FilenameWithoutPath>nrfx_rng.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>59</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_lpcomp.c</PathWithFileName> + <FilenameWithoutPath>nrfx_lpcomp.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>60</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_i2s.c</PathWithFileName> + <FilenameWithoutPath>nrfx_i2s.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>61</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_power.c</PathWithFileName> + <FilenameWithoutPath>nrfx_power.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>62</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_ppi.c</PathWithFileName> + <FilenameWithoutPath>nrfx_ppi.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>63</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\mdk\system_nrf52840.c</PathWithFileName> + <FilenameWithoutPath>system_nrf52840.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>64</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_egu.c</PathWithFileName> + <FilenameWithoutPath>nrfx_egu.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>65</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_rtc.c</PathWithFileName> + <FilenameWithoutPath>nrfx_rtc.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>66</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_twi.c</PathWithFileName> + <FilenameWithoutPath>nrfx_twi.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>67</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_wdt.c</PathWithFileName> + <FilenameWithoutPath>nrfx_wdt.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>68</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_nfct.c</PathWithFileName> + <FilenameWithoutPath>nrfx_nfct.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>69</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_qdec.c</PathWithFileName> + <FilenameWithoutPath>nrfx_qdec.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>70</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-v2.1.0\drivers\src\nrfx_twim.c</PathWithFileName> + <FilenameWithoutPath>nrfx_twim.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + </Group> + +</ProjectOpt> diff --git a/bsp/nrf5x/libraries/templates/nrfx/project.uvprojx b/bsp/nrf5x/libraries/templates/nrfx/project.uvprojx new file mode 100644 index 0000000000..991a9de5f4 --- /dev/null +++ b/bsp/nrf5x/libraries/templates/nrfx/project.uvprojx @@ -0,0 +1,777 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd"> + + <SchemaVersion>2.1</SchemaVersion> + + <Header>### uVision Project, (C) Keil Software</Header> + + <Targets> + <Target> + <TargetName>rtthread</TargetName> + <ToolsetNumber>0x4</ToolsetNumber> + <ToolsetName>ARM-ADS</ToolsetName> + <pCCUsed>5060750::V5.06 update 6 (build 750)::ARMCC</pCCUsed> + <uAC6>0</uAC6> + <TargetOption> + <TargetCommonOption> + <Device>nRF52840_xxAA</Device> + <Vendor>Nordic Semiconductor</Vendor> + <PackID>NordicSemiconductor.nRF_DeviceFamilyPack.8.38.0</PackID> + <PackURL>http://developer.nordicsemi.com/nRF5_SDK/pieces/nRF_DeviceFamilyPack/</PackURL> + <Cpu>IRAM(0x20000000,0x40000) IROM(0x00000000,0x100000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE</Cpu> + <FlashUtilSpec></FlashUtilSpec> + <StartupFile></StartupFile> + <FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC4000 -FN2 -FF0nrf52xxx -FS00 -FL0200000 -FF1nrf52xxx_uicr -FS110001000 -FL11000 -FP0($$Device:nRF52840_xxAA$Flash\nrf52xxx.flm) -FP1($$Device:nRF52840_xxAA$Flash\nrf52xxx_uicr.flm))</FlashDriverDll> + <DeviceId>0</DeviceId> + <RegisterFile>$$Device:nRF52840_xxAA$Device\Include\nrf.h</RegisterFile> + <MemoryEnv></MemoryEnv> + <Cmp></Cmp> + <Asm></Asm> + <Linker></Linker> + <OHString></OHString> + <InfinionOptionDll></InfinionOptionDll> + <SLE66CMisc></SLE66CMisc> + <SLE66AMisc></SLE66AMisc> + <SLE66LinkerMisc></SLE66LinkerMisc> + <SFDFile>$$Device:nRF52840_xxAA$SVD\nrf52840.svd</SFDFile> + <bCustSvd>0</bCustSvd> + <UseEnv>0</UseEnv> + <BinPath></BinPath> + <IncludePath></IncludePath> + <LibPath></LibPath> + <RegisterFilePath></RegisterFilePath> + <DBRegisterFilePath></DBRegisterFilePath> + <TargetStatus> + <Error>0</Error> + <ExitCodeStop>0</ExitCodeStop> + <ButtonStop>0</ButtonStop> + <NotGenerated>0</NotGenerated> + <InvalidFlash>1</InvalidFlash> + </TargetStatus> + <OutputDirectory>.\build\</OutputDirectory> + <OutputName>rtthread</OutputName> + <CreateExecutable>1</CreateExecutable> + <CreateLib>0</CreateLib> + <CreateHexFile>0</CreateHexFile> + <DebugInformation>1</DebugInformation> + <BrowseInformation>1</BrowseInformation> + <ListingPath>.\build\</ListingPath> + <HexFormatSelection>1</HexFormatSelection> + <Merge32K>0</Merge32K> + <CreateBatchFile>0</CreateBatchFile> + <BeforeCompile> + <RunUserProg1>0</RunUserProg1> + <RunUserProg2>0</RunUserProg2> + <UserProg1Name></UserProg1Name> + <UserProg2Name></UserProg2Name> + <UserProg1Dos16Mode>0</UserProg1Dos16Mode> + <UserProg2Dos16Mode>0</UserProg2Dos16Mode> + <nStopU1X>0</nStopU1X> + <nStopU2X>0</nStopU2X> + </BeforeCompile> + <BeforeMake> + <RunUserProg1>0</RunUserProg1> + <RunUserProg2>0</RunUserProg2> + <UserProg1Name></UserProg1Name> + <UserProg2Name></UserProg2Name> + <UserProg1Dos16Mode>0</UserProg1Dos16Mode> + <UserProg2Dos16Mode>0</UserProg2Dos16Mode> + <nStopB1X>0</nStopB1X> + <nStopB2X>0</nStopB2X> + </BeforeMake> + <AfterMake> + <RunUserProg1>1</RunUserProg1> + <RunUserProg2>0</RunUserProg2> + <UserProg1Name>fromelf --bin !L --output rtthread.bin</UserProg1Name> + <UserProg2Name></UserProg2Name> + <UserProg1Dos16Mode>0</UserProg1Dos16Mode> + <UserProg2Dos16Mode>0</UserProg2Dos16Mode> + <nStopA1X>0</nStopA1X> + <nStopA2X>0</nStopA2X> + </AfterMake> + <SelectedForBatchBuild>0</SelectedForBatchBuild> + <SVCSIdString></SVCSIdString> + </TargetCommonOption> + <CommonProperty> + <UseCPPCompiler>0</UseCPPCompiler> + <RVCTCodeConst>0</RVCTCodeConst> + <RVCTZI>0</RVCTZI> + <RVCTOtherData>0</RVCTOtherData> + <ModuleSelection>0</ModuleSelection> + <IncludeInBuild>1</IncludeInBuild> + <AlwaysBuild>0</AlwaysBuild> + <GenerateAssemblyFile>0</GenerateAssemblyFile> + <AssembleAssemblyFile>0</AssembleAssemblyFile> + <PublicsOnly>0</PublicsOnly> + <StopOnExitCode>3</StopOnExitCode> + <CustomArgument></CustomArgument> + <IncludeLibraryModules></IncludeLibraryModules> + <ComprImg>1</ComprImg> + </CommonProperty> + <DllOption> + <SimDllName>SARMCM3.DLL</SimDllName> + <SimDllArguments> -MPU</SimDllArguments> + <SimDlgDll>DCM.DLL</SimDlgDll> + <SimDlgDllArguments>-pCM4</SimDlgDllArguments> + <TargetDllName>SARMCM3.DLL</TargetDllName> + <TargetDllArguments> -MPU</TargetDllArguments> + <TargetDlgDll>TCM.DLL</TargetDlgDll> + <TargetDlgDllArguments>-pCM4</TargetDlgDllArguments> + </DllOption> + <DebugOption> + <OPTHX> + <HexSelection>1</HexSelection> + <HexRangeLowAddress>0</HexRangeLowAddress> + <HexRangeHighAddress>0</HexRangeHighAddress> + <HexOffset>0</HexOffset> + <Oh166RecLen>16</Oh166RecLen> + </OPTHX> + </DebugOption> + <Utilities> + <Flash1> + <UseTargetDll>1</UseTargetDll> + <UseExternalTool>0</UseExternalTool> + <RunIndependent>0</RunIndependent> + <UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging> + <Capability>1</Capability> + <DriverSelection>4096</DriverSelection> + </Flash1> + <bUseTDR>1</bUseTDR> + <Flash2>BIN\UL2CM3.DLL</Flash2> + <Flash3>"" ()</Flash3> + <Flash4></Flash4> + <pFcarmOut></pFcarmOut> + <pFcarmGrp></pFcarmGrp> + <pFcArmRoot></pFcArmRoot> + <FcArmLst>0</FcArmLst> + </Utilities> + <TargetArmAds> + <ArmAdsMisc> + <GenerateListings>0</GenerateListings> + <asHll>1</asHll> + <asAsm>1</asAsm> + <asMacX>1</asMacX> + <asSyms>1</asSyms> + <asFals>1</asFals> + <asDbgD>1</asDbgD> + <asForm>1</asForm> + <ldLst>0</ldLst> + <ldmm>1</ldmm> + <ldXref>1</ldXref> + <BigEnd>0</BigEnd> + <AdsALst>1</AdsALst> + <AdsACrf>1</AdsACrf> + <AdsANop>0</AdsANop> + <AdsANot>0</AdsANot> + <AdsLLst>1</AdsLLst> + <AdsLmap>1</AdsLmap> + <AdsLcgr>1</AdsLcgr> + <AdsLsym>1</AdsLsym> + <AdsLszi>1</AdsLszi> + <AdsLtoi>1</AdsLtoi> + <AdsLsun>1</AdsLsun> + <AdsLven>1</AdsLven> + <AdsLsxf>1</AdsLsxf> + <RvctClst>0</RvctClst> + <GenPPlst>0</GenPPlst> + <AdsCpuType>"Cortex-M4"</AdsCpuType> + <RvctDeviceName></RvctDeviceName> + <mOS>0</mOS> + <uocRom>0</uocRom> + <uocRam>0</uocRam> + <hadIROM>1</hadIROM> + <hadIRAM>1</hadIRAM> + <hadXRAM>0</hadXRAM> + <uocXRam>0</uocXRam> + <RvdsVP>2</RvdsVP> + <RvdsMve>0</RvdsMve> + <hadIRAM2>0</hadIRAM2> + <hadIROM2>0</hadIROM2> + <StupSel>8</StupSel> + <useUlib>0</useUlib> + <EndSel>0</EndSel> + <uLtcg>0</uLtcg> + <nSecure>0</nSecure> + <RoSelD>3</RoSelD> + <RwSelD>3</RwSelD> + <CodeSel>0</CodeSel> + <OptFeed>0</OptFeed> + <NoZi1>0</NoZi1> + <NoZi2>0</NoZi2> + <NoZi3>0</NoZi3> + <NoZi4>0</NoZi4> + <NoZi5>0</NoZi5> + <Ro1Chk>0</Ro1Chk> + <Ro2Chk>0</Ro2Chk> + <Ro3Chk>0</Ro3Chk> + <Ir1Chk>1</Ir1Chk> + <Ir2Chk>0</Ir2Chk> + <Ra1Chk>0</Ra1Chk> + <Ra2Chk>0</Ra2Chk> + <Ra3Chk>0</Ra3Chk> + <Im1Chk>1</Im1Chk> + <Im2Chk>0</Im2Chk> + <OnChipMemories> + <Ocm1> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </Ocm1> + <Ocm2> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </Ocm2> + <Ocm3> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </Ocm3> + <Ocm4> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </Ocm4> + <Ocm5> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </Ocm5> + <Ocm6> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </Ocm6> + <IRAM> + <Type>0</Type> + <StartAddress>0x20000000</StartAddress> + <Size>0x40000</Size> + </IRAM> + <IROM> + <Type>1</Type> + <StartAddress>0x0</StartAddress> + <Size>0x100000</Size> + </IROM> + <XRAM> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </XRAM> + <OCR_RVCT1> + <Type>1</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT1> + <OCR_RVCT2> + <Type>1</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT2> + <OCR_RVCT3> + <Type>1</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT3> + <OCR_RVCT4> + <Type>1</Type> + <StartAddress>0x0</StartAddress> + <Size>0x100000</Size> + </OCR_RVCT4> + <OCR_RVCT5> + <Type>1</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT5> + <OCR_RVCT6> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT6> + <OCR_RVCT7> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT7> + <OCR_RVCT8> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT8> + <OCR_RVCT9> + <Type>0</Type> + <StartAddress>0x20000000</StartAddress> + <Size>0x40000</Size> + </OCR_RVCT9> + <OCR_RVCT10> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT10> + </OnChipMemories> + <RvctStartVector></RvctStartVector> + </ArmAdsMisc> + <Cads> + <interw>1</interw> + <Optim>1</Optim> + <oTime>0</oTime> + <SplitLS>0</SplitLS> + <OneElfS>1</OneElfS> + <Strict>0</Strict> + <EnumInt>0</EnumInt> + <PlainCh>0</PlainCh> + <Ropi>0</Ropi> + <Rwpi>0</Rwpi> + <wLevel>2</wLevel> + <uThumb>0</uThumb> + <uSurpInc>0</uSurpInc> + <uC99>1</uC99> + <uGnu>0</uGnu> + <useXO>0</useXO> + <v6Lang>1</v6Lang> + <v6LangP>1</v6LangP> + <vShortEn>1</vShortEn> + <vShortWch>1</vShortWch> + <v6Lto>0</v6Lto> + <v6WtE>0</v6WtE> + <v6Rtti>0</v6Rtti> + <VariousControls> + <MiscControls>--reduce_paths</MiscControls> + <Define>NRF52840_XXAA, USE_APP_CONFIG, __RTTHREAD__</Define> + <Undefine></Undefine> + <IncludePath>applications;.;..\libraries\cmsis\include;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;..\libraries\drivers;..\..\..\components\finsh;.;..\..\..\include;packages\nrfx-v2.1.0;packages\nrfx-v2.1.0\drivers;packages\nrfx-v2.1.0\drivers\include;packages\nrfx-v2.1.0\mdk;packages\nrfx-v2.1.0\hal</IncludePath> + </VariousControls> + </Cads> + <Aads> + <interw>1</interw> + <Ropi>0</Ropi> + <Rwpi>0</Rwpi> + <thumb>0</thumb> + <SplitLS>0</SplitLS> + <SwStkChk>0</SwStkChk> + <NoWarn>0</NoWarn> + <uSurpInc>0</uSurpInc> + <useXO>0</useXO> + <uClangAs>0</uClangAs> + <VariousControls> + <MiscControls>--cpreproc_opts=-DBLE_STACK_SUPPORT_REQD,-DNRF_SD_BLE_API_VERSION=4,-DS132,-DSOFTDEVICE_PRESENT,-DSWI_DISABLE0,-DCONFIG_GPIO_AS_PINRESET,-DNRF52,-DNRF52832_XXAA,-DNRF52_PAN_12,-DNRF52_PAN_15,-DNRF52_PAN_20,-DNRF52_PAN_31,-DNRF52_PAN_36,-DNRF52_PAN_51,-DNRF52_PAN_54,-DNRF52_PAN_55,-DNRF52_PAN_58,-DNRF52_PAN_64,-DNRF52_PAN_74</MiscControls> + <Define></Define> + <Undefine></Undefine> + <IncludePath></IncludePath> + </VariousControls> + </Aads> + <LDads> + <umfTarg>1</umfTarg> + <Ropi>0</Ropi> + <Rwpi>0</Rwpi> + <noStLib>0</noStLib> + <RepFail>1</RepFail> + <useFile>0</useFile> + <TextAddressRange>0x00000000</TextAddressRange> + <DataAddressRange>0x20000000</DataAddressRange> + <pXoBase></pXoBase> + <ScatterFile></ScatterFile> + <IncludeLibs></IncludeLibs> + <IncludeLibsPath></IncludeLibsPath> + <Misc></Misc> + <LinkerInputFile></LinkerInputFile> + <DisabledWarnings></DisabledWarnings> + </LDads> + </TargetArmAds> + </TargetOption> + <Groups> + <Group> + <GroupName>Applications</GroupName> + <Files> + <File> + <FileName>application.c</FileName> + <FileType>1</FileType> + <FilePath>applications\application.c</FilePath> + </File> + </Files> + </Group> + <Group> + <GroupName>CPU</GroupName> + <Files> + <File> + <FileName>div0.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\libcpu\arm\common\div0.c</FilePath> + </File> + <File> + <FileName>backtrace.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\libcpu\arm\common\backtrace.c</FilePath> + </File> + <File> + <FileName>showmem.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\libcpu\arm\common\showmem.c</FilePath> + </File> + <File> + <FileName>context_rvds.S</FileName> + <FileType>2</FileType> + <FilePath>..\..\..\libcpu\arm\cortex-m4\context_rvds.S</FilePath> + </File> + <File> + <FileName>cpuport.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\libcpu\arm\cortex-m4\cpuport.c</FilePath> + </File> + </Files> + </Group> + <Group> + <GroupName>DeviceDrivers</GroupName> + <Files> + <File> + <FileName>pin.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\components\drivers\misc\pin.c</FilePath> + </File> + <File> + <FileName>serial.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\components\drivers\serial\serial.c</FilePath> + </File> + <File> + <FileName>ringblk_buf.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\components\drivers\src\ringblk_buf.c</FilePath> + </File> + <File> + <FileName>ringbuffer.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\components\drivers\src\ringbuffer.c</FilePath> + </File> + <File> + <FileName>workqueue.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\components\drivers\src\workqueue.c</FilePath> + </File> + <File> + <FileName>waitqueue.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\components\drivers\src\waitqueue.c</FilePath> + </File> + <File> + <FileName>completion.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\components\drivers\src\completion.c</FilePath> + </File> + <File> + <FileName>pipe.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\components\drivers\src\pipe.c</FilePath> + </File> + <File> + <FileName>dataqueue.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\components\drivers\src\dataqueue.c</FilePath> + </File> + </Files> + </Group> + <Group> + <GroupName>Drivers</GroupName> + <Files> + <File> + <FileName>board.c</FileName> + <FileType>1</FileType> + <FilePath>board\board.c</FilePath> + </File> + <File> + <FileName>drv_uart.c</FileName> + <FileType>1</FileType> + <FilePath>..\libraries\drivers\drv_uart.c</FilePath> + </File> + </Files> + </Group> + <Group> + <GroupName>finsh</GroupName> + <Files> + <File> + <FileName>shell.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\components\finsh\shell.c</FilePath> + </File> + <File> + <FileName>msh.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\components\finsh\msh.c</FilePath> + </File> + <File> + <FileName>cmd.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\components\finsh\cmd.c</FilePath> + </File> + </Files> + </Group> + <Group> + <GroupName>Kernel</GroupName> + <Files> + <File> + <FileName>irq.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\src\irq.c</FilePath> + </File> + <File> + <FileName>clock.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\src\clock.c</FilePath> + </File> + <File> + <FileName>kservice.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\src\kservice.c</FilePath> + </File> + <File> + <FileName>timer.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\src\timer.c</FilePath> + </File> + <File> + <FileName>object.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\src\object.c</FilePath> + </File> + <File> + <FileName>components.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\src\components.c</FilePath> + </File> + <File> + <FileName>scheduler.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\src\scheduler.c</FilePath> + </File> + <File> + <FileName>idle.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\src\idle.c</FilePath> + </File> + <File> + <FileName>ipc.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\src\ipc.c</FilePath> + </File> + <File> + <FileName>mem.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\src\mem.c</FilePath> + </File> + <File> + <FileName>thread.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\src\thread.c</FilePath> + </File> + <File> + <FileName>mempool.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\src\mempool.c</FilePath> + </File> + <File> + <FileName>device.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\src\device.c</FilePath> + </File> + </Files> + </Group> + <Group> + <GroupName>nrfx</GroupName> + <Files> + <File> + <FileName>nrfx_spim.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_spim.c</FilePath> + </File> + <File> + <FileName>nrfx_pwm.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_pwm.c</FilePath> + </File> + <File> + <FileName>nrfx_spi.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_spi.c</FilePath> + </File> + <File> + <FileName>nrfx_saadc.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_saadc.c</FilePath> + </File> + <File> + <FileName>nrfx_usbd.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_usbd.c</FilePath> + </File> + <File> + <FileName>nrfx_nvmc.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_nvmc.c</FilePath> + </File> + <File> + <FileName>nrfx_comp.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_comp.c</FilePath> + </File> + <File> + <FileName>nrfx_clock.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_clock.c</FilePath> + </File> + <File> + <FileName>nrfx_twi_twim.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_twi_twim.c</FilePath> + </File> + <File> + <FileName>nrfx_uart.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_uart.c</FilePath> + </File> + <File> + <FileName>nrfx_temp.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_temp.c</FilePath> + </File> + <File> + <FileName>nrfx_twis.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_twis.c</FilePath> + </File> + <File> + <FileName>nrfx_ipc.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_ipc.c</FilePath> + </File> + <File> + <FileName>nrfx_adc.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_adc.c</FilePath> + </File> + <File> + <FileName>nrfx_dppi.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_dppi.c</FilePath> + </File> + <File> + <FileName>nrfx_usbreg.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_usbreg.c</FilePath> + </File> + <File> + <FileName>arm_startup_nrf52840.s</FileName> + <FileType>2</FileType> + <FilePath>packages\nrfx-v2.1.0\mdk\arm_startup_nrf52840.s</FilePath> + </File> + <File> + <FileName>nrfx_systick.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_systick.c</FilePath> + </File> + <File> + <FileName>nrfx_spis.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_spis.c</FilePath> + </File> + <File> + <FileName>nrfx_uarte.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_uarte.c</FilePath> + </File> + <File> + <FileName>nrfx_gpiote.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_gpiote.c</FilePath> + </File> + <File> + <FileName>nrfx_timer.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_timer.c</FilePath> + </File> + <File> + <FileName>nrfx_qspi.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_qspi.c</FilePath> + </File> + <File> + <FileName>nrfx_pdm.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_pdm.c</FilePath> + </File> + <File> + <FileName>nrfx_rng.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_rng.c</FilePath> + </File> + <File> + <FileName>nrfx_lpcomp.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_lpcomp.c</FilePath> + </File> + <File> + <FileName>nrfx_i2s.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_i2s.c</FilePath> + </File> + <File> + <FileName>nrfx_power.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_power.c</FilePath> + </File> + <File> + <FileName>nrfx_ppi.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_ppi.c</FilePath> + </File> + <File> + <FileName>system_nrf52840.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\mdk\system_nrf52840.c</FilePath> + </File> + <File> + <FileName>nrfx_egu.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_egu.c</FilePath> + </File> + <File> + <FileName>nrfx_rtc.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_rtc.c</FilePath> + </File> + <File> + <FileName>nrfx_twi.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_twi.c</FilePath> + </File> + <File> + <FileName>nrfx_wdt.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_wdt.c</FilePath> + </File> + <File> + <FileName>nrfx_nfct.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_nfct.c</FilePath> + </File> + <File> + <FileName>nrfx_qdec.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_qdec.c</FilePath> + </File> + <File> + <FileName>nrfx_twim.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-v2.1.0\drivers\src\nrfx_twim.c</FilePath> + </File> + </Files> + </Group> + </Groups> + </Target> + </Targets> + + <RTE> + <apis/> + <components/> + <files/> + </RTE> + +</Project> diff --git a/bsp/nrf5x/libraries/templates/nrfx/rtconfig.h b/bsp/nrf5x/libraries/templates/nrfx/rtconfig.h new file mode 100644 index 0000000000..8b32e12a55 --- /dev/null +++ b/bsp/nrf5x/libraries/templates/nrfx/rtconfig.h @@ -0,0 +1,186 @@ +#ifndef RT_CONFIG_H__ +#define RT_CONFIG_H__ + +/* Automatically generated file; DO NOT EDIT. */ +/* RT-Thread Configuration */ + +/* RT-Thread Kernel */ + +#define RT_NAME_MAX 8 +#define RT_ALIGN_SIZE 4 +#define RT_THREAD_PRIORITY_32 +#define RT_THREAD_PRIORITY_MAX 32 +#define RT_TICK_PER_SECOND 100 +#define RT_USING_OVERFLOW_CHECK +#define RT_USING_HOOK +#define RT_USING_IDLE_HOOK +#define RT_IDLE_HOOK_LIST_SIZE 4 +#define IDLE_THREAD_STACK_SIZE 256 +#define RT_USING_TIMER_SOFT +#define RT_TIMER_THREAD_PRIO 4 +#define RT_TIMER_THREAD_STACK_SIZE 512 +#define RT_DEBUG + +/* Inter-Thread communication */ + +#define RT_USING_SEMAPHORE +#define RT_USING_MUTEX +#define RT_USING_EVENT +#define RT_USING_MAILBOX +#define RT_USING_MESSAGEQUEUE + +/* Memory Management */ + +#define RT_USING_MEMPOOL +#define RT_USING_SMALL_MEM +#define RT_USING_HEAP + +/* Kernel Device Object */ + +#define RT_USING_DEVICE +#define RT_USING_CONSOLE +#define RT_CONSOLEBUF_SIZE 128 +#define RT_CONSOLE_DEVICE_NAME "uart0" +#define RT_VER_NUM 0x40003 + +/* RT-Thread Components */ + +#define RT_USING_COMPONENTS_INIT +#define RT_USING_USER_MAIN +#define RT_MAIN_THREAD_STACK_SIZE 2048 +#define RT_MAIN_THREAD_PRIORITY 10 + +/* C++ features */ + + +/* Command shell */ + +#define RT_USING_FINSH +#define FINSH_THREAD_NAME "tshell" +#define FINSH_USING_HISTORY +#define FINSH_HISTORY_LINES 5 +#define FINSH_USING_SYMTAB +#define FINSH_USING_DESCRIPTION +#define FINSH_THREAD_PRIORITY 20 +#define FINSH_THREAD_STACK_SIZE 4096 +#define FINSH_CMD_SIZE 80 +#define FINSH_USING_MSH +#define FINSH_USING_MSH_DEFAULT +#define FINSH_USING_MSH_ONLY +#define FINSH_ARG_MAX 10 + +/* Device virtual file system */ + + +/* Device Drivers */ + +#define RT_USING_DEVICE_IPC +#define RT_PIPE_BUFSZ 512 +#define RT_USING_SERIAL +#define RT_SERIAL_RB_BUFSZ 64 +#define RT_USING_PIN + +/* Using USB */ + + +/* POSIX layer and C standard library */ + + +/* Network */ + +/* Socket abstraction layer */ + + +/* Network interface device */ + + +/* light weight TCP/IP stack */ + + +/* AT commands */ + + +/* VBUS(Virtual Software BUS) */ + + +/* Utilities */ + + +/* RT-Thread online packages */ + +/* IoT - internet of things */ + + +/* Wi-Fi */ + +/* Marvell WiFi */ + + +/* Wiced WiFi */ + + +/* IoT Cloud */ + + +/* security packages */ + + +/* language packages */ + + +/* multimedia packages */ + + +/* tools packages */ + + +/* system packages */ + + +/* Micrium: Micrium software products porting for RT-Thread */ + + +/* peripheral libraries and drivers */ + +#define PKG_USING_NRFX +#define PKG_USING_NRFX_LATEST_VERSION + +/* AI packages */ + + +/* miscellaneous packages */ + + +/* samples: kernel and components samples */ + + +/* games: games run on RT-Thread console */ + + +/* Hardware Drivers Config */ + +#define SOC_NRF52840 +#define NRFX_CLOCK_ENABLED 1 +#define NRFX_CLOCK_DEFAULT_CONFIG_IRQ_PRIORITY 7 +#define NRFX_CLOCK_CONFIG_LF_SRC 1 +#define SOC_NORDIC + +/* On-chip Peripheral Drivers */ + +#define BSP_USING_UART +#define NRFX_USING_UART +#define NRFX_UART_ENABLED 1 +#define BSP_USING_UART0 +#define NRFX_UART0_ENABLED 1 +#define BSP_UART0_RX_PIN 8 +#define BSP_UART0_TX_PIN 6 + +/* On-chip flash config */ + +#define MCU_FLASH_START_ADDRESS 0x00000000 +#define MCU_FLASH_SIZE_KB 1024 +#define MCU_SRAM_START_ADDRESS 0x20000000 +#define MCU_SRAM_SIZE_KB 256 +#define MCU_FLASH_PAGE_SIZE 0x1000 + +#endif diff --git a/bsp/nrf5x/libraries/templates/nrfx/rtconfig.py b/bsp/nrf5x/libraries/templates/nrfx/rtconfig.py new file mode 100644 index 0000000000..c809814516 --- /dev/null +++ b/bsp/nrf5x/libraries/templates/nrfx/rtconfig.py @@ -0,0 +1,92 @@ +import os + +# toolchains options +ARCH='arm' +CPU='cortex-m4' +CROSS_TOOL='keil' + +if os.getenv('RTT_CC'): + CROSS_TOOL = os.getenv('RTT_CC') + +# cross_tool provides the cross compiler +# EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR + +if CROSS_TOOL == 'gcc': + PLATFORM = 'gcc' + EXEC_PATH = 'D:/SourceryGCC/bin' +elif CROSS_TOOL == 'keil': + PLATFORM = 'armcc' + EXEC_PATH = 'C:/Keil_v5' +elif CROSS_TOOL == 'iar': + print('================ERROR============================') + print('Not support iar yet!') + print('=================================================') + exit(0) + +if os.getenv('RTT_EXEC_PATH'): + EXEC_PATH = os.getenv('RTT_EXEC_PATH') + +BUILD = 'debug' + +if PLATFORM == 'gcc': + # toolchains + PREFIX = 'arm-none-eabi-' + CC = PREFIX + 'gcc' + AS = PREFIX + 'gcc' + AR = PREFIX + 'ar' + LINK = PREFIX + 'gcc' + TARGET_EXT = 'elf' + SIZE = PREFIX + 'size' + OBJDUMP = PREFIX + 'objdump' + OBJCPY = PREFIX + 'objcopy' + + DEVICE = ' -mcpu='+CPU + ' -mthumb -ffunction-sections -fdata-sections' + CFLAGS = DEVICE + AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp' + LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,Reset_Handler -T board/linker_scripts/link.lds' + + CPATH = '' + LPATH = '' + + if BUILD == 'debug': + CFLAGS += ' -O0 -gdwarf-2' + AFLAGS += ' -gdwarf-2' + else: + CFLAGS += ' -O2' + + POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n' + +elif PLATFORM == 'armcc': + # toolchains + CC = 'armcc' + AS = 'armasm' + AR = 'armar' + LINK = 'armlink' + TARGET_EXT = 'axf' + + DEVICE = ' --device DARMSTM' + CFLAGS = DEVICE + ' --apcs=interwork' + AFLAGS = DEVICE + LFLAGS = DEVICE + ' --info sizes --info totals --info unused --info veneers --list rtthread.map --scatter "board\linker_scripts\link.sct"' + + CFLAGS += ' --c99' + CFLAGS += ' -I' + EXEC_PATH + '/ARM/RV31/INC' + LFLAGS += ' --libpath ' + EXEC_PATH + '/ARM/RV31/LIB' + + EXEC_PATH += '/arm/bin40/' + + if BUILD == 'debug': + CFLAGS += ' -g -O0' + AFLAGS += ' -g' + else: + CFLAGS += ' -O2' + + POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET' + + +def dist_handle(BSP_ROOT, dist_dir): + import sys + cwd_path = os.getcwd() + sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) + from sdk_dist import dist_do_building + dist_do_building(BSP_ROOT, dist_dir) diff --git a/bsp/nrf5x/libraries/templates/nrfx/template.uvoptx b/bsp/nrf5x/libraries/templates/nrfx/template.uvoptx new file mode 100644 index 0000000000..f567bf47e8 --- /dev/null +++ b/bsp/nrf5x/libraries/templates/nrfx/template.uvoptx @@ -0,0 +1,184 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<ProjectOpt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_optx.xsd"> + + <SchemaVersion>1.0</SchemaVersion> + + <Header>### uVision Project, (C) Keil Software</Header> + + <Extensions> + <cExt>*.c</cExt> + <aExt>*.s*; *.src; *.a*</aExt> + <oExt>*.obj; *.o</oExt> + <lExt>*.lib</lExt> + <tExt>*.txt; *.h; *.inc</tExt> + <pExt>*.plm</pExt> + <CppX>*.cpp</CppX> + <nMigrate>0</nMigrate> + </Extensions> + + <DaveTm> + <dwLowDateTime>0</dwLowDateTime> + <dwHighDateTime>0</dwHighDateTime> + </DaveTm> + + <Target> + <TargetName>rtthread</TargetName> + <ToolsetNumber>0x4</ToolsetNumber> + <ToolsetName>ARM-ADS</ToolsetName> + <TargetOption> + <CLKADS>12000000</CLKADS> + <OPTTT> + <gFlags>1</gFlags> + <BeepAtEnd>1</BeepAtEnd> + <RunSim>0</RunSim> + <RunTarget>1</RunTarget> + <RunAbUc>0</RunAbUc> + </OPTTT> + <OPTHX> + <HexSelection>1</HexSelection> + <FlashByte>65535</FlashByte> + <HexRangeLowAddress>0</HexRangeLowAddress> + <HexRangeHighAddress>0</HexRangeHighAddress> + <HexOffset>0</HexOffset> + </OPTHX> + <OPTLEX> + <PageWidth>79</PageWidth> + <PageLength>66</PageLength> + <TabStop>8</TabStop> + <ListingPath>.\build\</ListingPath> + </OPTLEX> + <ListingPage> + <CreateCListing>1</CreateCListing> + <CreateAListing>1</CreateAListing> + <CreateLListing>1</CreateLListing> + <CreateIListing>0</CreateIListing> + <AsmCond>1</AsmCond> + <AsmSymb>1</AsmSymb> + <AsmXref>0</AsmXref> + <CCond>1</CCond> + <CCode>0</CCode> + <CListInc>0</CListInc> + <CSymb>0</CSymb> + <LinkerCodeListing>0</LinkerCodeListing> + </ListingPage> + <OPTXL> + <LMap>1</LMap> + <LComments>1</LComments> + <LGenerateSymbols>1</LGenerateSymbols> + <LLibSym>1</LLibSym> + <LLines>1</LLines> + <LLocSym>1</LLocSym> + <LPubSym>1</LPubSym> + <LXref>0</LXref> + <LExpSel>0</LExpSel> + </OPTXL> + <OPTFL> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <IsCurrentTarget>1</IsCurrentTarget> + </OPTFL> + <CpuCode>5</CpuCode> + <DebugOpt> + <uSim>0</uSim> + <uTrg>1</uTrg> + <sLdApp>1</sLdApp> + <sGomain>1</sGomain> + <sRbreak>1</sRbreak> + <sRwatch>1</sRwatch> + <sRmem>1</sRmem> + <sRfunc>1</sRfunc> + <sRbox>1</sRbox> + <tLdApp>1</tLdApp> + <tGomain>1</tGomain> + <tRbreak>1</tRbreak> + <tRwatch>1</tRwatch> + <tRmem>1</tRmem> + <tRfunc>0</tRfunc> + <tRbox>1</tRbox> + <tRtrace>1</tRtrace> + <sRSysVw>1</sRSysVw> + <tRSysVw>1</tRSysVw> + <sRunDeb>0</sRunDeb> + <sLrtime>0</sLrtime> + <bEvRecOn>1</bEvRecOn> + <bSchkAxf>0</bSchkAxf> + <bTchkAxf>0</bTchkAxf> + <nTsel>4</nTsel> + <sDll></sDll> + <sDllPa></sDllPa> + <sDlgDll></sDlgDll> + <sDlgPa></sDlgPa> + <sIfile></sIfile> + <tDll></tDll> + <tDllPa></tDllPa> + <tDlgDll></tDlgDll> + <tDlgPa></tDlgPa> + <tIfile></tIfile> + <pMon>Segger\JL2CM3.dll</pMon> + </DebugOpt> + <TargetDriverDllRegistry> + <SetRegEntry> + <Number>0</Number> + <Key>JL2CM3</Key> + <Name>-U683349164 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8004 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC4000 -FN2 -FF0nrf52xxx.flm -FS00 -FL0200000 -FP0($$Device:nRF52840_xxAA$Flash\nrf52xxx.flm) -FF1nrf52xxx_uicr.flm -FS110001000 -FL11000 -FP1($$Device:nRF52840_xxAA$Flash\nrf52xxx_uicr.flm)</Name> + </SetRegEntry> + <SetRegEntry> + <Number>0</Number> + <Key>UL2CM3</Key> + <Name>UL2CM3(-S0 -C0 -P0 ) -FN2 -FC4000 -FD20000000 -FF0nrf52xxx -FF1nrf52xxx_uicr -FL0200000 -FL11000 -FS00 -FS110001000 -FP0($$Device:nRF52840_xxAA$Flash\nrf52xxx.flm) -FP1($$Device:nRF52840_xxAA$Flash\nrf52xxx_uicr.flm)</Name> + </SetRegEntry> + </TargetDriverDllRegistry> + <Breakpoint/> + <Tracepoint> + <THDelay>0</THDelay> + </Tracepoint> + <DebugFlag> + <trace>0</trace> + <periodic>0</periodic> + <aLwin>0</aLwin> + <aCover>0</aCover> + <aSer1>0</aSer1> + <aSer2>0</aSer2> + <aPa>0</aPa> + <viewmode>0</viewmode> + <vrSel>0</vrSel> + <aSym>0</aSym> + <aTbox>0</aTbox> + <AscS1>0</AscS1> + <AscS2>0</AscS2> + <AscS3>0</AscS3> + <aSer3>0</aSer3> + <eProf>0</eProf> + <aLa>0</aLa> + <aPa1>0</aPa1> + <AscS4>0</AscS4> + <aSer4>0</aSer4> + <StkLoc>0</StkLoc> + <TrcWin>0</TrcWin> + <newCpu>0</newCpu> + <uProt>0</uProt> + </DebugFlag> + <LintExecutable></LintExecutable> + <LintConfigFile></LintConfigFile> + <bLintAuto>0</bLintAuto> + <bAutoGenD>0</bAutoGenD> + <LntExFlags>0</LntExFlags> + <pMisraName></pMisraName> + <pszMrule></pszMrule> + <pSingCmds></pSingCmds> + <pMultCmds></pMultCmds> + <pMisraNamep></pMisraNamep> + <pszMrulep></pszMrulep> + <pSingCmdsp></pSingCmdsp> + <pMultCmdsp></pMultCmdsp> + <DebugDescription> + <Enable>1</Enable> + <EnableFlashSeq>1</EnableFlashSeq> + <EnableLog>0</EnableLog> + <Protocol>2</Protocol> + <DbgClock>10000000</DbgClock> + </DebugDescription> + </TargetOption> + </Target> + +</ProjectOpt> diff --git a/bsp/nrf5x/libraries/templates/nrfx/template.uvprojx b/bsp/nrf5x/libraries/templates/nrfx/template.uvprojx new file mode 100644 index 0000000000..47cfe00539 --- /dev/null +++ b/bsp/nrf5x/libraries/templates/nrfx/template.uvprojx @@ -0,0 +1,390 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd"> + + <SchemaVersion>2.1</SchemaVersion> + + <Header>### uVision Project, (C) Keil Software</Header> + + <Targets> + <Target> + <TargetName>rtthread</TargetName> + <ToolsetNumber>0x4</ToolsetNumber> + <ToolsetName>ARM-ADS</ToolsetName> + <pCCUsed>5060422::V5.06 update 4 (build 422)::ARMCC</pCCUsed> + <uAC6>0</uAC6> + <TargetOption> + <TargetCommonOption> + <Device>nRF52840_xxAA</Device> + <Vendor>Nordic Semiconductor</Vendor> + <PackID>NordicSemiconductor.nRF_DeviceFamilyPack.8.38.0</PackID> + <PackURL>http://developer.nordicsemi.com/nRF5_SDK/pieces/nRF_DeviceFamilyPack/</PackURL> + <Cpu>IRAM(0x20000000,0x40000) IROM(0x00000000,0x100000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE</Cpu> + <FlashUtilSpec></FlashUtilSpec> + <StartupFile></StartupFile> + <FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC4000 -FN2 -FF0nrf52xxx -FS00 -FL0200000 -FF1nrf52xxx_uicr -FS110001000 -FL11000 -FP0($$Device:nRF52840_xxAA$Flash\nrf52xxx.flm) -FP1($$Device:nRF52840_xxAA$Flash\nrf52xxx_uicr.flm))</FlashDriverDll> + <DeviceId>0</DeviceId> + <RegisterFile>$$Device:nRF52840_xxAA$Device\Include\nrf.h</RegisterFile> + <MemoryEnv></MemoryEnv> + <Cmp></Cmp> + <Asm></Asm> + <Linker></Linker> + <OHString></OHString> + <InfinionOptionDll></InfinionOptionDll> + <SLE66CMisc></SLE66CMisc> + <SLE66AMisc></SLE66AMisc> + <SLE66LinkerMisc></SLE66LinkerMisc> + <SFDFile>$$Device:nRF52840_xxAA$SVD\nrf52840.svd</SFDFile> + <bCustSvd>0</bCustSvd> + <UseEnv>0</UseEnv> + <BinPath></BinPath> + <IncludePath></IncludePath> + <LibPath></LibPath> + <RegisterFilePath></RegisterFilePath> + <DBRegisterFilePath></DBRegisterFilePath> + <TargetStatus> + <Error>0</Error> + <ExitCodeStop>0</ExitCodeStop> + <ButtonStop>0</ButtonStop> + <NotGenerated>0</NotGenerated> + <InvalidFlash>1</InvalidFlash> + </TargetStatus> + <OutputDirectory>.\build\</OutputDirectory> + <OutputName>rtthread</OutputName> + <CreateExecutable>1</CreateExecutable> + <CreateLib>0</CreateLib> + <CreateHexFile>0</CreateHexFile> + <DebugInformation>1</DebugInformation> + <BrowseInformation>1</BrowseInformation> + <ListingPath>.\build\</ListingPath> + <HexFormatSelection>1</HexFormatSelection> + <Merge32K>0</Merge32K> + <CreateBatchFile>0</CreateBatchFile> + <BeforeCompile> + <RunUserProg1>0</RunUserProg1> + <RunUserProg2>0</RunUserProg2> + <UserProg1Name></UserProg1Name> + <UserProg2Name></UserProg2Name> + <UserProg1Dos16Mode>0</UserProg1Dos16Mode> + <UserProg2Dos16Mode>0</UserProg2Dos16Mode> + <nStopU1X>0</nStopU1X> + <nStopU2X>0</nStopU2X> + </BeforeCompile> + <BeforeMake> + <RunUserProg1>0</RunUserProg1> + <RunUserProg2>0</RunUserProg2> + <UserProg1Name></UserProg1Name> + <UserProg2Name></UserProg2Name> + <UserProg1Dos16Mode>0</UserProg1Dos16Mode> + <UserProg2Dos16Mode>0</UserProg2Dos16Mode> + <nStopB1X>0</nStopB1X> + <nStopB2X>0</nStopB2X> + </BeforeMake> + <AfterMake> + <RunUserProg1>1</RunUserProg1> + <RunUserProg2>0</RunUserProg2> + <UserProg1Name>fromelf --bin !L --output rtthread.bin</UserProg1Name> + <UserProg2Name></UserProg2Name> + <UserProg1Dos16Mode>0</UserProg1Dos16Mode> + <UserProg2Dos16Mode>0</UserProg2Dos16Mode> + <nStopA1X>0</nStopA1X> + <nStopA2X>0</nStopA2X> + </AfterMake> + <SelectedForBatchBuild>0</SelectedForBatchBuild> + <SVCSIdString></SVCSIdString> + </TargetCommonOption> + <CommonProperty> + <UseCPPCompiler>0</UseCPPCompiler> + <RVCTCodeConst>0</RVCTCodeConst> + <RVCTZI>0</RVCTZI> + <RVCTOtherData>0</RVCTOtherData> + <ModuleSelection>0</ModuleSelection> + <IncludeInBuild>1</IncludeInBuild> + <AlwaysBuild>0</AlwaysBuild> + <GenerateAssemblyFile>0</GenerateAssemblyFile> + <AssembleAssemblyFile>0</AssembleAssemblyFile> + <PublicsOnly>0</PublicsOnly> + <StopOnExitCode>3</StopOnExitCode> + <CustomArgument></CustomArgument> + <IncludeLibraryModules></IncludeLibraryModules> + <ComprImg>1</ComprImg> + </CommonProperty> + <DllOption> + <SimDllName>SARMCM3.DLL</SimDllName> + <SimDllArguments> -MPU</SimDllArguments> + <SimDlgDll>DCM.DLL</SimDlgDll> + <SimDlgDllArguments>-pCM4</SimDlgDllArguments> + <TargetDllName>SARMCM3.DLL</TargetDllName> + <TargetDllArguments> -MPU</TargetDllArguments> + <TargetDlgDll>TCM.DLL</TargetDlgDll> + <TargetDlgDllArguments>-pCM4</TargetDlgDllArguments> + </DllOption> + <DebugOption> + <OPTHX> + <HexSelection>1</HexSelection> + <HexRangeLowAddress>0</HexRangeLowAddress> + <HexRangeHighAddress>0</HexRangeHighAddress> + <HexOffset>0</HexOffset> + <Oh166RecLen>16</Oh166RecLen> + </OPTHX> + </DebugOption> + <Utilities> + <Flash1> + <UseTargetDll>1</UseTargetDll> + <UseExternalTool>0</UseExternalTool> + <RunIndependent>0</RunIndependent> + <UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging> + <Capability>1</Capability> + <DriverSelection>4096</DriverSelection> + </Flash1> + <bUseTDR>1</bUseTDR> + <Flash2>BIN\UL2CM3.DLL</Flash2> + <Flash3>"" ()</Flash3> + <Flash4></Flash4> + <pFcarmOut></pFcarmOut> + <pFcarmGrp></pFcarmGrp> + <pFcArmRoot></pFcArmRoot> + <FcArmLst>0</FcArmLst> + </Utilities> + <TargetArmAds> + <ArmAdsMisc> + <GenerateListings>0</GenerateListings> + <asHll>1</asHll> + <asAsm>1</asAsm> + <asMacX>1</asMacX> + <asSyms>1</asSyms> + <asFals>1</asFals> + <asDbgD>1</asDbgD> + <asForm>1</asForm> + <ldLst>0</ldLst> + <ldmm>1</ldmm> + <ldXref>1</ldXref> + <BigEnd>0</BigEnd> + <AdsALst>1</AdsALst> + <AdsACrf>1</AdsACrf> + <AdsANop>0</AdsANop> + <AdsANot>0</AdsANot> + <AdsLLst>1</AdsLLst> + <AdsLmap>1</AdsLmap> + <AdsLcgr>1</AdsLcgr> + <AdsLsym>1</AdsLsym> + <AdsLszi>1</AdsLszi> + <AdsLtoi>1</AdsLtoi> + <AdsLsun>1</AdsLsun> + <AdsLven>1</AdsLven> + <AdsLsxf>1</AdsLsxf> + <RvctClst>0</RvctClst> + <GenPPlst>0</GenPPlst> + <AdsCpuType>"Cortex-M4"</AdsCpuType> + <RvctDeviceName></RvctDeviceName> + <mOS>0</mOS> + <uocRom>0</uocRom> + <uocRam>0</uocRam> + <hadIROM>1</hadIROM> + <hadIRAM>1</hadIRAM> + <hadXRAM>0</hadXRAM> + <uocXRam>0</uocXRam> + <RvdsVP>2</RvdsVP> + <RvdsMve>0</RvdsMve> + <hadIRAM2>0</hadIRAM2> + <hadIROM2>0</hadIROM2> + <StupSel>8</StupSel> + <useUlib>0</useUlib> + <EndSel>0</EndSel> + <uLtcg>0</uLtcg> + <nSecure>0</nSecure> + <RoSelD>3</RoSelD> + <RwSelD>3</RwSelD> + <CodeSel>0</CodeSel> + <OptFeed>0</OptFeed> + <NoZi1>0</NoZi1> + <NoZi2>0</NoZi2> + <NoZi3>0</NoZi3> + <NoZi4>0</NoZi4> + <NoZi5>0</NoZi5> + <Ro1Chk>0</Ro1Chk> + <Ro2Chk>0</Ro2Chk> + <Ro3Chk>0</Ro3Chk> + <Ir1Chk>1</Ir1Chk> + <Ir2Chk>0</Ir2Chk> + <Ra1Chk>0</Ra1Chk> + <Ra2Chk>0</Ra2Chk> + <Ra3Chk>0</Ra3Chk> + <Im1Chk>1</Im1Chk> + <Im2Chk>0</Im2Chk> + <OnChipMemories> + <Ocm1> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </Ocm1> + <Ocm2> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </Ocm2> + <Ocm3> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </Ocm3> + <Ocm4> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </Ocm4> + <Ocm5> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </Ocm5> + <Ocm6> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </Ocm6> + <IRAM> + <Type>0</Type> + <StartAddress>0x20000000</StartAddress> + <Size>0x40000</Size> + </IRAM> + <IROM> + <Type>1</Type> + <StartAddress>0x0</StartAddress> + <Size>0x100000</Size> + </IROM> + <XRAM> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </XRAM> + <OCR_RVCT1> + <Type>1</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT1> + <OCR_RVCT2> + <Type>1</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT2> + <OCR_RVCT3> + <Type>1</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT3> + <OCR_RVCT4> + <Type>1</Type> + <StartAddress>0x0</StartAddress> + <Size>0x100000</Size> + </OCR_RVCT4> + <OCR_RVCT5> + <Type>1</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT5> + <OCR_RVCT6> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT6> + <OCR_RVCT7> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT7> + <OCR_RVCT8> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT8> + <OCR_RVCT9> + <Type>0</Type> + <StartAddress>0x20000000</StartAddress> + <Size>0x40000</Size> + </OCR_RVCT9> + <OCR_RVCT10> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT10> + </OnChipMemories> + <RvctStartVector></RvctStartVector> + </ArmAdsMisc> + <Cads> + <interw>1</interw> + <Optim>1</Optim> + <oTime>0</oTime> + <SplitLS>0</SplitLS> + <OneElfS>1</OneElfS> + <Strict>0</Strict> + <EnumInt>0</EnumInt> + <PlainCh>0</PlainCh> + <Ropi>0</Ropi> + <Rwpi>0</Rwpi> + <wLevel>2</wLevel> + <uThumb>0</uThumb> + <uSurpInc>0</uSurpInc> + <uC99>1</uC99> + <uGnu>0</uGnu> + <useXO>0</useXO> + <v6Lang>1</v6Lang> + <v6LangP>1</v6LangP> + <vShortEn>1</vShortEn> + <vShortWch>1</vShortWch> + <v6Lto>0</v6Lto> + <v6WtE>0</v6WtE> + <v6Rtti>0</v6Rtti> + <VariousControls> + <MiscControls>--reduce_paths</MiscControls> + <Define></Define> + <Undefine></Undefine> + <IncludePath></IncludePath> + </VariousControls> + </Cads> + <Aads> + <interw>1</interw> + <Ropi>0</Ropi> + <Rwpi>0</Rwpi> + <thumb>0</thumb> + <SplitLS>0</SplitLS> + <SwStkChk>0</SwStkChk> + <NoWarn>0</NoWarn> + <uSurpInc>0</uSurpInc> + <useXO>0</useXO> + <uClangAs>0</uClangAs> + <VariousControls> + <MiscControls>--cpreproc_opts=-DBLE_STACK_SUPPORT_REQD,-DNRF_SD_BLE_API_VERSION=4,-DS132,-DSOFTDEVICE_PRESENT,-DSWI_DISABLE0,-DCONFIG_GPIO_AS_PINRESET,-DNRF52,-DNRF52832_XXAA,-DNRF52_PAN_12,-DNRF52_PAN_15,-DNRF52_PAN_20,-DNRF52_PAN_31,-DNRF52_PAN_36,-DNRF52_PAN_51,-DNRF52_PAN_54,-DNRF52_PAN_55,-DNRF52_PAN_58,-DNRF52_PAN_64,-DNRF52_PAN_74</MiscControls> + <Define></Define> + <Undefine></Undefine> + <IncludePath></IncludePath> + </VariousControls> + </Aads> + <LDads> + <umfTarg>0</umfTarg> + <Ropi>0</Ropi> + <Rwpi>0</Rwpi> + <noStLib>0</noStLib> + <RepFail>1</RepFail> + <useFile>0</useFile> + <TextAddressRange>0x00000000</TextAddressRange> + <DataAddressRange>0x20000000</DataAddressRange> + <pXoBase></pXoBase> + <ScatterFile>.\board\linker_scripts\link.sct</ScatterFile> + <IncludeLibs></IncludeLibs> + <IncludeLibsPath></IncludeLibsPath> + <Misc>--diag_suppress 6330</Misc> + <LinkerInputFile></LinkerInputFile> + <DisabledWarnings></DisabledWarnings> + </LDads> + </TargetArmAds> + </TargetOption> + </Target> + </Targets> + + <RTE> + <apis/> + <components/> + <files/> + </RTE> + +</Project> diff --git a/bsp/nrf5x/nrf51822/.config b/bsp/nrf5x/nrf51822/.config new file mode 100644 index 0000000000..2723e76943 --- /dev/null +++ b/bsp/nrf5x/nrf51822/.config @@ -0,0 +1,540 @@ +# +# Automatically generated file; DO NOT EDIT. +# RT-Thread Configuration +# + +# +# RT-Thread Kernel +# +CONFIG_RT_NAME_MAX=8 +# CONFIG_RT_USING_ARCH_DATA_TYPE is not set +# CONFIG_RT_USING_SMP is not set +CONFIG_RT_ALIGN_SIZE=4 +# CONFIG_RT_THREAD_PRIORITY_8 is not set +CONFIG_RT_THREAD_PRIORITY_32=y +# CONFIG_RT_THREAD_PRIORITY_256 is not set +CONFIG_RT_THREAD_PRIORITY_MAX=32 +CONFIG_RT_TICK_PER_SECOND=100 +CONFIG_RT_USING_OVERFLOW_CHECK=y +CONFIG_RT_USING_HOOK=y +CONFIG_RT_USING_IDLE_HOOK=y +CONFIG_RT_IDLE_HOOK_LIST_SIZE=4 +CONFIG_IDLE_THREAD_STACK_SIZE=256 +CONFIG_RT_USING_TIMER_SOFT=y +CONFIG_RT_TIMER_THREAD_PRIO=4 +CONFIG_RT_TIMER_THREAD_STACK_SIZE=512 +# CONFIG_RT_KSERVICE_USING_STDLIB is not set +CONFIG_RT_DEBUG=y +# CONFIG_RT_DEBUG_COLOR is not set +# CONFIG_RT_DEBUG_INIT_CONFIG is not set +# CONFIG_RT_DEBUG_THREAD_CONFIG is not set +# CONFIG_RT_DEBUG_SCHEDULER_CONFIG is not set +# CONFIG_RT_DEBUG_IPC_CONFIG is not set +# CONFIG_RT_DEBUG_TIMER_CONFIG is not set +# CONFIG_RT_DEBUG_IRQ_CONFIG is not set +# CONFIG_RT_DEBUG_MEM_CONFIG is not set +# CONFIG_RT_DEBUG_SLAB_CONFIG is not set +# CONFIG_RT_DEBUG_MEMHEAP_CONFIG is not set +# CONFIG_RT_DEBUG_MODULE_CONFIG is not set + +# +# Inter-Thread communication +# +CONFIG_RT_USING_SEMAPHORE=y +CONFIG_RT_USING_MUTEX=y +CONFIG_RT_USING_EVENT=y +CONFIG_RT_USING_MAILBOX=y +CONFIG_RT_USING_MESSAGEQUEUE=y +# CONFIG_RT_USING_SIGNALS is not set + +# +# Memory Management +# +CONFIG_RT_USING_MEMPOOL=y +# CONFIG_RT_USING_MEMHEAP is not set +# CONFIG_RT_USING_NOHEAP is not set +CONFIG_RT_USING_SMALL_MEM=y +# CONFIG_RT_USING_SLAB is not set +# CONFIG_RT_USING_USERHEAP is not set +# CONFIG_RT_USING_MEMTRACE is not set +CONFIG_RT_USING_HEAP=y + +# +# Kernel Device Object +# +CONFIG_RT_USING_DEVICE=y +# CONFIG_RT_USING_DEVICE_OPS is not set +# CONFIG_RT_USING_INTERRUPT_INFO is not set +CONFIG_RT_USING_CONSOLE=y +CONFIG_RT_CONSOLEBUF_SIZE=128 +CONFIG_RT_CONSOLE_DEVICE_NAME="uart0" +CONFIG_RT_VER_NUM=0x40003 +# CONFIG_RT_USING_CPU_FFS is not set +# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set + +# +# RT-Thread Components +# +CONFIG_RT_USING_COMPONENTS_INIT=y +CONFIG_RT_USING_USER_MAIN=y +CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048 +CONFIG_RT_MAIN_THREAD_PRIORITY=10 + +# +# C++ features +# +# CONFIG_RT_USING_CPLUSPLUS is not set + +# +# Command shell +# +CONFIG_RT_USING_FINSH=y +CONFIG_FINSH_THREAD_NAME="tshell" +CONFIG_FINSH_USING_HISTORY=y +CONFIG_FINSH_HISTORY_LINES=5 +CONFIG_FINSH_USING_SYMTAB=y +CONFIG_FINSH_USING_DESCRIPTION=y +# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set +CONFIG_FINSH_THREAD_PRIORITY=20 +CONFIG_FINSH_THREAD_STACK_SIZE=4096 +CONFIG_FINSH_CMD_SIZE=80 +# CONFIG_FINSH_USING_AUTH is not set +CONFIG_FINSH_USING_MSH=y +CONFIG_FINSH_USING_MSH_DEFAULT=y +CONFIG_FINSH_USING_MSH_ONLY=y +CONFIG_FINSH_ARG_MAX=10 + +# +# Device virtual file system +# +# CONFIG_RT_USING_DFS is not set + +# +# Device Drivers +# +CONFIG_RT_USING_DEVICE_IPC=y +CONFIG_RT_PIPE_BUFSZ=512 +# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set +CONFIG_RT_USING_SERIAL=y +# CONFIG_RT_SERIAL_USING_DMA is not set +CONFIG_RT_SERIAL_RB_BUFSZ=64 +# CONFIG_RT_USING_CAN is not set +# CONFIG_RT_USING_HWTIMER is not set +# CONFIG_RT_USING_CPUTIME is not set +# CONFIG_RT_USING_I2C is not set +# CONFIG_RT_USING_PHY is not set +CONFIG_RT_USING_PIN=y +# CONFIG_RT_USING_ADC is not set +# CONFIG_RT_USING_DAC is not set +# CONFIG_RT_USING_PWM is not set +# CONFIG_RT_USING_MTD_NOR is not set +# CONFIG_RT_USING_MTD_NAND is not set +# CONFIG_RT_USING_PM is not set +# CONFIG_RT_USING_RTC is not set +# CONFIG_RT_USING_SDIO is not set +# CONFIG_RT_USING_SPI is not set +# CONFIG_RT_USING_WDT is not set +# CONFIG_RT_USING_AUDIO is not set +# CONFIG_RT_USING_SENSOR is not set +# CONFIG_RT_USING_TOUCH is not set +# CONFIG_RT_USING_HWCRYPTO is not set +# CONFIG_RT_USING_PULSE_ENCODER is not set +# CONFIG_RT_USING_INPUT_CAPTURE is not set +# CONFIG_RT_USING_WIFI is not set + +# +# Using USB +# +# CONFIG_RT_USING_USB_HOST is not set +# CONFIG_RT_USING_USB_DEVICE is not set + +# +# POSIX layer and C standard library +# +# CONFIG_RT_USING_LIBC is not set +# CONFIG_RT_USING_PTHREADS is not set +# CONFIG_RT_LIBC_USING_TIME is not set + +# +# Network +# + +# +# Socket abstraction layer +# +# CONFIG_RT_USING_SAL is not set + +# +# Network interface device +# +# CONFIG_RT_USING_NETDEV is not set + +# +# light weight TCP/IP stack +# +# CONFIG_RT_USING_LWIP is not set + +# +# AT commands +# +# CONFIG_RT_USING_AT is not set + +# +# VBUS(Virtual Software BUS) +# +# CONFIG_RT_USING_VBUS is not set + +# +# Utilities +# +# CONFIG_RT_USING_RYM is not set +# CONFIG_RT_USING_ULOG is not set +# CONFIG_RT_USING_UTEST is not set + +# +# RT-Thread online packages +# + +# +# IoT - internet of things +# +# CONFIG_PKG_USING_LORAWAN_DRIVER is not set +# CONFIG_PKG_USING_PAHOMQTT is not set +# CONFIG_PKG_USING_UMQTT is not set +# CONFIG_PKG_USING_WEBCLIENT is not set +# CONFIG_PKG_USING_WEBNET is not set +# CONFIG_PKG_USING_MONGOOSE is not set +# CONFIG_PKG_USING_MYMQTT is not set +# CONFIG_PKG_USING_KAWAII_MQTT is not set +# CONFIG_PKG_USING_BC28_MQTT is not set +# CONFIG_PKG_USING_WEBTERMINAL is not set +# CONFIG_PKG_USING_CJSON is not set +# CONFIG_PKG_USING_JSMN is not set +# CONFIG_PKG_USING_LIBMODBUS is not set +# CONFIG_PKG_USING_FREEMODBUS is not set +# CONFIG_PKG_USING_LJSON is not set +# CONFIG_PKG_USING_EZXML is not set +# CONFIG_PKG_USING_NANOPB is not set + +# +# Wi-Fi +# + +# +# Marvell WiFi +# +# CONFIG_PKG_USING_WLANMARVELL is not set + +# +# Wiced WiFi +# +# CONFIG_PKG_USING_WLAN_WICED is not set +# CONFIG_PKG_USING_RW007 is not set +# CONFIG_PKG_USING_COAP is not set +# CONFIG_PKG_USING_NOPOLL is not set +# CONFIG_PKG_USING_NETUTILS is not set +# CONFIG_PKG_USING_CMUX is not set +# CONFIG_PKG_USING_PPP_DEVICE is not set +# CONFIG_PKG_USING_AT_DEVICE is not set +# CONFIG_PKG_USING_ATSRV_SOCKET is not set +# CONFIG_PKG_USING_WIZNET is not set + +# +# IoT Cloud +# +# CONFIG_PKG_USING_ONENET is not set +# CONFIG_PKG_USING_GAGENT_CLOUD is not set +# CONFIG_PKG_USING_ALI_IOTKIT is not set +# CONFIG_PKG_USING_AZURE is not set +# CONFIG_PKG_USING_TENCENT_IOT_EXPLORER is not set +# CONFIG_PKG_USING_JIOT-C-SDK is not set +# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set +# CONFIG_PKG_USING_JOYLINK is not set +# CONFIG_PKG_USING_NIMBLE is not set +# CONFIG_PKG_USING_OTA_DOWNLOADER is not set +# CONFIG_PKG_USING_IPMSG is not set +# CONFIG_PKG_USING_LSSDP is not set +# CONFIG_PKG_USING_AIRKISS_OPEN is not set +# CONFIG_PKG_USING_LIBRWS is not set +# CONFIG_PKG_USING_TCPSERVER is not set +# CONFIG_PKG_USING_PROTOBUF_C is not set +# CONFIG_PKG_USING_DLT645 is not set +# CONFIG_PKG_USING_QXWZ is not set +# CONFIG_PKG_USING_SMTP_CLIENT is not set +# CONFIG_PKG_USING_ABUP_FOTA is not set +# CONFIG_PKG_USING_LIBCURL2RTT is not set +# CONFIG_PKG_USING_CAPNP is not set +# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set +# CONFIG_PKG_USING_AGILE_TELNET is not set +# CONFIG_PKG_USING_NMEALIB is not set +# CONFIG_PKG_USING_AGILE_JSMN is not set +# CONFIG_PKG_USING_PDULIB is not set +# CONFIG_PKG_USING_BTSTACK is not set +# CONFIG_PKG_USING_LORAWAN_ED_STACK is not set +# CONFIG_PKG_USING_WAYZ_IOTKIT is not set +# CONFIG_PKG_USING_MAVLINK is not set +# CONFIG_PKG_USING_RAPIDJSON is not set + +# +# security packages +# +# CONFIG_PKG_USING_MBEDTLS is not set +# CONFIG_PKG_USING_libsodium is not set +# CONFIG_PKG_USING_TINYCRYPT is not set +# CONFIG_PKG_USING_TFM is not set +# CONFIG_PKG_USING_YD_CRYPTO is not set + +# +# language packages +# +# CONFIG_PKG_USING_LUA is not set +# CONFIG_PKG_USING_JERRYSCRIPT is not set +# CONFIG_PKG_USING_MICROPYTHON is not set + +# +# multimedia packages +# +# CONFIG_PKG_USING_OPENMV is not set +# CONFIG_PKG_USING_MUPDF is not set +# CONFIG_PKG_USING_STEMWIN is not set +# CONFIG_PKG_USING_WAVPLAYER is not set +# CONFIG_PKG_USING_TJPGD is not set +# CONFIG_PKG_USING_HELIX is not set +# CONFIG_PKG_USING_AZUREGUIX is not set +# CONFIG_PKG_USING_TOUCHGFX2RTT is not set + +# +# tools packages +# +# CONFIG_PKG_USING_CMBACKTRACE is not set +# CONFIG_PKG_USING_EASYFLASH is not set +# CONFIG_PKG_USING_EASYLOGGER is not set +# CONFIG_PKG_USING_SYSTEMVIEW is not set +# CONFIG_PKG_USING_RDB is not set +# CONFIG_PKG_USING_QRCODE is not set +# CONFIG_PKG_USING_ULOG_EASYFLASH is not set +# CONFIG_PKG_USING_ULOG_FILE is not set +# CONFIG_PKG_USING_LOGMGR is not set +# CONFIG_PKG_USING_ADBD is not set +# CONFIG_PKG_USING_COREMARK is not set +# CONFIG_PKG_USING_DHRYSTONE is not set +# CONFIG_PKG_USING_MEMORYPERF is not set +# CONFIG_PKG_USING_NR_MICRO_SHELL is not set +# CONFIG_PKG_USING_CHINESE_FONT_LIBRARY is not set +# CONFIG_PKG_USING_LUNAR_CALENDAR is not set +# CONFIG_PKG_USING_BS8116A is not set +# CONFIG_PKG_USING_GPS_RMC is not set +# CONFIG_PKG_USING_URLENCODE is not set +# CONFIG_PKG_USING_UMCN is not set +# CONFIG_PKG_USING_LWRB2RTT is not set +# CONFIG_PKG_USING_CPU_USAGE is not set +# CONFIG_PKG_USING_GBK2UTF8 is not set +# CONFIG_PKG_USING_VCONSOLE is not set +# CONFIG_PKG_USING_KDB is not set +# CONFIG_PKG_USING_WAMR is not set +# CONFIG_PKG_USING_MICRO_XRCE_DDS_CLIENT is not set +# CONFIG_PKG_USING_LWLOG is not set +# CONFIG_PKG_USING_ANV_TRACE is not set +# CONFIG_PKG_USING_ANV_MEMLEAK is not set +# CONFIG_PKG_USING_ANV_TESTSUIT is not set +# CONFIG_PKG_USING_ANV_BENCH is not set + +# +# system packages +# +# CONFIG_PKG_USING_GUIENGINE is not set +# CONFIG_PKG_USING_CAIRO is not set +# CONFIG_PKG_USING_PIXMAN is not set +# CONFIG_PKG_USING_LWEXT4 is not set +# CONFIG_PKG_USING_PARTITION is not set +# CONFIG_PKG_USING_FAL is not set +# CONFIG_PKG_USING_FLASHDB is not set +# CONFIG_PKG_USING_SQLITE is not set +# CONFIG_PKG_USING_RTI is not set +# CONFIG_PKG_USING_LITTLEVGL2RTT is not set +# CONFIG_PKG_USING_CMSIS is not set +# CONFIG_PKG_USING_DFS_YAFFS is not set +# CONFIG_PKG_USING_LITTLEFS is not set +# CONFIG_PKG_USING_THREAD_POOL is not set +# CONFIG_PKG_USING_ROBOTS is not set +# CONFIG_PKG_USING_EV is not set +# CONFIG_PKG_USING_SYSWATCH is not set +# CONFIG_PKG_USING_SYS_LOAD_MONITOR is not set +# CONFIG_PKG_USING_PLCCORE is not set +# CONFIG_PKG_USING_RAMDISK is not set +# CONFIG_PKG_USING_MININI is not set +# CONFIG_PKG_USING_QBOOT is not set + +# +# Micrium: Micrium software products porting for RT-Thread +# +# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set +# CONFIG_PKG_USING_UCOSII_WRAPPER is not set +# CONFIG_PKG_USING_UC_CRC is not set +# CONFIG_PKG_USING_UC_CLK is not set +# CONFIG_PKG_USING_UC_COMMON is not set +# CONFIG_PKG_USING_UC_MODBUS is not set +# CONFIG_PKG_USING_PPOOL is not set +# CONFIG_PKG_USING_OPENAMP is not set +# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set +# CONFIG_PKG_USING_RT_MEMCPY_CM is not set +# CONFIG_PKG_USING_QFPLIB_M0_FULL is not set +# CONFIG_PKG_USING_QFPLIB_M0_TINY is not set +# CONFIG_PKG_USING_QFPLIB_M3 is not set +# CONFIG_PKG_USING_LPM is not set + +# +# peripheral libraries and drivers +# +# CONFIG_PKG_USING_SENSORS_DRIVERS is not set +# CONFIG_PKG_USING_REALTEK_AMEBA is not set +# CONFIG_PKG_USING_SHT2X is not set +# CONFIG_PKG_USING_SHT3X is not set +# CONFIG_PKG_USING_AS7341 is not set +# CONFIG_PKG_USING_STM32_SDIO is not set +# CONFIG_PKG_USING_ICM20608 is not set +# CONFIG_PKG_USING_U8G2 is not set +# CONFIG_PKG_USING_BUTTON is not set +# CONFIG_PKG_USING_PCF8574 is not set +# CONFIG_PKG_USING_SX12XX is not set +# CONFIG_PKG_USING_SIGNAL_LED is not set +# CONFIG_PKG_USING_LEDBLINK is not set +# CONFIG_PKG_USING_LITTLED is not set +# CONFIG_PKG_USING_LKDGUI is not set +# CONFIG_PKG_USING_NRF5X_SDK is not set +CONFIG_PKG_USING_NRFX=y +CONFIG_PKG_NRFX_PATH="/packages/peripherals/nrfx" +# CONFIG_PKG_USING_NRFX_V210 is not set +CONFIG_PKG_USING_NRFX_LATEST_VERSION=y +CONFIG_PKG_NRFX_VER="latest" +# CONFIG_PKG_USING_WM_LIBRARIES is not set +# CONFIG_PKG_USING_KENDRYTE_SDK is not set +# CONFIG_PKG_USING_INFRARED is not set +# CONFIG_PKG_USING_ROSSERIAL is not set +# CONFIG_PKG_USING_AGILE_BUTTON is not set +# CONFIG_PKG_USING_AGILE_LED is not set +# CONFIG_PKG_USING_AT24CXX is not set +# CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set +# CONFIG_PKG_USING_AD7746 is not set +# CONFIG_PKG_USING_PCA9685 is not set +# CONFIG_PKG_USING_I2C_TOOLS is not set +# CONFIG_PKG_USING_NRF24L01 is not set +# CONFIG_PKG_USING_TOUCH_DRIVERS is not set +# CONFIG_PKG_USING_MAX17048 is not set +# CONFIG_PKG_USING_RPLIDAR is not set +# CONFIG_PKG_USING_AS608 is not set +# CONFIG_PKG_USING_RC522 is not set +# CONFIG_PKG_USING_WS2812B is not set +# CONFIG_PKG_USING_EMBARC_BSP is not set +# CONFIG_PKG_USING_EXTERN_RTC_DRIVERS is not set +# CONFIG_PKG_USING_MULTI_RTIMER is not set +# CONFIG_PKG_USING_MAX7219 is not set +# CONFIG_PKG_USING_BEEP is not set +# CONFIG_PKG_USING_EASYBLINK is not set +# CONFIG_PKG_USING_PMS_SERIES is not set +# CONFIG_PKG_USING_CAN_YMODEM is not set +# CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set +# CONFIG_PKG_USING_QLED is not set +# CONFIG_PKG_USING_PAJ7620 is not set +# CONFIG_PKG_USING_AGILE_CONSOLE is not set +# CONFIG_PKG_USING_LD3320 is not set +# CONFIG_PKG_USING_WK2124 is not set +# CONFIG_PKG_USING_LY68L6400 is not set +# CONFIG_PKG_USING_DM9051 is not set +# CONFIG_PKG_USING_SSD1306 is not set +# CONFIG_PKG_USING_QKEY is not set +# CONFIG_PKG_USING_RS485 is not set +# CONFIG_PKG_USING_NES is not set +# CONFIG_PKG_USING_VIRTUAL_SENSOR is not set +# CONFIG_PKG_USING_VDEVICE is not set +# CONFIG_PKG_USING_SGM706 is not set +# CONFIG_PKG_USING_RDA58XX is not set + +# +# AI packages +# +# CONFIG_PKG_USING_LIBANN is not set +# CONFIG_PKG_USING_NNOM is not set +# CONFIG_PKG_USING_ONNX_BACKEND is not set +# CONFIG_PKG_USING_ONNX_PARSER is not set +# CONFIG_PKG_USING_TENSORFLOWLITEMICRO is not set +# CONFIG_PKG_USING_ELAPACK is not set +# CONFIG_PKG_USING_ULAPACK is not set + +# +# miscellaneous packages +# +# CONFIG_PKG_USING_LIBCSV is not set +# CONFIG_PKG_USING_OPTPARSE is not set +# CONFIG_PKG_USING_FASTLZ is not set +# CONFIG_PKG_USING_MINILZO is not set +# CONFIG_PKG_USING_QUICKLZ is not set +# CONFIG_PKG_USING_LZMA is not set +# CONFIG_PKG_USING_MULTIBUTTON is not set +# CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set +# CONFIG_PKG_USING_CANFESTIVAL is not set +# CONFIG_PKG_USING_ZLIB is not set +# CONFIG_PKG_USING_DSTR is not set +# CONFIG_PKG_USING_TINYFRAME is not set +# CONFIG_PKG_USING_KENDRYTE_DEMO is not set +# CONFIG_PKG_USING_DIGITALCTRL is not set +# CONFIG_PKG_USING_UPACKER is not set +# CONFIG_PKG_USING_UPARAM is not set + +# +# samples: kernel and components samples +# +# CONFIG_PKG_USING_KERNEL_SAMPLES is not set +# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set +# CONFIG_PKG_USING_NETWORK_SAMPLES is not set +# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set +# CONFIG_PKG_USING_HELLO is not set +# CONFIG_PKG_USING_VI is not set +# CONFIG_PKG_USING_KI is not set +# CONFIG_PKG_USING_ARMv7M_DWT is not set +# CONFIG_PKG_USING_VT100 is not set +# CONFIG_PKG_USING_UKAL is not set +# CONFIG_PKG_USING_CRCLIB is not set + +# +# games: games run on RT-Thread console +# +# CONFIG_PKG_USING_THREES is not set +# CONFIG_PKG_USING_2048 is not set +# CONFIG_PKG_USING_SNAKE is not set +# CONFIG_PKG_USING_TETRIS is not set +# CONFIG_PKG_USING_LWGPS is not set +# CONFIG_PKG_USING_STATE_MACHINE is not set +# CONFIG_PKG_USING_MCURSES is not set +# CONFIG_PKG_USING_COWSAY is not set + +# +# Hardware Drivers Config +# +CONFIG_SOC_NRF51822=y +CONFIG_SOC_NORDIC=y +CONFIG_BSP_BOARD_MICROBIT_1_5=y +# CONFIG_BSP_BOARD_MICROBIT_1_0 is not set + +# +# On-chip Peripheral Drivers +# +CONFIG_BSP_USING_UART=y +CONFIG_BSP_USING_UART0=y +CONFIG_BSP_UART0_RX_PIN=25 +CONFIG_BSP_UART0_TX_PIN=24 + +# +# On-chip flash config +# +CONFIG_MCU_FLASH_START_ADDRESS=0x00000000 +CONFIG_MCU_FLASH_SIZE_KB=256 +CONFIG_MCU_SRAM_START_ADDRESS=0x20000000 +CONFIG_MCU_SRAM_SIZE_KB=16 +CONFIG_MCU_FLASH_PAGE_SIZE=0x1000 +CONFIG_NRFX_CLOCK_ENABLED=1 +CONFIG_NRFX_CLOCK_DEFAULT_CONFIG_IRQ_PRIORITY=7 +CONFIG_NRFX_CLOCK_CONFIG_LF_SRC=1 +CONFIG_NRFX_USING_UART=y +CONFIG_NRFX_UART_ENABLED=1 +CONFIG_NRFX_UART0_ENABLED=1 diff --git a/bsp/nrf5x/nrf51822/Kconfig b/bsp/nrf5x/nrf51822/Kconfig new file mode 100644 index 0000000000..3640eaa0ed --- /dev/null +++ b/bsp/nrf5x/nrf51822/Kconfig @@ -0,0 +1,21 @@ +mainmenu "RT-Thread Configuration" + +config BSP_DIR + string + option env="BSP_ROOT" + default "." + +config RTT_DIR + string + option env="RTT_ROOT" + default "../../.." + +config PKGS_DIR + string + option env="PKGS_ROOT" + default "packages" + +source "$RTT_DIR/Kconfig" +source "$PKGS_DIR/Kconfig" +source "board/Kconfig" + diff --git a/bsp/nrf5x/nrf51822/README.md b/bsp/nrf5x/nrf51822/README.md new file mode 100644 index 0000000000..9f917eb0b6 --- /dev/null +++ b/bsp/nrf5x/nrf51822/README.md @@ -0,0 +1,76 @@ +# nRF51822 BSP说明 + +## 简介 + +该文件夹主要存放所有主芯片为nRF51822的板级支持包。目前默认支持的开发板是[Micro:bitV1.5](https://tech.microbit.org/hardware/1-5-revision/) +本文主要内容如下: + +- 开发板资源介绍 +- 进阶使用方法 + +## 开发板介绍 + +Microbit是BCC基于nordic的mcu nrf51822的开发板,基于ARM Cortex-M0内核,最高主频64 MHz,具有丰富的外设资源。 + + + +开发板外观如下图所示 + +![](../docs/images/microbit-overview-1-5.png) + +nrf51822 开发板常用 **板载资源** 如下: + +- MCU:NRF51822,主频 16MHz,256kB FLASH ,16kB RAM +- MCU 外设: GPIO, UART, SPI, I2C(TWI), RTC,TIMER,PWM,ADC +- 板载外设 + - LED墙:25个,矩阵控制。 + - 按键:3个,2个USER and 1个RESET 。 + - 三轴加速度传感器: LSM303AGR + - CMSIS-DAP: KL26Z调试器 +- 调试接口:板载CMSIS-DAP 调试器。 + +更详细的整理的资料见[nrf51822](https://github.com/supperthomas/BSP_BOARD_Nrf51822_microbit) + +官方主页[nrf51822](https://infocenter.nordicsemi.com/index.jsp?topic=%2Fstruct_nrf51%2Fstruct%2Fnrf51822.html) + + + +## 外设支持 + +本 BSP 目前对外设的支持情况如下: + +| **片上外设** | **支持情况** | **备注** | +| :----------- | :----------: | :------: | +| GPIO | 待支持 | | +| UART | 支持 | UART0 | +| | | | +| | | | +| | | | + + + +### 进阶使用 + +此 BSP 默认只开启了串口 0 的功能,更多高级功能需要利用 env 工具对 BSP 进行配置,步骤如下: + +1. 在 bsp 下打开 env 工具。 + +2. 输入`menuconfig`命令配置工程,配置好之后保存退出。 + +3. 输入`pkgs --update`命令更新软件包。 + +4. 输入`scons --target=mdk5命令重新生成工程。 + + + +## 支持其他开发板 + +可以在board/Kconfig里面的`bsp choice`里面添加对应的其他开发板 + + + +## 联系人信息 + +维护人: + +- [supperthomas], 邮箱:<78900636@qq.com> \ No newline at end of file diff --git a/bsp/nrf5x/nrf51822/SConscript b/bsp/nrf5x/nrf51822/SConscript new file mode 100644 index 0000000000..20f7689c53 --- /dev/null +++ b/bsp/nrf5x/nrf51822/SConscript @@ -0,0 +1,15 @@ +# for module compiling +import os +Import('RTT_ROOT') +from building import * + +cwd = GetCurrentDir() +objs = [] +list = os.listdir(cwd) + +for d in list: + path = os.path.join(cwd, d) + if os.path.isfile(os.path.join(path, 'SConscript')): + objs = objs + SConscript(os.path.join(d, 'SConscript')) + +Return('objs') diff --git a/bsp/nrf5x/nrf51822/SConstruct b/bsp/nrf5x/nrf51822/SConstruct new file mode 100644 index 0000000000..2ac1ce6674 --- /dev/null +++ b/bsp/nrf5x/nrf51822/SConstruct @@ -0,0 +1,57 @@ +import os +import sys +import rtconfig + +if os.getenv('RTT_ROOT'): + RTT_ROOT = os.getenv('RTT_ROOT') +else: + RTT_ROOT = os.path.normpath(os.getcwd() + '/../../..') + +sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')] +try: + from building import * +except: + print('Cannot found RT-Thread root directory, please check RTT_ROOT') + print(RTT_ROOT) + exit(-1) + +TARGET = 'rt-thread.' + rtconfig.TARGET_EXT + +DefaultEnvironment(tools=[]) +env = Environment(tools = ['mingw'], + AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS, + CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS, + AR = rtconfig.AR, ARFLAGS = '-rc', + LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS) +env.PrependENVPath('PATH', rtconfig.EXEC_PATH) + +if rtconfig.PLATFORM == 'iar': + env.Replace(CCCOM = ['$CC $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES']) + env.Replace(ARFLAGS = ['']) + env.Replace(LINKCOM = env["LINKCOM"] + ' --map rt-thread.map') + +Export('RTT_ROOT') +Export('rtconfig') + +SDK_ROOT = os.path.abspath('./') + +if os.path.exists(SDK_ROOT + '/libraries'): + libraries_path_prefix = SDK_ROOT + '/libraries' +else: + libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries' + +SDK_LIB = libraries_path_prefix +Export('SDK_LIB') +print(SDK_LIB) + +# prepare building environment +objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False) + +# include drivers +objs.extend(SConscript(os.path.join(libraries_path_prefix, 'drivers', 'SConscript'))) + +# include cmsis +objs.extend(SConscript(os.path.join(libraries_path_prefix, 'cmsis', 'SConscript'))) + +# make a building +DoBuilding(TARGET, objs) diff --git a/bsp/nrf5x/nrf51822/applications/SConscript b/bsp/nrf5x/nrf51822/applications/SConscript new file mode 100644 index 0000000000..fc2501998c --- /dev/null +++ b/bsp/nrf5x/nrf51822/applications/SConscript @@ -0,0 +1,11 @@ +Import('RTT_ROOT') +Import('rtconfig') +from building import * + +cwd = os.path.join(str(Dir('#')), 'applications') +src = Glob('*.c') +CPPPATH = [cwd, str(Dir('#'))] + +group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH) + +Return('group') diff --git a/bsp/nrf5x/nrf51822/applications/application.c b/bsp/nrf5x/nrf51822/applications/application.c new file mode 100644 index 0000000000..87d0f04b86 --- /dev/null +++ b/bsp/nrf5x/nrf51822/applications/application.c @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2006-2021, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-04-29 supperthomas first version + * + */ + +#include <rtthread.h> +#include <rtdevice.h> + +int main(void) +{ + while (1) + { + rt_thread_mdelay(500); + } + return RT_EOK; +} + diff --git a/bsp/nrf5x/nrf51822/board/Kconfig b/bsp/nrf5x/nrf51822/board/Kconfig new file mode 100644 index 0000000000..64ee8325ed --- /dev/null +++ b/bsp/nrf5x/nrf51822/board/Kconfig @@ -0,0 +1,101 @@ +menu "Hardware Drivers Config" + +config SOC_NRF51822 + bool + select RT_USING_COMPONENTS_INIT + select RT_USING_USER_MAIN + default y + +config SOC_NORDIC + bool + default y + +choice + prompt "Select BSP board " + default BSP_BOARD_MICROBIT_1_5 + + config BSP_BOARD_MICROBIT_1_5 + bool "microbit nrf51822 v1.5" + + config BSP_BOARD_MICROBIT_1_0 + bool "microbit nrf51822 v1.0" + +endchoice + +menu "On-chip Peripheral Drivers" + config BSP_USING_UART + bool "Enable UART" + default y + select RT_USING_SERIAL + config BSP_USING_UART0 + bool "Enable UART0" + default y + depends on BSP_USING_UART + + config BSP_UART0_RX_PIN + depends on BSP_USING_UART0 + int "uart0 rx pin number" + default 25 if BSP_BOARD_MICROBIT_1_5 + default 8 if BSP_BOARD_MICROBIT_1_0 + config BSP_UART0_TX_PIN + depends on BSP_USING_UART0 + int "uart0 tx pin number" + default 24 if BSP_BOARD_MICROBIT_1_5 + default 9 if BSP_BOARD_MICROBIT_1_0 + + menu "On-chip flash config" + + config MCU_FLASH_START_ADDRESS + hex "MCU FLASH START ADDRESS" + default 0x00000000 + + config MCU_FLASH_SIZE_KB + int "MCU FLASH SIZE, MAX size 1024 KB" + default 1024 + + config MCU_SRAM_START_ADDRESS + hex "MCU RAM START ADDRESS" + default 0x20000000 + + config MCU_SRAM_SIZE_KB + int "MCU RAM SIZE" + default 16 + + config MCU_FLASH_PAGE_SIZE + hex "MCU FLASH PAGE SIZE, please not change,nrfx default is 0x1000" + default 0x1000 + endmenu + +endmenu + +if SOC_NORDIC + config NRFX_CLOCK_ENABLED + int + default 1 + config NRFX_CLOCK_DEFAULT_CONFIG_IRQ_PRIORITY + int + default 7 + config NRFX_CLOCK_CONFIG_LF_SRC + int + default 1 +endif + +if BSP_USING_UART + config NRFX_USING_UART + bool + default y + + config NRFX_UART_ENABLED + int + default 1 + + config NRFX_UART0_ENABLED + int + default 1 + depends on BSP_USING_UART0 +endif + + +endmenu + + diff --git a/bsp/nrf5x/nrf51822/board/SConscript b/bsp/nrf5x/nrf51822/board/SConscript new file mode 100644 index 0000000000..27bcddd310 --- /dev/null +++ b/bsp/nrf5x/nrf51822/board/SConscript @@ -0,0 +1,11 @@ +Import('RTT_ROOT') +Import('rtconfig') +from building import * + +cwd = GetCurrentDir() +src = Glob('*.c') +CPPPATH = [cwd] +define = ['USE_APP_CONFIG'] + +group = DefineGroup('Drivers', src, depend = [''], CPPPATH = CPPPATH,CPPDEFINES = define) +Return('group') diff --git a/bsp/nrf5x/nrf51822/board/board.c b/bsp/nrf5x/nrf51822/board/board.c new file mode 100644 index 0000000000..2cb94fb6fa --- /dev/null +++ b/bsp/nrf5x/nrf51822/board/board.c @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2006-2021, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-04-29 supperthomas first version + * + */ +#include <rtthread.h> +#include <rthw.h> +#include <nrfx_systick.h> + +#include "board.h" +#include "drv_uart.h" +#include <nrfx_clock.h> + +/** + * This is the timer interrupt service routine. + * + */ +void SysTick_Handler(void) +{ + /* enter interrupt */ + rt_interrupt_enter(); + + rt_tick_increase(); + + /* leave interrupt */ + rt_interrupt_leave(); +} + +static void clk_event_handler(nrfx_clock_evt_type_t event){} + +void SysTick_Configuration(void) +{ + nrfx_clock_init(clk_event_handler); + nrfx_clock_enable(); + nrfx_clock_lfclk_start(); + /* Set interrupt priority */ + NVIC_SetPriority(SysTick_IRQn, 0xf); + + /* Configure SysTick to interrupt at the requested rate. */ + nrf_systick_load_set(SystemCoreClock / RT_TICK_PER_SECOND); + nrf_systick_val_clear(); + nrf_systick_csr_set(NRF_SYSTICK_CSR_CLKSOURCE_CPU | NRF_SYSTICK_CSR_TICKINT_ENABLE + | NRF_SYSTICK_CSR_ENABLE); + +} + + +void rt_hw_board_init(void) +{ + rt_hw_interrupt_enable(0); + + SysTick_Configuration(); + +#if defined(RT_USING_HEAP) + rt_system_heap_init((void *)HEAP_BEGIN, (void *)HEAP_END); +#endif + +#ifdef RT_USING_SERIAL + rt_hw_uart_init(); +#endif + +#ifdef RT_USING_CONSOLE + rt_console_set_device(RT_CONSOLE_DEVICE_NAME); +#endif + +#ifdef RT_USING_COMPONENTS_INIT + rt_components_board_init(); +#endif + +#ifdef BSP_USING_SOFTDEVICE + extern uint32_t Image$$RW_IRAM1$$Base; + uint32_t const *const m_ram_start = &Image$$RW_IRAM1$$Base; + if ((uint32_t)m_ram_start == 0x20000000) + { + rt_kprintf("\r\n using softdevice the RAM couldn't be %p,please use the templete from package\r\n", m_ram_start); + while (1); + } + else + { + rt_kprintf("\r\n using softdevice the RAM at %p\r\n", m_ram_start); + } +#endif + +} + diff --git a/bsp/nrf5x/nrf51822/board/board.h b/bsp/nrf5x/nrf51822/board/board.h new file mode 100644 index 0000000000..a3ccadfa36 --- /dev/null +++ b/bsp/nrf5x/nrf51822/board/board.h @@ -0,0 +1,30 @@ +#ifndef _BOARD_H_ +#define _BOARD_H_ + +#include <rtthread.h> +#include <rthw.h> +#include "nrf.h" + +#define MCU_FLASH_SIZE MCU_FLASH_SIZE_KB*1024 +#define MCU_FLASH_END_ADDRESS ((uint32_t)(MCU_FLASH_START_ADDRESS + MCU_FLASH_SIZE)) +#define MCU_SRAM_SIZE MCU_SRAM_SIZE_KB*1024 +#define MCU_SRAM_END_ADDRESS (MCU_SRAM_START_ADDRESS + MCU_SRAM_SIZE) + +#if defined(__CC_ARM) || defined(__CLANG_ARM) +extern int Image$$RW_IRAM1$$ZI$$Limit; +#define HEAP_BEGIN ((void *)&Image$$RW_IRAM1$$ZI$$Limit) +#elif __ICCARM__ +#pragma section="CSTACK" +#define HEAP_BEGIN (__segment_end("CSTACK")) +#else +extern int __bss_end__; +#define HEAP_BEGIN ((void *)&__bss_end__) +#endif + + +#define HEAP_END (MCU_SRAM_END_ADDRESS) + +void rt_hw_board_init(void); + +#endif + diff --git a/bsp/nrf5x/nrf51822/board/linker_scripts/link.lds b/bsp/nrf5x/nrf51822/board/linker_scripts/link.lds new file mode 100644 index 0000000000..9a9609eed7 --- /dev/null +++ b/bsp/nrf5x/nrf51822/board/linker_scripts/link.lds @@ -0,0 +1,16 @@ +/* Linker script to configure memory regions. */ + +SEARCH_DIR(.) +GROUP(-lgcc -lc -lnosys) + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x0, LENGTH = 0x100000 + RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x40000 + CODE_RAM (rwx) : ORIGIN = 0x800000, LENGTH = 0x10000 +} + +INCLUDE "packages/nrfx-v2.1.0/mdk/nrf_common.ld" + + + diff --git a/bsp/nrf5x/nrf51822/board/linker_scripts/link.sct b/bsp/nrf5x/nrf51822/board/linker_scripts/link.sct new file mode 100644 index 0000000000..a2f8ebd922 --- /dev/null +++ b/bsp/nrf5x/nrf51822/board/linker_scripts/link.sct @@ -0,0 +1,15 @@ +; ************************************************************* +; *** Scatter-Loading Description File generated by uVision *** +; ************************************************************* + +LR_IROM1 0x00000000 0x100000 { ; load region size_region + ER_IROM1 0x00000000 0x100000 { ; load address = execution address + *.o (RESET, +First) + *(InRoot$$Sections) + .ANY (+RO) + } + RW_IRAM1 0x20000000 0x40000 { ; RW data + .ANY (+RW +ZI) + } +} + diff --git a/bsp/nrf5x/nrf51822/board/nrfx_config.h b/bsp/nrf5x/nrf51822/board/nrfx_config.h new file mode 100644 index 0000000000..b006b6bcd5 --- /dev/null +++ b/bsp/nrf5x/nrf51822/board/nrfx_config.h @@ -0,0 +1,47 @@ +/** + * Copyright (c) 2017 - 2019, Nordic Semiconductor ASA + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef NRFX_CONFIG_H__ +#define NRFX_CONFIG_H__ + +// TODO - temporary redirection +#include <sdk_config.h> + +#endif // NRFX_CONFIG_H__ diff --git a/bsp/nrf5x/nrf51822/board/nrfx_glue.h b/bsp/nrf5x/nrf51822/board/nrfx_glue.h new file mode 100644 index 0000000000..28025dafae --- /dev/null +++ b/bsp/nrf5x/nrf51822/board/nrfx_glue.h @@ -0,0 +1,269 @@ +/* + * Copyright (c) 2017 - 2020, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef NRFX_GLUE_H__ +#define NRFX_GLUE_H__ + +// THIS IS A TEMPLATE FILE. +// It should be copied to a suitable location within the host environment into +// which nrfx is integrated, and the following macros should be provided with +// appropriate implementations. +// And this comment should be removed from the customized file. + +#ifdef __cplusplus +extern "C" { +#endif +#include <stdbool.h> +#include "nrf.h" +/** + * @defgroup nrfx_glue nrfx_glue.h + * @{ + * @ingroup nrfx + * + * @brief This file contains macros that should be implemented according to + * the needs of the host environment into which @em nrfx is integrated. + */ + +// Uncomment this line to use the standard MDK way of binding IRQ handlers +// at linking time. +#include <soc/nrfx_irqs.h> + +//------------------------------------------------------------------------------ + +/** + * @brief Macro for placing a runtime assertion. + * + * @param expression Expression to be evaluated. + */ +#define NRFX_ASSERT(expression) + +/** + * @brief Macro for placing a compile time assertion. + * + * @param expression Expression to be evaluated. + */ +#define NRFX_STATIC_ASSERT(expression) + +//------------------------------------------------------------------------------ + +/** + * @brief Macro for setting the priority of a specific IRQ. + * + * @param irq_number IRQ number. + * @param priority Priority to be set. + */ +#define NRFX_IRQ_PRIORITY_SET(irq_number, priority) NVIC_SetPriority(irq_number, priority) + +/** + * @brief Macro for enabling a specific IRQ. + * + * @param irq_number IRQ number. + */ +#define NRFX_IRQ_ENABLE(irq_number) NVIC_EnableIRQ(irq_number) + +/** + * @brief Macro for checking if a specific IRQ is enabled. + * + * @param irq_number IRQ number. + * + * @retval true If the IRQ is enabled. + * @retval false Otherwise. + */ +#define NRFX_IRQ_IS_ENABLED(irq_number) _NRFX_IRQ_IS_ENABLED(irq_number) +static inline bool _NRFX_IRQ_IS_ENABLED(IRQn_Type irq_number) +{ + return 0 != (NVIC->ISER[irq_number / 32] & (1UL << (irq_number % 32))); +} + + +/** + * @brief Macro for disabling a specific IRQ. + * + * @param irq_number IRQ number. + */ +#define NRFX_IRQ_DISABLE(irq_number) _NRFX_IRQ_DISABLE(irq_number) +static inline void _NRFX_IRQ_DISABLE(IRQn_Type irq_number) +{ + NVIC_DisableIRQ(irq_number); +} + + +/** + * @brief Macro for setting a specific IRQ as pending. + * + * @param irq_number IRQ number. + */ +#define NRFX_IRQ_PENDING_SET(irq_number) + +/** + * @brief Macro for clearing the pending status of a specific IRQ. + * + * @param irq_number IRQ number. + */ +#define NRFX_IRQ_PENDING_CLEAR(irq_number) + +/** + * @brief Macro for checking the pending status of a specific IRQ. + * + * @retval true If the IRQ is pending. + * @retval false Otherwise. + */ +#define NRFX_IRQ_IS_PENDING(irq_number) + +/** @brief Macro for entering into a critical section. */ +#define NRFX_CRITICAL_SECTION_ENTER() + +/** @brief Macro for exiting from a critical section. */ +#define NRFX_CRITICAL_SECTION_EXIT() + +//------------------------------------------------------------------------------ + +/** + * @brief When set to a non-zero value, this macro specifies that + * @ref nrfx_coredep_delay_us uses a precise DWT-based solution. + * A compilation error is generated if the DWT unit is not present + * in the SoC used. + */ +#define NRFX_DELAY_DWT_BASED 0 + +/** + * @brief Macro for delaying the code execution for at least the specified time. + * + * @param us_time Number of microseconds to wait. + */ +#define NRFX_DELAY_US(us_time) + +//------------------------------------------------------------------------------ + +/** @brief Atomic 32-bit unsigned type. */ +#define nrfx_atomic_t + +/** + * @brief Macro for storing a value to an atomic object and returning its previous value. + * + * @param[in] p_data Atomic memory pointer. + * @param[in] value Value to store. + * + * @return Previous value of the atomic object. + */ +#define NRFX_ATOMIC_FETCH_STORE(p_data, value) + +/** + * @brief Macro for running a bitwise OR operation on an atomic object and returning its previous value. + * + * @param[in] p_data Atomic memory pointer. + * @param[in] value Value of the second operand in the OR operation. + * + * @return Previous value of the atomic object. + */ +#define NRFX_ATOMIC_FETCH_OR(p_data, value) + +/** + * @brief Macro for running a bitwise AND operation on an atomic object + * and returning its previous value. + * + * @param[in] p_data Atomic memory pointer. + * @param[in] value Value of the second operand in the AND operation. + * + * @return Previous value of the atomic object. + */ +#define NRFX_ATOMIC_FETCH_AND(p_data, value) + +/** + * @brief Macro for running a bitwise XOR operation on an atomic object + * and returning its previous value. + * + * @param[in] p_data Atomic memory pointer. + * @param[in] value Value of the second operand in the XOR operation. + * + * @return Previous value of the atomic object. + */ +#define NRFX_ATOMIC_FETCH_XOR(p_data, value) + +/** + * @brief Macro for running an addition operation on an atomic object + * and returning its previous value. + * + * @param[in] p_data Atomic memory pointer. + * @param[in] value Value of the second operand in the ADD operation. + * + * @return Previous value of the atomic object. + */ +#define NRFX_ATOMIC_FETCH_ADD(p_data, value) + +/** + * @brief Macro for running a subtraction operation on an atomic object + * and returning its previous value. + * + * @param[in] p_data Atomic memory pointer. + * @param[in] value Value of the second operand in the SUB operation. + * + * @return Previous value of the atomic object. + */ +#define NRFX_ATOMIC_FETCH_SUB(p_data, value) + +//------------------------------------------------------------------------------ + +/** + * @brief When set to a non-zero value, this macro specifies that the + * @ref nrfx_error_codes and the @ref nrfx_err_t type itself are defined + * in a customized way and the default definitions from @c <nrfx_error.h> + * should not be used. + */ +#define NRFX_CUSTOM_ERROR_CODES 0 + +//------------------------------------------------------------------------------ + +/** @brief Bitmask that defines DPPI channels that are reserved for use outside of the nrfx library. */ +#define NRFX_DPPI_CHANNELS_USED 0 + +/** @brief Bitmask that defines DPPI groups that are reserved for use outside of the nrfx library. */ +#define NRFX_DPPI_GROUPS_USED 0 + +/** @brief Bitmask that defines PPI channels that are reserved for use outside of the nrfx library. */ +#define NRFX_PPI_CHANNELS_USED 0 + +/** @brief Bitmask that defines PPI groups that are reserved for use outside of the nrfx library. */ +#define NRFX_PPI_GROUPS_USED 0 + +/** @brief Bitmask that defines EGU instances that are reserved for use outside of the nrfx library. */ +#define NRFX_EGUS_USED 0 + +/** @brief Bitmask that defines TIMER instances that are reserved for use outside of the nrfx library. */ +#define NRFX_TIMERS_USED 0 + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif // NRFX_GLUE_H__ diff --git a/bsp/nrf5x/nrf51822/board/nrfx_log.h b/bsp/nrf5x/nrf51822/board/nrfx_log.h new file mode 100644 index 0000000000..80d8efbdf1 --- /dev/null +++ b/bsp/nrf5x/nrf51822/board/nrfx_log.h @@ -0,0 +1,135 @@ +/* + * Copyright (c) 2017 - 2020, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef NRFX_LOG_H__ +#define NRFX_LOG_H__ + +// THIS IS A TEMPLATE FILE. +// It should be copied to a suitable location within the host environment into +// which nrfx is integrated, and the following macros should be provided with +// appropriate implementations. +// And this comment should be removed from the customized file. + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @defgroup nrfx_log nrfx_log.h + * @{ + * @ingroup nrfx + * + * @brief This file contains macros that should be implemented according to + * the needs of the host environment into which @em nrfx is integrated. + */ + +/** + * @brief Macro for logging a message with the severity level ERROR. + * + * @param format printf-style format string, optionally followed by arguments + * to be formatted and inserted in the resulting string. + */ +#define NRFX_LOG_ERROR(format, ...) + +/** + * @brief Macro for logging a message with the severity level WARNING. + * + * @param format printf-style format string, optionally followed by arguments + * to be formatted and inserted in the resulting string. + */ +#define NRFX_LOG_WARNING(format, ...) + +/** + * @brief Macro for logging a message with the severity level INFO. + * + * @param format printf-style format string, optionally followed by arguments + * to be formatted and inserted in the resulting string. + */ +#define NRFX_LOG_INFO(format, ...) + +/** + * @brief Macro for logging a message with the severity level DEBUG. + * + * @param format printf-style format string, optionally followed by arguments + * to be formatted and inserted in the resulting string. + */ +#define NRFX_LOG_DEBUG(format, ...) + + +/** + * @brief Macro for logging a memory dump with the severity level ERROR. + * + * @param[in] p_memory Pointer to the memory region to be dumped. + * @param[in] length Length of the memory region in bytes. + */ +#define NRFX_LOG_HEXDUMP_ERROR(p_memory, length) + +/** + * @brief Macro for logging a memory dump with the severity level WARNING. + * + * @param[in] p_memory Pointer to the memory region to be dumped. + * @param[in] length Length of the memory region in bytes. + */ +#define NRFX_LOG_HEXDUMP_WARNING(p_memory, length) + +/** + * @brief Macro for logging a memory dump with the severity level INFO. + * + * @param[in] p_memory Pointer to the memory region to be dumped. + * @param[in] length Length of the memory region in bytes. + */ +#define NRFX_LOG_HEXDUMP_INFO(p_memory, length) + +/** + * @brief Macro for logging a memory dump with the severity level DEBUG. + * + * @param[in] p_memory Pointer to the memory region to be dumped. + * @param[in] length Length of the memory region in bytes. + */ +#define NRFX_LOG_HEXDUMP_DEBUG(p_memory, length) + + +/** + * @brief Macro for getting the textual representation of a given error code. + * + * @param[in] error_code Error code. + * + * @return String containing the textual representation of the error code. + */ +#define NRFX_LOG_ERROR_STRING_GET(error_code) + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif // NRFX_LOG_H__ diff --git a/bsp/nrf5x/nrf51822/board/sdk_config.h b/bsp/nrf5x/nrf51822/board/sdk_config.h new file mode 100644 index 0000000000..da5408025c --- /dev/null +++ b/bsp/nrf5x/nrf51822/board/sdk_config.h @@ -0,0 +1,11701 @@ +/** + * Copyright (c) 2017 - 2019, Nordic Semiconductor ASA + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + + +#ifndef SDK_CONFIG_H +#define SDK_CONFIG_H +// <<< Use Configuration Wizard in Context Menu >>>\n +// <h> nRF_BLE + +#include <rtconfig.h> +//========================================================== +// <q> BLE_ADVERTISING_ENABLED - ble_advertising - Advertising module + + +#ifndef BLE_ADVERTISING_ENABLED +#define BLE_ADVERTISING_ENABLED 0 +#endif + +// <q> BLE_DTM_ENABLED - ble_dtm - Module for testing RF/PHY using DTM commands + + +#ifndef BLE_DTM_ENABLED +#define BLE_DTM_ENABLED 0 +#endif + +// <q> BLE_RACP_ENABLED - ble_racp - Record Access Control Point library + + +#ifndef BLE_RACP_ENABLED +#define BLE_RACP_ENABLED 0 +#endif + +// <e> NRF_BLE_QWR_ENABLED - nrf_ble_qwr - Queued writes support module (prepare/execute write) +//========================================================== +#ifndef NRF_BLE_QWR_ENABLED +#define NRF_BLE_QWR_ENABLED 0 +#endif +// <o> NRF_BLE_QWR_MAX_ATTR - Maximum number of attribute handles that can be registered. This number must be adjusted according to the number of attributes for which Queued Writes will be enabled. If it is zero, the module will reject all Queued Write requests. +#ifndef NRF_BLE_QWR_MAX_ATTR +#define NRF_BLE_QWR_MAX_ATTR 0 +#endif + +// </e> + +// <e> PEER_MANAGER_ENABLED - peer_manager - Peer Manager +//========================================================== +#ifndef PEER_MANAGER_ENABLED +#define PEER_MANAGER_ENABLED 0 +#endif +// <o> PM_MAX_REGISTRANTS - Number of event handlers that can be registered. +#ifndef PM_MAX_REGISTRANTS +#define PM_MAX_REGISTRANTS 3 +#endif + +// <o> PM_FLASH_BUFFERS - Number of internal buffers for flash operations. +// <i> Decrease this value to lower RAM usage. + +#ifndef PM_FLASH_BUFFERS +#define PM_FLASH_BUFFERS 4 +#endif + +// <q> PM_CENTRAL_ENABLED - Enable/disable central-specific Peer Manager functionality. + + +// <i> Enable/disable central-specific Peer Manager functionality. + +#ifndef PM_CENTRAL_ENABLED +#define PM_CENTRAL_ENABLED 1 +#endif + +// <q> PM_SERVICE_CHANGED_ENABLED - Enable/disable the service changed management for GATT server in Peer Manager. + + +// <i> If not using a GATT server, or using a server wihout a service changed characteristic, +// <i> disable this to save code space. + +#ifndef PM_SERVICE_CHANGED_ENABLED +#define PM_SERVICE_CHANGED_ENABLED 1 +#endif + +// <q> PM_PEER_RANKS_ENABLED - Enable/disable the peer rank management in Peer Manager. + + +// <i> Set this to false to save code space if not using the peer rank API. + +#ifndef PM_PEER_RANKS_ENABLED +#define PM_PEER_RANKS_ENABLED 1 +#endif + +// <q> PM_LESC_ENABLED - Enable/disable LESC support in Peer Manager. + + +// <i> If set to true, you need to call nrf_ble_lesc_request_handler() in the main loop to respond to LESC-related BLE events. If LESC support is not required, set this to false to save code space. + +#ifndef PM_LESC_ENABLED +#define PM_LESC_ENABLED 0 +#endif + +// <e> PM_RA_PROTECTION_ENABLED - Enable/disable protection against repeated pairing attempts in Peer Manager. +//========================================================== +#ifndef PM_RA_PROTECTION_ENABLED +#define PM_RA_PROTECTION_ENABLED 0 +#endif +// <o> PM_RA_PROTECTION_TRACKED_PEERS_NUM - Maximum number of peers whose authorization status can be tracked. +#ifndef PM_RA_PROTECTION_TRACKED_PEERS_NUM +#define PM_RA_PROTECTION_TRACKED_PEERS_NUM 8 +#endif + +// <o> PM_RA_PROTECTION_MIN_WAIT_INTERVAL - Minimum waiting interval (in ms) before a new pairing attempt can be initiated. +#ifndef PM_RA_PROTECTION_MIN_WAIT_INTERVAL +#define PM_RA_PROTECTION_MIN_WAIT_INTERVAL 4000 +#endif + +// <o> PM_RA_PROTECTION_MAX_WAIT_INTERVAL - Maximum waiting interval (in ms) before a new pairing attempt can be initiated. +#ifndef PM_RA_PROTECTION_MAX_WAIT_INTERVAL +#define PM_RA_PROTECTION_MAX_WAIT_INTERVAL 64000 +#endif + +// <o> PM_RA_PROTECTION_REWARD_PERIOD - Reward period (in ms). +// <i> The waiting interval is gradually decreased when no new failed pairing attempts are made during reward period. + +#ifndef PM_RA_PROTECTION_REWARD_PERIOD +#define PM_RA_PROTECTION_REWARD_PERIOD 10000 +#endif + +// </e> + +// <o> PM_HANDLER_SEC_DELAY_MS - Delay before starting security. +// <i> This might be necessary for interoperability reasons, especially as peripheral. + +#ifndef PM_HANDLER_SEC_DELAY_MS +#define PM_HANDLER_SEC_DELAY_MS 0 +#endif + +// </e> + +// </h> +//========================================================== + +// <h> nRF_BLE_Services + +//========================================================== +// <q> BLE_ANCS_C_ENABLED - ble_ancs_c - Apple Notification Service Client + + +#ifndef BLE_ANCS_C_ENABLED +#define BLE_ANCS_C_ENABLED 0 +#endif + +// <q> BLE_ANS_C_ENABLED - ble_ans_c - Alert Notification Service Client + + +#ifndef BLE_ANS_C_ENABLED +#define BLE_ANS_C_ENABLED 0 +#endif + +// <q> BLE_BAS_C_ENABLED - ble_bas_c - Battery Service Client + + +#ifndef BLE_BAS_C_ENABLED +#define BLE_BAS_C_ENABLED 0 +#endif + +// <e> BLE_BAS_ENABLED - ble_bas - Battery Service +//========================================================== +#ifndef BLE_BAS_ENABLED +#define BLE_BAS_ENABLED 0 +#endif +// <e> BLE_BAS_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef BLE_BAS_CONFIG_LOG_ENABLED +#define BLE_BAS_CONFIG_LOG_ENABLED 0 +#endif +// <o> BLE_BAS_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef BLE_BAS_CONFIG_LOG_LEVEL +#define BLE_BAS_CONFIG_LOG_LEVEL 3 +#endif + +// <o> BLE_BAS_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef BLE_BAS_CONFIG_INFO_COLOR +#define BLE_BAS_CONFIG_INFO_COLOR 0 +#endif + +// <o> BLE_BAS_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef BLE_BAS_CONFIG_DEBUG_COLOR +#define BLE_BAS_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <q> BLE_CSCS_ENABLED - ble_cscs - Cycling Speed and Cadence Service + + +#ifndef BLE_CSCS_ENABLED +#define BLE_CSCS_ENABLED 0 +#endif + +// <q> BLE_CTS_C_ENABLED - ble_cts_c - Current Time Service Client + + +#ifndef BLE_CTS_C_ENABLED +#define BLE_CTS_C_ENABLED 0 +#endif + +// <q> BLE_DIS_ENABLED - ble_dis - Device Information Service + + +#ifndef BLE_DIS_ENABLED +#define BLE_DIS_ENABLED 0 +#endif + +// <q> BLE_GLS_ENABLED - ble_gls - Glucose Service + + +#ifndef BLE_GLS_ENABLED +#define BLE_GLS_ENABLED 0 +#endif + +// <q> BLE_HIDS_ENABLED - ble_hids - Human Interface Device Service + + +#ifndef BLE_HIDS_ENABLED +#define BLE_HIDS_ENABLED 0 +#endif + +// <q> BLE_HRS_C_ENABLED - ble_hrs_c - Heart Rate Service Client + + +#ifndef BLE_HRS_C_ENABLED +#define BLE_HRS_C_ENABLED 0 +#endif + +// <q> BLE_HRS_ENABLED - ble_hrs - Heart Rate Service + + +#ifndef BLE_HRS_ENABLED +#define BLE_HRS_ENABLED 0 +#endif + +// <q> BLE_HTS_ENABLED - ble_hts - Health Thermometer Service + + +#ifndef BLE_HTS_ENABLED +#define BLE_HTS_ENABLED 0 +#endif + +// <q> BLE_IAS_C_ENABLED - ble_ias_c - Immediate Alert Service Client + + +#ifndef BLE_IAS_C_ENABLED +#define BLE_IAS_C_ENABLED 0 +#endif + +// <e> BLE_IAS_ENABLED - ble_ias - Immediate Alert Service +//========================================================== +#ifndef BLE_IAS_ENABLED +#define BLE_IAS_ENABLED 0 +#endif +// <e> BLE_IAS_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef BLE_IAS_CONFIG_LOG_ENABLED +#define BLE_IAS_CONFIG_LOG_ENABLED 0 +#endif +// <o> BLE_IAS_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef BLE_IAS_CONFIG_LOG_LEVEL +#define BLE_IAS_CONFIG_LOG_LEVEL 3 +#endif + +// <o> BLE_IAS_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef BLE_IAS_CONFIG_INFO_COLOR +#define BLE_IAS_CONFIG_INFO_COLOR 0 +#endif + +// <o> BLE_IAS_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef BLE_IAS_CONFIG_DEBUG_COLOR +#define BLE_IAS_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <q> BLE_LBS_C_ENABLED - ble_lbs_c - Nordic LED Button Service Client + + +#ifndef BLE_LBS_C_ENABLED +#define BLE_LBS_C_ENABLED 0 +#endif + +// <q> BLE_LBS_ENABLED - ble_lbs - LED Button Service + + +#ifndef BLE_LBS_ENABLED +#define BLE_LBS_ENABLED 0 +#endif + +// <q> BLE_LLS_ENABLED - ble_lls - Link Loss Service + + +#ifndef BLE_LLS_ENABLED +#define BLE_LLS_ENABLED 0 +#endif + +// <q> BLE_NUS_C_ENABLED - ble_nus_c - Nordic UART Central Service + + +#ifndef BLE_NUS_C_ENABLED +#define BLE_NUS_C_ENABLED 0 +#endif + +// <e> BLE_NUS_ENABLED - ble_nus - Nordic UART Service +//========================================================== +#ifndef BLE_NUS_ENABLED +#define BLE_NUS_ENABLED 0 +#endif +// <e> BLE_NUS_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef BLE_NUS_CONFIG_LOG_ENABLED +#define BLE_NUS_CONFIG_LOG_ENABLED 0 +#endif +// <o> BLE_NUS_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef BLE_NUS_CONFIG_LOG_LEVEL +#define BLE_NUS_CONFIG_LOG_LEVEL 3 +#endif + +// <o> BLE_NUS_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef BLE_NUS_CONFIG_INFO_COLOR +#define BLE_NUS_CONFIG_INFO_COLOR 0 +#endif + +// <o> BLE_NUS_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef BLE_NUS_CONFIG_DEBUG_COLOR +#define BLE_NUS_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <q> BLE_RSCS_C_ENABLED - ble_rscs_c - Running Speed and Cadence Client + + +#ifndef BLE_RSCS_C_ENABLED +#define BLE_RSCS_C_ENABLED 0 +#endif + +// <q> BLE_RSCS_ENABLED - ble_rscs - Running Speed and Cadence Service + + +#ifndef BLE_RSCS_ENABLED +#define BLE_RSCS_ENABLED 0 +#endif + +// <q> BLE_TPS_ENABLED - ble_tps - TX Power Service + + +#ifndef BLE_TPS_ENABLED +#define BLE_TPS_ENABLED 0 +#endif + +// </h> +//========================================================== + +// <h> nRF_Core + +//========================================================== +// <e> NRF_MPU_LIB_ENABLED - nrf_mpu_lib - Module for MPU +//========================================================== +#ifndef NRF_MPU_LIB_ENABLED +#define NRF_MPU_LIB_ENABLED 0 +#endif +// <q> NRF_MPU_LIB_CLI_CMDS - Enable CLI commands specific to the module. + + +#ifndef NRF_MPU_LIB_CLI_CMDS +#define NRF_MPU_LIB_CLI_CMDS 0 +#endif + +// </e> + +// <e> NRF_STACK_GUARD_ENABLED - nrf_stack_guard - Stack guard +//========================================================== +#ifndef NRF_STACK_GUARD_ENABLED +#define NRF_STACK_GUARD_ENABLED 0 +#endif +// <o> NRF_STACK_GUARD_CONFIG_SIZE - Size of the stack guard. + +// <5=> 32 bytes +// <6=> 64 bytes +// <7=> 128 bytes +// <8=> 256 bytes +// <9=> 512 bytes +// <10=> 1024 bytes +// <11=> 2048 bytes +// <12=> 4096 bytes + +#ifndef NRF_STACK_GUARD_CONFIG_SIZE +#define NRF_STACK_GUARD_CONFIG_SIZE 7 +#endif + +// </e> + +// </h> +//========================================================== + +// <h> nRF_Crypto + +//========================================================== +// <e> NRF_CRYPTO_ENABLED - nrf_crypto - Cryptography library. +//========================================================== +#ifndef NRF_CRYPTO_ENABLED +#define NRF_CRYPTO_ENABLED 1 +#endif +// <o> NRF_CRYPTO_ALLOCATOR - Memory allocator + + +// <i> Choose memory allocator used by nrf_crypto. Default is alloca if possible or nrf_malloc otherwise. If 'User macros' are selected, the user has to create 'nrf_crypto_allocator.h' file that contains NRF_CRYPTO_ALLOC, NRF_CRYPTO_FREE, and NRF_CRYPTO_ALLOC_ON_STACK. +// <0=> Default +// <1=> User macros +// <2=> On stack (alloca) +// <3=> C dynamic memory (malloc) +// <4=> SDK Memory Manager (nrf_malloc) + +#ifndef NRF_CRYPTO_ALLOCATOR +#define NRF_CRYPTO_ALLOCATOR 0 +#endif + +// <e> NRF_CRYPTO_BACKEND_CC310_BL_ENABLED - Enable the ARM Cryptocell CC310 reduced backend. + +// <i> The CC310 hardware-accelerated cryptography backend with reduced functionality and footprint (only available on nRF52840). +//========================================================== +#ifndef NRF_CRYPTO_BACKEND_CC310_BL_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_BL_ENABLED 0 +#endif +// <q> NRF_CRYPTO_BACKEND_CC310_BL_ECC_SECP224R1_ENABLED - Enable the secp224r1 elliptic curve support using CC310_BL. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_BL_ECC_SECP224R1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_BL_ECC_SECP224R1_ENABLED 0 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_BL_ECC_SECP256R1_ENABLED - Enable the secp256r1 elliptic curve support using CC310_BL. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_BL_ECC_SECP256R1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_BL_ECC_SECP256R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_BL_HASH_SHA256_ENABLED - CC310_BL SHA-256 hash functionality. + + +// <i> CC310_BL backend implementation for hardware-accelerated SHA-256. + +#ifndef NRF_CRYPTO_BACKEND_CC310_BL_HASH_SHA256_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_BL_HASH_SHA256_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_BL_HASH_AUTOMATIC_RAM_BUFFER_ENABLED - nrf_cc310_bl buffers to RAM before running hash operation + + +// <i> Enabling this makes hashing of addresses in FLASH range possible. Size of buffer allocated for hashing is set by NRF_CRYPTO_BACKEND_CC310_BL_HASH_AUTOMATIC_RAM_BUFFER_SIZE + +#ifndef NRF_CRYPTO_BACKEND_CC310_BL_HASH_AUTOMATIC_RAM_BUFFER_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_BL_HASH_AUTOMATIC_RAM_BUFFER_ENABLED 0 +#endif + +// <o> NRF_CRYPTO_BACKEND_CC310_BL_HASH_AUTOMATIC_RAM_BUFFER_SIZE - nrf_cc310_bl hash outputs digests in little endian +// <i> Makes the nrf_cc310_bl hash functions output digests in little endian format. Only for use in nRF SDK DFU! + +#ifndef NRF_CRYPTO_BACKEND_CC310_BL_HASH_AUTOMATIC_RAM_BUFFER_SIZE +#define NRF_CRYPTO_BACKEND_CC310_BL_HASH_AUTOMATIC_RAM_BUFFER_SIZE 4096 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_BL_INTERRUPTS_ENABLED - Enable Interrupts while support using CC310 bl. + + +// <i> Select a library version compatible with the configuration. When interrupts are disable, a version named _noint must be used + +#ifndef NRF_CRYPTO_BACKEND_CC310_BL_INTERRUPTS_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_BL_INTERRUPTS_ENABLED 1 +#endif + +// </e> + +// <e> NRF_CRYPTO_BACKEND_CC310_ENABLED - Enable the ARM Cryptocell CC310 backend. + +// <i> The CC310 hardware-accelerated cryptography backend (only available on nRF52840). +//========================================================== +#ifndef NRF_CRYPTO_BACKEND_CC310_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ENABLED 0 +#endif +// <q> NRF_CRYPTO_BACKEND_CC310_AES_CBC_ENABLED - Enable the AES CBC mode using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_AES_CBC_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_AES_CBC_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_AES_CTR_ENABLED - Enable the AES CTR mode using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_AES_CTR_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_AES_CTR_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_AES_ECB_ENABLED - Enable the AES ECB mode using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_AES_ECB_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_AES_ECB_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_AES_CBC_MAC_ENABLED - Enable the AES CBC_MAC mode using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_AES_CBC_MAC_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_AES_CBC_MAC_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_AES_CMAC_ENABLED - Enable the AES CMAC mode using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_AES_CMAC_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_AES_CMAC_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_AES_CCM_ENABLED - Enable the AES CCM mode using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_AES_CCM_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_AES_CCM_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_AES_CCM_STAR_ENABLED - Enable the AES CCM* mode using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_AES_CCM_STAR_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_AES_CCM_STAR_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_CHACHA_POLY_ENABLED - Enable the CHACHA-POLY mode using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_CHACHA_POLY_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_CHACHA_POLY_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_ECC_SECP160R1_ENABLED - Enable the secp160r1 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP160R1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP160R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_ECC_SECP160R2_ENABLED - Enable the secp160r2 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP160R2_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP160R2_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_ECC_SECP192R1_ENABLED - Enable the secp192r1 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP192R1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP192R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_ECC_SECP224R1_ENABLED - Enable the secp224r1 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP224R1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP224R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_ECC_SECP256R1_ENABLED - Enable the secp256r1 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP256R1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP256R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_ECC_SECP384R1_ENABLED - Enable the secp384r1 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP384R1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP384R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_ECC_SECP521R1_ENABLED - Enable the secp521r1 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP521R1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP521R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_ECC_SECP160K1_ENABLED - Enable the secp160k1 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP160K1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP160K1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_ECC_SECP192K1_ENABLED - Enable the secp192k1 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP192K1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP192K1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_ECC_SECP224K1_ENABLED - Enable the secp224k1 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP224K1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP224K1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_ECC_SECP256K1_ENABLED - Enable the secp256k1 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP256K1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP256K1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_ECC_CURVE25519_ENABLED - Enable the Curve25519 curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_CURVE25519_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_CURVE25519_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_ECC_ED25519_ENABLED - Enable the Ed25519 curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_ED25519_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_ED25519_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_HASH_SHA256_ENABLED - CC310 SHA-256 hash functionality. + + +// <i> CC310 backend implementation for hardware-accelerated SHA-256. + +#ifndef NRF_CRYPTO_BACKEND_CC310_HASH_SHA256_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_HASH_SHA256_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_HASH_SHA512_ENABLED - CC310 SHA-512 hash functionality + + +// <i> CC310 backend implementation for SHA-512 (in software). + +#ifndef NRF_CRYPTO_BACKEND_CC310_HASH_SHA512_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_HASH_SHA512_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_HMAC_SHA256_ENABLED - CC310 HMAC using SHA-256 + + +// <i> CC310 backend implementation for HMAC using hardware-accelerated SHA-256. + +#ifndef NRF_CRYPTO_BACKEND_CC310_HMAC_SHA256_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_HMAC_SHA256_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_HMAC_SHA512_ENABLED - CC310 HMAC using SHA-512 + + +// <i> CC310 backend implementation for HMAC using SHA-512 (in software). + +#ifndef NRF_CRYPTO_BACKEND_CC310_HMAC_SHA512_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_HMAC_SHA512_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_RNG_ENABLED - Enable RNG support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_RNG_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_RNG_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_CC310_INTERRUPTS_ENABLED - Enable Interrupts while support using CC310. + + +// <i> Select a library version compatible with the configuration. When interrupts are disable, a version named _noint must be used + +#ifndef NRF_CRYPTO_BACKEND_CC310_INTERRUPTS_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_INTERRUPTS_ENABLED 1 +#endif + +// </e> + +// <e> NRF_CRYPTO_BACKEND_CIFRA_ENABLED - Enable the Cifra backend. +//========================================================== +#ifndef NRF_CRYPTO_BACKEND_CIFRA_ENABLED +#define NRF_CRYPTO_BACKEND_CIFRA_ENABLED 0 +#endif +// <q> NRF_CRYPTO_BACKEND_CIFRA_AES_EAX_ENABLED - Enable the AES EAX mode using Cifra. + + +#ifndef NRF_CRYPTO_BACKEND_CIFRA_AES_EAX_ENABLED +#define NRF_CRYPTO_BACKEND_CIFRA_AES_EAX_ENABLED 1 +#endif + +// </e> + +// <e> NRF_CRYPTO_BACKEND_MBEDTLS_ENABLED - Enable the mbed TLS backend. +//========================================================== +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ENABLED 0 +#endif +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_AES_CBC_ENABLED - Enable the AES CBC mode mbed TLS. + + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_AES_CBC_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_AES_CBC_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_AES_CTR_ENABLED - Enable the AES CTR mode using mbed TLS. + + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_AES_CTR_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_AES_CTR_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_AES_CFB_ENABLED - Enable the AES CFB mode using mbed TLS. + + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_AES_CFB_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_AES_CFB_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_AES_ECB_ENABLED - Enable the AES ECB mode using mbed TLS. + + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_AES_ECB_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_AES_ECB_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_AES_CBC_MAC_ENABLED - Enable the AES CBC MAC mode using mbed TLS. + + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_AES_CBC_MAC_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_AES_CBC_MAC_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_AES_CMAC_ENABLED - Enable the AES CMAC mode using mbed TLS. + + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_AES_CMAC_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_AES_CMAC_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_AES_CCM_ENABLED - Enable the AES CCM mode using mbed TLS. + + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_AES_CCM_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_AES_CCM_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_AES_GCM_ENABLED - Enable the AES GCM mode using mbed TLS. + + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_AES_GCM_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_AES_GCM_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP192R1_ENABLED - Enable secp192r1 (NIST 192-bit) curve + + +// <i> Enable this setting if you need secp192r1 (NIST 192-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP192R1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP192R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP224R1_ENABLED - Enable secp224r1 (NIST 224-bit) curve + + +// <i> Enable this setting if you need secp224r1 (NIST 224-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP224R1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP224R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP256R1_ENABLED - Enable secp256r1 (NIST 256-bit) curve + + +// <i> Enable this setting if you need secp256r1 (NIST 256-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP256R1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP256R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP384R1_ENABLED - Enable secp384r1 (NIST 384-bit) curve + + +// <i> Enable this setting if you need secp384r1 (NIST 384-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP384R1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP384R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP521R1_ENABLED - Enable secp521r1 (NIST 521-bit) curve + + +// <i> Enable this setting if you need secp521r1 (NIST 521-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP521R1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP521R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP192K1_ENABLED - Enable secp192k1 (Koblitz 192-bit) curve + + +// <i> Enable this setting if you need secp192k1 (Koblitz 192-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP192K1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP192K1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP224K1_ENABLED - Enable secp224k1 (Koblitz 224-bit) curve + + +// <i> Enable this setting if you need secp224k1 (Koblitz 224-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP224K1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP224K1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP256K1_ENABLED - Enable secp256k1 (Koblitz 256-bit) curve + + +// <i> Enable this setting if you need secp256k1 (Koblitz 256-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP256K1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP256K1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_ECC_BP256R1_ENABLED - Enable bp256r1 (Brainpool 256-bit) curve + + +// <i> Enable this setting if you need bp256r1 (Brainpool 256-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_BP256R1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_BP256R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_ECC_BP384R1_ENABLED - Enable bp384r1 (Brainpool 384-bit) curve + + +// <i> Enable this setting if you need bp384r1 (Brainpool 384-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_BP384R1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_BP384R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_ECC_BP512R1_ENABLED - Enable bp512r1 (Brainpool 512-bit) curve + + +// <i> Enable this setting if you need bp512r1 (Brainpool 512-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_BP512R1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_BP512R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_ECC_CURVE25519_ENABLED - Enable Curve25519 curve + + +// <i> Enable this setting if you need Curve25519 support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_CURVE25519_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_CURVE25519_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_HASH_SHA256_ENABLED - Enable mbed TLS SHA-256 hash functionality. + + +// <i> mbed TLS backend implementation for SHA-256. + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_HASH_SHA256_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_HASH_SHA256_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_HASH_SHA512_ENABLED - Enable mbed TLS SHA-512 hash functionality. + + +// <i> mbed TLS backend implementation for SHA-512. + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_HASH_SHA512_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_HASH_SHA512_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_HMAC_SHA256_ENABLED - Enable mbed TLS HMAC using SHA-256. + + +// <i> mbed TLS backend implementation for HMAC using SHA-256. + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_HMAC_SHA256_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_HMAC_SHA256_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MBEDTLS_HMAC_SHA512_ENABLED - Enable mbed TLS HMAC using SHA-512. + + +// <i> mbed TLS backend implementation for HMAC using SHA-512. + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_HMAC_SHA512_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_HMAC_SHA512_ENABLED 1 +#endif + +// </e> + +// <e> NRF_CRYPTO_BACKEND_MICRO_ECC_ENABLED - Enable the micro-ecc backend. +//========================================================== +#ifndef NRF_CRYPTO_BACKEND_MICRO_ECC_ENABLED +#define NRF_CRYPTO_BACKEND_MICRO_ECC_ENABLED 0 +#endif +// <q> NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP192R1_ENABLED - Enable secp192r1 (NIST 192-bit) curve + + +// <i> Enable this setting if you need secp192r1 (NIST 192-bit) support using micro-ecc + +#ifndef NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP192R1_ENABLED +#define NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP192R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP224R1_ENABLED - Enable secp224r1 (NIST 224-bit) curve + + +// <i> Enable this setting if you need secp224r1 (NIST 224-bit) support using micro-ecc + +#ifndef NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP224R1_ENABLED +#define NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP224R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP256R1_ENABLED - Enable secp256r1 (NIST 256-bit) curve + + +// <i> Enable this setting if you need secp256r1 (NIST 256-bit) support using micro-ecc + +#ifndef NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP256R1_ENABLED +#define NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP256R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP256K1_ENABLED - Enable secp256k1 (Koblitz 256-bit) curve + + +// <i> Enable this setting if you need secp256k1 (Koblitz 256-bit) support using micro-ecc + +#ifndef NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP256K1_ENABLED +#define NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP256K1_ENABLED 1 +#endif + +// </e> + +// <e> NRF_CRYPTO_BACKEND_NRF_HW_RNG_ENABLED - Enable the nRF HW RNG backend. + +// <i> The nRF HW backend provide access to RNG peripheral in nRF5x devices. +//========================================================== +#ifndef NRF_CRYPTO_BACKEND_NRF_HW_RNG_ENABLED +#define NRF_CRYPTO_BACKEND_NRF_HW_RNG_ENABLED 0 +#endif +// <q> NRF_CRYPTO_BACKEND_NRF_HW_RNG_MBEDTLS_CTR_DRBG_ENABLED - Enable mbed TLS CTR-DRBG algorithm. + + +// <i> Enable mbed TLS CTR-DRBG standardized by NIST (NIST SP 800-90A Rev. 1). The nRF HW RNG is used as an entropy source for seeding. + +#ifndef NRF_CRYPTO_BACKEND_NRF_HW_RNG_MBEDTLS_CTR_DRBG_ENABLED +#define NRF_CRYPTO_BACKEND_NRF_HW_RNG_MBEDTLS_CTR_DRBG_ENABLED 1 +#endif + +// </e> + +// <e> NRF_CRYPTO_BACKEND_NRF_SW_ENABLED - Enable the legacy nRFx sw for crypto. + +// <i> The nRF SW cryptography backend (only used in bootloader context). +//========================================================== +#ifndef NRF_CRYPTO_BACKEND_NRF_SW_ENABLED +#define NRF_CRYPTO_BACKEND_NRF_SW_ENABLED 0 +#endif +// <q> NRF_CRYPTO_BACKEND_NRF_SW_HASH_SHA256_ENABLED - nRF SW hash backend support for SHA-256 + + +// <i> The nRF SW backend provide access to nRF SDK legacy hash implementation of SHA-256. + +#ifndef NRF_CRYPTO_BACKEND_NRF_SW_HASH_SHA256_ENABLED +#define NRF_CRYPTO_BACKEND_NRF_SW_HASH_SHA256_ENABLED 1 +#endif + +// </e> + +// <e> NRF_CRYPTO_BACKEND_OBERON_ENABLED - Enable the Oberon backend + +// <i> The Oberon backend +//========================================================== +#ifndef NRF_CRYPTO_BACKEND_OBERON_ENABLED +#define NRF_CRYPTO_BACKEND_OBERON_ENABLED 0 +#endif +// <q> NRF_CRYPTO_BACKEND_OBERON_CHACHA_POLY_ENABLED - Enable the CHACHA-POLY mode using Oberon. + + +#ifndef NRF_CRYPTO_BACKEND_OBERON_CHACHA_POLY_ENABLED +#define NRF_CRYPTO_BACKEND_OBERON_CHACHA_POLY_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_OBERON_ECC_SECP256R1_ENABLED - Enable secp256r1 curve + + +// <i> Enable this setting if you need secp256r1 curve support using Oberon library + +#ifndef NRF_CRYPTO_BACKEND_OBERON_ECC_SECP256R1_ENABLED +#define NRF_CRYPTO_BACKEND_OBERON_ECC_SECP256R1_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_OBERON_ECC_CURVE25519_ENABLED - Enable Curve25519 ECDH + + +// <i> Enable this setting if you need Curve25519 ECDH support using Oberon library + +#ifndef NRF_CRYPTO_BACKEND_OBERON_ECC_CURVE25519_ENABLED +#define NRF_CRYPTO_BACKEND_OBERON_ECC_CURVE25519_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_OBERON_ECC_ED25519_ENABLED - Enable Ed25519 signature scheme + + +// <i> Enable this setting if you need Ed25519 support using Oberon library + +#ifndef NRF_CRYPTO_BACKEND_OBERON_ECC_ED25519_ENABLED +#define NRF_CRYPTO_BACKEND_OBERON_ECC_ED25519_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_OBERON_HASH_SHA256_ENABLED - Oberon SHA-256 hash functionality + + +// <i> Oberon backend implementation for SHA-256. + +#ifndef NRF_CRYPTO_BACKEND_OBERON_HASH_SHA256_ENABLED +#define NRF_CRYPTO_BACKEND_OBERON_HASH_SHA256_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_OBERON_HASH_SHA512_ENABLED - Oberon SHA-512 hash functionality + + +// <i> Oberon backend implementation for SHA-512. + +#ifndef NRF_CRYPTO_BACKEND_OBERON_HASH_SHA512_ENABLED +#define NRF_CRYPTO_BACKEND_OBERON_HASH_SHA512_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_OBERON_HMAC_SHA256_ENABLED - Oberon HMAC using SHA-256 + + +// <i> Oberon backend implementation for HMAC using SHA-256. + +#ifndef NRF_CRYPTO_BACKEND_OBERON_HMAC_SHA256_ENABLED +#define NRF_CRYPTO_BACKEND_OBERON_HMAC_SHA256_ENABLED 1 +#endif + +// <q> NRF_CRYPTO_BACKEND_OBERON_HMAC_SHA512_ENABLED - Oberon HMAC using SHA-512 + + +// <i> Oberon backend implementation for HMAC using SHA-512. + +#ifndef NRF_CRYPTO_BACKEND_OBERON_HMAC_SHA512_ENABLED +#define NRF_CRYPTO_BACKEND_OBERON_HMAC_SHA512_ENABLED 1 +#endif + +// </e> + +// <e> NRF_CRYPTO_BACKEND_OPTIGA_ENABLED - Enable the nrf_crypto Optiga Trust X backend. + +// <i> Enables the nrf_crypto backend for Optiga Trust X devices. +//========================================================== +#ifndef NRF_CRYPTO_BACKEND_OPTIGA_ENABLED +#define NRF_CRYPTO_BACKEND_OPTIGA_ENABLED 0 +#endif +// <q> NRF_CRYPTO_BACKEND_OPTIGA_RNG_ENABLED - Optiga backend support for RNG + + +// <i> The Optiga backend provide external chip RNG. + +#ifndef NRF_CRYPTO_BACKEND_OPTIGA_RNG_ENABLED +#define NRF_CRYPTO_BACKEND_OPTIGA_RNG_ENABLED 0 +#endif + +// <q> NRF_CRYPTO_BACKEND_OPTIGA_ECC_SECP256R1_ENABLED - Optiga backend support for ECC secp256r1 + + +// <i> The Optiga backend provide external chip ECC using secp256r1. + +#ifndef NRF_CRYPTO_BACKEND_OPTIGA_ECC_SECP256R1_ENABLED +#define NRF_CRYPTO_BACKEND_OPTIGA_ECC_SECP256R1_ENABLED 1 +#endif + +// </e> + +// <q> NRF_CRYPTO_CURVE25519_BIG_ENDIAN_ENABLED - Big-endian byte order in raw Curve25519 data + + +// <i> Enable big-endian byte order in Curve25519 API, if set to 1. Use little-endian, if set to 0. + +#ifndef NRF_CRYPTO_CURVE25519_BIG_ENDIAN_ENABLED +#define NRF_CRYPTO_CURVE25519_BIG_ENDIAN_ENABLED 0 +#endif + +// </e> + +// </h> +//========================================================== + +// <h> nRF_DFU + +//========================================================== +// <h> ble_dfu - Device Firmware Update + +//========================================================== +// <q> BLE_DFU_ENABLED - Enable DFU Service. + + +#ifndef BLE_DFU_ENABLED +#define BLE_DFU_ENABLED 0 +#endif + +// <q> NRF_DFU_BLE_BUTTONLESS_SUPPORTS_BONDS - Buttonless DFU supports bonds. + + +#ifndef NRF_DFU_BLE_BUTTONLESS_SUPPORTS_BONDS +#define NRF_DFU_BLE_BUTTONLESS_SUPPORTS_BONDS 0 +#endif + +// </h> +//========================================================== + +// </h> +//========================================================== + +// <h> nRF_Drivers + +//========================================================== +// <e> COMP_ENABLED - nrf_drv_comp - COMP peripheral driver - legacy layer +//========================================================== +#ifndef COMP_ENABLED +#define COMP_ENABLED 0 +#endif +// <o> COMP_CONFIG_REF - Reference voltage + +// <0=> Internal 1.2V +// <1=> Internal 1.8V +// <2=> Internal 2.4V +// <4=> VDD +// <7=> ARef + +#ifndef COMP_CONFIG_REF +#define COMP_CONFIG_REF 1 +#endif + +// <o> COMP_CONFIG_MAIN_MODE - Main mode + +// <0=> Single ended +// <1=> Differential + +#ifndef COMP_CONFIG_MAIN_MODE +#define COMP_CONFIG_MAIN_MODE 0 +#endif + +// <o> COMP_CONFIG_SPEED_MODE - Speed mode + +// <0=> Low power +// <1=> Normal +// <2=> High speed + +#ifndef COMP_CONFIG_SPEED_MODE +#define COMP_CONFIG_SPEED_MODE 2 +#endif + +// <o> COMP_CONFIG_HYST - Hystheresis + +// <0=> No +// <1=> 50mV + +#ifndef COMP_CONFIG_HYST +#define COMP_CONFIG_HYST 0 +#endif + +// <o> COMP_CONFIG_ISOURCE - Current Source + +// <0=> Off +// <1=> 2.5 uA +// <2=> 5 uA +// <3=> 10 uA + +#ifndef COMP_CONFIG_ISOURCE +#define COMP_CONFIG_ISOURCE 0 +#endif + +// <o> COMP_CONFIG_INPUT - Analog input + +// <0=> 0 +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef COMP_CONFIG_INPUT +#define COMP_CONFIG_INPUT 0 +#endif + +// <o> COMP_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef COMP_CONFIG_IRQ_PRIORITY +#define COMP_CONFIG_IRQ_PRIORITY 6 +#endif + +// </e> + +// <q> EGU_ENABLED - nrf_drv_swi - SWI(EGU) peripheral driver - legacy layer + + +#ifndef EGU_ENABLED +#define EGU_ENABLED 0 +#endif + +// <e> GPIOTE_ENABLED - nrf_drv_gpiote - GPIOTE peripheral driver - legacy layer +//========================================================== +#ifndef GPIOTE_ENABLED +#define GPIOTE_ENABLED 0 +#endif +// <o> GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS - Number of lower power input pins +#ifndef GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS +#define GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS 1 +#endif + +// <o> GPIOTE_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef GPIOTE_CONFIG_IRQ_PRIORITY +#define GPIOTE_CONFIG_IRQ_PRIORITY 6 +#endif + +// </e> + +// <e> I2S_ENABLED - nrf_drv_i2s - I2S peripheral driver - legacy layer +//========================================================== +#ifndef I2S_ENABLED +#define I2S_ENABLED 0 +#endif +// <o> I2S_CONFIG_SCK_PIN - SCK pin <0-31> + + +#ifndef I2S_CONFIG_SCK_PIN +#define I2S_CONFIG_SCK_PIN 31 +#endif + +// <o> I2S_CONFIG_LRCK_PIN - LRCK pin <1-31> + + +#ifndef I2S_CONFIG_LRCK_PIN +#define I2S_CONFIG_LRCK_PIN 30 +#endif + +// <o> I2S_CONFIG_MCK_PIN - MCK pin +#ifndef I2S_CONFIG_MCK_PIN +#define I2S_CONFIG_MCK_PIN 255 +#endif + +// <o> I2S_CONFIG_SDOUT_PIN - SDOUT pin <0-31> + + +#ifndef I2S_CONFIG_SDOUT_PIN +#define I2S_CONFIG_SDOUT_PIN 29 +#endif + +// <o> I2S_CONFIG_SDIN_PIN - SDIN pin <0-31> + + +#ifndef I2S_CONFIG_SDIN_PIN +#define I2S_CONFIG_SDIN_PIN 28 +#endif + +// <o> I2S_CONFIG_MASTER - Mode + +// <0=> Master +// <1=> Slave + +#ifndef I2S_CONFIG_MASTER +#define I2S_CONFIG_MASTER 0 +#endif + +// <o> I2S_CONFIG_FORMAT - Format + +// <0=> I2S +// <1=> Aligned + +#ifndef I2S_CONFIG_FORMAT +#define I2S_CONFIG_FORMAT 0 +#endif + +// <o> I2S_CONFIG_ALIGN - Alignment + +// <0=> Left +// <1=> Right + +#ifndef I2S_CONFIG_ALIGN +#define I2S_CONFIG_ALIGN 0 +#endif + +// <o> I2S_CONFIG_SWIDTH - Sample width (bits) + +// <0=> 8 +// <1=> 16 +// <2=> 24 + +#ifndef I2S_CONFIG_SWIDTH +#define I2S_CONFIG_SWIDTH 1 +#endif + +// <o> I2S_CONFIG_CHANNELS - Channels + +// <0=> Stereo +// <1=> Left +// <2=> Right + +#ifndef I2S_CONFIG_CHANNELS +#define I2S_CONFIG_CHANNELS 1 +#endif + +// <o> I2S_CONFIG_MCK_SETUP - MCK behavior + +// <0=> Disabled +// <2147483648=> 32MHz/2 +// <1342177280=> 32MHz/3 +// <1073741824=> 32MHz/4 +// <805306368=> 32MHz/5 +// <671088640=> 32MHz/6 +// <536870912=> 32MHz/8 +// <402653184=> 32MHz/10 +// <369098752=> 32MHz/11 +// <285212672=> 32MHz/15 +// <268435456=> 32MHz/16 +// <201326592=> 32MHz/21 +// <184549376=> 32MHz/23 +// <142606336=> 32MHz/30 +// <138412032=> 32MHz/31 +// <134217728=> 32MHz/32 +// <100663296=> 32MHz/42 +// <68157440=> 32MHz/63 +// <34340864=> 32MHz/125 + +#ifndef I2S_CONFIG_MCK_SETUP +#define I2S_CONFIG_MCK_SETUP 536870912 +#endif + +// <o> I2S_CONFIG_RATIO - MCK/LRCK ratio + +// <0=> 32x +// <1=> 48x +// <2=> 64x +// <3=> 96x +// <4=> 128x +// <5=> 192x +// <6=> 256x +// <7=> 384x +// <8=> 512x + +#ifndef I2S_CONFIG_RATIO +#define I2S_CONFIG_RATIO 2000 +#endif + +// <o> I2S_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef I2S_CONFIG_IRQ_PRIORITY +#define I2S_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> I2S_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef I2S_CONFIG_LOG_ENABLED +#define I2S_CONFIG_LOG_ENABLED 0 +#endif +// <o> I2S_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef I2S_CONFIG_LOG_LEVEL +#define I2S_CONFIG_LOG_LEVEL 3 +#endif + +// <o> I2S_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef I2S_CONFIG_INFO_COLOR +#define I2S_CONFIG_INFO_COLOR 0 +#endif + +// <o> I2S_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef I2S_CONFIG_DEBUG_COLOR +#define I2S_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> LPCOMP_ENABLED - nrf_drv_lpcomp - LPCOMP peripheral driver - legacy layer +//========================================================== +#ifndef LPCOMP_ENABLED +#define LPCOMP_ENABLED 0 +#endif +// <o> LPCOMP_CONFIG_REFERENCE - Reference voltage + +// <0=> Supply 1/8 +// <1=> Supply 2/8 +// <2=> Supply 3/8 +// <3=> Supply 4/8 +// <4=> Supply 5/8 +// <5=> Supply 6/8 +// <6=> Supply 7/8 +// <8=> Supply 1/16 (nRF52) +// <9=> Supply 3/16 (nRF52) +// <10=> Supply 5/16 (nRF52) +// <11=> Supply 7/16 (nRF52) +// <12=> Supply 9/16 (nRF52) +// <13=> Supply 11/16 (nRF52) +// <14=> Supply 13/16 (nRF52) +// <15=> Supply 15/16 (nRF52) +// <7=> External Ref 0 +// <65543=> External Ref 1 + +#ifndef LPCOMP_CONFIG_REFERENCE +#define LPCOMP_CONFIG_REFERENCE 3 +#endif + +// <o> LPCOMP_CONFIG_DETECTION - Detection + +// <0=> Crossing +// <1=> Up +// <2=> Down + +#ifndef LPCOMP_CONFIG_DETECTION +#define LPCOMP_CONFIG_DETECTION 2 +#endif + +// <o> LPCOMP_CONFIG_INPUT - Analog input + +// <0=> 0 +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef LPCOMP_CONFIG_INPUT +#define LPCOMP_CONFIG_INPUT 0 +#endif + +// <q> LPCOMP_CONFIG_HYST - Hysteresis + + +#ifndef LPCOMP_CONFIG_HYST +#define LPCOMP_CONFIG_HYST 0 +#endif + +// <o> LPCOMP_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef LPCOMP_CONFIG_IRQ_PRIORITY +#define LPCOMP_CONFIG_IRQ_PRIORITY 6 +#endif + +// </e> + +// <e> NRFX_CLOCK_ENABLED - nrfx_clock - CLOCK peripheral driver +//========================================================== +#ifndef NRFX_CLOCK_ENABLED +#define NRFX_CLOCK_ENABLED 0 +#endif +// <o> NRFX_CLOCK_CONFIG_LF_SRC - LF Clock Source + +// <0=> RC +// <1=> XTAL +// <2=> Synth +// <131073=> External Low Swing +// <196609=> External Full Swing + +#ifndef NRFX_CLOCK_CONFIG_LF_SRC +#define NRFX_CLOCK_CONFIG_LF_SRC 1 +#endif + +// <o> NRFX_CLOCK_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_CLOCK_CONFIG_IRQ_PRIORITY +#define NRFX_CLOCK_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_CLOCK_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_CLOCK_CONFIG_LOG_ENABLED +#define NRFX_CLOCK_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_CLOCK_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_CLOCK_CONFIG_LOG_LEVEL +#define NRFX_CLOCK_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_CLOCK_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_CLOCK_CONFIG_INFO_COLOR +#define NRFX_CLOCK_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_CLOCK_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_CLOCK_CONFIG_DEBUG_COLOR +#define NRFX_CLOCK_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_COMP_ENABLED - nrfx_comp - COMP peripheral driver +//========================================================== +#ifndef NRFX_COMP_ENABLED +#define NRFX_COMP_ENABLED 0 +#endif +// <o> NRFX_COMP_CONFIG_REF - Reference voltage + +// <0=> Internal 1.2V +// <1=> Internal 1.8V +// <2=> Internal 2.4V +// <4=> VDD +// <7=> ARef + +#ifndef NRFX_COMP_CONFIG_REF +#define NRFX_COMP_CONFIG_REF 1 +#endif + +// <o> NRFX_COMP_CONFIG_MAIN_MODE - Main mode + +// <0=> Single ended +// <1=> Differential + +#ifndef NRFX_COMP_CONFIG_MAIN_MODE +#define NRFX_COMP_CONFIG_MAIN_MODE 0 +#endif + +// <o> NRFX_COMP_CONFIG_SPEED_MODE - Speed mode + +// <0=> Low power +// <1=> Normal +// <2=> High speed + +#ifndef NRFX_COMP_CONFIG_SPEED_MODE +#define NRFX_COMP_CONFIG_SPEED_MODE 2 +#endif + +// <o> NRFX_COMP_CONFIG_HYST - Hystheresis + +// <0=> No +// <1=> 50mV + +#ifndef NRFX_COMP_CONFIG_HYST +#define NRFX_COMP_CONFIG_HYST 0 +#endif + +// <o> NRFX_COMP_CONFIG_ISOURCE - Current Source + +// <0=> Off +// <1=> 2.5 uA +// <2=> 5 uA +// <3=> 10 uA + +#ifndef NRFX_COMP_CONFIG_ISOURCE +#define NRFX_COMP_CONFIG_ISOURCE 0 +#endif + +// <o> NRFX_COMP_CONFIG_INPUT - Analog input + +// <0=> 0 +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_COMP_CONFIG_INPUT +#define NRFX_COMP_CONFIG_INPUT 0 +#endif + +// <o> NRFX_COMP_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_COMP_CONFIG_IRQ_PRIORITY +#define NRFX_COMP_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_COMP_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_COMP_CONFIG_LOG_ENABLED +#define NRFX_COMP_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_COMP_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_COMP_CONFIG_LOG_LEVEL +#define NRFX_COMP_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_COMP_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_COMP_CONFIG_INFO_COLOR +#define NRFX_COMP_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_COMP_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_COMP_CONFIG_DEBUG_COLOR +#define NRFX_COMP_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_GPIOTE_ENABLED - nrfx_gpiote - GPIOTE peripheral driver +//========================================================== +#ifndef NRFX_GPIOTE_ENABLED +#define NRFX_GPIOTE_ENABLED 0 +#endif +// <o> NRFX_GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS - Number of lower power input pins +#ifndef NRFX_GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS +#define NRFX_GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS 1 +#endif + +// <o> NRFX_GPIOTE_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_GPIOTE_CONFIG_IRQ_PRIORITY +#define NRFX_GPIOTE_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_GPIOTE_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_GPIOTE_CONFIG_LOG_ENABLED +#define NRFX_GPIOTE_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_GPIOTE_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_GPIOTE_CONFIG_LOG_LEVEL +#define NRFX_GPIOTE_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_GPIOTE_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_GPIOTE_CONFIG_INFO_COLOR +#define NRFX_GPIOTE_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_GPIOTE_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_GPIOTE_CONFIG_DEBUG_COLOR +#define NRFX_GPIOTE_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_I2S_ENABLED - nrfx_i2s - I2S peripheral driver +//========================================================== +#ifndef NRFX_I2S_ENABLED +#define NRFX_I2S_ENABLED 0 +#endif +// <o> NRFX_I2S_CONFIG_SCK_PIN - SCK pin <0-31> + + +#ifndef NRFX_I2S_CONFIG_SCK_PIN +#define NRFX_I2S_CONFIG_SCK_PIN 31 +#endif + +// <o> NRFX_I2S_CONFIG_LRCK_PIN - LRCK pin <1-31> + + +#ifndef NRFX_I2S_CONFIG_LRCK_PIN +#define NRFX_I2S_CONFIG_LRCK_PIN 30 +#endif + +// <o> NRFX_I2S_CONFIG_MCK_PIN - MCK pin +#ifndef NRFX_I2S_CONFIG_MCK_PIN +#define NRFX_I2S_CONFIG_MCK_PIN 255 +#endif + +// <o> NRFX_I2S_CONFIG_SDOUT_PIN - SDOUT pin <0-31> + + +#ifndef NRFX_I2S_CONFIG_SDOUT_PIN +#define NRFX_I2S_CONFIG_SDOUT_PIN 29 +#endif + +// <o> NRFX_I2S_CONFIG_SDIN_PIN - SDIN pin <0-31> + + +#ifndef NRFX_I2S_CONFIG_SDIN_PIN +#define NRFX_I2S_CONFIG_SDIN_PIN 28 +#endif + +// <o> NRFX_I2S_CONFIG_MASTER - Mode + +// <0=> Master +// <1=> Slave + +#ifndef NRFX_I2S_CONFIG_MASTER +#define NRFX_I2S_CONFIG_MASTER 0 +#endif + +// <o> NRFX_I2S_CONFIG_FORMAT - Format + +// <0=> I2S +// <1=> Aligned + +#ifndef NRFX_I2S_CONFIG_FORMAT +#define NRFX_I2S_CONFIG_FORMAT 0 +#endif + +// <o> NRFX_I2S_CONFIG_ALIGN - Alignment + +// <0=> Left +// <1=> Right + +#ifndef NRFX_I2S_CONFIG_ALIGN +#define NRFX_I2S_CONFIG_ALIGN 0 +#endif + +// <o> NRFX_I2S_CONFIG_SWIDTH - Sample width (bits) + +// <0=> 8 +// <1=> 16 +// <2=> 24 + +#ifndef NRFX_I2S_CONFIG_SWIDTH +#define NRFX_I2S_CONFIG_SWIDTH 1 +#endif + +// <o> NRFX_I2S_CONFIG_CHANNELS - Channels + +// <0=> Stereo +// <1=> Left +// <2=> Right + +#ifndef NRFX_I2S_CONFIG_CHANNELS +#define NRFX_I2S_CONFIG_CHANNELS 1 +#endif + +// <o> NRFX_I2S_CONFIG_MCK_SETUP - MCK behavior + +// <0=> Disabled +// <2147483648=> 32MHz/2 +// <1342177280=> 32MHz/3 +// <1073741824=> 32MHz/4 +// <805306368=> 32MHz/5 +// <671088640=> 32MHz/6 +// <536870912=> 32MHz/8 +// <402653184=> 32MHz/10 +// <369098752=> 32MHz/11 +// <285212672=> 32MHz/15 +// <268435456=> 32MHz/16 +// <201326592=> 32MHz/21 +// <184549376=> 32MHz/23 +// <142606336=> 32MHz/30 +// <138412032=> 32MHz/31 +// <134217728=> 32MHz/32 +// <100663296=> 32MHz/42 +// <68157440=> 32MHz/63 +// <34340864=> 32MHz/125 + +#ifndef NRFX_I2S_CONFIG_MCK_SETUP +#define NRFX_I2S_CONFIG_MCK_SETUP 536870912 +#endif + +// <o> NRFX_I2S_CONFIG_RATIO - MCK/LRCK ratio + +// <0=> 32x +// <1=> 48x +// <2=> 64x +// <3=> 96x +// <4=> 128x +// <5=> 192x +// <6=> 256x +// <7=> 384x +// <8=> 512x + +#ifndef NRFX_I2S_CONFIG_RATIO +#define NRFX_I2S_CONFIG_RATIO 2000 +#endif + +// <o> NRFX_I2S_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_I2S_CONFIG_IRQ_PRIORITY +#define NRFX_I2S_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_I2S_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_I2S_CONFIG_LOG_ENABLED +#define NRFX_I2S_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_I2S_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_I2S_CONFIG_LOG_LEVEL +#define NRFX_I2S_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_I2S_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_I2S_CONFIG_INFO_COLOR +#define NRFX_I2S_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_I2S_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_I2S_CONFIG_DEBUG_COLOR +#define NRFX_I2S_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_LPCOMP_ENABLED - nrfx_lpcomp - LPCOMP peripheral driver +//========================================================== +#ifndef NRFX_LPCOMP_ENABLED +#define NRFX_LPCOMP_ENABLED 0 +#endif +// <o> NRFX_LPCOMP_CONFIG_REFERENCE - Reference voltage + +// <0=> Supply 1/8 +// <1=> Supply 2/8 +// <2=> Supply 3/8 +// <3=> Supply 4/8 +// <4=> Supply 5/8 +// <5=> Supply 6/8 +// <6=> Supply 7/8 +// <8=> Supply 1/16 (nRF52) +// <9=> Supply 3/16 (nRF52) +// <10=> Supply 5/16 (nRF52) +// <11=> Supply 7/16 (nRF52) +// <12=> Supply 9/16 (nRF52) +// <13=> Supply 11/16 (nRF52) +// <14=> Supply 13/16 (nRF52) +// <15=> Supply 15/16 (nRF52) +// <7=> External Ref 0 +// <65543=> External Ref 1 + +#ifndef NRFX_LPCOMP_CONFIG_REFERENCE +#define NRFX_LPCOMP_CONFIG_REFERENCE 3 +#endif + +// <o> NRFX_LPCOMP_CONFIG_DETECTION - Detection + +// <0=> Crossing +// <1=> Up +// <2=> Down + +#ifndef NRFX_LPCOMP_CONFIG_DETECTION +#define NRFX_LPCOMP_CONFIG_DETECTION 2 +#endif + +// <o> NRFX_LPCOMP_CONFIG_INPUT - Analog input + +// <0=> 0 +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_LPCOMP_CONFIG_INPUT +#define NRFX_LPCOMP_CONFIG_INPUT 0 +#endif + +// <q> NRFX_LPCOMP_CONFIG_HYST - Hysteresis + + +#ifndef NRFX_LPCOMP_CONFIG_HYST +#define NRFX_LPCOMP_CONFIG_HYST 0 +#endif + +// <o> NRFX_LPCOMP_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_LPCOMP_CONFIG_IRQ_PRIORITY +#define NRFX_LPCOMP_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_LPCOMP_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_LPCOMP_CONFIG_LOG_ENABLED +#define NRFX_LPCOMP_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_LPCOMP_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_LPCOMP_CONFIG_LOG_LEVEL +#define NRFX_LPCOMP_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_LPCOMP_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_LPCOMP_CONFIG_INFO_COLOR +#define NRFX_LPCOMP_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_LPCOMP_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_LPCOMP_CONFIG_DEBUG_COLOR +#define NRFX_LPCOMP_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_NFCT_ENABLED - nrfx_nfct - NFCT peripheral driver +//========================================================== +#ifndef NRFX_NFCT_ENABLED +#define NRFX_NFCT_ENABLED 0 +#endif +// <o> NRFX_NFCT_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_NFCT_CONFIG_IRQ_PRIORITY +#define NRFX_NFCT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_NFCT_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_NFCT_CONFIG_LOG_ENABLED +#define NRFX_NFCT_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_NFCT_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_NFCT_CONFIG_LOG_LEVEL +#define NRFX_NFCT_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_NFCT_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_NFCT_CONFIG_INFO_COLOR +#define NRFX_NFCT_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_NFCT_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_NFCT_CONFIG_DEBUG_COLOR +#define NRFX_NFCT_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_PDM_ENABLED - nrfx_pdm - PDM peripheral driver +//========================================================== +#ifndef NRFX_PDM_ENABLED +#define NRFX_PDM_ENABLED 0 +#endif +// <o> NRFX_PDM_CONFIG_MODE - Mode + +// <0=> Stereo +// <1=> Mono + +#ifndef NRFX_PDM_CONFIG_MODE +#define NRFX_PDM_CONFIG_MODE 1 +#endif + +// <o> NRFX_PDM_CONFIG_EDGE - Edge + +// <0=> Left falling +// <1=> Left rising + +#ifndef NRFX_PDM_CONFIG_EDGE +#define NRFX_PDM_CONFIG_EDGE 0 +#endif + +// <o> NRFX_PDM_CONFIG_CLOCK_FREQ - Clock frequency + +// <134217728=> 1000k +// <138412032=> 1032k (default) +// <142606336=> 1067k + +#ifndef NRFX_PDM_CONFIG_CLOCK_FREQ +#define NRFX_PDM_CONFIG_CLOCK_FREQ 138412032 +#endif + +// <o> NRFX_PDM_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_PDM_CONFIG_IRQ_PRIORITY +#define NRFX_PDM_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_PDM_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_PDM_CONFIG_LOG_ENABLED +#define NRFX_PDM_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_PDM_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_PDM_CONFIG_LOG_LEVEL +#define NRFX_PDM_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_PDM_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_PDM_CONFIG_INFO_COLOR +#define NRFX_PDM_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_PDM_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_PDM_CONFIG_DEBUG_COLOR +#define NRFX_PDM_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_POWER_ENABLED - nrfx_power - POWER peripheral driver +//========================================================== +#ifndef NRFX_POWER_ENABLED +#define NRFX_POWER_ENABLED 0 +#endif +// <o> NRFX_POWER_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_POWER_DEFAULT_CONFIG_IRQ_PRIORITY +#define NRFX_POWER_DEFAULT_CONFIG_IRQ_PRIORITY 7 +#endif + +// <q> NRFX_POWER_CONFIG_DEFAULT_DCDCEN - The default configuration of main DCDC regulator + + +// <i> This settings means only that components for DCDC regulator are installed and it can be enabled. + +#ifndef NRFX_POWER_CONFIG_DEFAULT_DCDCEN +#define NRFX_POWER_CONFIG_DEFAULT_DCDCEN 0 +#endif + +// <q> NRFX_POWER_CONFIG_DEFAULT_DCDCENHV - The default configuration of High Voltage DCDC regulator + + +// <i> This settings means only that components for DCDC regulator are installed and it can be enabled. + +#ifndef NRFX_POWER_CONFIG_DEFAULT_DCDCENHV +#define NRFX_POWER_CONFIG_DEFAULT_DCDCENHV 0 +#endif + +// </e> + +// <e> NRFX_PPI_ENABLED - nrfx_ppi - PPI peripheral allocator +//========================================================== +#ifndef NRFX_PPI_ENABLED +#define NRFX_PPI_ENABLED 0 +#endif +// <e> NRFX_PPI_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_PPI_CONFIG_LOG_ENABLED +#define NRFX_PPI_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_PPI_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_PPI_CONFIG_LOG_LEVEL +#define NRFX_PPI_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_PPI_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_PPI_CONFIG_INFO_COLOR +#define NRFX_PPI_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_PPI_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_PPI_CONFIG_DEBUG_COLOR +#define NRFX_PPI_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_PWM_ENABLED - nrfx_pwm - PWM peripheral driver +//========================================================== +#ifndef NRFX_PWM_ENABLED +#define NRFX_PWM_ENABLED 0 +#endif +// <q> NRFX_PWM0_ENABLED - Enable PWM0 instance + + +#ifndef NRFX_PWM0_ENABLED +#define NRFX_PWM0_ENABLED 0 +#endif + +// <q> NRFX_PWM1_ENABLED - Enable PWM1 instance + + +#ifndef NRFX_PWM1_ENABLED +#define NRFX_PWM1_ENABLED 0 +#endif + +// <q> NRFX_PWM2_ENABLED - Enable PWM2 instance + + +#ifndef NRFX_PWM2_ENABLED +#define NRFX_PWM2_ENABLED 0 +#endif + +// <q> NRFX_PWM3_ENABLED - Enable PWM3 instance + + +#ifndef NRFX_PWM3_ENABLED +#define NRFX_PWM3_ENABLED 0 +#endif + +// <o> NRFX_PWM_DEFAULT_CONFIG_OUT0_PIN - Out0 pin <0-31> + + +#ifndef NRFX_PWM_DEFAULT_CONFIG_OUT0_PIN +#define NRFX_PWM_DEFAULT_CONFIG_OUT0_PIN 31 +#endif + +// <o> NRFX_PWM_DEFAULT_CONFIG_OUT1_PIN - Out1 pin <0-31> + + +#ifndef NRFX_PWM_DEFAULT_CONFIG_OUT1_PIN +#define NRFX_PWM_DEFAULT_CONFIG_OUT1_PIN 31 +#endif + +// <o> NRFX_PWM_DEFAULT_CONFIG_OUT2_PIN - Out2 pin <0-31> + + +#ifndef NRFX_PWM_DEFAULT_CONFIG_OUT2_PIN +#define NRFX_PWM_DEFAULT_CONFIG_OUT2_PIN 31 +#endif + +// <o> NRFX_PWM_DEFAULT_CONFIG_OUT3_PIN - Out3 pin <0-31> + + +#ifndef NRFX_PWM_DEFAULT_CONFIG_OUT3_PIN +#define NRFX_PWM_DEFAULT_CONFIG_OUT3_PIN 31 +#endif + +// <o> NRFX_PWM_DEFAULT_CONFIG_BASE_CLOCK - Base clock + +// <0=> 16 MHz +// <1=> 8 MHz +// <2=> 4 MHz +// <3=> 2 MHz +// <4=> 1 MHz +// <5=> 500 kHz +// <6=> 250 kHz +// <7=> 125 kHz + +#ifndef NRFX_PWM_DEFAULT_CONFIG_BASE_CLOCK +#define NRFX_PWM_DEFAULT_CONFIG_BASE_CLOCK 4 +#endif + +// <o> NRFX_PWM_DEFAULT_CONFIG_COUNT_MODE - Count mode + +// <0=> Up +// <1=> Up and Down + +#ifndef NRFX_PWM_DEFAULT_CONFIG_COUNT_MODE +#define NRFX_PWM_DEFAULT_CONFIG_COUNT_MODE 0 +#endif + +// <o> NRFX_PWM_DEFAULT_CONFIG_TOP_VALUE - Top value +#ifndef NRFX_PWM_DEFAULT_CONFIG_TOP_VALUE +#define NRFX_PWM_DEFAULT_CONFIG_TOP_VALUE 1000 +#endif + +// <o> NRFX_PWM_DEFAULT_CONFIG_LOAD_MODE - Load mode + +// <0=> Common +// <1=> Grouped +// <2=> Individual +// <3=> Waveform + +#ifndef NRFX_PWM_DEFAULT_CONFIG_LOAD_MODE +#define NRFX_PWM_DEFAULT_CONFIG_LOAD_MODE 0 +#endif + +// <o> NRFX_PWM_DEFAULT_CONFIG_STEP_MODE - Step mode + +// <0=> Auto +// <1=> Triggered + +#ifndef NRFX_PWM_DEFAULT_CONFIG_STEP_MODE +#define NRFX_PWM_DEFAULT_CONFIG_STEP_MODE 0 +#endif + +// <o> NRFX_PWM_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_PWM_DEFAULT_CONFIG_IRQ_PRIORITY +#define NRFX_PWM_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_PWM_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_PWM_CONFIG_LOG_ENABLED +#define NRFX_PWM_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_PWM_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_PWM_CONFIG_LOG_LEVEL +#define NRFX_PWM_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_PWM_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_PWM_CONFIG_INFO_COLOR +#define NRFX_PWM_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_PWM_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_PWM_CONFIG_DEBUG_COLOR +#define NRFX_PWM_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_QDEC_ENABLED - nrfx_qdec - QDEC peripheral driver +//========================================================== +#ifndef NRFX_QDEC_ENABLED +#define NRFX_QDEC_ENABLED 0 +#endif +// <o> NRFX_QDEC_CONFIG_REPORTPER - Report period + +// <0=> 10 Samples +// <1=> 40 Samples +// <2=> 80 Samples +// <3=> 120 Samples +// <4=> 160 Samples +// <5=> 200 Samples +// <6=> 240 Samples +// <7=> 280 Samples + +#ifndef NRFX_QDEC_CONFIG_REPORTPER +#define NRFX_QDEC_CONFIG_REPORTPER 0 +#endif + +// <o> NRFX_QDEC_CONFIG_SAMPLEPER - Sample period + +// <0=> 128 us +// <1=> 256 us +// <2=> 512 us +// <3=> 1024 us +// <4=> 2048 us +// <5=> 4096 us +// <6=> 8192 us +// <7=> 16384 us + +#ifndef NRFX_QDEC_CONFIG_SAMPLEPER +#define NRFX_QDEC_CONFIG_SAMPLEPER 7 +#endif + +// <o> NRFX_QDEC_CONFIG_PIO_A - A pin <0-31> + + +#ifndef NRFX_QDEC_CONFIG_PIO_A +#define NRFX_QDEC_CONFIG_PIO_A 31 +#endif + +// <o> NRFX_QDEC_CONFIG_PIO_B - B pin <0-31> + + +#ifndef NRFX_QDEC_CONFIG_PIO_B +#define NRFX_QDEC_CONFIG_PIO_B 31 +#endif + +// <o> NRFX_QDEC_CONFIG_PIO_LED - LED pin <0-31> + + +#ifndef NRFX_QDEC_CONFIG_PIO_LED +#define NRFX_QDEC_CONFIG_PIO_LED 31 +#endif + +// <o> NRFX_QDEC_CONFIG_LEDPRE - LED pre +#ifndef NRFX_QDEC_CONFIG_LEDPRE +#define NRFX_QDEC_CONFIG_LEDPRE 511 +#endif + +// <o> NRFX_QDEC_CONFIG_LEDPOL - LED polarity + +// <0=> Active low +// <1=> Active high + +#ifndef NRFX_QDEC_CONFIG_LEDPOL +#define NRFX_QDEC_CONFIG_LEDPOL 1 +#endif + +// <q> NRFX_QDEC_CONFIG_DBFEN - Debouncing enable + + +#ifndef NRFX_QDEC_CONFIG_DBFEN +#define NRFX_QDEC_CONFIG_DBFEN 0 +#endif + +// <q> NRFX_QDEC_CONFIG_SAMPLE_INTEN - Sample ready interrupt enable + + +#ifndef NRFX_QDEC_CONFIG_SAMPLE_INTEN +#define NRFX_QDEC_CONFIG_SAMPLE_INTEN 0 +#endif + +// <o> NRFX_QDEC_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_QDEC_CONFIG_IRQ_PRIORITY +#define NRFX_QDEC_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_QDEC_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_QDEC_CONFIG_LOG_ENABLED +#define NRFX_QDEC_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_QDEC_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_QDEC_CONFIG_LOG_LEVEL +#define NRFX_QDEC_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_QDEC_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_QDEC_CONFIG_INFO_COLOR +#define NRFX_QDEC_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_QDEC_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_QDEC_CONFIG_DEBUG_COLOR +#define NRFX_QDEC_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_QSPI_ENABLED - nrfx_qspi - QSPI peripheral driver +//========================================================== +#ifndef NRFX_QSPI_ENABLED +#define NRFX_QSPI_ENABLED 0 +#endif +// <o> NRFX_QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns). <0-255> + + +#ifndef NRFX_QSPI_CONFIG_SCK_DELAY +#define NRFX_QSPI_CONFIG_SCK_DELAY 1 +#endif + +// <o> NRFX_QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. +#ifndef NRFX_QSPI_CONFIG_XIP_OFFSET +#define NRFX_QSPI_CONFIG_XIP_OFFSET 0 +#endif + +// <o> NRFX_QSPI_CONFIG_READOC - Number of data lines and opcode used for reading. + +// <0=> FastRead +// <1=> Read2O +// <2=> Read2IO +// <3=> Read4O +// <4=> Read4IO + +#ifndef NRFX_QSPI_CONFIG_READOC +#define NRFX_QSPI_CONFIG_READOC 0 +#endif + +// <o> NRFX_QSPI_CONFIG_WRITEOC - Number of data lines and opcode used for writing. + +// <0=> PP +// <1=> PP2O +// <2=> PP4O +// <3=> PP4IO + +#ifndef NRFX_QSPI_CONFIG_WRITEOC +#define NRFX_QSPI_CONFIG_WRITEOC 0 +#endif + +// <o> NRFX_QSPI_CONFIG_ADDRMODE - Addressing mode. + +// <0=> 24bit +// <1=> 32bit + +#ifndef NRFX_QSPI_CONFIG_ADDRMODE +#define NRFX_QSPI_CONFIG_ADDRMODE 0 +#endif + +// <o> NRFX_QSPI_CONFIG_MODE - SPI mode. + +// <0=> Mode 0 +// <1=> Mode 1 + +#ifndef NRFX_QSPI_CONFIG_MODE +#define NRFX_QSPI_CONFIG_MODE 0 +#endif + +// <o> NRFX_QSPI_CONFIG_FREQUENCY - Frequency divider. + +// <0=> 32MHz/1 +// <1=> 32MHz/2 +// <2=> 32MHz/3 +// <3=> 32MHz/4 +// <4=> 32MHz/5 +// <5=> 32MHz/6 +// <6=> 32MHz/7 +// <7=> 32MHz/8 +// <8=> 32MHz/9 +// <9=> 32MHz/10 +// <10=> 32MHz/11 +// <11=> 32MHz/12 +// <12=> 32MHz/13 +// <13=> 32MHz/14 +// <14=> 32MHz/15 +// <15=> 32MHz/16 + +#ifndef NRFX_QSPI_CONFIG_FREQUENCY +#define NRFX_QSPI_CONFIG_FREQUENCY 15 +#endif + +// <s> NRFX_QSPI_PIN_SCK - SCK pin value. +#ifndef NRFX_QSPI_PIN_SCK +#define NRFX_QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED +#endif + +// <s> NRFX_QSPI_PIN_CSN - CSN pin value. +#ifndef NRFX_QSPI_PIN_CSN +#define NRFX_QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED +#endif + +// <s> NRFX_QSPI_PIN_IO0 - IO0 pin value. +#ifndef NRFX_QSPI_PIN_IO0 +#define NRFX_QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED +#endif + +// <s> NRFX_QSPI_PIN_IO1 - IO1 pin value. +#ifndef NRFX_QSPI_PIN_IO1 +#define NRFX_QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED +#endif + +// <s> NRFX_QSPI_PIN_IO2 - IO2 pin value. +#ifndef NRFX_QSPI_PIN_IO2 +#define NRFX_QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED +#endif + +// <s> NRFX_QSPI_PIN_IO3 - IO3 pin value. +#ifndef NRFX_QSPI_PIN_IO3 +#define NRFX_QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED +#endif + +// <o> NRFX_QSPI_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_QSPI_DEFAULT_CONFIG_IRQ_PRIORITY +#define NRFX_QSPI_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// </e> + +// <e> NRFX_RNG_ENABLED - nrfx_rng - RNG peripheral driver +//========================================================== +#ifndef NRFX_RNG_ENABLED +#define NRFX_RNG_ENABLED 0 +#endif +// <q> NRFX_RNG_CONFIG_ERROR_CORRECTION - Error correction + + +#ifndef NRFX_RNG_CONFIG_ERROR_CORRECTION +#define NRFX_RNG_CONFIG_ERROR_CORRECTION 1 +#endif + +// <o> NRFX_RNG_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_RNG_CONFIG_IRQ_PRIORITY +#define NRFX_RNG_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_RNG_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_RNG_CONFIG_LOG_ENABLED +#define NRFX_RNG_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_RNG_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_RNG_CONFIG_LOG_LEVEL +#define NRFX_RNG_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_RNG_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_RNG_CONFIG_INFO_COLOR +#define NRFX_RNG_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_RNG_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_RNG_CONFIG_DEBUG_COLOR +#define NRFX_RNG_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_RTC_ENABLED - nrfx_rtc - RTC peripheral driver +//========================================================== +#ifndef NRFX_RTC_ENABLED +#define NRFX_RTC_ENABLED 0 +#endif +// <q> NRFX_RTC0_ENABLED - Enable RTC0 instance + + +#ifndef NRFX_RTC0_ENABLED +#define NRFX_RTC0_ENABLED 0 +#endif + +// <q> NRFX_RTC1_ENABLED - Enable RTC1 instance + + +#ifndef NRFX_RTC1_ENABLED +#define NRFX_RTC1_ENABLED 0 +#endif + +// <q> NRFX_RTC2_ENABLED - Enable RTC2 instance + + +#ifndef NRFX_RTC2_ENABLED +#define NRFX_RTC2_ENABLED 0 +#endif + +// <o> NRFX_RTC_MAXIMUM_LATENCY_US - Maximum possible time[us] in highest priority interrupt +#ifndef NRFX_RTC_MAXIMUM_LATENCY_US +#define NRFX_RTC_MAXIMUM_LATENCY_US 2000 +#endif + +// <o> NRFX_RTC_DEFAULT_CONFIG_FREQUENCY - Frequency <16-32768> + + +#ifndef NRFX_RTC_DEFAULT_CONFIG_FREQUENCY +#define NRFX_RTC_DEFAULT_CONFIG_FREQUENCY 32768 +#endif + +// <q> NRFX_RTC_DEFAULT_CONFIG_RELIABLE - Ensures safe compare event triggering + + +#ifndef NRFX_RTC_DEFAULT_CONFIG_RELIABLE +#define NRFX_RTC_DEFAULT_CONFIG_RELIABLE 0 +#endif + +// <o> NRFX_RTC_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_RTC_DEFAULT_CONFIG_IRQ_PRIORITY +#define NRFX_RTC_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_RTC_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_RTC_CONFIG_LOG_ENABLED +#define NRFX_RTC_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_RTC_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_RTC_CONFIG_LOG_LEVEL +#define NRFX_RTC_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_RTC_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_RTC_CONFIG_INFO_COLOR +#define NRFX_RTC_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_RTC_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_RTC_CONFIG_DEBUG_COLOR +#define NRFX_RTC_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_SAADC_ENABLED - nrfx_saadc - SAADC peripheral driver +//========================================================== +#ifndef NRFX_SAADC_ENABLED +#define NRFX_SAADC_ENABLED 0 +#endif +// <o> NRFX_SAADC_CONFIG_RESOLUTION - Resolution + +// <0=> 8 bit +// <1=> 10 bit +// <2=> 12 bit +// <3=> 14 bit + +#ifndef NRFX_SAADC_CONFIG_RESOLUTION +#define NRFX_SAADC_CONFIG_RESOLUTION 1 +#endif + +// <o> NRFX_SAADC_CONFIG_OVERSAMPLE - Sample period + +// <0=> Disabled +// <1=> 2x +// <2=> 4x +// <3=> 8x +// <4=> 16x +// <5=> 32x +// <6=> 64x +// <7=> 128x +// <8=> 256x + +#ifndef NRFX_SAADC_CONFIG_OVERSAMPLE +#define NRFX_SAADC_CONFIG_OVERSAMPLE 0 +#endif + +// <q> NRFX_SAADC_CONFIG_LP_MODE - Enabling low power mode + + +#ifndef NRFX_SAADC_CONFIG_LP_MODE +#define NRFX_SAADC_CONFIG_LP_MODE 0 +#endif + +// <o> NRFX_SAADC_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_SAADC_CONFIG_IRQ_PRIORITY +#define NRFX_SAADC_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_SAADC_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_SAADC_CONFIG_LOG_ENABLED +#define NRFX_SAADC_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_SAADC_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_SAADC_CONFIG_LOG_LEVEL +#define NRFX_SAADC_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_SAADC_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_SAADC_CONFIG_INFO_COLOR +#define NRFX_SAADC_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_SAADC_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_SAADC_CONFIG_DEBUG_COLOR +#define NRFX_SAADC_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_SPIM_ENABLED - nrfx_spim - SPIM peripheral driver +//========================================================== +#ifndef NRFX_SPIM_ENABLED +#define NRFX_SPIM_ENABLED 0 +#endif +// <q> NRFX_SPIM0_ENABLED - Enable SPIM0 instance + + +#ifndef NRFX_SPIM0_ENABLED +#define NRFX_SPIM0_ENABLED 0 +#endif + +// <q> NRFX_SPIM1_ENABLED - Enable SPIM1 instance + + +#ifndef NRFX_SPIM1_ENABLED +#define NRFX_SPIM1_ENABLED 0 +#endif + +// <q> NRFX_SPIM2_ENABLED - Enable SPIM2 instance + + +#ifndef NRFX_SPIM2_ENABLED +#define NRFX_SPIM2_ENABLED 0 +#endif + +// <q> NRFX_SPIM3_ENABLED - Enable SPIM3 instance + + +#ifndef NRFX_SPIM3_ENABLED +#define NRFX_SPIM3_ENABLED 0 +#endif + +// <q> NRFX_SPIM_EXTENDED_ENABLED - Enable extended SPIM features + + +#ifndef NRFX_SPIM_EXTENDED_ENABLED +#define NRFX_SPIM_EXTENDED_ENABLED 0 +#endif + +// <o> NRFX_SPIM_MISO_PULL_CFG - MISO pin pull configuration. + +// <0=> NRF_GPIO_PIN_NOPULL +// <1=> NRF_GPIO_PIN_PULLDOWN +// <3=> NRF_GPIO_PIN_PULLUP + +#ifndef NRFX_SPIM_MISO_PULL_CFG +#define NRFX_SPIM_MISO_PULL_CFG 1 +#endif + +// <o> NRFX_SPIM_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_SPIM_DEFAULT_CONFIG_IRQ_PRIORITY +#define NRFX_SPIM_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_SPIM_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_SPIM_CONFIG_LOG_ENABLED +#define NRFX_SPIM_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_SPIM_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_SPIM_CONFIG_LOG_LEVEL +#define NRFX_SPIM_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_SPIM_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_SPIM_CONFIG_INFO_COLOR +#define NRFX_SPIM_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_SPIM_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_SPIM_CONFIG_DEBUG_COLOR +#define NRFX_SPIM_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_SPIS_ENABLED - nrfx_spis - SPIS peripheral driver +//========================================================== +#ifndef NRFX_SPIS_ENABLED +#define NRFX_SPIS_ENABLED 0 +#endif +// <q> NRFX_SPIS0_ENABLED - Enable SPIS0 instance + + +#ifndef NRFX_SPIS0_ENABLED +#define NRFX_SPIS0_ENABLED 0 +#endif + +// <q> NRFX_SPIS1_ENABLED - Enable SPIS1 instance + + +#ifndef NRFX_SPIS1_ENABLED +#define NRFX_SPIS1_ENABLED 0 +#endif + +// <q> NRFX_SPIS2_ENABLED - Enable SPIS2 instance + + +#ifndef NRFX_SPIS2_ENABLED +#define NRFX_SPIS2_ENABLED 0 +#endif + +// <o> NRFX_SPIS_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_SPIS_DEFAULT_CONFIG_IRQ_PRIORITY +#define NRFX_SPIS_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <o> NRFX_SPIS_DEFAULT_DEF - SPIS default DEF character <0-255> + + +#ifndef NRFX_SPIS_DEFAULT_DEF +#define NRFX_SPIS_DEFAULT_DEF 255 +#endif + +// <o> NRFX_SPIS_DEFAULT_ORC - SPIS default ORC character <0-255> + + +#ifndef NRFX_SPIS_DEFAULT_ORC +#define NRFX_SPIS_DEFAULT_ORC 255 +#endif + +// <e> NRFX_SPIS_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_SPIS_CONFIG_LOG_ENABLED +#define NRFX_SPIS_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_SPIS_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_SPIS_CONFIG_LOG_LEVEL +#define NRFX_SPIS_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_SPIS_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_SPIS_CONFIG_INFO_COLOR +#define NRFX_SPIS_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_SPIS_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_SPIS_CONFIG_DEBUG_COLOR +#define NRFX_SPIS_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_SPI_ENABLED - nrfx_spi - SPI peripheral driver +//========================================================== +#ifndef NRFX_SPI_ENABLED +#define NRFX_SPI_ENABLED 0 +#endif +// <q> NRFX_SPI0_ENABLED - Enable SPI0 instance + + +#ifndef NRFX_SPI0_ENABLED +#define NRFX_SPI0_ENABLED 0 +#endif + +// <q> NRFX_SPI1_ENABLED - Enable SPI1 instance + + +#ifndef NRFX_SPI1_ENABLED +#define NRFX_SPI1_ENABLED 0 +#endif + +// <q> NRFX_SPI2_ENABLED - Enable SPI2 instance + + +#ifndef NRFX_SPI2_ENABLED +#define NRFX_SPI2_ENABLED 0 +#endif + +// <o> NRFX_SPI_MISO_PULL_CFG - MISO pin pull configuration. + +// <0=> NRF_GPIO_PIN_NOPULL +// <1=> NRF_GPIO_PIN_PULLDOWN +// <3=> NRF_GPIO_PIN_PULLUP + +#ifndef NRFX_SPI_MISO_PULL_CFG +#define NRFX_SPI_MISO_PULL_CFG 1 +#endif + +// <o> NRFX_SPI_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_SPI_DEFAULT_CONFIG_IRQ_PRIORITY +#define NRFX_SPI_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_SPI_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_SPI_CONFIG_LOG_ENABLED +#define NRFX_SPI_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_SPI_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_SPI_CONFIG_LOG_LEVEL +#define NRFX_SPI_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_SPI_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_SPI_CONFIG_INFO_COLOR +#define NRFX_SPI_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_SPI_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_SPI_CONFIG_DEBUG_COLOR +#define NRFX_SPI_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_SWI_ENABLED - nrfx_swi - SWI/EGU peripheral allocator +//========================================================== +#ifndef NRFX_SWI_ENABLED +#define NRFX_SWI_ENABLED 0 +#endif +// <q> NRFX_EGU_ENABLED - Enable EGU support + + +#ifndef NRFX_EGU_ENABLED +#define NRFX_EGU_ENABLED 0 +#endif + +// <q> NRFX_SWI0_DISABLED - Exclude SWI0 from being utilized by the driver + + +#ifndef NRFX_SWI0_DISABLED +#define NRFX_SWI0_DISABLED 0 +#endif + +// <q> NRFX_SWI1_DISABLED - Exclude SWI1 from being utilized by the driver + + +#ifndef NRFX_SWI1_DISABLED +#define NRFX_SWI1_DISABLED 0 +#endif + +// <q> NRFX_SWI2_DISABLED - Exclude SWI2 from being utilized by the driver + + +#ifndef NRFX_SWI2_DISABLED +#define NRFX_SWI2_DISABLED 0 +#endif + +// <q> NRFX_SWI3_DISABLED - Exclude SWI3 from being utilized by the driver + + +#ifndef NRFX_SWI3_DISABLED +#define NRFX_SWI3_DISABLED 0 +#endif + +// <q> NRFX_SWI4_DISABLED - Exclude SWI4 from being utilized by the driver + + +#ifndef NRFX_SWI4_DISABLED +#define NRFX_SWI4_DISABLED 0 +#endif + +// <q> NRFX_SWI5_DISABLED - Exclude SWI5 from being utilized by the driver + + +#ifndef NRFX_SWI5_DISABLED +#define NRFX_SWI5_DISABLED 0 +#endif + +// <e> NRFX_SWI_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_SWI_CONFIG_LOG_ENABLED +#define NRFX_SWI_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_SWI_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_SWI_CONFIG_LOG_LEVEL +#define NRFX_SWI_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_SWI_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_SWI_CONFIG_INFO_COLOR +#define NRFX_SWI_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_SWI_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_SWI_CONFIG_DEBUG_COLOR +#define NRFX_SWI_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_TIMER_ENABLED - nrfx_timer - TIMER periperal driver +//========================================================== +#ifndef NRFX_TIMER_ENABLED +#define NRFX_TIMER_ENABLED 0 +#endif +// <q> NRFX_TIMER0_ENABLED - Enable TIMER0 instance + + +#ifndef NRFX_TIMER0_ENABLED +#define NRFX_TIMER0_ENABLED 0 +#endif + +// <q> NRFX_TIMER1_ENABLED - Enable TIMER1 instance + + +#ifndef NRFX_TIMER1_ENABLED +#define NRFX_TIMER1_ENABLED 0 +#endif + +// <q> NRFX_TIMER2_ENABLED - Enable TIMER2 instance + + +#ifndef NRFX_TIMER2_ENABLED +#define NRFX_TIMER2_ENABLED 0 +#endif + +// <q> NRFX_TIMER3_ENABLED - Enable TIMER3 instance + + +#ifndef NRFX_TIMER3_ENABLED +#define NRFX_TIMER3_ENABLED 0 +#endif + +// <q> NRFX_TIMER4_ENABLED - Enable TIMER4 instance + + +#ifndef NRFX_TIMER4_ENABLED +#define NRFX_TIMER4_ENABLED 0 +#endif + +// <o> NRFX_TIMER_DEFAULT_CONFIG_FREQUENCY - Timer frequency if in Timer mode + +// <0=> 16 MHz +// <1=> 8 MHz +// <2=> 4 MHz +// <3=> 2 MHz +// <4=> 1 MHz +// <5=> 500 kHz +// <6=> 250 kHz +// <7=> 125 kHz +// <8=> 62.5 kHz +// <9=> 31.25 kHz + +#ifndef NRFX_TIMER_DEFAULT_CONFIG_FREQUENCY +#define NRFX_TIMER_DEFAULT_CONFIG_FREQUENCY 0 +#endif + +// <o> NRFX_TIMER_DEFAULT_CONFIG_MODE - Timer mode or operation + +// <0=> Timer +// <1=> Counter + +#ifndef NRFX_TIMER_DEFAULT_CONFIG_MODE +#define NRFX_TIMER_DEFAULT_CONFIG_MODE 0 +#endif + +// <o> NRFX_TIMER_DEFAULT_CONFIG_BIT_WIDTH - Timer counter bit width + +// <0=> 16 bit +// <1=> 8 bit +// <2=> 24 bit +// <3=> 32 bit + +#ifndef NRFX_TIMER_DEFAULT_CONFIG_BIT_WIDTH +#define NRFX_TIMER_DEFAULT_CONFIG_BIT_WIDTH 0 +#endif + +// <o> NRFX_TIMER_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_TIMER_DEFAULT_CONFIG_IRQ_PRIORITY +#define NRFX_TIMER_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_TIMER_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_TIMER_CONFIG_LOG_ENABLED +#define NRFX_TIMER_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_TIMER_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_TIMER_CONFIG_LOG_LEVEL +#define NRFX_TIMER_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_TIMER_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_TIMER_CONFIG_INFO_COLOR +#define NRFX_TIMER_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_TIMER_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_TIMER_CONFIG_DEBUG_COLOR +#define NRFX_TIMER_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_TWIM_ENABLED - nrfx_twim - TWIM peripheral driver +//========================================================== +#ifndef NRFX_TWIM_ENABLED +#define NRFX_TWIM_ENABLED 0 +#endif +// <q> NRFX_TWIM0_ENABLED - Enable TWIM0 instance + + +#ifndef NRFX_TWIM0_ENABLED +#define NRFX_TWIM0_ENABLED 0 +#endif + +// <q> NRFX_TWIM1_ENABLED - Enable TWIM1 instance + + +#ifndef NRFX_TWIM1_ENABLED +#define NRFX_TWIM1_ENABLED 0 +#endif + +// <o> NRFX_TWIM_DEFAULT_CONFIG_FREQUENCY - Frequency + +// <26738688=> 100k +// <67108864=> 250k +// <104857600=> 400k + +#ifndef NRFX_TWIM_DEFAULT_CONFIG_FREQUENCY +#define NRFX_TWIM_DEFAULT_CONFIG_FREQUENCY 26738688 +#endif + +// <q> NRFX_TWIM_DEFAULT_CONFIG_HOLD_BUS_UNINIT - Enables bus holding after uninit + + +#ifndef NRFX_TWIM_DEFAULT_CONFIG_HOLD_BUS_UNINIT +#define NRFX_TWIM_DEFAULT_CONFIG_HOLD_BUS_UNINIT 0 +#endif + +// <o> NRFX_TWIM_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_TWIM_DEFAULT_CONFIG_IRQ_PRIORITY +#define NRFX_TWIM_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_TWIM_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_TWIM_CONFIG_LOG_ENABLED +#define NRFX_TWIM_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_TWIM_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_TWIM_CONFIG_LOG_LEVEL +#define NRFX_TWIM_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_TWIM_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_TWIM_CONFIG_INFO_COLOR +#define NRFX_TWIM_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_TWIM_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_TWIM_CONFIG_DEBUG_COLOR +#define NRFX_TWIM_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_TWIS_ENABLED - nrfx_twis - TWIS peripheral driver +//========================================================== +#ifndef NRFX_TWIS_ENABLED +#define NRFX_TWIS_ENABLED 0 +#endif +// <q> NRFX_TWIS0_ENABLED - Enable TWIS0 instance + + +#ifndef NRFX_TWIS0_ENABLED +#define NRFX_TWIS0_ENABLED 0 +#endif + +// <q> NRFX_TWIS1_ENABLED - Enable TWIS1 instance + + +#ifndef NRFX_TWIS1_ENABLED +#define NRFX_TWIS1_ENABLED 0 +#endif + +// <q> NRFX_TWIS_ASSUME_INIT_AFTER_RESET_ONLY - Assume that any instance would be initialized only once + + +// <i> Optimization flag. Registers used by TWIS are shared by other peripherals. Normally, during initialization driver tries to clear all registers to known state before doing the initialization itself. This gives initialization safe procedure, no matter when it would be called. If you activate TWIS only once and do never uninitialize it - set this flag to 1 what gives more optimal code. + +#ifndef NRFX_TWIS_ASSUME_INIT_AFTER_RESET_ONLY +#define NRFX_TWIS_ASSUME_INIT_AFTER_RESET_ONLY 0 +#endif + +// <q> NRFX_TWIS_NO_SYNC_MODE - Remove support for synchronous mode + + +// <i> Synchronous mode would be used in specific situations. And it uses some additional code and data memory to safely process state machine by polling it in status functions. If this functionality is not required it may be disabled to free some resources. + +#ifndef NRFX_TWIS_NO_SYNC_MODE +#define NRFX_TWIS_NO_SYNC_MODE 0 +#endif + +// <o> NRFX_TWIS_DEFAULT_CONFIG_ADDR0 - Address0 +#ifndef NRFX_TWIS_DEFAULT_CONFIG_ADDR0 +#define NRFX_TWIS_DEFAULT_CONFIG_ADDR0 0 +#endif + +// <o> NRFX_TWIS_DEFAULT_CONFIG_ADDR1 - Address1 +#ifndef NRFX_TWIS_DEFAULT_CONFIG_ADDR1 +#define NRFX_TWIS_DEFAULT_CONFIG_ADDR1 0 +#endif + +// <o> NRFX_TWIS_DEFAULT_CONFIG_SCL_PULL - SCL pin pull configuration + +// <0=> Disabled +// <1=> Pull down +// <3=> Pull up + +#ifndef NRFX_TWIS_DEFAULT_CONFIG_SCL_PULL +#define NRFX_TWIS_DEFAULT_CONFIG_SCL_PULL 0 +#endif + +// <o> NRFX_TWIS_DEFAULT_CONFIG_SDA_PULL - SDA pin pull configuration + +// <0=> Disabled +// <1=> Pull down +// <3=> Pull up + +#ifndef NRFX_TWIS_DEFAULT_CONFIG_SDA_PULL +#define NRFX_TWIS_DEFAULT_CONFIG_SDA_PULL 0 +#endif + +// <o> NRFX_TWIS_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_TWIS_DEFAULT_CONFIG_IRQ_PRIORITY +#define NRFX_TWIS_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_TWIS_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_TWIS_CONFIG_LOG_ENABLED +#define NRFX_TWIS_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_TWIS_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_TWIS_CONFIG_LOG_LEVEL +#define NRFX_TWIS_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_TWIS_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_TWIS_CONFIG_INFO_COLOR +#define NRFX_TWIS_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_TWIS_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_TWIS_CONFIG_DEBUG_COLOR +#define NRFX_TWIS_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_TWI_ENABLED - nrfx_twi - TWI peripheral driver +//========================================================== +#ifndef NRFX_TWI_ENABLED +#define NRFX_TWI_ENABLED 0 +#endif +// <q> NRFX_TWI0_ENABLED - Enable TWI0 instance + + +#ifndef NRFX_TWI0_ENABLED +#define NRFX_TWI0_ENABLED 0 +#endif + +// <q> NRFX_TWI1_ENABLED - Enable TWI1 instance + + +#ifndef NRFX_TWI1_ENABLED +#define NRFX_TWI1_ENABLED 0 +#endif + +// <o> NRFX_TWI_DEFAULT_CONFIG_FREQUENCY - Frequency + +// <26738688=> 100k +// <67108864=> 250k +// <104857600=> 400k + +#ifndef NRFX_TWI_DEFAULT_CONFIG_FREQUENCY +#define NRFX_TWI_DEFAULT_CONFIG_FREQUENCY 26738688 +#endif + +// <q> NRFX_TWI_DEFAULT_CONFIG_HOLD_BUS_UNINIT - Enables bus holding after uninit + + +#ifndef NRFX_TWI_DEFAULT_CONFIG_HOLD_BUS_UNINIT +#define NRFX_TWI_DEFAULT_CONFIG_HOLD_BUS_UNINIT 0 +#endif + +// <o> NRFX_TWI_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_TWI_DEFAULT_CONFIG_IRQ_PRIORITY +#define NRFX_TWI_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_TWI_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_TWI_CONFIG_LOG_ENABLED +#define NRFX_TWI_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_TWI_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_TWI_CONFIG_LOG_LEVEL +#define NRFX_TWI_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_TWI_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_TWI_CONFIG_INFO_COLOR +#define NRFX_TWI_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_TWI_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_TWI_CONFIG_DEBUG_COLOR +#define NRFX_TWI_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_UARTE_ENABLED - nrfx_uarte - UARTE peripheral driver +//========================================================== +#ifndef NRFX_UARTE_ENABLED +#define NRFX_UARTE_ENABLED 0 +#endif +// <o> NRFX_UARTE0_ENABLED - Enable UARTE0 instance +#ifndef NRFX_UARTE0_ENABLED +#define NRFX_UARTE0_ENABLED 0 +#endif + +// <o> NRFX_UARTE1_ENABLED - Enable UARTE1 instance +#ifndef NRFX_UARTE1_ENABLED +#define NRFX_UARTE1_ENABLED 0 +#endif + +// <o> NRFX_UARTE_DEFAULT_CONFIG_HWFC - Hardware Flow Control + +// <0=> Disabled +// <1=> Enabled + +#ifndef NRFX_UARTE_DEFAULT_CONFIG_HWFC +#define NRFX_UARTE_DEFAULT_CONFIG_HWFC 0 +#endif + +// <o> NRFX_UARTE_DEFAULT_CONFIG_PARITY - Parity + +// <0=> Excluded +// <14=> Included + +#ifndef NRFX_UARTE_DEFAULT_CONFIG_PARITY +#define NRFX_UARTE_DEFAULT_CONFIG_PARITY 0 +#endif + +// <o> NRFX_UARTE_DEFAULT_CONFIG_BAUDRATE - Default Baudrate + +// <323584=> 1200 baud +// <643072=> 2400 baud +// <1290240=> 4800 baud +// <2576384=> 9600 baud +// <3862528=> 14400 baud +// <5152768=> 19200 baud +// <7716864=> 28800 baud +// <8388608=> 31250 baud +// <10289152=> 38400 baud +// <15007744=> 56000 baud +// <15400960=> 57600 baud +// <20615168=> 76800 baud +// <30801920=> 115200 baud +// <61865984=> 230400 baud +// <67108864=> 250000 baud +// <121634816=> 460800 baud +// <251658240=> 921600 baud +// <268435456=> 1000000 baud + +#ifndef NRFX_UARTE_DEFAULT_CONFIG_BAUDRATE +#define NRFX_UARTE_DEFAULT_CONFIG_BAUDRATE 30801920 +#endif + +// <o> NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY +#define NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_UARTE_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_UARTE_CONFIG_LOG_ENABLED +#define NRFX_UARTE_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_UARTE_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_UARTE_CONFIG_LOG_LEVEL +#define NRFX_UARTE_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_UARTE_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_UARTE_CONFIG_INFO_COLOR +#define NRFX_UARTE_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_UARTE_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_UARTE_CONFIG_DEBUG_COLOR +#define NRFX_UARTE_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_UART_ENABLED - nrfx_uart - UART peripheral driver +//========================================================== +#ifndef NRFX_UART_ENABLED +#define NRFX_UART_ENABLED 0 +#endif +// <o> NRFX_UART0_ENABLED - Enable UART0 instance +#ifndef NRFX_UART0_ENABLED +#define NRFX_UART0_ENABLED 0 +#endif + +// <o> NRFX_UART_DEFAULT_CONFIG_HWFC - Hardware Flow Control + +// <0=> Disabled +// <1=> Enabled + +#ifndef NRFX_UART_DEFAULT_CONFIG_HWFC +#define NRFX_UART_DEFAULT_CONFIG_HWFC 0 +#endif + +// <o> NRFX_UART_DEFAULT_CONFIG_PARITY - Parity + +// <0=> Excluded +// <14=> Included + +#ifndef NRFX_UART_DEFAULT_CONFIG_PARITY +#define NRFX_UART_DEFAULT_CONFIG_PARITY 0 +#endif + +// <o> NRFX_UART_DEFAULT_CONFIG_BAUDRATE - Default Baudrate + +// <323584=> 1200 baud +// <643072=> 2400 baud +// <1290240=> 4800 baud +// <2576384=> 9600 baud +// <3866624=> 14400 baud +// <5152768=> 19200 baud +// <7729152=> 28800 baud +// <8388608=> 31250 baud +// <10309632=> 38400 baud +// <15007744=> 56000 baud +// <15462400=> 57600 baud +// <20615168=> 76800 baud +// <30924800=> 115200 baud +// <61845504=> 230400 baud +// <67108864=> 250000 baud +// <123695104=> 460800 baud +// <247386112=> 921600 baud +// <268435456=> 1000000 baud + +#ifndef NRFX_UART_DEFAULT_CONFIG_BAUDRATE +#define NRFX_UART_DEFAULT_CONFIG_BAUDRATE 30924800 +#endif + +// <o> NRFX_UART_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_UART_DEFAULT_CONFIG_IRQ_PRIORITY +#define NRFX_UART_DEFAULT_CONFIG_IRQ_PRIORITY 4 +#endif + +// <e> NRFX_UART_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_UART_CONFIG_LOG_ENABLED +#define NRFX_UART_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_UART_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_UART_CONFIG_LOG_LEVEL +#define NRFX_UART_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_UART_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_UART_CONFIG_INFO_COLOR +#define NRFX_UART_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_UART_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_UART_CONFIG_DEBUG_COLOR +#define NRFX_UART_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRFX_USBD_ENABLED - nrfx_usbd - USBD peripheral driver +//========================================================== +#ifndef NRFX_USBD_ENABLED +#define NRFX_USBD_ENABLED 0 +#endif +// <o> NRFX_USBD_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_USBD_CONFIG_IRQ_PRIORITY +#define NRFX_USBD_CONFIG_IRQ_PRIORITY 6 +#endif + +// <o> NRFX_USBD_CONFIG_DMASCHEDULER_MODE - USBD DMA scheduler working scheme + +// <0=> Prioritized access +// <1=> Round Robin + +#ifndef NRFX_USBD_CONFIG_DMASCHEDULER_MODE +#define NRFX_USBD_CONFIG_DMASCHEDULER_MODE 0 +#endif + +// <q> NRFX_USBD_CONFIG_DMASCHEDULER_ISO_BOOST - Give priority to isochronous transfers + + +// <i> This option gives priority to isochronous transfers. +// <i> Enabling it assures that isochronous transfers are always processed, +// <i> even if multiple other transfers are pending. +// <i> Isochronous endpoints are prioritized before the usbd_dma_scheduler_algorithm +// <i> function is called, so the option is independent of the algorithm chosen. + +#ifndef NRFX_USBD_CONFIG_DMASCHEDULER_ISO_BOOST +#define NRFX_USBD_CONFIG_DMASCHEDULER_ISO_BOOST 1 +#endif + +// <q> NRFX_USBD_CONFIG_ISO_IN_ZLP - Respond to an IN token on ISO IN endpoint with ZLP when no data is ready + + +// <i> If set, ISO IN endpoint will respond to an IN token with ZLP when no data is ready to be sent. +// <i> Else, there will be no response. + +#ifndef NRFX_USBD_CONFIG_ISO_IN_ZLP +#define NRFX_USBD_CONFIG_ISO_IN_ZLP 0 +#endif + +// </e> + +// <e> NRFX_WDT_ENABLED - nrfx_wdt - WDT peripheral driver +//========================================================== +#ifndef NRFX_WDT_ENABLED +#define NRFX_WDT_ENABLED 0 +#endif +// <o> NRFX_WDT_CONFIG_BEHAVIOUR - WDT behavior in CPU SLEEP or HALT mode + +// <1=> Run in SLEEP, Pause in HALT +// <8=> Pause in SLEEP, Run in HALT +// <9=> Run in SLEEP and HALT +// <0=> Pause in SLEEP and HALT + +#ifndef NRFX_WDT_CONFIG_BEHAVIOUR +#define NRFX_WDT_CONFIG_BEHAVIOUR 1 +#endif + +// <o> NRFX_WDT_CONFIG_RELOAD_VALUE - Reload value <15-4294967295> + + +#ifndef NRFX_WDT_CONFIG_RELOAD_VALUE +#define NRFX_WDT_CONFIG_RELOAD_VALUE 2000 +#endif + +// <o> NRFX_WDT_CONFIG_NO_IRQ - Remove WDT IRQ handling from WDT driver + +// <0=> Include WDT IRQ handling +// <1=> Remove WDT IRQ handling + +#ifndef NRFX_WDT_CONFIG_NO_IRQ +#define NRFX_WDT_CONFIG_NO_IRQ 0 +#endif + +// <o> NRFX_WDT_CONFIG_IRQ_PRIORITY - Interrupt priority + +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef NRFX_WDT_CONFIG_IRQ_PRIORITY +#define NRFX_WDT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> NRFX_WDT_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRFX_WDT_CONFIG_LOG_ENABLED +#define NRFX_WDT_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_WDT_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_WDT_CONFIG_LOG_LEVEL +#define NRFX_WDT_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_WDT_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_WDT_CONFIG_INFO_COLOR +#define NRFX_WDT_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_WDT_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_WDT_CONFIG_DEBUG_COLOR +#define NRFX_WDT_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NRF_CLOCK_ENABLED - nrf_drv_clock - CLOCK peripheral driver - legacy layer +//========================================================== +#ifndef NRF_CLOCK_ENABLED +#define NRF_CLOCK_ENABLED 0 +#endif +// <o> CLOCK_CONFIG_LF_SRC - LF Clock Source + +// <0=> RC +// <1=> XTAL +// <2=> Synth +// <131073=> External Low Swing +// <196609=> External Full Swing + +#ifndef CLOCK_CONFIG_LF_SRC +#define CLOCK_CONFIG_LF_SRC 1 +#endif + +// <q> CLOCK_CONFIG_LF_CAL_ENABLED - Calibration enable for LF Clock Source + + +#ifndef CLOCK_CONFIG_LF_CAL_ENABLED +#define CLOCK_CONFIG_LF_CAL_ENABLED 0 +#endif + +// <o> CLOCK_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef CLOCK_CONFIG_IRQ_PRIORITY +#define CLOCK_CONFIG_IRQ_PRIORITY 6 +#endif + +// </e> + +// <e> PDM_ENABLED - nrf_drv_pdm - PDM peripheral driver - legacy layer +//========================================================== +#ifndef PDM_ENABLED +#define PDM_ENABLED 0 +#endif +// <o> PDM_CONFIG_MODE - Mode + +// <0=> Stereo +// <1=> Mono + +#ifndef PDM_CONFIG_MODE +#define PDM_CONFIG_MODE 1 +#endif + +// <o> PDM_CONFIG_EDGE - Edge + +// <0=> Left falling +// <1=> Left rising + +#ifndef PDM_CONFIG_EDGE +#define PDM_CONFIG_EDGE 0 +#endif + +// <o> PDM_CONFIG_CLOCK_FREQ - Clock frequency + +// <134217728=> 1000k +// <138412032=> 1032k (default) +// <142606336=> 1067k + +#ifndef PDM_CONFIG_CLOCK_FREQ +#define PDM_CONFIG_CLOCK_FREQ 138412032 +#endif + +// <o> PDM_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef PDM_CONFIG_IRQ_PRIORITY +#define PDM_CONFIG_IRQ_PRIORITY 6 +#endif + +// </e> + +// <e> POWER_ENABLED - nrf_drv_power - POWER peripheral driver - legacy layer +//========================================================== +#ifndef POWER_ENABLED +#define POWER_ENABLED 0 +#endif +// <o> POWER_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef POWER_CONFIG_IRQ_PRIORITY +#define POWER_CONFIG_IRQ_PRIORITY 6 +#endif + +// <q> POWER_CONFIG_DEFAULT_DCDCEN - The default configuration of main DCDC regulator + + +// <i> This settings means only that components for DCDC regulator are installed and it can be enabled. + +#ifndef POWER_CONFIG_DEFAULT_DCDCEN +#define POWER_CONFIG_DEFAULT_DCDCEN 0 +#endif + +// <q> POWER_CONFIG_DEFAULT_DCDCENHV - The default configuration of High Voltage DCDC regulator + + +// <i> This settings means only that components for DCDC regulator are installed and it can be enabled. + +#ifndef POWER_CONFIG_DEFAULT_DCDCENHV +#define POWER_CONFIG_DEFAULT_DCDCENHV 0 +#endif + +// </e> + +// <q> PPI_ENABLED - nrf_drv_ppi - PPI peripheral driver - legacy layer + + +#ifndef PPI_ENABLED +#define PPI_ENABLED 0 +#endif + +// <e> PWM_ENABLED - nrf_drv_pwm - PWM peripheral driver - legacy layer +//========================================================== +#ifndef PWM_ENABLED +#define PWM_ENABLED 0 +#endif +// <o> PWM_DEFAULT_CONFIG_OUT0_PIN - Out0 pin <0-31> + + +#ifndef PWM_DEFAULT_CONFIG_OUT0_PIN +#define PWM_DEFAULT_CONFIG_OUT0_PIN 31 +#endif + +// <o> PWM_DEFAULT_CONFIG_OUT1_PIN - Out1 pin <0-31> + + +#ifndef PWM_DEFAULT_CONFIG_OUT1_PIN +#define PWM_DEFAULT_CONFIG_OUT1_PIN 31 +#endif + +// <o> PWM_DEFAULT_CONFIG_OUT2_PIN - Out2 pin <0-31> + + +#ifndef PWM_DEFAULT_CONFIG_OUT2_PIN +#define PWM_DEFAULT_CONFIG_OUT2_PIN 31 +#endif + +// <o> PWM_DEFAULT_CONFIG_OUT3_PIN - Out3 pin <0-31> + + +#ifndef PWM_DEFAULT_CONFIG_OUT3_PIN +#define PWM_DEFAULT_CONFIG_OUT3_PIN 31 +#endif + +// <o> PWM_DEFAULT_CONFIG_BASE_CLOCK - Base clock + +// <0=> 16 MHz +// <1=> 8 MHz +// <2=> 4 MHz +// <3=> 2 MHz +// <4=> 1 MHz +// <5=> 500 kHz +// <6=> 250 kHz +// <7=> 125 kHz + +#ifndef PWM_DEFAULT_CONFIG_BASE_CLOCK +#define PWM_DEFAULT_CONFIG_BASE_CLOCK 4 +#endif + +// <o> PWM_DEFAULT_CONFIG_COUNT_MODE - Count mode + +// <0=> Up +// <1=> Up and Down + +#ifndef PWM_DEFAULT_CONFIG_COUNT_MODE +#define PWM_DEFAULT_CONFIG_COUNT_MODE 0 +#endif + +// <o> PWM_DEFAULT_CONFIG_TOP_VALUE - Top value +#ifndef PWM_DEFAULT_CONFIG_TOP_VALUE +#define PWM_DEFAULT_CONFIG_TOP_VALUE 1000 +#endif + +// <o> PWM_DEFAULT_CONFIG_LOAD_MODE - Load mode + +// <0=> Common +// <1=> Grouped +// <2=> Individual +// <3=> Waveform + +#ifndef PWM_DEFAULT_CONFIG_LOAD_MODE +#define PWM_DEFAULT_CONFIG_LOAD_MODE 0 +#endif + +// <o> PWM_DEFAULT_CONFIG_STEP_MODE - Step mode + +// <0=> Auto +// <1=> Triggered + +#ifndef PWM_DEFAULT_CONFIG_STEP_MODE +#define PWM_DEFAULT_CONFIG_STEP_MODE 0 +#endif + +// <o> PWM_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef PWM_DEFAULT_CONFIG_IRQ_PRIORITY +#define PWM_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <q> PWM0_ENABLED - Enable PWM0 instance + + +#ifndef PWM0_ENABLED +#define PWM0_ENABLED 0 +#endif + +// <q> PWM1_ENABLED - Enable PWM1 instance + + +#ifndef PWM1_ENABLED +#define PWM1_ENABLED 0 +#endif + +// <q> PWM2_ENABLED - Enable PWM2 instance + + +#ifndef PWM2_ENABLED +#define PWM2_ENABLED 0 +#endif + +// <q> PWM3_ENABLED - Enable PWM3 instance + + +#ifndef PWM3_ENABLED +#define PWM3_ENABLED 0 +#endif + +// </e> + +// <e> QDEC_ENABLED - nrf_drv_qdec - QDEC peripheral driver - legacy layer +//========================================================== +#ifndef QDEC_ENABLED +#define QDEC_ENABLED 0 +#endif +// <o> QDEC_CONFIG_REPORTPER - Report period + +// <0=> 10 Samples +// <1=> 40 Samples +// <2=> 80 Samples +// <3=> 120 Samples +// <4=> 160 Samples +// <5=> 200 Samples +// <6=> 240 Samples +// <7=> 280 Samples + +#ifndef QDEC_CONFIG_REPORTPER +#define QDEC_CONFIG_REPORTPER 0 +#endif + +// <o> QDEC_CONFIG_SAMPLEPER - Sample period + +// <0=> 128 us +// <1=> 256 us +// <2=> 512 us +// <3=> 1024 us +// <4=> 2048 us +// <5=> 4096 us +// <6=> 8192 us +// <7=> 16384 us + +#ifndef QDEC_CONFIG_SAMPLEPER +#define QDEC_CONFIG_SAMPLEPER 7 +#endif + +// <o> QDEC_CONFIG_PIO_A - A pin <0-31> + + +#ifndef QDEC_CONFIG_PIO_A +#define QDEC_CONFIG_PIO_A 31 +#endif + +// <o> QDEC_CONFIG_PIO_B - B pin <0-31> + + +#ifndef QDEC_CONFIG_PIO_B +#define QDEC_CONFIG_PIO_B 31 +#endif + +// <o> QDEC_CONFIG_PIO_LED - LED pin <0-31> + + +#ifndef QDEC_CONFIG_PIO_LED +#define QDEC_CONFIG_PIO_LED 31 +#endif + +// <o> QDEC_CONFIG_LEDPRE - LED pre +#ifndef QDEC_CONFIG_LEDPRE +#define QDEC_CONFIG_LEDPRE 511 +#endif + +// <o> QDEC_CONFIG_LEDPOL - LED polarity + +// <0=> Active low +// <1=> Active high + +#ifndef QDEC_CONFIG_LEDPOL +#define QDEC_CONFIG_LEDPOL 1 +#endif + +// <q> QDEC_CONFIG_DBFEN - Debouncing enable + + +#ifndef QDEC_CONFIG_DBFEN +#define QDEC_CONFIG_DBFEN 0 +#endif + +// <q> QDEC_CONFIG_SAMPLE_INTEN - Sample ready interrupt enable + + +#ifndef QDEC_CONFIG_SAMPLE_INTEN +#define QDEC_CONFIG_SAMPLE_INTEN 0 +#endif + +// <o> QDEC_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef QDEC_CONFIG_IRQ_PRIORITY +#define QDEC_CONFIG_IRQ_PRIORITY 6 +#endif + +// </e> + +// <e> QSPI_ENABLED - nrf_drv_qspi - QSPI peripheral driver - legacy layer +//========================================================== +#ifndef QSPI_ENABLED +#define QSPI_ENABLED 0 +#endif +// <o> QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns). <0-255> + + +#ifndef QSPI_CONFIG_SCK_DELAY +#define QSPI_CONFIG_SCK_DELAY 1 +#endif + +// <o> QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. +#ifndef QSPI_CONFIG_XIP_OFFSET +#define QSPI_CONFIG_XIP_OFFSET 0 +#endif + +// <o> QSPI_CONFIG_READOC - Number of data lines and opcode used for reading. + +// <0=> FastRead +// <1=> Read2O +// <2=> Read2IO +// <3=> Read4O +// <4=> Read4IO + +#ifndef QSPI_CONFIG_READOC +#define QSPI_CONFIG_READOC 0 +#endif + +// <o> QSPI_CONFIG_WRITEOC - Number of data lines and opcode used for writing. + +// <0=> PP +// <1=> PP2O +// <2=> PP4O +// <3=> PP4IO + +#ifndef QSPI_CONFIG_WRITEOC +#define QSPI_CONFIG_WRITEOC 0 +#endif + +// <o> QSPI_CONFIG_ADDRMODE - Addressing mode. + +// <0=> 24bit +// <1=> 32bit + +#ifndef QSPI_CONFIG_ADDRMODE +#define QSPI_CONFIG_ADDRMODE 0 +#endif + +// <o> QSPI_CONFIG_MODE - SPI mode. + +// <0=> Mode 0 +// <1=> Mode 1 + +#ifndef QSPI_CONFIG_MODE +#define QSPI_CONFIG_MODE 0 +#endif + +// <o> QSPI_CONFIG_FREQUENCY - Frequency divider. + +// <0=> 32MHz/1 +// <1=> 32MHz/2 +// <2=> 32MHz/3 +// <3=> 32MHz/4 +// <4=> 32MHz/5 +// <5=> 32MHz/6 +// <6=> 32MHz/7 +// <7=> 32MHz/8 +// <8=> 32MHz/9 +// <9=> 32MHz/10 +// <10=> 32MHz/11 +// <11=> 32MHz/12 +// <12=> 32MHz/13 +// <13=> 32MHz/14 +// <14=> 32MHz/15 +// <15=> 32MHz/16 + +#ifndef QSPI_CONFIG_FREQUENCY +#define QSPI_CONFIG_FREQUENCY 15 +#endif + +// <s> QSPI_PIN_SCK - SCK pin value. +#ifndef QSPI_PIN_SCK +#define QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED +#endif + +// <s> QSPI_PIN_CSN - CSN pin value. +#ifndef QSPI_PIN_CSN +#define QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED +#endif + +// <s> QSPI_PIN_IO0 - IO0 pin value. +#ifndef QSPI_PIN_IO0 +#define QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED +#endif + +// <s> QSPI_PIN_IO1 - IO1 pin value. +#ifndef QSPI_PIN_IO1 +#define QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED +#endif + +// <s> QSPI_PIN_IO2 - IO2 pin value. +#ifndef QSPI_PIN_IO2 +#define QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED +#endif + +// <s> QSPI_PIN_IO3 - IO3 pin value. +#ifndef QSPI_PIN_IO3 +#define QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED +#endif + +// <o> QSPI_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef QSPI_CONFIG_IRQ_PRIORITY +#define QSPI_CONFIG_IRQ_PRIORITY 6 +#endif + +// </e> + +// <e> RNG_ENABLED - nrf_drv_rng - RNG peripheral driver - legacy layer +//========================================================== +#ifndef RNG_ENABLED +#define RNG_ENABLED 0 +#endif +// <q> RNG_CONFIG_ERROR_CORRECTION - Error correction + + +#ifndef RNG_CONFIG_ERROR_CORRECTION +#define RNG_CONFIG_ERROR_CORRECTION 1 +#endif + +// <o> RNG_CONFIG_POOL_SIZE - Pool size +#ifndef RNG_CONFIG_POOL_SIZE +#define RNG_CONFIG_POOL_SIZE 64 +#endif + +// <o> RNG_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef RNG_CONFIG_IRQ_PRIORITY +#define RNG_CONFIG_IRQ_PRIORITY 6 +#endif + +// </e> + +// <e> RTC_ENABLED - nrf_drv_rtc - RTC peripheral driver - legacy layer +//========================================================== +#ifndef RTC_ENABLED +#define RTC_ENABLED 0 +#endif +// <o> RTC_DEFAULT_CONFIG_FREQUENCY - Frequency <16-32768> + + +#ifndef RTC_DEFAULT_CONFIG_FREQUENCY +#define RTC_DEFAULT_CONFIG_FREQUENCY 32768 +#endif + +// <q> RTC_DEFAULT_CONFIG_RELIABLE - Ensures safe compare event triggering + + +#ifndef RTC_DEFAULT_CONFIG_RELIABLE +#define RTC_DEFAULT_CONFIG_RELIABLE 0 +#endif + +// <o> RTC_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef RTC_DEFAULT_CONFIG_IRQ_PRIORITY +#define RTC_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <q> RTC0_ENABLED - Enable RTC0 instance + + +#ifndef RTC0_ENABLED +#define RTC0_ENABLED 0 +#endif + +// <q> RTC1_ENABLED - Enable RTC1 instance + + +#ifndef RTC1_ENABLED +#define RTC1_ENABLED 0 +#endif + +// <q> RTC2_ENABLED - Enable RTC2 instance + + +#ifndef RTC2_ENABLED +#define RTC2_ENABLED 0 +#endif + +// <o> NRF_MAXIMUM_LATENCY_US - Maximum possible time[us] in highest priority interrupt +#ifndef NRF_MAXIMUM_LATENCY_US +#define NRF_MAXIMUM_LATENCY_US 2000 +#endif + +// </e> + +// <e> SAADC_ENABLED - nrf_drv_saadc - SAADC peripheral driver - legacy layer +//========================================================== +#ifndef SAADC_ENABLED +#define SAADC_ENABLED 0 +#endif +// <o> SAADC_CONFIG_RESOLUTION - Resolution + +// <0=> 8 bit +// <1=> 10 bit +// <2=> 12 bit +// <3=> 14 bit + +#ifndef SAADC_CONFIG_RESOLUTION +#define SAADC_CONFIG_RESOLUTION 1 +#endif + +// <o> SAADC_CONFIG_OVERSAMPLE - Sample period + +// <0=> Disabled +// <1=> 2x +// <2=> 4x +// <3=> 8x +// <4=> 16x +// <5=> 32x +// <6=> 64x +// <7=> 128x +// <8=> 256x + +#ifndef SAADC_CONFIG_OVERSAMPLE +#define SAADC_CONFIG_OVERSAMPLE 0 +#endif + +// <q> SAADC_CONFIG_LP_MODE - Enabling low power mode + + +#ifndef SAADC_CONFIG_LP_MODE +#define SAADC_CONFIG_LP_MODE 0 +#endif + +// <o> SAADC_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef SAADC_CONFIG_IRQ_PRIORITY +#define SAADC_CONFIG_IRQ_PRIORITY 6 +#endif + +// </e> + +// <e> SPIS_ENABLED - nrf_drv_spis - SPIS peripheral driver - legacy layer +//========================================================== +#ifndef SPIS_ENABLED +#define SPIS_ENABLED 0 +#endif +// <o> SPIS_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef SPIS_DEFAULT_CONFIG_IRQ_PRIORITY +#define SPIS_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <o> SPIS_DEFAULT_MODE - Mode + +// <0=> MODE_0 +// <1=> MODE_1 +// <2=> MODE_2 +// <3=> MODE_3 + +#ifndef SPIS_DEFAULT_MODE +#define SPIS_DEFAULT_MODE 0 +#endif + +// <o> SPIS_DEFAULT_BIT_ORDER - SPIS default bit order + +// <0=> MSB first +// <1=> LSB first + +#ifndef SPIS_DEFAULT_BIT_ORDER +#define SPIS_DEFAULT_BIT_ORDER 0 +#endif + +// <o> SPIS_DEFAULT_DEF - SPIS default DEF character <0-255> + + +#ifndef SPIS_DEFAULT_DEF +#define SPIS_DEFAULT_DEF 255 +#endif + +// <o> SPIS_DEFAULT_ORC - SPIS default ORC character <0-255> + + +#ifndef SPIS_DEFAULT_ORC +#define SPIS_DEFAULT_ORC 255 +#endif + +// <q> SPIS0_ENABLED - Enable SPIS0 instance + + +#ifndef SPIS0_ENABLED +#define SPIS0_ENABLED 0 +#endif + +// <q> SPIS1_ENABLED - Enable SPIS1 instance + + +#ifndef SPIS1_ENABLED +#define SPIS1_ENABLED 0 +#endif + +// <q> SPIS2_ENABLED - Enable SPIS2 instance + + +#ifndef SPIS2_ENABLED +#define SPIS2_ENABLED 0 +#endif + +// </e> + +// <e> SPI_ENABLED - nrf_drv_spi - SPI/SPIM peripheral driver - legacy layer +//========================================================== +#ifndef SPI_ENABLED +#define SPI_ENABLED 0 +#endif +// <o> SPI_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef SPI_DEFAULT_CONFIG_IRQ_PRIORITY +#define SPI_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <o> NRF_SPI_DRV_MISO_PULLUP_CFG - MISO PIN pull-up configuration. + +// <0=> NRF_GPIO_PIN_NOPULL +// <1=> NRF_GPIO_PIN_PULLDOWN +// <3=> NRF_GPIO_PIN_PULLUP + +#ifndef NRF_SPI_DRV_MISO_PULLUP_CFG +#define NRF_SPI_DRV_MISO_PULLUP_CFG 1 +#endif + +// <e> SPI0_ENABLED - Enable SPI0 instance +//========================================================== +#ifndef SPI0_ENABLED +#define SPI0_ENABLED 0 +#endif +// <q> SPI0_USE_EASY_DMA - Use EasyDMA + + +#ifndef SPI0_USE_EASY_DMA +#define SPI0_USE_EASY_DMA 1 +#endif + +// </e> + +// <e> SPI1_ENABLED - Enable SPI1 instance +//========================================================== +#ifndef SPI1_ENABLED +#define SPI1_ENABLED 0 +#endif +// <q> SPI1_USE_EASY_DMA - Use EasyDMA + + +#ifndef SPI1_USE_EASY_DMA +#define SPI1_USE_EASY_DMA 1 +#endif + +// </e> + +// <e> SPI2_ENABLED - Enable SPI2 instance +//========================================================== +#ifndef SPI2_ENABLED +#define SPI2_ENABLED 0 +#endif +// <q> SPI2_USE_EASY_DMA - Use EasyDMA + + +#ifndef SPI2_USE_EASY_DMA +#define SPI2_USE_EASY_DMA 1 +#endif + +// </e> + +// </e> + +// <e> TIMER_ENABLED - nrf_drv_timer - TIMER periperal driver - legacy layer +//========================================================== +#ifndef TIMER_ENABLED +#define TIMER_ENABLED 0 +#endif +// <o> TIMER_DEFAULT_CONFIG_FREQUENCY - Timer frequency if in Timer mode + +// <0=> 16 MHz +// <1=> 8 MHz +// <2=> 4 MHz +// <3=> 2 MHz +// <4=> 1 MHz +// <5=> 500 kHz +// <6=> 250 kHz +// <7=> 125 kHz +// <8=> 62.5 kHz +// <9=> 31.25 kHz + +#ifndef TIMER_DEFAULT_CONFIG_FREQUENCY +#define TIMER_DEFAULT_CONFIG_FREQUENCY 0 +#endif + +// <o> TIMER_DEFAULT_CONFIG_MODE - Timer mode or operation + +// <0=> Timer +// <1=> Counter + +#ifndef TIMER_DEFAULT_CONFIG_MODE +#define TIMER_DEFAULT_CONFIG_MODE 0 +#endif + +// <o> TIMER_DEFAULT_CONFIG_BIT_WIDTH - Timer counter bit width + +// <0=> 16 bit +// <1=> 8 bit +// <2=> 24 bit +// <3=> 32 bit + +#ifndef TIMER_DEFAULT_CONFIG_BIT_WIDTH +#define TIMER_DEFAULT_CONFIG_BIT_WIDTH 0 +#endif + +// <o> TIMER_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef TIMER_DEFAULT_CONFIG_IRQ_PRIORITY +#define TIMER_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <q> TIMER0_ENABLED - Enable TIMER0 instance + + +#ifndef TIMER0_ENABLED +#define TIMER0_ENABLED 0 +#endif + +// <q> TIMER1_ENABLED - Enable TIMER1 instance + + +#ifndef TIMER1_ENABLED +#define TIMER1_ENABLED 0 +#endif + +// <q> TIMER2_ENABLED - Enable TIMER2 instance + + +#ifndef TIMER2_ENABLED +#define TIMER2_ENABLED 0 +#endif + +// <q> TIMER3_ENABLED - Enable TIMER3 instance + + +#ifndef TIMER3_ENABLED +#define TIMER3_ENABLED 0 +#endif + +// <q> TIMER4_ENABLED - Enable TIMER4 instance + + +#ifndef TIMER4_ENABLED +#define TIMER4_ENABLED 0 +#endif + +// </e> + +// <e> TWIS_ENABLED - nrf_drv_twis - TWIS peripheral driver - legacy layer +//========================================================== +#ifndef TWIS_ENABLED +#define TWIS_ENABLED 0 +#endif +// <q> TWIS0_ENABLED - Enable TWIS0 instance + + +#ifndef TWIS0_ENABLED +#define TWIS0_ENABLED 0 +#endif + +// <q> TWIS1_ENABLED - Enable TWIS1 instance + + +#ifndef TWIS1_ENABLED +#define TWIS1_ENABLED 0 +#endif + +// <q> TWIS_ASSUME_INIT_AFTER_RESET_ONLY - Assume that any instance would be initialized only once + + +// <i> Optimization flag. Registers used by TWIS are shared by other peripherals. Normally, during initialization driver tries to clear all registers to known state before doing the initialization itself. This gives initialization safe procedure, no matter when it would be called. If you activate TWIS only once and do never uninitialize it - set this flag to 1 what gives more optimal code. + +#ifndef TWIS_ASSUME_INIT_AFTER_RESET_ONLY +#define TWIS_ASSUME_INIT_AFTER_RESET_ONLY 0 +#endif + +// <q> TWIS_NO_SYNC_MODE - Remove support for synchronous mode + + +// <i> Synchronous mode would be used in specific situations. And it uses some additional code and data memory to safely process state machine by polling it in status functions. If this functionality is not required it may be disabled to free some resources. + +#ifndef TWIS_NO_SYNC_MODE +#define TWIS_NO_SYNC_MODE 0 +#endif + +// <o> TWIS_DEFAULT_CONFIG_ADDR0 - Address0 +#ifndef TWIS_DEFAULT_CONFIG_ADDR0 +#define TWIS_DEFAULT_CONFIG_ADDR0 0 +#endif + +// <o> TWIS_DEFAULT_CONFIG_ADDR1 - Address1 +#ifndef TWIS_DEFAULT_CONFIG_ADDR1 +#define TWIS_DEFAULT_CONFIG_ADDR1 0 +#endif + +// <o> TWIS_DEFAULT_CONFIG_SCL_PULL - SCL pin pull configuration + +// <0=> Disabled +// <1=> Pull down +// <3=> Pull up + +#ifndef TWIS_DEFAULT_CONFIG_SCL_PULL +#define TWIS_DEFAULT_CONFIG_SCL_PULL 0 +#endif + +// <o> TWIS_DEFAULT_CONFIG_SDA_PULL - SDA pin pull configuration + +// <0=> Disabled +// <1=> Pull down +// <3=> Pull up + +#ifndef TWIS_DEFAULT_CONFIG_SDA_PULL +#define TWIS_DEFAULT_CONFIG_SDA_PULL 0 +#endif + +// <o> TWIS_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef TWIS_DEFAULT_CONFIG_IRQ_PRIORITY +#define TWIS_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// </e> + +// <e> TWI_ENABLED - nrf_drv_twi - TWI/TWIM peripheral driver - legacy layer +//========================================================== +#ifndef TWI_ENABLED +#define TWI_ENABLED 0 +#endif +// <o> TWI_DEFAULT_CONFIG_FREQUENCY - Frequency + +// <26738688=> 100k +// <67108864=> 250k +// <104857600=> 400k + +#ifndef TWI_DEFAULT_CONFIG_FREQUENCY +#define TWI_DEFAULT_CONFIG_FREQUENCY 26738688 +#endif + +// <q> TWI_DEFAULT_CONFIG_CLR_BUS_INIT - Enables bus clearing procedure during init + + +#ifndef TWI_DEFAULT_CONFIG_CLR_BUS_INIT +#define TWI_DEFAULT_CONFIG_CLR_BUS_INIT 0 +#endif + +// <q> TWI_DEFAULT_CONFIG_HOLD_BUS_UNINIT - Enables bus holding after uninit + + +#ifndef TWI_DEFAULT_CONFIG_HOLD_BUS_UNINIT +#define TWI_DEFAULT_CONFIG_HOLD_BUS_UNINIT 0 +#endif + +// <o> TWI_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef TWI_DEFAULT_CONFIG_IRQ_PRIORITY +#define TWI_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <e> TWI0_ENABLED - Enable TWI0 instance +//========================================================== +#ifndef TWI0_ENABLED +#define TWI0_ENABLED 0 +#endif +// <q> TWI0_USE_EASY_DMA - Use EasyDMA (if present) + + +#ifndef TWI0_USE_EASY_DMA +#define TWI0_USE_EASY_DMA 0 +#endif + +// </e> + +// <e> TWI1_ENABLED - Enable TWI1 instance +//========================================================== +#ifndef TWI1_ENABLED +#define TWI1_ENABLED 0 +#endif +// <q> TWI1_USE_EASY_DMA - Use EasyDMA (if present) + + +#ifndef TWI1_USE_EASY_DMA +#define TWI1_USE_EASY_DMA 0 +#endif + +// </e> + +// </e> + +// <e> UART_ENABLED - nrf_drv_uart - UART/UARTE peripheral driver - legacy layer +//========================================================== +#ifndef UART_ENABLED +#define UART_ENABLED 0 +#endif +// <o> UART_DEFAULT_CONFIG_HWFC - Hardware Flow Control + +// <0=> Disabled +// <1=> Enabled + +#ifndef UART_DEFAULT_CONFIG_HWFC +#define UART_DEFAULT_CONFIG_HWFC 0 +#endif + +// <o> UART_DEFAULT_CONFIG_PARITY - Parity + +// <0=> Excluded +// <14=> Included + +#ifndef UART_DEFAULT_CONFIG_PARITY +#define UART_DEFAULT_CONFIG_PARITY 0 +#endif + +// <o> UART_DEFAULT_CONFIG_BAUDRATE - Default Baudrate + +// <323584=> 1200 baud +// <643072=> 2400 baud +// <1290240=> 4800 baud +// <2576384=> 9600 baud +// <3862528=> 14400 baud +// <5152768=> 19200 baud +// <7716864=> 28800 baud +// <10289152=> 38400 baud +// <15400960=> 57600 baud +// <20615168=> 76800 baud +// <30801920=> 115200 baud +// <61865984=> 230400 baud +// <67108864=> 250000 baud +// <121634816=> 460800 baud +// <251658240=> 921600 baud +// <268435456=> 1000000 baud + +#ifndef UART_DEFAULT_CONFIG_BAUDRATE +#define UART_DEFAULT_CONFIG_BAUDRATE 30801920 +#endif + +// <o> UART_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef UART_DEFAULT_CONFIG_IRQ_PRIORITY +#define UART_DEFAULT_CONFIG_IRQ_PRIORITY 6 +#endif + +// <q> UART_EASY_DMA_SUPPORT - Driver supporting EasyDMA + + +#ifndef UART_EASY_DMA_SUPPORT +#define UART_EASY_DMA_SUPPORT 1 +#endif + +// <q> UART_LEGACY_SUPPORT - Driver supporting Legacy mode + + +#ifndef UART_LEGACY_SUPPORT +#define UART_LEGACY_SUPPORT 1 +#endif + +// <e> UART0_ENABLED - Enable UART0 instance +//========================================================== +#ifndef UART0_ENABLED +#define UART0_ENABLED 0 +#endif +// <q> UART0_CONFIG_USE_EASY_DMA - Default setting for using EasyDMA + + +#ifndef UART0_CONFIG_USE_EASY_DMA +#define UART0_CONFIG_USE_EASY_DMA 1 +#endif + +// </e> + +// <e> UART1_ENABLED - Enable UART1 instance +//========================================================== +#ifndef UART1_ENABLED +#define UART1_ENABLED 0 +#endif +// </e> + +// </e> + +// <e> USBD_ENABLED - nrf_drv_usbd - Software Component +//========================================================== +#ifndef USBD_ENABLED +#define USBD_ENABLED 0 +#endif +// <o> USBD_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef USBD_CONFIG_IRQ_PRIORITY +#define USBD_CONFIG_IRQ_PRIORITY 6 +#endif + +// <o> USBD_CONFIG_DMASCHEDULER_MODE - USBD SMA scheduler working scheme + +// <0=> Prioritized access +// <1=> Round Robin + +#ifndef USBD_CONFIG_DMASCHEDULER_MODE +#define USBD_CONFIG_DMASCHEDULER_MODE 0 +#endif + +// <q> USBD_CONFIG_DMASCHEDULER_ISO_BOOST - Give priority to isochronous transfers + + +// <i> This option gives priority to isochronous transfers. +// <i> Enabling it assures that isochronous transfers are always processed, +// <i> even if multiple other transfers are pending. +// <i> Isochronous endpoints are prioritized before the usbd_dma_scheduler_algorithm +// <i> function is called, so the option is independent of the algorithm chosen. + +#ifndef USBD_CONFIG_DMASCHEDULER_ISO_BOOST +#define USBD_CONFIG_DMASCHEDULER_ISO_BOOST 1 +#endif + +// <q> USBD_CONFIG_ISO_IN_ZLP - Respond to an IN token on ISO IN endpoint with ZLP when no data is ready + + +// <i> If set, ISO IN endpoint will respond to an IN token with ZLP when no data is ready to be sent. +// <i> Else, there will be no response. +// <i> NOTE: This option does not work on Engineering A chip. + +#ifndef USBD_CONFIG_ISO_IN_ZLP +#define USBD_CONFIG_ISO_IN_ZLP 0 +#endif + +// </e> + +// <e> WDT_ENABLED - nrf_drv_wdt - WDT peripheral driver - legacy layer +//========================================================== +#ifndef WDT_ENABLED +#define WDT_ENABLED 0 +#endif +// <o> WDT_CONFIG_BEHAVIOUR - WDT behavior in CPU SLEEP or HALT mode + +// <1=> Run in SLEEP, Pause in HALT +// <8=> Pause in SLEEP, Run in HALT +// <9=> Run in SLEEP and HALT +// <0=> Pause in SLEEP and HALT + +#ifndef WDT_CONFIG_BEHAVIOUR +#define WDT_CONFIG_BEHAVIOUR 1 +#endif + +// <o> WDT_CONFIG_RELOAD_VALUE - Reload value <15-4294967295> + + +#ifndef WDT_CONFIG_RELOAD_VALUE +#define WDT_CONFIG_RELOAD_VALUE 2000 +#endif + +// <o> WDT_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef WDT_CONFIG_IRQ_PRIORITY +#define WDT_CONFIG_IRQ_PRIORITY 6 +#endif + +// </e> + +// </h> +//========================================================== + +// <h> nRF_Drivers_External + +//========================================================== +// <q> NRF_TWI_SENSOR_ENABLED - nrf_twi_sensor - nRF TWI Sensor module + + +#ifndef NRF_TWI_SENSOR_ENABLED +#define NRF_TWI_SENSOR_ENABLED 0 +#endif + +// </h> +//========================================================== + +// <h> nRF_Libraries + +//========================================================== +// <q> APP_GPIOTE_ENABLED - app_gpiote - GPIOTE events dispatcher + + +#ifndef APP_GPIOTE_ENABLED +#define APP_GPIOTE_ENABLED 0 +#endif + +// <q> APP_PWM_ENABLED - app_pwm - PWM functionality + + +#ifndef APP_PWM_ENABLED +#define APP_PWM_ENABLED 0 +#endif + +// <e> APP_SCHEDULER_ENABLED - app_scheduler - Events scheduler +//========================================================== +#ifndef APP_SCHEDULER_ENABLED +#define APP_SCHEDULER_ENABLED 0 +#endif +// <q> APP_SCHEDULER_WITH_PAUSE - Enabling pause feature + + +#ifndef APP_SCHEDULER_WITH_PAUSE +#define APP_SCHEDULER_WITH_PAUSE 0 +#endif + +// <q> APP_SCHEDULER_WITH_PROFILER - Enabling scheduler profiling + + +#ifndef APP_SCHEDULER_WITH_PROFILER +#define APP_SCHEDULER_WITH_PROFILER 0 +#endif + +// </e> + +// <e> APP_SDCARD_ENABLED - app_sdcard - SD/MMC card support using SPI +//========================================================== +#ifndef APP_SDCARD_ENABLED +#define APP_SDCARD_ENABLED 0 +#endif +// <o> APP_SDCARD_SPI_INSTANCE - SPI instance used + +// <0=> 0 +// <1=> 1 +// <2=> 2 + +#ifndef APP_SDCARD_SPI_INSTANCE +#define APP_SDCARD_SPI_INSTANCE 0 +#endif + +// <o> APP_SDCARD_FREQ_INIT - SPI frequency + +// <33554432=> 125 kHz +// <67108864=> 250 kHz +// <134217728=> 500 kHz +// <268435456=> 1 MHz +// <536870912=> 2 MHz +// <1073741824=> 4 MHz +// <2147483648=> 8 MHz + +#ifndef APP_SDCARD_FREQ_INIT +#define APP_SDCARD_FREQ_INIT 67108864 +#endif + +// <o> APP_SDCARD_FREQ_DATA - SPI frequency + +// <33554432=> 125 kHz +// <67108864=> 250 kHz +// <134217728=> 500 kHz +// <268435456=> 1 MHz +// <536870912=> 2 MHz +// <1073741824=> 4 MHz +// <2147483648=> 8 MHz + +#ifndef APP_SDCARD_FREQ_DATA +#define APP_SDCARD_FREQ_DATA 1073741824 +#endif + +// </e> + +// <e> APP_TIMER_ENABLED - app_timer - Application timer functionality +//========================================================== +#ifndef APP_TIMER_ENABLED +#define APP_TIMER_ENABLED 0 +#endif +// <o> APP_TIMER_CONFIG_RTC_FREQUENCY - Configure RTC prescaler. + +// <0=> 32768 Hz +// <1=> 16384 Hz +// <3=> 8192 Hz +// <7=> 4096 Hz +// <15=> 2048 Hz +// <31=> 1024 Hz + +#ifndef APP_TIMER_CONFIG_RTC_FREQUENCY +#define APP_TIMER_CONFIG_RTC_FREQUENCY 1 +#endif + +// <o> APP_TIMER_CONFIG_IRQ_PRIORITY - Interrupt priority + + +// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice +// <0=> 0 (highest) +// <1=> 1 +// <2=> 2 +// <3=> 3 +// <4=> 4 +// <5=> 5 +// <6=> 6 +// <7=> 7 + +#ifndef APP_TIMER_CONFIG_IRQ_PRIORITY +#define APP_TIMER_CONFIG_IRQ_PRIORITY 6 +#endif + +// <o> APP_TIMER_CONFIG_OP_QUEUE_SIZE - Capacity of timer requests queue. +// <i> Size of the queue depends on how many timers are used +// <i> in the system, how often timers are started and overall +// <i> system latency. If queue size is too small app_timer calls +// <i> will fail. + +#ifndef APP_TIMER_CONFIG_OP_QUEUE_SIZE +#define APP_TIMER_CONFIG_OP_QUEUE_SIZE 10 +#endif + +// <q> APP_TIMER_CONFIG_USE_SCHEDULER - Enable scheduling app_timer events to app_scheduler + + +#ifndef APP_TIMER_CONFIG_USE_SCHEDULER +#define APP_TIMER_CONFIG_USE_SCHEDULER 0 +#endif + +// <q> APP_TIMER_KEEPS_RTC_ACTIVE - Enable RTC always on + + +// <i> If option is enabled RTC is kept running even if there is no active timers. +// <i> This option can be used when app_timer is used for timestamping. + +#ifndef APP_TIMER_KEEPS_RTC_ACTIVE +#define APP_TIMER_KEEPS_RTC_ACTIVE 0 +#endif + +// <o> APP_TIMER_SAFE_WINDOW_MS - Maximum possible latency (in milliseconds) of handling app_timer event. +// <i> Maximum possible timeout that can be set is reduced by safe window. +// <i> Example: RTC frequency 16384 Hz, maximum possible timeout 1024 seconds - APP_TIMER_SAFE_WINDOW_MS. +// <i> Since RTC is not stopped when processor is halted in debugging session, this value +// <i> must cover it if debugging is needed. It is possible to halt processor for APP_TIMER_SAFE_WINDOW_MS +// <i> without corrupting app_timer behavior. + +#ifndef APP_TIMER_SAFE_WINDOW_MS +#define APP_TIMER_SAFE_WINDOW_MS 300000 +#endif + +// <h> App Timer Legacy configuration - Legacy configuration. + +//========================================================== +// <q> APP_TIMER_WITH_PROFILER - Enable app_timer profiling + + +#ifndef APP_TIMER_WITH_PROFILER +#define APP_TIMER_WITH_PROFILER 0 +#endif + +// <q> APP_TIMER_CONFIG_SWI_NUMBER - Configure SWI instance used. + + +#ifndef APP_TIMER_CONFIG_SWI_NUMBER +#define APP_TIMER_CONFIG_SWI_NUMBER 0 +#endif + +// </h> +//========================================================== + +// </e> + +// <q> APP_USBD_AUDIO_ENABLED - app_usbd_audio - USB AUDIO class + + +#ifndef APP_USBD_AUDIO_ENABLED +#define APP_USBD_AUDIO_ENABLED 0 +#endif + +// <e> APP_USBD_ENABLED - app_usbd - USB Device library +//========================================================== +#ifndef APP_USBD_ENABLED +#define APP_USBD_ENABLED 0 +#endif +// <o> APP_USBD_VID - Vendor ID. <0x0000-0xFFFF> + + +// <i> Note: This value is not editable in Configuration Wizard. +// <i> Vendor ID ordered from USB IF: http://www.usb.org/developers/vendor/ + +#ifndef APP_USBD_VID +#define APP_USBD_VID 0 +#endif + +// <o> APP_USBD_PID - Product ID. <0x0000-0xFFFF> + + +// <i> Note: This value is not editable in Configuration Wizard. +// <i> Selected Product ID + +#ifndef APP_USBD_PID +#define APP_USBD_PID 0 +#endif + +// <o> APP_USBD_DEVICE_VER_MAJOR - Major device version <0-99> + + +// <i> Major device version, will be converted automatically to BCD notation. Use just decimal values. + +#ifndef APP_USBD_DEVICE_VER_MAJOR +#define APP_USBD_DEVICE_VER_MAJOR 1 +#endif + +// <o> APP_USBD_DEVICE_VER_MINOR - Minor device version <0-9> + + +// <i> Minor device version, will be converted automatically to BCD notation. Use just decimal values. + +#ifndef APP_USBD_DEVICE_VER_MINOR +#define APP_USBD_DEVICE_VER_MINOR 0 +#endif + +// <o> APP_USBD_DEVICE_VER_SUB - Sub-minor device version <0-9> + + +// <i> Sub-minor device version, will be converted automatically to BCD notation. Use just decimal values. + +#ifndef APP_USBD_DEVICE_VER_SUB +#define APP_USBD_DEVICE_VER_SUB 0 +#endif + +// <q> APP_USBD_CONFIG_SELF_POWERED - Self-powered device, as opposed to bus-powered. + + +#ifndef APP_USBD_CONFIG_SELF_POWERED +#define APP_USBD_CONFIG_SELF_POWERED 1 +#endif + +// <o> APP_USBD_CONFIG_MAX_POWER - MaxPower field in configuration descriptor in milliamps. <0-500> + + +#ifndef APP_USBD_CONFIG_MAX_POWER +#define APP_USBD_CONFIG_MAX_POWER 100 +#endif + +// <q> APP_USBD_CONFIG_POWER_EVENTS_PROCESS - Process power events. + + +// <i> Enable processing power events in USB event handler. + +#ifndef APP_USBD_CONFIG_POWER_EVENTS_PROCESS +#define APP_USBD_CONFIG_POWER_EVENTS_PROCESS 1 +#endif + +// <e> APP_USBD_CONFIG_EVENT_QUEUE_ENABLE - Enable event queue. + +// <i> This is the default configuration when all the events are placed into internal queue. +// <i> Disable it when an external queue is used like app_scheduler or if you wish to process all events inside interrupts. +// <i> Processing all events from the interrupt level adds requirement not to call any functions that modifies the USBD library state from the context higher than USB interrupt context. +// <i> Functions that modify USBD state are functions for sleep, wakeup, start, stop, enable, and disable. +//========================================================== +#ifndef APP_USBD_CONFIG_EVENT_QUEUE_ENABLE +#define APP_USBD_CONFIG_EVENT_QUEUE_ENABLE 1 +#endif +// <o> APP_USBD_CONFIG_EVENT_QUEUE_SIZE - The size of the event queue. <16-64> + + +// <i> The size of the queue for the events that would be processed in the main loop. + +#ifndef APP_USBD_CONFIG_EVENT_QUEUE_SIZE +#define APP_USBD_CONFIG_EVENT_QUEUE_SIZE 32 +#endif + +// <o> APP_USBD_CONFIG_SOF_HANDLING_MODE - Change SOF events handling mode. + + +// <i> Normal queue - SOF events are pushed normally into the event queue. +// <i> Compress queue - SOF events are counted and binded with other events or executed when the queue is empty. +// <i> This prevents the queue from filling up with SOF events. +// <i> Interrupt - SOF events are processed in interrupt. +// <0=> Normal queue +// <1=> Compress queue +// <2=> Interrupt + +#ifndef APP_USBD_CONFIG_SOF_HANDLING_MODE +#define APP_USBD_CONFIG_SOF_HANDLING_MODE 1 +#endif + +// </e> + +// <q> APP_USBD_CONFIG_SOF_TIMESTAMP_PROVIDE - Provide a function that generates timestamps for logs based on the current SOF. + + +// <i> The function app_usbd_sof_timestamp_get is implemented if the logger is enabled. +// <i> Use it when initializing the logger. +// <i> SOF processing is always enabled when this configuration parameter is active. +// <i> Note: This option is configured outside of APP_USBD_CONFIG_LOG_ENABLED. +// <i> This means that it works even if the logging in this very module is disabled. + +#ifndef APP_USBD_CONFIG_SOF_TIMESTAMP_PROVIDE +#define APP_USBD_CONFIG_SOF_TIMESTAMP_PROVIDE 0 +#endif + +// <o> APP_USBD_CONFIG_DESC_STRING_SIZE - Maximum size of the NULL-terminated string of the string descriptor. <31-254> + + +// <i> 31 characters can be stored in the internal USB buffer used for transfers. +// <i> Any value higher than 31 creates an additional buffer just for descriptor strings. + +#ifndef APP_USBD_CONFIG_DESC_STRING_SIZE +#define APP_USBD_CONFIG_DESC_STRING_SIZE 31 +#endif + +// <q> APP_USBD_CONFIG_DESC_STRING_UTF_ENABLED - Enable UTF8 conversion. + + +// <i> Enable UTF8-encoded characters. In normal processing, only ASCII characters are available. + +#ifndef APP_USBD_CONFIG_DESC_STRING_UTF_ENABLED +#define APP_USBD_CONFIG_DESC_STRING_UTF_ENABLED 0 +#endif + +// <s> APP_USBD_STRINGS_LANGIDS - Supported languages identifiers. + +// <i> Note: This value is not editable in Configuration Wizard. +// <i> Comma-separated list of supported languages. +#ifndef APP_USBD_STRINGS_LANGIDS +#define APP_USBD_STRINGS_LANGIDS APP_USBD_LANG_AND_SUBLANG(APP_USBD_LANG_ENGLISH, APP_USBD_SUBLANG_ENGLISH_US) +#endif + +// <e> APP_USBD_STRING_ID_MANUFACTURER - Define manufacturer string ID. + +// <i> Setting ID to 0 disables the string. +//========================================================== +#ifndef APP_USBD_STRING_ID_MANUFACTURER +#define APP_USBD_STRING_ID_MANUFACTURER 1 +#endif +// <q> APP_USBD_STRINGS_MANUFACTURER_EXTERN - Define whether @ref APP_USBD_STRINGS_MANUFACTURER is created by macro or declared as a global variable. + + +#ifndef APP_USBD_STRINGS_MANUFACTURER_EXTERN +#define APP_USBD_STRINGS_MANUFACTURER_EXTERN 0 +#endif + +// <s> APP_USBD_STRINGS_MANUFACTURER - String descriptor for the manufacturer name. + +// <i> Note: This value is not editable in Configuration Wizard. +// <i> Comma-separated list of manufacturer names for each defined language. +// <i> Use @ref APP_USBD_STRING_DESC macro to create string descriptor from a NULL-terminated string. +// <i> Use @ref APP_USBD_STRING_RAW8_DESC macro to create string descriptor from comma-separated uint8_t values. +// <i> Use @ref APP_USBD_STRING_RAW16_DESC macro to create string descriptor from comma-separated uint16_t values. +// <i> Alternatively, configure the macro to point to any internal variable pointer that already contains the descriptor. +// <i> Setting string to NULL disables that string. +// <i> The order of manufacturer names must be the same like in @ref APP_USBD_STRINGS_LANGIDS. +#ifndef APP_USBD_STRINGS_MANUFACTURER +#define APP_USBD_STRINGS_MANUFACTURER APP_USBD_STRING_DESC("Nordic Semiconductor") +#endif + +// </e> + +// <e> APP_USBD_STRING_ID_PRODUCT - Define product string ID. + +// <i> Setting ID to 0 disables the string. +//========================================================== +#ifndef APP_USBD_STRING_ID_PRODUCT +#define APP_USBD_STRING_ID_PRODUCT 2 +#endif +// <q> APP_USBD_STRINGS_PRODUCT_EXTERN - Define whether @ref APP_USBD_STRINGS_PRODUCT is created by macro or declared as a global variable. + + +#ifndef APP_USBD_STRINGS_PRODUCT_EXTERN +#define APP_USBD_STRINGS_PRODUCT_EXTERN 0 +#endif + +// <s> APP_USBD_STRINGS_PRODUCT - String descriptor for the product name. + +// <i> Note: This value is not editable in Configuration Wizard. +// <i> List of product names that is defined the same way like in @ref APP_USBD_STRINGS_MANUFACTURER. +#ifndef APP_USBD_STRINGS_PRODUCT +#define APP_USBD_STRINGS_PRODUCT APP_USBD_STRING_DESC("nRF52 USB Product") +#endif + +// </e> + +// <e> APP_USBD_STRING_ID_SERIAL - Define serial number string ID. + +// <i> Setting ID to 0 disables the string. +//========================================================== +#ifndef APP_USBD_STRING_ID_SERIAL +#define APP_USBD_STRING_ID_SERIAL 3 +#endif +// <q> APP_USBD_STRING_SERIAL_EXTERN - Define whether @ref APP_USBD_STRING_SERIAL is created by macro or declared as a global variable. + + +#ifndef APP_USBD_STRING_SERIAL_EXTERN +#define APP_USBD_STRING_SERIAL_EXTERN 0 +#endif + +// <s> APP_USBD_STRING_SERIAL - String descriptor for the serial number. + +// <i> Note: This value is not editable in Configuration Wizard. +// <i> Serial number that is defined the same way like in @ref APP_USBD_STRINGS_MANUFACTURER. +#ifndef APP_USBD_STRING_SERIAL +#define APP_USBD_STRING_SERIAL APP_USBD_STRING_DESC("000000000000") +#endif + +// </e> + +// <e> APP_USBD_STRING_ID_CONFIGURATION - Define configuration string ID. + +// <i> Setting ID to 0 disables the string. +//========================================================== +#ifndef APP_USBD_STRING_ID_CONFIGURATION +#define APP_USBD_STRING_ID_CONFIGURATION 4 +#endif +// <q> APP_USBD_STRING_CONFIGURATION_EXTERN - Define whether @ref APP_USBD_STRINGS_CONFIGURATION is created by macro or declared as global variable. + + +#ifndef APP_USBD_STRING_CONFIGURATION_EXTERN +#define APP_USBD_STRING_CONFIGURATION_EXTERN 0 +#endif + +// <s> APP_USBD_STRINGS_CONFIGURATION - String descriptor for the device configuration. + +// <i> Note: This value is not editable in Configuration Wizard. +// <i> Configuration string that is defined the same way like in @ref APP_USBD_STRINGS_MANUFACTURER. +#ifndef APP_USBD_STRINGS_CONFIGURATION +#define APP_USBD_STRINGS_CONFIGURATION APP_USBD_STRING_DESC("Default configuration") +#endif + +// </e> + +// <s> APP_USBD_STRINGS_USER - Default values for user strings. + +// <i> Note: This value is not editable in Configuration Wizard. +// <i> This value stores all application specific user strings with the default initialization. +// <i> The setup is done by X-macros. +// <i> Expected macro parameters: +// <i> @code +// <i> X(mnemonic, [=str_idx], ...) +// <i> @endcode +// <i> - @c mnemonic: Mnemonic of the string descriptor that would be added to +// <i> @ref app_usbd_string_desc_idx_t enumerator. +// <i> - @c str_idx : String index value, can be set or left empty. +// <i> For example, WinUSB driver requires descriptor to be present on 0xEE index. +// <i> Then use X(USBD_STRING_WINUSB, =0xEE, (APP_USBD_STRING_DESC(...))) +// <i> - @c ... : List of string descriptors for each defined language. +#ifndef APP_USBD_STRINGS_USER +#define APP_USBD_STRINGS_USER X(APP_USER_1, , APP_USBD_STRING_DESC("User 1")) +#endif + +// </e> + +// <e> APP_USBD_HID_ENABLED - app_usbd_hid - USB HID class +//========================================================== +#ifndef APP_USBD_HID_ENABLED +#define APP_USBD_HID_ENABLED 0 +#endif +// <o> APP_USBD_HID_DEFAULT_IDLE_RATE - Default idle rate for HID class. <0-255> + + +// <i> 0 means indefinite duration, any other value is multiplied by 4 milliseconds. Refer to Chapter 7.2.4 of HID 1.11 Specification. + +#ifndef APP_USBD_HID_DEFAULT_IDLE_RATE +#define APP_USBD_HID_DEFAULT_IDLE_RATE 0 +#endif + +// <o> APP_USBD_HID_REPORT_IDLE_TABLE_SIZE - Size of idle rate table. <1-255> + + +// <i> Must be higher than the highest report ID used. + +#ifndef APP_USBD_HID_REPORT_IDLE_TABLE_SIZE +#define APP_USBD_HID_REPORT_IDLE_TABLE_SIZE 4 +#endif + +// </e> + +// <q> APP_USBD_HID_GENERIC_ENABLED - app_usbd_hid_generic - USB HID generic + + +#ifndef APP_USBD_HID_GENERIC_ENABLED +#define APP_USBD_HID_GENERIC_ENABLED 0 +#endif + +// <q> APP_USBD_HID_KBD_ENABLED - app_usbd_hid_kbd - USB HID keyboard + + +#ifndef APP_USBD_HID_KBD_ENABLED +#define APP_USBD_HID_KBD_ENABLED 0 +#endif + +// <q> APP_USBD_HID_MOUSE_ENABLED - app_usbd_hid_mouse - USB HID mouse + + +#ifndef APP_USBD_HID_MOUSE_ENABLED +#define APP_USBD_HID_MOUSE_ENABLED 0 +#endif + +// <q> APP_USBD_MSC_ENABLED - app_usbd_msc - USB MSC class + + +#ifndef APP_USBD_MSC_ENABLED +#define APP_USBD_MSC_ENABLED 0 +#endif + +// <q> CRC16_ENABLED - crc16 - CRC16 calculation routines + + +#ifndef CRC16_ENABLED +#define CRC16_ENABLED 0 +#endif + +// <q> CRC32_ENABLED - crc32 - CRC32 calculation routines + + +#ifndef CRC32_ENABLED +#define CRC32_ENABLED 0 +#endif + +// <q> ECC_ENABLED - ecc - Elliptic Curve Cryptography Library + + +#ifndef ECC_ENABLED +#define ECC_ENABLED 0 +#endif + +// <e> FDS_ENABLED - fds - Flash data storage module +//========================================================== +#ifndef FDS_ENABLED +#define FDS_ENABLED 0 +#endif +// <h> Pages - Virtual page settings + +// <i> Configure the number of virtual pages to use and their size. +//========================================================== +// <o> FDS_VIRTUAL_PAGES - Number of virtual flash pages to use. +// <i> One of the virtual pages is reserved by the system for garbage collection. +// <i> Therefore, the minimum is two virtual pages: one page to store data and one page to be used by the system for garbage collection. +// <i> The total amount of flash memory that is used by FDS amounts to @ref FDS_VIRTUAL_PAGES * @ref FDS_VIRTUAL_PAGE_SIZE * 4 bytes. + +#ifndef FDS_VIRTUAL_PAGES +#define FDS_VIRTUAL_PAGES 3 +#endif + +// <o> FDS_VIRTUAL_PAGE_SIZE - The size of a virtual flash page. + + +// <i> Expressed in number of 4-byte words. +// <i> By default, a virtual page is the same size as a physical page. +// <i> The size of a virtual page must be a multiple of the size of a physical page. +// <1024=> 1024 +// <2048=> 2048 + +#ifndef FDS_VIRTUAL_PAGE_SIZE +#define FDS_VIRTUAL_PAGE_SIZE 1024 +#endif + +// <o> FDS_VIRTUAL_PAGES_RESERVED - The number of virtual flash pages that are used by other modules. +// <i> FDS module stores its data in the last pages of the flash memory. +// <i> By setting this value, you can move flash end address used by the FDS. +// <i> As a result the reserved space can be used by other modules. + +#ifndef FDS_VIRTUAL_PAGES_RESERVED +#define FDS_VIRTUAL_PAGES_RESERVED 0 +#endif + +// </h> +//========================================================== + +// <h> Backend - Backend configuration + +// <i> Configure which nrf_fstorage backend is used by FDS to write to flash. +//========================================================== +// <o> FDS_BACKEND - FDS flash backend. + + +// <i> NRF_FSTORAGE_SD uses the nrf_fstorage_sd backend implementation using the SoftDevice API. Use this if you have a SoftDevice present. +// <i> NRF_FSTORAGE_NVMC uses the nrf_fstorage_nvmc implementation. Use this setting if you don't use the SoftDevice. +// <1=> NRF_FSTORAGE_NVMC +// <2=> NRF_FSTORAGE_SD + +#ifndef FDS_BACKEND +#define FDS_BACKEND 2 +#endif + +// </h> +//========================================================== + +// <h> Queue - Queue settings + +//========================================================== +// <o> FDS_OP_QUEUE_SIZE - Size of the internal queue. +// <i> Increase this value if you frequently get synchronous FDS_ERR_NO_SPACE_IN_QUEUES errors. + +#ifndef FDS_OP_QUEUE_SIZE +#define FDS_OP_QUEUE_SIZE 4 +#endif + +// </h> +//========================================================== + +// <h> CRC - CRC functionality + +//========================================================== +// <e> FDS_CRC_CHECK_ON_READ - Enable CRC checks. + +// <i> Save a record's CRC when it is written to flash and check it when the record is opened. +// <i> Records with an incorrect CRC can still be 'seen' by the user using FDS functions, but they cannot be opened. +// <i> Additionally, they will not be garbage collected until they are deleted. +//========================================================== +#ifndef FDS_CRC_CHECK_ON_READ +#define FDS_CRC_CHECK_ON_READ 0 +#endif +// <o> FDS_CRC_CHECK_ON_WRITE - Perform a CRC check on newly written records. + + +// <i> Perform a CRC check on newly written records. +// <i> This setting can be used to make sure that the record data was not altered while being written to flash. +// <1=> Enabled +// <0=> Disabled + +#ifndef FDS_CRC_CHECK_ON_WRITE +#define FDS_CRC_CHECK_ON_WRITE 0 +#endif + +// </e> + +// </h> +//========================================================== + +// <h> Users - Number of users + +//========================================================== +// <o> FDS_MAX_USERS - Maximum number of callbacks that can be registered. +#ifndef FDS_MAX_USERS +#define FDS_MAX_USERS 4 +#endif + +// </h> +//========================================================== + +// </e> + +// <q> HARDFAULT_HANDLER_ENABLED - hardfault_default - HardFault default handler for debugging and release + + +#ifndef HARDFAULT_HANDLER_ENABLED +#define HARDFAULT_HANDLER_ENABLED 0 +#endif + +// <e> HCI_MEM_POOL_ENABLED - hci_mem_pool - memory pool implementation used by HCI +//========================================================== +#ifndef HCI_MEM_POOL_ENABLED +#define HCI_MEM_POOL_ENABLED 0 +#endif +// <o> HCI_TX_BUF_SIZE - TX buffer size in bytes. +#ifndef HCI_TX_BUF_SIZE +#define HCI_TX_BUF_SIZE 600 +#endif + +// <o> HCI_RX_BUF_SIZE - RX buffer size in bytes. +#ifndef HCI_RX_BUF_SIZE +#define HCI_RX_BUF_SIZE 600 +#endif + +// <o> HCI_RX_BUF_QUEUE_SIZE - RX buffer queue size. +#ifndef HCI_RX_BUF_QUEUE_SIZE +#define HCI_RX_BUF_QUEUE_SIZE 4 +#endif + +// </e> + +// <e> HCI_SLIP_ENABLED - hci_slip - SLIP protocol implementation used by HCI +//========================================================== +#ifndef HCI_SLIP_ENABLED +#define HCI_SLIP_ENABLED 0 +#endif +// <o> HCI_UART_BAUDRATE - Default Baudrate + +// <323584=> 1200 baud +// <643072=> 2400 baud +// <1290240=> 4800 baud +// <2576384=> 9600 baud +// <3862528=> 14400 baud +// <5152768=> 19200 baud +// <7716864=> 28800 baud +// <10289152=> 38400 baud +// <15400960=> 57600 baud +// <20615168=> 76800 baud +// <30801920=> 115200 baud +// <61865984=> 230400 baud +// <67108864=> 250000 baud +// <121634816=> 460800 baud +// <251658240=> 921600 baud +// <268435456=> 1000000 baud + +#ifndef HCI_UART_BAUDRATE +#define HCI_UART_BAUDRATE 30801920 +#endif + +// <o> HCI_UART_FLOW_CONTROL - Hardware Flow Control + +// <0=> Disabled +// <1=> Enabled + +#ifndef HCI_UART_FLOW_CONTROL +#define HCI_UART_FLOW_CONTROL 0 +#endif + +// <o> HCI_UART_RX_PIN - UART RX pin +#ifndef HCI_UART_RX_PIN +#define HCI_UART_RX_PIN 31 +#endif + +// <o> HCI_UART_TX_PIN - UART TX pin +#ifndef HCI_UART_TX_PIN +#define HCI_UART_TX_PIN 31 +#endif + +// <o> HCI_UART_RTS_PIN - UART RTS pin +#ifndef HCI_UART_RTS_PIN +#define HCI_UART_RTS_PIN 31 +#endif + +// <o> HCI_UART_CTS_PIN - UART CTS pin +#ifndef HCI_UART_CTS_PIN +#define HCI_UART_CTS_PIN 31 +#endif + +// </e> + +// <e> HCI_TRANSPORT_ENABLED - hci_transport - HCI transport +//========================================================== +#ifndef HCI_TRANSPORT_ENABLED +#define HCI_TRANSPORT_ENABLED 0 +#endif +// <o> HCI_MAX_PACKET_SIZE_IN_BITS - Maximum size of a single application packet in bits. +#ifndef HCI_MAX_PACKET_SIZE_IN_BITS +#define HCI_MAX_PACKET_SIZE_IN_BITS 8000 +#endif + +// </e> + +// <q> LED_SOFTBLINK_ENABLED - led_softblink - led_softblink module + + +#ifndef LED_SOFTBLINK_ENABLED +#define LED_SOFTBLINK_ENABLED 0 +#endif + +// <q> LOW_POWER_PWM_ENABLED - low_power_pwm - low_power_pwm module + + +#ifndef LOW_POWER_PWM_ENABLED +#define LOW_POWER_PWM_ENABLED 0 +#endif + +// <e> MEM_MANAGER_ENABLED - mem_manager - Dynamic memory allocator +//========================================================== +#ifndef MEM_MANAGER_ENABLED +#define MEM_MANAGER_ENABLED 0 +#endif +// <o> MEMORY_MANAGER_SMALL_BLOCK_COUNT - Size of each memory blocks identified as 'small' block. <0-255> + + +#ifndef MEMORY_MANAGER_SMALL_BLOCK_COUNT +#define MEMORY_MANAGER_SMALL_BLOCK_COUNT 1 +#endif + +// <o> MEMORY_MANAGER_SMALL_BLOCK_SIZE - Size of each memory blocks identified as 'small' block. +// <i> Size of each memory blocks identified as 'small' block. Memory block are recommended to be word-sized. + +#ifndef MEMORY_MANAGER_SMALL_BLOCK_SIZE +#define MEMORY_MANAGER_SMALL_BLOCK_SIZE 32 +#endif + +// <o> MEMORY_MANAGER_MEDIUM_BLOCK_COUNT - Size of each memory blocks identified as 'medium' block. <0-255> + + +#ifndef MEMORY_MANAGER_MEDIUM_BLOCK_COUNT +#define MEMORY_MANAGER_MEDIUM_BLOCK_COUNT 0 +#endif + +// <o> MEMORY_MANAGER_MEDIUM_BLOCK_SIZE - Size of each memory blocks identified as 'medium' block. +// <i> Size of each memory blocks identified as 'medium' block. Memory block are recommended to be word-sized. + +#ifndef MEMORY_MANAGER_MEDIUM_BLOCK_SIZE +#define MEMORY_MANAGER_MEDIUM_BLOCK_SIZE 256 +#endif + +// <o> MEMORY_MANAGER_LARGE_BLOCK_COUNT - Size of each memory blocks identified as 'large' block. <0-255> + + +#ifndef MEMORY_MANAGER_LARGE_BLOCK_COUNT +#define MEMORY_MANAGER_LARGE_BLOCK_COUNT 0 +#endif + +// <o> MEMORY_MANAGER_LARGE_BLOCK_SIZE - Size of each memory blocks identified as 'large' block. +// <i> Size of each memory blocks identified as 'large' block. Memory block are recommended to be word-sized. + +#ifndef MEMORY_MANAGER_LARGE_BLOCK_SIZE +#define MEMORY_MANAGER_LARGE_BLOCK_SIZE 256 +#endif + +// <o> MEMORY_MANAGER_XLARGE_BLOCK_COUNT - Size of each memory blocks identified as 'extra large' block. <0-255> + + +#ifndef MEMORY_MANAGER_XLARGE_BLOCK_COUNT +#define MEMORY_MANAGER_XLARGE_BLOCK_COUNT 0 +#endif + +// <o> MEMORY_MANAGER_XLARGE_BLOCK_SIZE - Size of each memory blocks identified as 'extra large' block. +// <i> Size of each memory blocks identified as 'extra large' block. Memory block are recommended to be word-sized. + +#ifndef MEMORY_MANAGER_XLARGE_BLOCK_SIZE +#define MEMORY_MANAGER_XLARGE_BLOCK_SIZE 1320 +#endif + +// <o> MEMORY_MANAGER_XXLARGE_BLOCK_COUNT - Size of each memory blocks identified as 'extra extra large' block. <0-255> + + +#ifndef MEMORY_MANAGER_XXLARGE_BLOCK_COUNT +#define MEMORY_MANAGER_XXLARGE_BLOCK_COUNT 0 +#endif + +// <o> MEMORY_MANAGER_XXLARGE_BLOCK_SIZE - Size of each memory blocks identified as 'extra extra large' block. +// <i> Size of each memory blocks identified as 'extra extra large' block. Memory block are recommended to be word-sized. + +#ifndef MEMORY_MANAGER_XXLARGE_BLOCK_SIZE +#define MEMORY_MANAGER_XXLARGE_BLOCK_SIZE 3444 +#endif + +// <o> MEMORY_MANAGER_XSMALL_BLOCK_COUNT - Size of each memory blocks identified as 'extra small' block. <0-255> + + +#ifndef MEMORY_MANAGER_XSMALL_BLOCK_COUNT +#define MEMORY_MANAGER_XSMALL_BLOCK_COUNT 0 +#endif + +// <o> MEMORY_MANAGER_XSMALL_BLOCK_SIZE - Size of each memory blocks identified as 'extra small' block. +// <i> Size of each memory blocks identified as 'extra large' block. Memory block are recommended to be word-sized. + +#ifndef MEMORY_MANAGER_XSMALL_BLOCK_SIZE +#define MEMORY_MANAGER_XSMALL_BLOCK_SIZE 64 +#endif + +// <o> MEMORY_MANAGER_XXSMALL_BLOCK_COUNT - Size of each memory blocks identified as 'extra extra small' block. <0-255> + + +#ifndef MEMORY_MANAGER_XXSMALL_BLOCK_COUNT +#define MEMORY_MANAGER_XXSMALL_BLOCK_COUNT 0 +#endif + +// <o> MEMORY_MANAGER_XXSMALL_BLOCK_SIZE - Size of each memory blocks identified as 'extra extra small' block. +// <i> Size of each memory blocks identified as 'extra extra small' block. Memory block are recommended to be word-sized. + +#ifndef MEMORY_MANAGER_XXSMALL_BLOCK_SIZE +#define MEMORY_MANAGER_XXSMALL_BLOCK_SIZE 32 +#endif + +// <e> MEM_MANAGER_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef MEM_MANAGER_CONFIG_LOG_ENABLED +#define MEM_MANAGER_CONFIG_LOG_ENABLED 0 +#endif +// <o> MEM_MANAGER_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef MEM_MANAGER_CONFIG_LOG_LEVEL +#define MEM_MANAGER_CONFIG_LOG_LEVEL 3 +#endif + +// <o> MEM_MANAGER_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef MEM_MANAGER_CONFIG_INFO_COLOR +#define MEM_MANAGER_CONFIG_INFO_COLOR 0 +#endif + +// <o> MEM_MANAGER_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef MEM_MANAGER_CONFIG_DEBUG_COLOR +#define MEM_MANAGER_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <q> MEM_MANAGER_DISABLE_API_PARAM_CHECK - Disable API parameter checks in the module. + + +#ifndef MEM_MANAGER_DISABLE_API_PARAM_CHECK +#define MEM_MANAGER_DISABLE_API_PARAM_CHECK 0 +#endif + +// </e> + +// <e> NRF_BALLOC_ENABLED - nrf_balloc - Block allocator module +//========================================================== +#ifndef NRF_BALLOC_ENABLED +#define NRF_BALLOC_ENABLED 1 +#endif +// <e> NRF_BALLOC_CONFIG_DEBUG_ENABLED - Enables debug mode in the module. +//========================================================== +#ifndef NRF_BALLOC_CONFIG_DEBUG_ENABLED +#define NRF_BALLOC_CONFIG_DEBUG_ENABLED 0 +#endif +// <o> NRF_BALLOC_CONFIG_HEAD_GUARD_WORDS - Number of words used as head guard. <0-255> + + +#ifndef NRF_BALLOC_CONFIG_HEAD_GUARD_WORDS +#define NRF_BALLOC_CONFIG_HEAD_GUARD_WORDS 1 +#endif + +// <o> NRF_BALLOC_CONFIG_TAIL_GUARD_WORDS - Number of words used as tail guard. <0-255> + + +#ifndef NRF_BALLOC_CONFIG_TAIL_GUARD_WORDS +#define NRF_BALLOC_CONFIG_TAIL_GUARD_WORDS 1 +#endif + +// <q> NRF_BALLOC_CONFIG_BASIC_CHECKS_ENABLED - Enables basic checks in this module. + + +#ifndef NRF_BALLOC_CONFIG_BASIC_CHECKS_ENABLED +#define NRF_BALLOC_CONFIG_BASIC_CHECKS_ENABLED 0 +#endif + +// <q> NRF_BALLOC_CONFIG_DOUBLE_FREE_CHECK_ENABLED - Enables double memory free check in this module. + + +#ifndef NRF_BALLOC_CONFIG_DOUBLE_FREE_CHECK_ENABLED +#define NRF_BALLOC_CONFIG_DOUBLE_FREE_CHECK_ENABLED 0 +#endif + +// <q> NRF_BALLOC_CONFIG_DATA_TRASHING_CHECK_ENABLED - Enables free memory corruption check in this module. + + +#ifndef NRF_BALLOC_CONFIG_DATA_TRASHING_CHECK_ENABLED +#define NRF_BALLOC_CONFIG_DATA_TRASHING_CHECK_ENABLED 0 +#endif + +// <q> NRF_BALLOC_CLI_CMDS - Enable CLI commands specific to the module + + +#ifndef NRF_BALLOC_CLI_CMDS +#define NRF_BALLOC_CLI_CMDS 0 +#endif + +// </e> + +// </e> + +// <e> NRF_CSENSE_ENABLED - nrf_csense - Capacitive sensor module +//========================================================== +#ifndef NRF_CSENSE_ENABLED +#define NRF_CSENSE_ENABLED 0 +#endif +// <o> NRF_CSENSE_PAD_HYSTERESIS - Minimum value of change required to determine that a pad was touched. +#ifndef NRF_CSENSE_PAD_HYSTERESIS +#define NRF_CSENSE_PAD_HYSTERESIS 15 +#endif + +// <o> NRF_CSENSE_PAD_DEVIATION - Minimum value measured on a pad required to take it into account while calculating the step. +#ifndef NRF_CSENSE_PAD_DEVIATION +#define NRF_CSENSE_PAD_DEVIATION 70 +#endif + +// <o> NRF_CSENSE_MIN_PAD_VALUE - Minimum normalized value on a pad required to take its value into account. +#ifndef NRF_CSENSE_MIN_PAD_VALUE +#define NRF_CSENSE_MIN_PAD_VALUE 20 +#endif + +// <o> NRF_CSENSE_MAX_PADS_NUMBER - Maximum number of pads used for one instance. +#ifndef NRF_CSENSE_MAX_PADS_NUMBER +#define NRF_CSENSE_MAX_PADS_NUMBER 20 +#endif + +// <o> NRF_CSENSE_MAX_VALUE - Maximum normalized value obtained from measurement. +#ifndef NRF_CSENSE_MAX_VALUE +#define NRF_CSENSE_MAX_VALUE 1000 +#endif + +// <o> NRF_CSENSE_OUTPUT_PIN - Output pin used by the low-level module. +// <i> This is used when capacitive sensor does not use COMP. + +#ifndef NRF_CSENSE_OUTPUT_PIN +#define NRF_CSENSE_OUTPUT_PIN 26 +#endif + +// </e> + +// <e> NRF_DRV_CSENSE_ENABLED - nrf_drv_csense - Capacitive sensor low-level module +//========================================================== +#ifndef NRF_DRV_CSENSE_ENABLED +#define NRF_DRV_CSENSE_ENABLED 0 +#endif +// <e> USE_COMP - Use the comparator to implement the capacitive sensor driver. + +// <i> Due to Anomaly 84, COMP I_SOURCE is not functional. It has too high a varation. +//========================================================== +#ifndef USE_COMP +#define USE_COMP 0 +#endif +// <o> TIMER0_FOR_CSENSE - First TIMER instance used by the driver (not used on nRF51). +#ifndef TIMER0_FOR_CSENSE +#define TIMER0_FOR_CSENSE 1 +#endif + +// <o> TIMER1_FOR_CSENSE - Second TIMER instance used by the driver (not used on nRF51). +#ifndef TIMER1_FOR_CSENSE +#define TIMER1_FOR_CSENSE 2 +#endif + +// <o> MEASUREMENT_PERIOD - Single measurement period. +// <i> Time of a single measurement can be calculated as +// <i> T = (1/2)*MEASUREMENT_PERIOD*(1/f_OSC) where f_OSC = I_SOURCE / (2C*(VUP-VDOWN) ). +// <i> I_SOURCE, VUP, and VDOWN are values used to initialize COMP and C is the capacitance of the used pad. + +#ifndef MEASUREMENT_PERIOD +#define MEASUREMENT_PERIOD 20 +#endif + +// </e> + +// </e> + +// <e> NRF_FSTORAGE_ENABLED - nrf_fstorage - Flash abstraction library +//========================================================== +#ifndef NRF_FSTORAGE_ENABLED +#define NRF_FSTORAGE_ENABLED 0 +#endif +// <h> nrf_fstorage - Common settings + +// <i> Common settings to all fstorage implementations +//========================================================== +// <q> NRF_FSTORAGE_PARAM_CHECK_DISABLED - Disable user input validation + + +// <i> If selected, use ASSERT to validate user input. +// <i> This effectively removes user input validation in production code. +// <i> Recommended setting: OFF, only enable this setting if size is a major concern. + +#ifndef NRF_FSTORAGE_PARAM_CHECK_DISABLED +#define NRF_FSTORAGE_PARAM_CHECK_DISABLED 0 +#endif + +// </h> +//========================================================== + +// <h> nrf_fstorage_sd - Implementation using the SoftDevice + +// <i> Configuration options for the fstorage implementation using the SoftDevice +//========================================================== +// <o> NRF_FSTORAGE_SD_QUEUE_SIZE - Size of the internal queue of operations +// <i> Increase this value if API calls frequently return the error @ref NRF_ERROR_NO_MEM. + +#ifndef NRF_FSTORAGE_SD_QUEUE_SIZE +#define NRF_FSTORAGE_SD_QUEUE_SIZE 4 +#endif + +// <o> NRF_FSTORAGE_SD_MAX_RETRIES - Maximum number of attempts at executing an operation when the SoftDevice is busy +// <i> Increase this value if events frequently return the @ref NRF_ERROR_TIMEOUT error. +// <i> The SoftDevice might fail to schedule flash access due to high BLE activity. + +#ifndef NRF_FSTORAGE_SD_MAX_RETRIES +#define NRF_FSTORAGE_SD_MAX_RETRIES 8 +#endif + +// <o> NRF_FSTORAGE_SD_MAX_WRITE_SIZE - Maximum number of bytes to be written to flash in a single operation +// <i> This value must be a multiple of four. +// <i> Lowering this value can increase the chances of the SoftDevice being able to execute flash operations in between radio activity. +// <i> This value is bound by the maximum number of bytes that can be written to flash in a single call to @ref sd_flash_write. +// <i> That is 1024 bytes for nRF51 ICs and 4096 bytes for nRF52 ICs. + +#ifndef NRF_FSTORAGE_SD_MAX_WRITE_SIZE +#define NRF_FSTORAGE_SD_MAX_WRITE_SIZE 4096 +#endif + +// </h> +//========================================================== + +// </e> + +// <q> NRF_GFX_ENABLED - nrf_gfx - GFX module + + +#ifndef NRF_GFX_ENABLED +#define NRF_GFX_ENABLED 0 +#endif + +// <q> NRF_MEMOBJ_ENABLED - nrf_memobj - Linked memory allocator module + + +#ifndef NRF_MEMOBJ_ENABLED +#define NRF_MEMOBJ_ENABLED 1 +#endif + +// <e> NRF_PWR_MGMT_ENABLED - nrf_pwr_mgmt - Power management module +//========================================================== +#ifndef NRF_PWR_MGMT_ENABLED +#define NRF_PWR_MGMT_ENABLED 0 +#endif +// <e> NRF_PWR_MGMT_CONFIG_DEBUG_PIN_ENABLED - Enables pin debug in the module. + +// <i> Selected pin will be set when CPU is in sleep mode. +//========================================================== +#ifndef NRF_PWR_MGMT_CONFIG_DEBUG_PIN_ENABLED +#define NRF_PWR_MGMT_CONFIG_DEBUG_PIN_ENABLED 0 +#endif +// <o> NRF_PWR_MGMT_SLEEP_DEBUG_PIN - Pin number + +// <0=> 0 (P0.0) +// <1=> 1 (P0.1) +// <2=> 2 (P0.2) +// <3=> 3 (P0.3) +// <4=> 4 (P0.4) +// <5=> 5 (P0.5) +// <6=> 6 (P0.6) +// <7=> 7 (P0.7) +// <8=> 8 (P0.8) +// <9=> 9 (P0.9) +// <10=> 10 (P0.10) +// <11=> 11 (P0.11) +// <12=> 12 (P0.12) +// <13=> 13 (P0.13) +// <14=> 14 (P0.14) +// <15=> 15 (P0.15) +// <16=> 16 (P0.16) +// <17=> 17 (P0.17) +// <18=> 18 (P0.18) +// <19=> 19 (P0.19) +// <20=> 20 (P0.20) +// <21=> 21 (P0.21) +// <22=> 22 (P0.22) +// <23=> 23 (P0.23) +// <24=> 24 (P0.24) +// <25=> 25 (P0.25) +// <26=> 26 (P0.26) +// <27=> 27 (P0.27) +// <28=> 28 (P0.28) +// <29=> 29 (P0.29) +// <30=> 30 (P0.30) +// <31=> 31 (P0.31) +// <32=> 32 (P1.0) +// <33=> 33 (P1.1) +// <34=> 34 (P1.2) +// <35=> 35 (P1.3) +// <36=> 36 (P1.4) +// <37=> 37 (P1.5) +// <38=> 38 (P1.6) +// <39=> 39 (P1.7) +// <40=> 40 (P1.8) +// <41=> 41 (P1.9) +// <42=> 42 (P1.10) +// <43=> 43 (P1.11) +// <44=> 44 (P1.12) +// <45=> 45 (P1.13) +// <46=> 46 (P1.14) +// <47=> 47 (P1.15) +// <4294967295=> Not connected + +#ifndef NRF_PWR_MGMT_SLEEP_DEBUG_PIN +#define NRF_PWR_MGMT_SLEEP_DEBUG_PIN 31 +#endif + +// </e> + +// <q> NRF_PWR_MGMT_CONFIG_CPU_USAGE_MONITOR_ENABLED - Enables CPU usage monitor. + + +// <i> Module will trace percentage of CPU usage in one second intervals. + +#ifndef NRF_PWR_MGMT_CONFIG_CPU_USAGE_MONITOR_ENABLED +#define NRF_PWR_MGMT_CONFIG_CPU_USAGE_MONITOR_ENABLED 0 +#endif + +// <e> NRF_PWR_MGMT_CONFIG_STANDBY_TIMEOUT_ENABLED - Enable standby timeout. +//========================================================== +#ifndef NRF_PWR_MGMT_CONFIG_STANDBY_TIMEOUT_ENABLED +#define NRF_PWR_MGMT_CONFIG_STANDBY_TIMEOUT_ENABLED 0 +#endif +// <o> NRF_PWR_MGMT_CONFIG_STANDBY_TIMEOUT_S - Standby timeout (in seconds). +// <i> Shutdown procedure will begin no earlier than after this number of seconds. + +#ifndef NRF_PWR_MGMT_CONFIG_STANDBY_TIMEOUT_S +#define NRF_PWR_MGMT_CONFIG_STANDBY_TIMEOUT_S 3 +#endif + +// </e> + +// <q> NRF_PWR_MGMT_CONFIG_FPU_SUPPORT_ENABLED - Enables FPU event cleaning. + + +#ifndef NRF_PWR_MGMT_CONFIG_FPU_SUPPORT_ENABLED +#define NRF_PWR_MGMT_CONFIG_FPU_SUPPORT_ENABLED 0 +#endif + +// <q> NRF_PWR_MGMT_CONFIG_AUTO_SHUTDOWN_RETRY - Blocked shutdown procedure will be retried every second. + + +#ifndef NRF_PWR_MGMT_CONFIG_AUTO_SHUTDOWN_RETRY +#define NRF_PWR_MGMT_CONFIG_AUTO_SHUTDOWN_RETRY 0 +#endif + +// <q> NRF_PWR_MGMT_CONFIG_USE_SCHEDULER - Module will use @ref app_scheduler. + + +#ifndef NRF_PWR_MGMT_CONFIG_USE_SCHEDULER +#define NRF_PWR_MGMT_CONFIG_USE_SCHEDULER 0 +#endif + +// <o> NRF_PWR_MGMT_CONFIG_HANDLER_PRIORITY_COUNT - The number of priorities for module handlers. +// <i> The number of stages of the shutdown process. + +#ifndef NRF_PWR_MGMT_CONFIG_HANDLER_PRIORITY_COUNT +#define NRF_PWR_MGMT_CONFIG_HANDLER_PRIORITY_COUNT 3 +#endif + +// </e> + +// <e> NRF_QUEUE_ENABLED - nrf_queue - Queue module +//========================================================== +#ifndef NRF_QUEUE_ENABLED +#define NRF_QUEUE_ENABLED 0 +#endif +// <q> NRF_QUEUE_CLI_CMDS - Enable CLI commands specific to the module + + +#ifndef NRF_QUEUE_CLI_CMDS +#define NRF_QUEUE_CLI_CMDS 0 +#endif + +// </e> + +// <q> NRF_SECTION_ITER_ENABLED - nrf_section_iter - Section iterator + + +#ifndef NRF_SECTION_ITER_ENABLED +#define NRF_SECTION_ITER_ENABLED 1 +#endif + +// <q> NRF_SORTLIST_ENABLED - nrf_sortlist - Sorted list + + +#ifndef NRF_SORTLIST_ENABLED +#define NRF_SORTLIST_ENABLED 1 +#endif + +// <q> NRF_SPI_MNGR_ENABLED - nrf_spi_mngr - SPI transaction manager + + +#ifndef NRF_SPI_MNGR_ENABLED +#define NRF_SPI_MNGR_ENABLED 0 +#endif + +// <q> NRF_STRERROR_ENABLED - nrf_strerror - Library for converting error code to string. + + +#ifndef NRF_STRERROR_ENABLED +#define NRF_STRERROR_ENABLED 1 +#endif + +// <q> NRF_TWI_MNGR_ENABLED - nrf_twi_mngr - TWI transaction manager + + +#ifndef NRF_TWI_MNGR_ENABLED +#define NRF_TWI_MNGR_ENABLED 0 +#endif + +// <q> SLIP_ENABLED - slip - SLIP encoding and decoding + + +#ifndef SLIP_ENABLED +#define SLIP_ENABLED 0 +#endif + +// <e> TASK_MANAGER_ENABLED - task_manager - Task manager. +//========================================================== +#ifndef TASK_MANAGER_ENABLED +#define TASK_MANAGER_ENABLED 0 +#endif +// <q> TASK_MANAGER_CLI_CMDS - Enable CLI commands specific to the module + + +#ifndef TASK_MANAGER_CLI_CMDS +#define TASK_MANAGER_CLI_CMDS 0 +#endif + +// <o> TASK_MANAGER_CONFIG_MAX_TASKS - Maximum number of tasks which can be created +#ifndef TASK_MANAGER_CONFIG_MAX_TASKS +#define TASK_MANAGER_CONFIG_MAX_TASKS 2 +#endif + +// <o> TASK_MANAGER_CONFIG_STACK_SIZE - Stack size for every task (power of 2) +#ifndef TASK_MANAGER_CONFIG_STACK_SIZE +#define TASK_MANAGER_CONFIG_STACK_SIZE 1024 +#endif + +// <q> TASK_MANAGER_CONFIG_STACK_PROFILER_ENABLED - Enable stack profiling. + + +#ifndef TASK_MANAGER_CONFIG_STACK_PROFILER_ENABLED +#define TASK_MANAGER_CONFIG_STACK_PROFILER_ENABLED 1 +#endif + +// <o> TASK_MANAGER_CONFIG_STACK_GUARD - Configures stack guard. + +// <0=> Disabled +// <4=> 32 bytes +// <5=> 64 bytes +// <6=> 128 bytes +// <7=> 256 bytes +// <8=> 512 bytes + +#ifndef TASK_MANAGER_CONFIG_STACK_GUARD +#define TASK_MANAGER_CONFIG_STACK_GUARD 7 +#endif + +// </e> + +// <h> app_button - buttons handling module + +//========================================================== +// <q> BUTTON_ENABLED - Enables Button module + + +#ifndef BUTTON_ENABLED +#define BUTTON_ENABLED 0 +#endif + +// <q> BUTTON_HIGH_ACCURACY_ENABLED - Enables GPIOTE high accuracy for buttons + + +#ifndef BUTTON_HIGH_ACCURACY_ENABLED +#define BUTTON_HIGH_ACCURACY_ENABLED 0 +#endif + +// </h> +//========================================================== + +// <h> app_usbd_cdc_acm - USB CDC ACM class + +//========================================================== +// <q> APP_USBD_CDC_ACM_ENABLED - Enabling USBD CDC ACM Class library + + +#ifndef APP_USBD_CDC_ACM_ENABLED +#define APP_USBD_CDC_ACM_ENABLED 0 +#endif + +// <q> APP_USBD_CDC_ACM_ZLP_ON_EPSIZE_WRITE - Send ZLP on write with same size as endpoint + + +// <i> If enabled, CDC ACM class will automatically send a zero length packet after transfer which has the same size as endpoint. +// <i> This may limit throughput if a lot of binary data is sent, but in terminal mode operation it makes sure that the data is always displayed right after it is sent. + +#ifndef APP_USBD_CDC_ACM_ZLP_ON_EPSIZE_WRITE +#define APP_USBD_CDC_ACM_ZLP_ON_EPSIZE_WRITE 1 +#endif + +// </h> +//========================================================== + +// <h> nrf_cli - Command line interface + +//========================================================== +// <q> NRF_CLI_ENABLED - Enable/disable the CLI module. + + +#ifndef NRF_CLI_ENABLED +#define NRF_CLI_ENABLED 0 +#endif + +// <o> NRF_CLI_ARGC_MAX - Maximum number of parameters passed to the command handler. +#ifndef NRF_CLI_ARGC_MAX +#define NRF_CLI_ARGC_MAX 12 +#endif + +// <q> NRF_CLI_BUILD_IN_CMDS_ENABLED - CLI built-in commands. + + +#ifndef NRF_CLI_BUILD_IN_CMDS_ENABLED +#define NRF_CLI_BUILD_IN_CMDS_ENABLED 1 +#endif + +// <o> NRF_CLI_CMD_BUFF_SIZE - Maximum buffer size for a single command. +#ifndef NRF_CLI_CMD_BUFF_SIZE +#define NRF_CLI_CMD_BUFF_SIZE 128 +#endif + +// <q> NRF_CLI_ECHO_STATUS - CLI echo status. If set, echo is ON. + + +#ifndef NRF_CLI_ECHO_STATUS +#define NRF_CLI_ECHO_STATUS 1 +#endif + +// <q> NRF_CLI_WILDCARD_ENABLED - Enable wildcard functionality for CLI commands. + + +#ifndef NRF_CLI_WILDCARD_ENABLED +#define NRF_CLI_WILDCARD_ENABLED 0 +#endif + +// <q> NRF_CLI_METAKEYS_ENABLED - Enable additional control keys for CLI commands like ctrl+a, ctrl+e, ctrl+w, ctrl+u + + +#ifndef NRF_CLI_METAKEYS_ENABLED +#define NRF_CLI_METAKEYS_ENABLED 0 +#endif + +// <o> NRF_CLI_PRINTF_BUFF_SIZE - Maximum print buffer size. +#ifndef NRF_CLI_PRINTF_BUFF_SIZE +#define NRF_CLI_PRINTF_BUFF_SIZE 23 +#endif + +// <e> NRF_CLI_HISTORY_ENABLED - Enable CLI history mode. +//========================================================== +#ifndef NRF_CLI_HISTORY_ENABLED +#define NRF_CLI_HISTORY_ENABLED 1 +#endif +// <o> NRF_CLI_HISTORY_ELEMENT_SIZE - Size of one memory object reserved for CLI history. +#ifndef NRF_CLI_HISTORY_ELEMENT_SIZE +#define NRF_CLI_HISTORY_ELEMENT_SIZE 32 +#endif + +// <o> NRF_CLI_HISTORY_ELEMENT_COUNT - Number of history memory objects. +#ifndef NRF_CLI_HISTORY_ELEMENT_COUNT +#define NRF_CLI_HISTORY_ELEMENT_COUNT 8 +#endif + +// </e> + +// <q> NRF_CLI_VT100_COLORS_ENABLED - CLI VT100 colors. + + +#ifndef NRF_CLI_VT100_COLORS_ENABLED +#define NRF_CLI_VT100_COLORS_ENABLED 1 +#endif + +// <q> NRF_CLI_STATISTICS_ENABLED - Enable CLI statistics. + + +#ifndef NRF_CLI_STATISTICS_ENABLED +#define NRF_CLI_STATISTICS_ENABLED 1 +#endif + +// <q> NRF_CLI_LOG_BACKEND - Enable logger backend interface. + + +#ifndef NRF_CLI_LOG_BACKEND +#define NRF_CLI_LOG_BACKEND 1 +#endif + +// <q> NRF_CLI_USES_TASK_MANAGER_ENABLED - Enable CLI to use task_manager + + +#ifndef NRF_CLI_USES_TASK_MANAGER_ENABLED +#define NRF_CLI_USES_TASK_MANAGER_ENABLED 0 +#endif + +// </h> +//========================================================== + +// <h> nrf_fprintf - fprintf function. + +//========================================================== +// <q> NRF_FPRINTF_ENABLED - Enable/disable fprintf module. + + +#ifndef NRF_FPRINTF_ENABLED +#define NRF_FPRINTF_ENABLED 1 +#endif + +// <q> NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED - For each printed LF, function will add CR. + + +#ifndef NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED +#define NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED 1 +#endif + +// <q> NRF_FPRINTF_DOUBLE_ENABLED - Enable IEEE-754 double precision formatting. + + +#ifndef NRF_FPRINTF_DOUBLE_ENABLED +#define NRF_FPRINTF_DOUBLE_ENABLED 0 +#endif + +// </h> +//========================================================== + +// </h> +//========================================================== + +// <h> nRF_Log + +//========================================================== +// <e> NRF_LOG_ENABLED - nrf_log - Logger +//========================================================== +#ifndef NRF_LOG_ENABLED +#define NRF_LOG_ENABLED 0 +#endif +// <h> Log message pool - Configuration of log message pool + +//========================================================== +// <o> NRF_LOG_MSGPOOL_ELEMENT_SIZE - Size of a single element in the pool of memory objects. +// <i> If a small value is set, then performance of logs processing +// <i> is degraded because data is fragmented. Bigger value impacts +// <i> RAM memory utilization. The size is set to fit a message with +// <i> a timestamp and up to 2 arguments in a single memory object. + +#ifndef NRF_LOG_MSGPOOL_ELEMENT_SIZE +#define NRF_LOG_MSGPOOL_ELEMENT_SIZE 20 +#endif + +// <o> NRF_LOG_MSGPOOL_ELEMENT_COUNT - Number of elements in the pool of memory objects +// <i> If a small value is set, then it may lead to a deadlock +// <i> in certain cases if backend has high latency and holds +// <i> multiple messages for long time. Bigger value impacts +// <i> RAM memory usage. + +#ifndef NRF_LOG_MSGPOOL_ELEMENT_COUNT +#define NRF_LOG_MSGPOOL_ELEMENT_COUNT 8 +#endif + +// </h> +//========================================================== + +// <q> NRF_LOG_ALLOW_OVERFLOW - Configures behavior when circular buffer is full. + + +// <i> If set then oldest logs are overwritten. Otherwise a +// <i> marker is injected informing about overflow. + +#ifndef NRF_LOG_ALLOW_OVERFLOW +#define NRF_LOG_ALLOW_OVERFLOW 1 +#endif + +// <o> NRF_LOG_BUFSIZE - Size of the buffer for storing logs (in bytes). + + +// <i> Must be power of 2 and multiple of 4. +// <i> If NRF_LOG_DEFERRED = 0 then buffer size can be reduced to minimum. +// <128=> 128 +// <256=> 256 +// <512=> 512 +// <1024=> 1024 +// <2048=> 2048 +// <4096=> 4096 +// <8192=> 8192 +// <16384=> 16384 + +#ifndef NRF_LOG_BUFSIZE +#define NRF_LOG_BUFSIZE 1024 +#endif + +// <q> NRF_LOG_CLI_CMDS - Enable CLI commands for the module. + + +#ifndef NRF_LOG_CLI_CMDS +#define NRF_LOG_CLI_CMDS 0 +#endif + +// <o> NRF_LOG_DEFAULT_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_LOG_DEFAULT_LEVEL +#define NRF_LOG_DEFAULT_LEVEL 3 +#endif + +// <q> NRF_LOG_DEFERRED - Enable deffered logger. + + +// <i> Log data is buffered and can be processed in idle. + +#ifndef NRF_LOG_DEFERRED +#define NRF_LOG_DEFERRED 1 +#endif + +// <q> NRF_LOG_FILTERS_ENABLED - Enable dynamic filtering of logs. + + +#ifndef NRF_LOG_FILTERS_ENABLED +#define NRF_LOG_FILTERS_ENABLED 0 +#endif + +// <q> NRF_LOG_NON_DEFFERED_CRITICAL_REGION_ENABLED - Enable use of critical region for non deffered mode when flushing logs. + + +// <i> When enabled NRF_LOG_FLUSH is called from critical section when non deffered mode is used. +// <i> Log output will never be corrupted as access to the log backend is exclusive +// <i> but system will spend significant amount of time in critical section + +#ifndef NRF_LOG_NON_DEFFERED_CRITICAL_REGION_ENABLED +#define NRF_LOG_NON_DEFFERED_CRITICAL_REGION_ENABLED 0 +#endif + +// <o> NRF_LOG_STR_PUSH_BUFFER_SIZE - Size of the buffer dedicated for strings stored using @ref NRF_LOG_PUSH. + +// <16=> 16 +// <32=> 32 +// <64=> 64 +// <128=> 128 +// <256=> 256 +// <512=> 512 +// <1024=> 1024 + +#ifndef NRF_LOG_STR_PUSH_BUFFER_SIZE +#define NRF_LOG_STR_PUSH_BUFFER_SIZE 128 +#endif + +// <o> NRF_LOG_STR_PUSH_BUFFER_SIZE - Size of the buffer dedicated for strings stored using @ref NRF_LOG_PUSH. + +// <16=> 16 +// <32=> 32 +// <64=> 64 +// <128=> 128 +// <256=> 256 +// <512=> 512 +// <1024=> 1024 + +#ifndef NRF_LOG_STR_PUSH_BUFFER_SIZE +#define NRF_LOG_STR_PUSH_BUFFER_SIZE 128 +#endif + +// <e> NRF_LOG_USES_COLORS - If enabled then ANSI escape code for colors is prefixed to every string +//========================================================== +#ifndef NRF_LOG_USES_COLORS +#define NRF_LOG_USES_COLORS 0 +#endif +// <o> NRF_LOG_COLOR_DEFAULT - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_LOG_COLOR_DEFAULT +#define NRF_LOG_COLOR_DEFAULT 0 +#endif + +// <o> NRF_LOG_ERROR_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_LOG_ERROR_COLOR +#define NRF_LOG_ERROR_COLOR 2 +#endif + +// <o> NRF_LOG_WARNING_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_LOG_WARNING_COLOR +#define NRF_LOG_WARNING_COLOR 4 +#endif + +// </e> + +// <e> NRF_LOG_USES_TIMESTAMP - Enable timestamping + +// <i> Function for getting the timestamp is provided by the user +//========================================================== +#ifndef NRF_LOG_USES_TIMESTAMP +#define NRF_LOG_USES_TIMESTAMP 0 +#endif +// <o> NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY - Default frequency of the timestamp (in Hz) or 0 to use app_timer frequency. +#ifndef NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY +#define NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY 0 +#endif + +// </e> + +// <h> nrf_log module configuration + +//========================================================== +// <h> nrf_log in nRF_Core + +//========================================================== +// <e> NRF_MPU_LIB_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_MPU_LIB_CONFIG_LOG_ENABLED +#define NRF_MPU_LIB_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_MPU_LIB_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_MPU_LIB_CONFIG_LOG_LEVEL +#define NRF_MPU_LIB_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_MPU_LIB_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_MPU_LIB_CONFIG_INFO_COLOR +#define NRF_MPU_LIB_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_MPU_LIB_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_MPU_LIB_CONFIG_DEBUG_COLOR +#define NRF_MPU_LIB_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_STACK_GUARD_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_STACK_GUARD_CONFIG_LOG_ENABLED +#define NRF_STACK_GUARD_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_STACK_GUARD_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_STACK_GUARD_CONFIG_LOG_LEVEL +#define NRF_STACK_GUARD_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_STACK_GUARD_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_STACK_GUARD_CONFIG_INFO_COLOR +#define NRF_STACK_GUARD_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_STACK_GUARD_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_STACK_GUARD_CONFIG_DEBUG_COLOR +#define NRF_STACK_GUARD_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> TASK_MANAGER_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef TASK_MANAGER_CONFIG_LOG_ENABLED +#define TASK_MANAGER_CONFIG_LOG_ENABLED 0 +#endif +// <o> TASK_MANAGER_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef TASK_MANAGER_CONFIG_LOG_LEVEL +#define TASK_MANAGER_CONFIG_LOG_LEVEL 3 +#endif + +// <o> TASK_MANAGER_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef TASK_MANAGER_CONFIG_INFO_COLOR +#define TASK_MANAGER_CONFIG_INFO_COLOR 0 +#endif + +// <o> TASK_MANAGER_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef TASK_MANAGER_CONFIG_DEBUG_COLOR +#define TASK_MANAGER_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </h> +//========================================================== + +// <h> nrf_log in nRF_Drivers + +//========================================================== +// <e> CLOCK_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef CLOCK_CONFIG_LOG_ENABLED +#define CLOCK_CONFIG_LOG_ENABLED 0 +#endif +// <o> CLOCK_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef CLOCK_CONFIG_LOG_LEVEL +#define CLOCK_CONFIG_LOG_LEVEL 3 +#endif + +// <o> CLOCK_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef CLOCK_CONFIG_INFO_COLOR +#define CLOCK_CONFIG_INFO_COLOR 0 +#endif + +// <o> CLOCK_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef CLOCK_CONFIG_DEBUG_COLOR +#define CLOCK_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> COMP_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef COMP_CONFIG_LOG_ENABLED +#define COMP_CONFIG_LOG_ENABLED 0 +#endif +// <o> COMP_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef COMP_CONFIG_LOG_LEVEL +#define COMP_CONFIG_LOG_LEVEL 3 +#endif + +// <o> COMP_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef COMP_CONFIG_INFO_COLOR +#define COMP_CONFIG_INFO_COLOR 0 +#endif + +// <o> COMP_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef COMP_CONFIG_DEBUG_COLOR +#define COMP_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> GPIOTE_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef GPIOTE_CONFIG_LOG_ENABLED +#define GPIOTE_CONFIG_LOG_ENABLED 0 +#endif +// <o> GPIOTE_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef GPIOTE_CONFIG_LOG_LEVEL +#define GPIOTE_CONFIG_LOG_LEVEL 3 +#endif + +// <o> GPIOTE_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef GPIOTE_CONFIG_INFO_COLOR +#define GPIOTE_CONFIG_INFO_COLOR 0 +#endif + +// <o> GPIOTE_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef GPIOTE_CONFIG_DEBUG_COLOR +#define GPIOTE_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> LPCOMP_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef LPCOMP_CONFIG_LOG_ENABLED +#define LPCOMP_CONFIG_LOG_ENABLED 0 +#endif +// <o> LPCOMP_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef LPCOMP_CONFIG_LOG_LEVEL +#define LPCOMP_CONFIG_LOG_LEVEL 3 +#endif + +// <o> LPCOMP_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef LPCOMP_CONFIG_INFO_COLOR +#define LPCOMP_CONFIG_INFO_COLOR 0 +#endif + +// <o> LPCOMP_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef LPCOMP_CONFIG_DEBUG_COLOR +#define LPCOMP_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> MAX3421E_HOST_CONFIG_LOG_ENABLED - Enable logging in the module +//========================================================== +#ifndef MAX3421E_HOST_CONFIG_LOG_ENABLED +#define MAX3421E_HOST_CONFIG_LOG_ENABLED 0 +#endif +// <o> MAX3421E_HOST_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef MAX3421E_HOST_CONFIG_LOG_LEVEL +#define MAX3421E_HOST_CONFIG_LOG_LEVEL 3 +#endif + +// <o> MAX3421E_HOST_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef MAX3421E_HOST_CONFIG_INFO_COLOR +#define MAX3421E_HOST_CONFIG_INFO_COLOR 0 +#endif + +// <o> MAX3421E_HOST_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef MAX3421E_HOST_CONFIG_DEBUG_COLOR +#define MAX3421E_HOST_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRFX_USBD_CONFIG_LOG_ENABLED - Enable logging in the module +//========================================================== +#ifndef NRFX_USBD_CONFIG_LOG_ENABLED +#define NRFX_USBD_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRFX_USBD_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_USBD_CONFIG_LOG_LEVEL +#define NRFX_USBD_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRFX_USBD_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_USBD_CONFIG_INFO_COLOR +#define NRFX_USBD_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRFX_USBD_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_USBD_CONFIG_DEBUG_COLOR +#define NRFX_USBD_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> PDM_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef PDM_CONFIG_LOG_ENABLED +#define PDM_CONFIG_LOG_ENABLED 0 +#endif +// <o> PDM_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef PDM_CONFIG_LOG_LEVEL +#define PDM_CONFIG_LOG_LEVEL 3 +#endif + +// <o> PDM_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef PDM_CONFIG_INFO_COLOR +#define PDM_CONFIG_INFO_COLOR 0 +#endif + +// <o> PDM_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef PDM_CONFIG_DEBUG_COLOR +#define PDM_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> PPI_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef PPI_CONFIG_LOG_ENABLED +#define PPI_CONFIG_LOG_ENABLED 0 +#endif +// <o> PPI_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef PPI_CONFIG_LOG_LEVEL +#define PPI_CONFIG_LOG_LEVEL 3 +#endif + +// <o> PPI_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef PPI_CONFIG_INFO_COLOR +#define PPI_CONFIG_INFO_COLOR 0 +#endif + +// <o> PPI_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef PPI_CONFIG_DEBUG_COLOR +#define PPI_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> PWM_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef PWM_CONFIG_LOG_ENABLED +#define PWM_CONFIG_LOG_ENABLED 0 +#endif +// <o> PWM_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef PWM_CONFIG_LOG_LEVEL +#define PWM_CONFIG_LOG_LEVEL 3 +#endif + +// <o> PWM_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef PWM_CONFIG_INFO_COLOR +#define PWM_CONFIG_INFO_COLOR 0 +#endif + +// <o> PWM_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef PWM_CONFIG_DEBUG_COLOR +#define PWM_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> QDEC_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef QDEC_CONFIG_LOG_ENABLED +#define QDEC_CONFIG_LOG_ENABLED 0 +#endif +// <o> QDEC_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef QDEC_CONFIG_LOG_LEVEL +#define QDEC_CONFIG_LOG_LEVEL 3 +#endif + +// <o> QDEC_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef QDEC_CONFIG_INFO_COLOR +#define QDEC_CONFIG_INFO_COLOR 0 +#endif + +// <o> QDEC_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef QDEC_CONFIG_DEBUG_COLOR +#define QDEC_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> RNG_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef RNG_CONFIG_LOG_ENABLED +#define RNG_CONFIG_LOG_ENABLED 0 +#endif +// <o> RNG_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef RNG_CONFIG_LOG_LEVEL +#define RNG_CONFIG_LOG_LEVEL 3 +#endif + +// <o> RNG_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef RNG_CONFIG_INFO_COLOR +#define RNG_CONFIG_INFO_COLOR 0 +#endif + +// <o> RNG_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef RNG_CONFIG_DEBUG_COLOR +#define RNG_CONFIG_DEBUG_COLOR 0 +#endif + +// <q> RNG_CONFIG_RANDOM_NUMBER_LOG_ENABLED - Enables logging of random numbers. + + +#ifndef RNG_CONFIG_RANDOM_NUMBER_LOG_ENABLED +#define RNG_CONFIG_RANDOM_NUMBER_LOG_ENABLED 0 +#endif + +// </e> + +// <e> RTC_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef RTC_CONFIG_LOG_ENABLED +#define RTC_CONFIG_LOG_ENABLED 0 +#endif +// <o> RTC_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef RTC_CONFIG_LOG_LEVEL +#define RTC_CONFIG_LOG_LEVEL 3 +#endif + +// <o> RTC_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef RTC_CONFIG_INFO_COLOR +#define RTC_CONFIG_INFO_COLOR 0 +#endif + +// <o> RTC_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef RTC_CONFIG_DEBUG_COLOR +#define RTC_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> SAADC_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef SAADC_CONFIG_LOG_ENABLED +#define SAADC_CONFIG_LOG_ENABLED 0 +#endif +// <o> SAADC_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef SAADC_CONFIG_LOG_LEVEL +#define SAADC_CONFIG_LOG_LEVEL 3 +#endif + +// <o> SAADC_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef SAADC_CONFIG_INFO_COLOR +#define SAADC_CONFIG_INFO_COLOR 0 +#endif + +// <o> SAADC_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef SAADC_CONFIG_DEBUG_COLOR +#define SAADC_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> SPIS_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef SPIS_CONFIG_LOG_ENABLED +#define SPIS_CONFIG_LOG_ENABLED 0 +#endif +// <o> SPIS_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef SPIS_CONFIG_LOG_LEVEL +#define SPIS_CONFIG_LOG_LEVEL 3 +#endif + +// <o> SPIS_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef SPIS_CONFIG_INFO_COLOR +#define SPIS_CONFIG_INFO_COLOR 0 +#endif + +// <o> SPIS_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef SPIS_CONFIG_DEBUG_COLOR +#define SPIS_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> SPI_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef SPI_CONFIG_LOG_ENABLED +#define SPI_CONFIG_LOG_ENABLED 0 +#endif +// <o> SPI_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef SPI_CONFIG_LOG_LEVEL +#define SPI_CONFIG_LOG_LEVEL 3 +#endif + +// <o> SPI_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef SPI_CONFIG_INFO_COLOR +#define SPI_CONFIG_INFO_COLOR 0 +#endif + +// <o> SPI_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef SPI_CONFIG_DEBUG_COLOR +#define SPI_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> TIMER_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef TIMER_CONFIG_LOG_ENABLED +#define TIMER_CONFIG_LOG_ENABLED 0 +#endif +// <o> TIMER_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef TIMER_CONFIG_LOG_LEVEL +#define TIMER_CONFIG_LOG_LEVEL 3 +#endif + +// <o> TIMER_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef TIMER_CONFIG_INFO_COLOR +#define TIMER_CONFIG_INFO_COLOR 0 +#endif + +// <o> TIMER_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef TIMER_CONFIG_DEBUG_COLOR +#define TIMER_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> TWIS_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef TWIS_CONFIG_LOG_ENABLED +#define TWIS_CONFIG_LOG_ENABLED 0 +#endif +// <o> TWIS_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef TWIS_CONFIG_LOG_LEVEL +#define TWIS_CONFIG_LOG_LEVEL 3 +#endif + +// <o> TWIS_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef TWIS_CONFIG_INFO_COLOR +#define TWIS_CONFIG_INFO_COLOR 0 +#endif + +// <o> TWIS_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef TWIS_CONFIG_DEBUG_COLOR +#define TWIS_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> TWI_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef TWI_CONFIG_LOG_ENABLED +#define TWI_CONFIG_LOG_ENABLED 0 +#endif +// <o> TWI_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef TWI_CONFIG_LOG_LEVEL +#define TWI_CONFIG_LOG_LEVEL 3 +#endif + +// <o> TWI_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef TWI_CONFIG_INFO_COLOR +#define TWI_CONFIG_INFO_COLOR 0 +#endif + +// <o> TWI_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef TWI_CONFIG_DEBUG_COLOR +#define TWI_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> UART_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef UART_CONFIG_LOG_ENABLED +#define UART_CONFIG_LOG_ENABLED 0 +#endif +// <o> UART_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef UART_CONFIG_LOG_LEVEL +#define UART_CONFIG_LOG_LEVEL 3 +#endif + +// <o> UART_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef UART_CONFIG_INFO_COLOR +#define UART_CONFIG_INFO_COLOR 0 +#endif + +// <o> UART_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef UART_CONFIG_DEBUG_COLOR +#define UART_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> USBD_CONFIG_LOG_ENABLED - Enable logging in the module +//========================================================== +#ifndef USBD_CONFIG_LOG_ENABLED +#define USBD_CONFIG_LOG_ENABLED 0 +#endif +// <o> USBD_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef USBD_CONFIG_LOG_LEVEL +#define USBD_CONFIG_LOG_LEVEL 3 +#endif + +// <o> USBD_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef USBD_CONFIG_INFO_COLOR +#define USBD_CONFIG_INFO_COLOR 0 +#endif + +// <o> USBD_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef USBD_CONFIG_DEBUG_COLOR +#define USBD_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> WDT_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef WDT_CONFIG_LOG_ENABLED +#define WDT_CONFIG_LOG_ENABLED 0 +#endif +// <o> WDT_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef WDT_CONFIG_LOG_LEVEL +#define WDT_CONFIG_LOG_LEVEL 3 +#endif + +// <o> WDT_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef WDT_CONFIG_INFO_COLOR +#define WDT_CONFIG_INFO_COLOR 0 +#endif + +// <o> WDT_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef WDT_CONFIG_DEBUG_COLOR +#define WDT_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </h> +//========================================================== + +// <h> nrf_log in nRF_Libraries + +//========================================================== +// <e> APP_BUTTON_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef APP_BUTTON_CONFIG_LOG_ENABLED +#define APP_BUTTON_CONFIG_LOG_ENABLED 0 +#endif +// <o> APP_BUTTON_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef APP_BUTTON_CONFIG_LOG_LEVEL +#define APP_BUTTON_CONFIG_LOG_LEVEL 3 +#endif + +// <o> APP_BUTTON_CONFIG_INITIAL_LOG_LEVEL - Initial severity level if dynamic filtering is enabled. + + +// <i> If module generates a lot of logs, initial log level can +// <i> be decreased to prevent flooding. Severity level can be +// <i> increased on instance basis. +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef APP_BUTTON_CONFIG_INITIAL_LOG_LEVEL +#define APP_BUTTON_CONFIG_INITIAL_LOG_LEVEL 3 +#endif + +// <o> APP_BUTTON_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_BUTTON_CONFIG_INFO_COLOR +#define APP_BUTTON_CONFIG_INFO_COLOR 0 +#endif + +// <o> APP_BUTTON_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_BUTTON_CONFIG_DEBUG_COLOR +#define APP_BUTTON_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> APP_TIMER_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef APP_TIMER_CONFIG_LOG_ENABLED +#define APP_TIMER_CONFIG_LOG_ENABLED 0 +#endif +// <o> APP_TIMER_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef APP_TIMER_CONFIG_LOG_LEVEL +#define APP_TIMER_CONFIG_LOG_LEVEL 3 +#endif + +// <o> APP_TIMER_CONFIG_INITIAL_LOG_LEVEL - Initial severity level if dynamic filtering is enabled. + + +// <i> If module generates a lot of logs, initial log level can +// <i> be decreased to prevent flooding. Severity level can be +// <i> increased on instance basis. +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef APP_TIMER_CONFIG_INITIAL_LOG_LEVEL +#define APP_TIMER_CONFIG_INITIAL_LOG_LEVEL 3 +#endif + +// <o> APP_TIMER_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_TIMER_CONFIG_INFO_COLOR +#define APP_TIMER_CONFIG_INFO_COLOR 0 +#endif + +// <o> APP_TIMER_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_TIMER_CONFIG_DEBUG_COLOR +#define APP_TIMER_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> APP_USBD_CDC_ACM_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef APP_USBD_CDC_ACM_CONFIG_LOG_ENABLED +#define APP_USBD_CDC_ACM_CONFIG_LOG_ENABLED 0 +#endif +// <o> APP_USBD_CDC_ACM_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef APP_USBD_CDC_ACM_CONFIG_LOG_LEVEL +#define APP_USBD_CDC_ACM_CONFIG_LOG_LEVEL 3 +#endif + +// <o> APP_USBD_CDC_ACM_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_USBD_CDC_ACM_CONFIG_INFO_COLOR +#define APP_USBD_CDC_ACM_CONFIG_INFO_COLOR 0 +#endif + +// <o> APP_USBD_CDC_ACM_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_USBD_CDC_ACM_CONFIG_DEBUG_COLOR +#define APP_USBD_CDC_ACM_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> APP_USBD_CONFIG_LOG_ENABLED - Enable logging in the module. +//========================================================== +#ifndef APP_USBD_CONFIG_LOG_ENABLED +#define APP_USBD_CONFIG_LOG_ENABLED 0 +#endif +// <o> APP_USBD_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef APP_USBD_CONFIG_LOG_LEVEL +#define APP_USBD_CONFIG_LOG_LEVEL 3 +#endif + +// <o> APP_USBD_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_USBD_CONFIG_INFO_COLOR +#define APP_USBD_CONFIG_INFO_COLOR 0 +#endif + +// <o> APP_USBD_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_USBD_CONFIG_DEBUG_COLOR +#define APP_USBD_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> APP_USBD_DUMMY_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef APP_USBD_DUMMY_CONFIG_LOG_ENABLED +#define APP_USBD_DUMMY_CONFIG_LOG_ENABLED 0 +#endif +// <o> APP_USBD_DUMMY_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef APP_USBD_DUMMY_CONFIG_LOG_LEVEL +#define APP_USBD_DUMMY_CONFIG_LOG_LEVEL 3 +#endif + +// <o> APP_USBD_DUMMY_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_USBD_DUMMY_CONFIG_INFO_COLOR +#define APP_USBD_DUMMY_CONFIG_INFO_COLOR 0 +#endif + +// <o> APP_USBD_DUMMY_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_USBD_DUMMY_CONFIG_DEBUG_COLOR +#define APP_USBD_DUMMY_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> APP_USBD_MSC_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef APP_USBD_MSC_CONFIG_LOG_ENABLED +#define APP_USBD_MSC_CONFIG_LOG_ENABLED 0 +#endif +// <o> APP_USBD_MSC_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef APP_USBD_MSC_CONFIG_LOG_LEVEL +#define APP_USBD_MSC_CONFIG_LOG_LEVEL 3 +#endif + +// <o> APP_USBD_MSC_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_USBD_MSC_CONFIG_INFO_COLOR +#define APP_USBD_MSC_CONFIG_INFO_COLOR 0 +#endif + +// <o> APP_USBD_MSC_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_USBD_MSC_CONFIG_DEBUG_COLOR +#define APP_USBD_MSC_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_ENABLED +#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_ENABLED 0 +#endif +// <o> APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_LEVEL +#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_LEVEL 3 +#endif + +// <o> APP_USBD_NRF_DFU_TRIGGER_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_INFO_COLOR +#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_INFO_COLOR 0 +#endif + +// <o> APP_USBD_NRF_DFU_TRIGGER_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_DEBUG_COLOR +#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_ATFIFO_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_ATFIFO_CONFIG_LOG_ENABLED +#define NRF_ATFIFO_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_ATFIFO_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_ATFIFO_CONFIG_LOG_LEVEL +#define NRF_ATFIFO_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_ATFIFO_CONFIG_LOG_INIT_FILTER_LEVEL - Initial severity level if dynamic filtering is enabled + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_ATFIFO_CONFIG_LOG_INIT_FILTER_LEVEL +#define NRF_ATFIFO_CONFIG_LOG_INIT_FILTER_LEVEL 3 +#endif + +// <o> NRF_ATFIFO_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_ATFIFO_CONFIG_INFO_COLOR +#define NRF_ATFIFO_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_ATFIFO_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_ATFIFO_CONFIG_DEBUG_COLOR +#define NRF_ATFIFO_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_BALLOC_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_BALLOC_CONFIG_LOG_ENABLED +#define NRF_BALLOC_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_BALLOC_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_BALLOC_CONFIG_LOG_LEVEL +#define NRF_BALLOC_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_BALLOC_CONFIG_INITIAL_LOG_LEVEL - Initial severity level if dynamic filtering is enabled. + + +// <i> If module generates a lot of logs, initial log level can +// <i> be decreased to prevent flooding. Severity level can be +// <i> increased on instance basis. +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_BALLOC_CONFIG_INITIAL_LOG_LEVEL +#define NRF_BALLOC_CONFIG_INITIAL_LOG_LEVEL 3 +#endif + +// <o> NRF_BALLOC_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_BALLOC_CONFIG_INFO_COLOR +#define NRF_BALLOC_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_BALLOC_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_BALLOC_CONFIG_DEBUG_COLOR +#define NRF_BALLOC_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_ENABLED +#define NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_LEVEL +#define NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_INIT_FILTER_LEVEL - Initial severity level if dynamic filtering is enabled + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_INIT_FILTER_LEVEL +#define NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_INIT_FILTER_LEVEL 3 +#endif + +// <o> NRF_BLOCK_DEV_EMPTY_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_INFO_COLOR +#define NRF_BLOCK_DEV_EMPTY_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_BLOCK_DEV_EMPTY_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_DEBUG_COLOR +#define NRF_BLOCK_DEV_EMPTY_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_BLOCK_DEV_QSPI_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_LOG_ENABLED +#define NRF_BLOCK_DEV_QSPI_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_BLOCK_DEV_QSPI_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_LOG_LEVEL +#define NRF_BLOCK_DEV_QSPI_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_BLOCK_DEV_QSPI_CONFIG_LOG_INIT_FILTER_LEVEL - Initial severity level if dynamic filtering is enabled + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_LOG_INIT_FILTER_LEVEL +#define NRF_BLOCK_DEV_QSPI_CONFIG_LOG_INIT_FILTER_LEVEL 3 +#endif + +// <o> NRF_BLOCK_DEV_QSPI_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_INFO_COLOR +#define NRF_BLOCK_DEV_QSPI_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_BLOCK_DEV_QSPI_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_DEBUG_COLOR +#define NRF_BLOCK_DEV_QSPI_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_BLOCK_DEV_RAM_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_BLOCK_DEV_RAM_CONFIG_LOG_ENABLED +#define NRF_BLOCK_DEV_RAM_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_BLOCK_DEV_RAM_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_BLOCK_DEV_RAM_CONFIG_LOG_LEVEL +#define NRF_BLOCK_DEV_RAM_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_BLOCK_DEV_RAM_CONFIG_LOG_INIT_FILTER_LEVEL - Initial severity level if dynamic filtering is enabled + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_BLOCK_DEV_RAM_CONFIG_LOG_INIT_FILTER_LEVEL +#define NRF_BLOCK_DEV_RAM_CONFIG_LOG_INIT_FILTER_LEVEL 3 +#endif + +// <o> NRF_BLOCK_DEV_RAM_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_BLOCK_DEV_RAM_CONFIG_INFO_COLOR +#define NRF_BLOCK_DEV_RAM_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_BLOCK_DEV_RAM_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_BLOCK_DEV_RAM_CONFIG_DEBUG_COLOR +#define NRF_BLOCK_DEV_RAM_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_CLI_BLE_UART_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_CLI_BLE_UART_CONFIG_LOG_ENABLED +#define NRF_CLI_BLE_UART_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_CLI_BLE_UART_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_CLI_BLE_UART_CONFIG_LOG_LEVEL +#define NRF_CLI_BLE_UART_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_CLI_BLE_UART_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_CLI_BLE_UART_CONFIG_INFO_COLOR +#define NRF_CLI_BLE_UART_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_CLI_BLE_UART_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_CLI_BLE_UART_CONFIG_DEBUG_COLOR +#define NRF_CLI_BLE_UART_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_CLI_LIBUARTE_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_CLI_LIBUARTE_CONFIG_LOG_ENABLED +#define NRF_CLI_LIBUARTE_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_CLI_LIBUARTE_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_CLI_LIBUARTE_CONFIG_LOG_LEVEL +#define NRF_CLI_LIBUARTE_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_CLI_LIBUARTE_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_CLI_LIBUARTE_CONFIG_INFO_COLOR +#define NRF_CLI_LIBUARTE_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_CLI_LIBUARTE_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_CLI_LIBUARTE_CONFIG_DEBUG_COLOR +#define NRF_CLI_LIBUARTE_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_CLI_UART_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_CLI_UART_CONFIG_LOG_ENABLED +#define NRF_CLI_UART_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_CLI_UART_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_CLI_UART_CONFIG_LOG_LEVEL +#define NRF_CLI_UART_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_CLI_UART_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_CLI_UART_CONFIG_INFO_COLOR +#define NRF_CLI_UART_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_CLI_UART_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_CLI_UART_CONFIG_DEBUG_COLOR +#define NRF_CLI_UART_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_LIBUARTE_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_LIBUARTE_CONFIG_LOG_ENABLED +#define NRF_LIBUARTE_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_LIBUARTE_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_LIBUARTE_CONFIG_LOG_LEVEL +#define NRF_LIBUARTE_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_LIBUARTE_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_LIBUARTE_CONFIG_INFO_COLOR +#define NRF_LIBUARTE_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_LIBUARTE_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_LIBUARTE_CONFIG_DEBUG_COLOR +#define NRF_LIBUARTE_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_MEMOBJ_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_MEMOBJ_CONFIG_LOG_ENABLED +#define NRF_MEMOBJ_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_MEMOBJ_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_MEMOBJ_CONFIG_LOG_LEVEL +#define NRF_MEMOBJ_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_MEMOBJ_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_MEMOBJ_CONFIG_INFO_COLOR +#define NRF_MEMOBJ_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_MEMOBJ_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_MEMOBJ_CONFIG_DEBUG_COLOR +#define NRF_MEMOBJ_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_PWR_MGMT_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_PWR_MGMT_CONFIG_LOG_ENABLED +#define NRF_PWR_MGMT_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_PWR_MGMT_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_PWR_MGMT_CONFIG_LOG_LEVEL +#define NRF_PWR_MGMT_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_PWR_MGMT_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_PWR_MGMT_CONFIG_INFO_COLOR +#define NRF_PWR_MGMT_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_PWR_MGMT_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_PWR_MGMT_CONFIG_DEBUG_COLOR +#define NRF_PWR_MGMT_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_QUEUE_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_QUEUE_CONFIG_LOG_ENABLED +#define NRF_QUEUE_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_QUEUE_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_QUEUE_CONFIG_LOG_LEVEL +#define NRF_QUEUE_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_QUEUE_CONFIG_LOG_INIT_FILTER_LEVEL - Initial severity level if dynamic filtering is enabled + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_QUEUE_CONFIG_LOG_INIT_FILTER_LEVEL +#define NRF_QUEUE_CONFIG_LOG_INIT_FILTER_LEVEL 3 +#endif + +// <o> NRF_QUEUE_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_QUEUE_CONFIG_INFO_COLOR +#define NRF_QUEUE_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_QUEUE_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_QUEUE_CONFIG_DEBUG_COLOR +#define NRF_QUEUE_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_SDH_ANT_LOG_ENABLED - Enable logging in SoftDevice handler (ANT) module. +//========================================================== +#ifndef NRF_SDH_ANT_LOG_ENABLED +#define NRF_SDH_ANT_LOG_ENABLED 0 +#endif +// <o> NRF_SDH_ANT_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_SDH_ANT_LOG_LEVEL +#define NRF_SDH_ANT_LOG_LEVEL 3 +#endif + +// <o> NRF_SDH_ANT_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_SDH_ANT_INFO_COLOR +#define NRF_SDH_ANT_INFO_COLOR 0 +#endif + +// <o> NRF_SDH_ANT_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_SDH_ANT_DEBUG_COLOR +#define NRF_SDH_ANT_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_SDH_BLE_LOG_ENABLED - Enable logging in SoftDevice handler (BLE) module. +//========================================================== +#ifndef NRF_SDH_BLE_LOG_ENABLED +#define NRF_SDH_BLE_LOG_ENABLED 1 +#endif +// <o> NRF_SDH_BLE_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_SDH_BLE_LOG_LEVEL +#define NRF_SDH_BLE_LOG_LEVEL 3 +#endif + +// <o> NRF_SDH_BLE_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_SDH_BLE_INFO_COLOR +#define NRF_SDH_BLE_INFO_COLOR 0 +#endif + +// <o> NRF_SDH_BLE_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_SDH_BLE_DEBUG_COLOR +#define NRF_SDH_BLE_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_SDH_LOG_ENABLED - Enable logging in SoftDevice handler module. +//========================================================== +#ifndef NRF_SDH_LOG_ENABLED +#define NRF_SDH_LOG_ENABLED 1 +#endif +// <o> NRF_SDH_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_SDH_LOG_LEVEL +#define NRF_SDH_LOG_LEVEL 3 +#endif + +// <o> NRF_SDH_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_SDH_INFO_COLOR +#define NRF_SDH_INFO_COLOR 0 +#endif + +// <o> NRF_SDH_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_SDH_DEBUG_COLOR +#define NRF_SDH_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_SDH_SOC_LOG_ENABLED - Enable logging in SoftDevice handler (SoC) module. +//========================================================== +#ifndef NRF_SDH_SOC_LOG_ENABLED +#define NRF_SDH_SOC_LOG_ENABLED 1 +#endif +// <o> NRF_SDH_SOC_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_SDH_SOC_LOG_LEVEL +#define NRF_SDH_SOC_LOG_LEVEL 3 +#endif + +// <o> NRF_SDH_SOC_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_SDH_SOC_INFO_COLOR +#define NRF_SDH_SOC_INFO_COLOR 0 +#endif + +// <o> NRF_SDH_SOC_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_SDH_SOC_DEBUG_COLOR +#define NRF_SDH_SOC_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_SORTLIST_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_SORTLIST_CONFIG_LOG_ENABLED +#define NRF_SORTLIST_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_SORTLIST_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_SORTLIST_CONFIG_LOG_LEVEL +#define NRF_SORTLIST_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_SORTLIST_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_SORTLIST_CONFIG_INFO_COLOR +#define NRF_SORTLIST_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_SORTLIST_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_SORTLIST_CONFIG_DEBUG_COLOR +#define NRF_SORTLIST_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> NRF_TWI_SENSOR_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_TWI_SENSOR_CONFIG_LOG_ENABLED +#define NRF_TWI_SENSOR_CONFIG_LOG_ENABLED 0 +#endif +// <o> NRF_TWI_SENSOR_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_TWI_SENSOR_CONFIG_LOG_LEVEL +#define NRF_TWI_SENSOR_CONFIG_LOG_LEVEL 3 +#endif + +// <o> NRF_TWI_SENSOR_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_TWI_SENSOR_CONFIG_INFO_COLOR +#define NRF_TWI_SENSOR_CONFIG_INFO_COLOR 0 +#endif + +// <o> NRF_TWI_SENSOR_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_TWI_SENSOR_CONFIG_DEBUG_COLOR +#define NRF_TWI_SENSOR_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// <e> PM_LOG_ENABLED - Enable logging in Peer Manager and its submodules. +//========================================================== +#ifndef PM_LOG_ENABLED +#define PM_LOG_ENABLED 1 +#endif +// <o> PM_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef PM_LOG_LEVEL +#define PM_LOG_LEVEL 3 +#endif + +// <o> PM_LOG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef PM_LOG_INFO_COLOR +#define PM_LOG_INFO_COLOR 0 +#endif + +// <o> PM_LOG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef PM_LOG_DEBUG_COLOR +#define PM_LOG_DEBUG_COLOR 0 +#endif + +// </e> + +// </h> +//========================================================== + +// <h> nrf_log in nRF_Serialization + +//========================================================== +// <e> SER_HAL_TRANSPORT_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef SER_HAL_TRANSPORT_CONFIG_LOG_ENABLED +#define SER_HAL_TRANSPORT_CONFIG_LOG_ENABLED 0 +#endif +// <o> SER_HAL_TRANSPORT_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef SER_HAL_TRANSPORT_CONFIG_LOG_LEVEL +#define SER_HAL_TRANSPORT_CONFIG_LOG_LEVEL 3 +#endif + +// <o> SER_HAL_TRANSPORT_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef SER_HAL_TRANSPORT_CONFIG_INFO_COLOR +#define SER_HAL_TRANSPORT_CONFIG_INFO_COLOR 0 +#endif + +// <o> SER_HAL_TRANSPORT_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef SER_HAL_TRANSPORT_CONFIG_DEBUG_COLOR +#define SER_HAL_TRANSPORT_CONFIG_DEBUG_COLOR 0 +#endif + +// </e> + +// </h> +//========================================================== + +// </h> +//========================================================== + +// </e> + +// <q> NRF_LOG_STR_FORMATTER_TIMESTAMP_FORMAT_ENABLED - nrf_log_str_formatter - Log string formatter + + +#ifndef NRF_LOG_STR_FORMATTER_TIMESTAMP_FORMAT_ENABLED +#define NRF_LOG_STR_FORMATTER_TIMESTAMP_FORMAT_ENABLED 1 +#endif + +// </h> +//========================================================== + +// <h> nRF_NFC + +//========================================================== +// <q> NFC_AC_REC_ENABLED - nfc_ac_rec - NFC NDEF Alternative Carrier record encoder + + +#ifndef NFC_AC_REC_ENABLED +#define NFC_AC_REC_ENABLED 0 +#endif + +// <q> NFC_AC_REC_PARSER_ENABLED - nfc_ac_rec_parser - Alternative Carrier record parser + + +#ifndef NFC_AC_REC_PARSER_ENABLED +#define NFC_AC_REC_PARSER_ENABLED 0 +#endif + +// <e> NFC_BLE_OOB_ADVDATA_ENABLED - nfc_ble_oob_advdata - AD data for OOB pairing encoder +//========================================================== +#ifndef NFC_BLE_OOB_ADVDATA_ENABLED +#define NFC_BLE_OOB_ADVDATA_ENABLED 0 +#endif +// <o> ADVANCED_ADVDATA_SUPPORT - Non-mandatory AD types for BLE OOB pairing are encoded inside the NDEF message (e.g. service UUIDs) + +// <1=> Enabled +// <0=> Disabled + +#ifndef ADVANCED_ADVDATA_SUPPORT +#define ADVANCED_ADVDATA_SUPPORT 0 +#endif + +// </e> + +// <q> NFC_BLE_OOB_ADVDATA_PARSER_ENABLED - nfc_ble_oob_advdata_parser - BLE OOB pairing AD data parser + + +#ifndef NFC_BLE_OOB_ADVDATA_PARSER_ENABLED +#define NFC_BLE_OOB_ADVDATA_PARSER_ENABLED 0 +#endif + +// <e> NFC_BLE_PAIR_LIB_ENABLED - nfc_ble_pair_lib - Library parameters +//========================================================== +#ifndef NFC_BLE_PAIR_LIB_ENABLED +#define NFC_BLE_PAIR_LIB_ENABLED 0 +#endif +// <e> NFC_BLE_PAIR_LIB_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NFC_BLE_PAIR_LIB_LOG_ENABLED +#define NFC_BLE_PAIR_LIB_LOG_ENABLED 0 +#endif +// <o> NFC_BLE_PAIR_LIB_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NFC_BLE_PAIR_LIB_LOG_LEVEL +#define NFC_BLE_PAIR_LIB_LOG_LEVEL 3 +#endif + +// <o> NFC_BLE_PAIR_LIB_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NFC_BLE_PAIR_LIB_INFO_COLOR +#define NFC_BLE_PAIR_LIB_INFO_COLOR 0 +#endif + +// <o> NFC_BLE_PAIR_LIB_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NFC_BLE_PAIR_LIB_DEBUG_COLOR +#define NFC_BLE_PAIR_LIB_DEBUG_COLOR 0 +#endif + +// </e> + +// <h> NFC_BLE_PAIR_LIB_SECURITY_PARAMETERS - Common Peer Manager security parameters. + +//========================================================== +// <e> BLE_NFC_SEC_PARAM_BOND - Enables device bonding. + +// <i> If bonding is enabled at least one of the BLE_NFC_SEC_PARAM_KDIST options must be enabled. +//========================================================== +#ifndef BLE_NFC_SEC_PARAM_BOND +#define BLE_NFC_SEC_PARAM_BOND 1 +#endif +// <q> BLE_NFC_SEC_PARAM_KDIST_OWN_ENC - Enables Long Term Key and Master Identification distribution by device. + + +#ifndef BLE_NFC_SEC_PARAM_KDIST_OWN_ENC +#define BLE_NFC_SEC_PARAM_KDIST_OWN_ENC 1 +#endif + +// <q> BLE_NFC_SEC_PARAM_KDIST_OWN_ID - Enables Identity Resolving Key and Identity Address Information distribution by device. + + +#ifndef BLE_NFC_SEC_PARAM_KDIST_OWN_ID +#define BLE_NFC_SEC_PARAM_KDIST_OWN_ID 1 +#endif + +// <q> BLE_NFC_SEC_PARAM_KDIST_PEER_ENC - Enables Long Term Key and Master Identification distribution by peer. + + +#ifndef BLE_NFC_SEC_PARAM_KDIST_PEER_ENC +#define BLE_NFC_SEC_PARAM_KDIST_PEER_ENC 1 +#endif + +// <q> BLE_NFC_SEC_PARAM_KDIST_PEER_ID - Enables Identity Resolving Key and Identity Address Information distribution by peer. + + +#ifndef BLE_NFC_SEC_PARAM_KDIST_PEER_ID +#define BLE_NFC_SEC_PARAM_KDIST_PEER_ID 1 +#endif + +// </e> + +// <o> BLE_NFC_SEC_PARAM_MIN_KEY_SIZE - Minimal size of a security key. + +// <7=> 7 +// <8=> 8 +// <9=> 9 +// <10=> 10 +// <11=> 11 +// <12=> 12 +// <13=> 13 +// <14=> 14 +// <15=> 15 +// <16=> 16 + +#ifndef BLE_NFC_SEC_PARAM_MIN_KEY_SIZE +#define BLE_NFC_SEC_PARAM_MIN_KEY_SIZE 7 +#endif + +// <o> BLE_NFC_SEC_PARAM_MAX_KEY_SIZE - Maximal size of a security key. + +// <7=> 7 +// <8=> 8 +// <9=> 9 +// <10=> 10 +// <11=> 11 +// <12=> 12 +// <13=> 13 +// <14=> 14 +// <15=> 15 +// <16=> 16 + +#ifndef BLE_NFC_SEC_PARAM_MAX_KEY_SIZE +#define BLE_NFC_SEC_PARAM_MAX_KEY_SIZE 16 +#endif + +// </h> +//========================================================== + +// </e> + +// <q> NFC_BLE_PAIR_MSG_ENABLED - nfc_ble_pair_msg - NDEF message for OOB pairing encoder + + +#ifndef NFC_BLE_PAIR_MSG_ENABLED +#define NFC_BLE_PAIR_MSG_ENABLED 0 +#endif + +// <q> NFC_CH_COMMON_ENABLED - nfc_ble_pair_common - OOB pairing common data + + +#ifndef NFC_CH_COMMON_ENABLED +#define NFC_CH_COMMON_ENABLED 0 +#endif + +// <q> NFC_EP_OOB_REC_ENABLED - nfc_ep_oob_rec - EP record for BLE pairing encoder + + +#ifndef NFC_EP_OOB_REC_ENABLED +#define NFC_EP_OOB_REC_ENABLED 0 +#endif + +// <q> NFC_HS_REC_ENABLED - nfc_hs_rec - Handover Select NDEF record encoder + + +#ifndef NFC_HS_REC_ENABLED +#define NFC_HS_REC_ENABLED 0 +#endif + +// <q> NFC_LE_OOB_REC_ENABLED - nfc_le_oob_rec - LE record for BLE pairing encoder + + +#ifndef NFC_LE_OOB_REC_ENABLED +#define NFC_LE_OOB_REC_ENABLED 0 +#endif + +// <q> NFC_LE_OOB_REC_PARSER_ENABLED - nfc_le_oob_rec_parser - LE record parser + + +#ifndef NFC_LE_OOB_REC_PARSER_ENABLED +#define NFC_LE_OOB_REC_PARSER_ENABLED 0 +#endif + +// <q> NFC_NDEF_LAUNCHAPP_MSG_ENABLED - nfc_launchapp_msg - Encoding data for NDEF Application Launching message for NFC Tag + + +#ifndef NFC_NDEF_LAUNCHAPP_MSG_ENABLED +#define NFC_NDEF_LAUNCHAPP_MSG_ENABLED 0 +#endif + +// <q> NFC_NDEF_LAUNCHAPP_REC_ENABLED - nfc_launchapp_rec - Encoding data for NDEF Application Launching record for NFC Tag + + +#ifndef NFC_NDEF_LAUNCHAPP_REC_ENABLED +#define NFC_NDEF_LAUNCHAPP_REC_ENABLED 0 +#endif + +// <e> NFC_NDEF_MSG_ENABLED - nfc_ndef_msg - NFC NDEF Message generator module +//========================================================== +#ifndef NFC_NDEF_MSG_ENABLED +#define NFC_NDEF_MSG_ENABLED 0 +#endif +// <o> NFC_NDEF_MSG_TAG_TYPE - NFC Tag Type + +// <2=> Type 2 Tag +// <4=> Type 4 Tag + +#ifndef NFC_NDEF_MSG_TAG_TYPE +#define NFC_NDEF_MSG_TAG_TYPE 2 +#endif + +// </e> + +// <e> NFC_NDEF_MSG_PARSER_ENABLED - nfc_ndef_msg_parser - NFC NDEF message parser module +//========================================================== +#ifndef NFC_NDEF_MSG_PARSER_ENABLED +#define NFC_NDEF_MSG_PARSER_ENABLED 0 +#endif +// <e> NFC_NDEF_MSG_PARSER_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NFC_NDEF_MSG_PARSER_LOG_ENABLED +#define NFC_NDEF_MSG_PARSER_LOG_ENABLED 0 +#endif +// <o> NFC_NDEF_MSG_PARSER_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NFC_NDEF_MSG_PARSER_LOG_LEVEL +#define NFC_NDEF_MSG_PARSER_LOG_LEVEL 3 +#endif + +// <o> NFC_NDEF_MSG_PARSER_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NFC_NDEF_MSG_PARSER_INFO_COLOR +#define NFC_NDEF_MSG_PARSER_INFO_COLOR 0 +#endif + +// </e> + +// </e> + +// <q> NFC_NDEF_RECORD_ENABLED - nfc_ndef_record - NFC NDEF Record generator module + + +#ifndef NFC_NDEF_RECORD_ENABLED +#define NFC_NDEF_RECORD_ENABLED 0 +#endif + +// <e> NFC_NDEF_RECORD_PARSER_ENABLED - nfc_ndef_record_parser - NFC NDEF Record parser module +//========================================================== +#ifndef NFC_NDEF_RECORD_PARSER_ENABLED +#define NFC_NDEF_RECORD_PARSER_ENABLED 0 +#endif +// <e> NFC_NDEF_RECORD_PARSER_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NFC_NDEF_RECORD_PARSER_LOG_ENABLED +#define NFC_NDEF_RECORD_PARSER_LOG_ENABLED 0 +#endif +// <o> NFC_NDEF_RECORD_PARSER_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NFC_NDEF_RECORD_PARSER_LOG_LEVEL +#define NFC_NDEF_RECORD_PARSER_LOG_LEVEL 3 +#endif + +// <o> NFC_NDEF_RECORD_PARSER_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NFC_NDEF_RECORD_PARSER_INFO_COLOR +#define NFC_NDEF_RECORD_PARSER_INFO_COLOR 0 +#endif + +// </e> + +// </e> + +// <q> NFC_NDEF_TEXT_RECORD_ENABLED - nfc_text_rec - Encoding data for a text record for NFC Tag + + +#ifndef NFC_NDEF_TEXT_RECORD_ENABLED +#define NFC_NDEF_TEXT_RECORD_ENABLED 0 +#endif + +// <q> NFC_NDEF_URI_MSG_ENABLED - nfc_uri_msg - Encoding data for NDEF message with URI record for NFC Tag + + +#ifndef NFC_NDEF_URI_MSG_ENABLED +#define NFC_NDEF_URI_MSG_ENABLED 0 +#endif + +// <q> NFC_NDEF_URI_REC_ENABLED - nfc_uri_rec - Encoding data for a URI record for NFC Tag + + +#ifndef NFC_NDEF_URI_REC_ENABLED +#define NFC_NDEF_URI_REC_ENABLED 0 +#endif + +// <e> NFC_PLATFORM_ENABLED - nfc_platform - NFC platform module for Clock control. +//========================================================== +#ifndef NFC_PLATFORM_ENABLED +#define NFC_PLATFORM_ENABLED 0 +#endif +// <e> NFC_PLATFORM_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NFC_PLATFORM_LOG_ENABLED +#define NFC_PLATFORM_LOG_ENABLED 0 +#endif +// <o> NFC_PLATFORM_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NFC_PLATFORM_LOG_LEVEL +#define NFC_PLATFORM_LOG_LEVEL 3 +#endif + +// <o> NFC_PLATFORM_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NFC_PLATFORM_INFO_COLOR +#define NFC_PLATFORM_INFO_COLOR 0 +#endif + +// <o> NFC_PLATFORM_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NFC_PLATFORM_DEBUG_COLOR +#define NFC_PLATFORM_DEBUG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NFC_T2T_PARSER_ENABLED - nfc_type_2_tag_parser - Parser for decoding Type 2 Tag data +//========================================================== +#ifndef NFC_T2T_PARSER_ENABLED +#define NFC_T2T_PARSER_ENABLED 0 +#endif +// <e> NFC_T2T_PARSER_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NFC_T2T_PARSER_LOG_ENABLED +#define NFC_T2T_PARSER_LOG_ENABLED 0 +#endif +// <o> NFC_T2T_PARSER_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NFC_T2T_PARSER_LOG_LEVEL +#define NFC_T2T_PARSER_LOG_LEVEL 3 +#endif + +// <o> NFC_T2T_PARSER_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NFC_T2T_PARSER_INFO_COLOR +#define NFC_T2T_PARSER_INFO_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NFC_T4T_APDU_ENABLED - nfc_t4t_apdu - APDU encoder/decoder for Type 4 Tag +//========================================================== +#ifndef NFC_T4T_APDU_ENABLED +#define NFC_T4T_APDU_ENABLED 0 +#endif +// <e> NFC_T4T_APDU_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NFC_T4T_APDU_LOG_ENABLED +#define NFC_T4T_APDU_LOG_ENABLED 0 +#endif +// <o> NFC_T4T_APDU_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NFC_T4T_APDU_LOG_LEVEL +#define NFC_T4T_APDU_LOG_LEVEL 3 +#endif + +// <o> NFC_T4T_APDU_LOG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NFC_T4T_APDU_LOG_COLOR +#define NFC_T4T_APDU_LOG_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NFC_T4T_CC_FILE_PARSER_ENABLED - nfc_t4t_cc_file - Capability Container file for Type 4 Tag +//========================================================== +#ifndef NFC_T4T_CC_FILE_PARSER_ENABLED +#define NFC_T4T_CC_FILE_PARSER_ENABLED 0 +#endif +// <e> NFC_T4T_CC_FILE_PARSER_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NFC_T4T_CC_FILE_PARSER_LOG_ENABLED +#define NFC_T4T_CC_FILE_PARSER_LOG_ENABLED 0 +#endif +// <o> NFC_T4T_CC_FILE_PARSER_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NFC_T4T_CC_FILE_PARSER_LOG_LEVEL +#define NFC_T4T_CC_FILE_PARSER_LOG_LEVEL 3 +#endif + +// <o> NFC_T4T_CC_FILE_PARSER_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NFC_T4T_CC_FILE_PARSER_INFO_COLOR +#define NFC_T4T_CC_FILE_PARSER_INFO_COLOR 0 +#endif + +// </e> + +// </e> + +// <e> NFC_T4T_HL_DETECTION_PROCEDURES_ENABLED - nfc_t4t_hl_detection_procedures - NDEF Detection Procedure for Type 4 Tag +//========================================================== +#ifndef NFC_T4T_HL_DETECTION_PROCEDURES_ENABLED +#define NFC_T4T_HL_DETECTION_PROCEDURES_ENABLED 0 +#endif +// <e> NFC_T4T_HL_DETECTION_PROCEDURES_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NFC_T4T_HL_DETECTION_PROCEDURES_LOG_ENABLED +#define NFC_T4T_HL_DETECTION_PROCEDURES_LOG_ENABLED 0 +#endif +// <o> NFC_T4T_HL_DETECTION_PROCEDURES_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NFC_T4T_HL_DETECTION_PROCEDURES_LOG_LEVEL +#define NFC_T4T_HL_DETECTION_PROCEDURES_LOG_LEVEL 3 +#endif + +// <o> NFC_T4T_HL_DETECTION_PROCEDURES_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NFC_T4T_HL_DETECTION_PROCEDURES_INFO_COLOR +#define NFC_T4T_HL_DETECTION_PROCEDURES_INFO_COLOR 0 +#endif + +// </e> + +// <o> APDU_BUFF_SIZE - Size (in bytes) of the buffer for APDU storage +#ifndef APDU_BUFF_SIZE +#define APDU_BUFF_SIZE 250 +#endif + +// <o> CC_STORAGE_BUFF_SIZE - Size (in bytes) of the buffer for CC file storage +#ifndef CC_STORAGE_BUFF_SIZE +#define CC_STORAGE_BUFF_SIZE 64 +#endif + +// </e> + +// <e> NFC_T4T_TLV_BLOCK_PARSER_ENABLED - nfc_t4t_tlv_block - TLV block for Type 4 Tag +//========================================================== +#ifndef NFC_T4T_TLV_BLOCK_PARSER_ENABLED +#define NFC_T4T_TLV_BLOCK_PARSER_ENABLED 0 +#endif +// <e> NFC_T4T_TLV_BLOCK_PARSER_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NFC_T4T_TLV_BLOCK_PARSER_LOG_ENABLED +#define NFC_T4T_TLV_BLOCK_PARSER_LOG_ENABLED 0 +#endif +// <o> NFC_T4T_TLV_BLOCK_PARSER_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NFC_T4T_TLV_BLOCK_PARSER_LOG_LEVEL +#define NFC_T4T_TLV_BLOCK_PARSER_LOG_LEVEL 3 +#endif + +// <o> NFC_T4T_TLV_BLOCK_PARSER_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NFC_T4T_TLV_BLOCK_PARSER_INFO_COLOR +#define NFC_T4T_TLV_BLOCK_PARSER_INFO_COLOR 0 +#endif + +// </e> + +// </e> + +// </h> +//========================================================== + +// <h> nRF_SoftDevice + +//========================================================== +// <e> NRF_SDH_BLE_ENABLED - nrf_sdh_ble - SoftDevice BLE event handler +//========================================================== +#ifndef NRF_SDH_BLE_ENABLED +#define NRF_SDH_BLE_ENABLED 0 +#endif +// <h> BLE Stack configuration - Stack configuration parameters + +// <i> The SoftDevice handler will configure the stack with these parameters when calling @ref nrf_sdh_ble_default_cfg_set. +// <i> Other libraries might depend on these values; keep them up-to-date even if you are not explicitely calling @ref nrf_sdh_ble_default_cfg_set. +//========================================================== +// <o> NRF_SDH_BLE_GAP_DATA_LENGTH <27-251> + + +// <i> Requested BLE GAP data length to be negotiated. + +#ifndef NRF_SDH_BLE_GAP_DATA_LENGTH +#define NRF_SDH_BLE_GAP_DATA_LENGTH 27 +#endif + +// <o> NRF_SDH_BLE_PERIPHERAL_LINK_COUNT - Maximum number of peripheral links. +#ifndef NRF_SDH_BLE_PERIPHERAL_LINK_COUNT +#define NRF_SDH_BLE_PERIPHERAL_LINK_COUNT 0 +#endif + +// <o> NRF_SDH_BLE_CENTRAL_LINK_COUNT - Maximum number of central links. +#ifndef NRF_SDH_BLE_CENTRAL_LINK_COUNT +#define NRF_SDH_BLE_CENTRAL_LINK_COUNT 0 +#endif + +// <o> NRF_SDH_BLE_TOTAL_LINK_COUNT - Total link count. +// <i> Maximum number of total concurrent connections using the default configuration. + +#ifndef NRF_SDH_BLE_TOTAL_LINK_COUNT +#define NRF_SDH_BLE_TOTAL_LINK_COUNT 1 +#endif + +// <o> NRF_SDH_BLE_GAP_EVENT_LENGTH - GAP event length. +// <i> The time set aside for this connection on every connection interval in 1.25 ms units. + +#ifndef NRF_SDH_BLE_GAP_EVENT_LENGTH +#define NRF_SDH_BLE_GAP_EVENT_LENGTH 6 +#endif + +// <o> NRF_SDH_BLE_GATT_MAX_MTU_SIZE - Static maximum MTU size. +#ifndef NRF_SDH_BLE_GATT_MAX_MTU_SIZE +#define NRF_SDH_BLE_GATT_MAX_MTU_SIZE 23 +#endif + +// <o> NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE - Attribute Table size in bytes. The size must be a multiple of 4. +#ifndef NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE +#define NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE 1408 +#endif + +// <o> NRF_SDH_BLE_VS_UUID_COUNT - The number of vendor-specific UUIDs. +#ifndef NRF_SDH_BLE_VS_UUID_COUNT +#define NRF_SDH_BLE_VS_UUID_COUNT 0 +#endif + +// <q> NRF_SDH_BLE_SERVICE_CHANGED - Include the Service Changed characteristic in the Attribute Table. + + +#ifndef NRF_SDH_BLE_SERVICE_CHANGED +#define NRF_SDH_BLE_SERVICE_CHANGED 0 +#endif + +// </h> +//========================================================== + +// <h> BLE Observers - Observers and priority levels + +//========================================================== +// <o> NRF_SDH_BLE_OBSERVER_PRIO_LEVELS - Total number of priority levels for BLE observers. +// <i> This setting configures the number of priority levels available for BLE event handlers. +// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers. + +#ifndef NRF_SDH_BLE_OBSERVER_PRIO_LEVELS +#define NRF_SDH_BLE_OBSERVER_PRIO_LEVELS 4 +#endif + +// <h> BLE Observers priorities - Invididual priorities + +//========================================================== +// <o> BLE_ADV_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Advertising module. + +#ifndef BLE_ADV_BLE_OBSERVER_PRIO +#define BLE_ADV_BLE_OBSERVER_PRIO 1 +#endif + +// <o> BLE_ANCS_C_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Apple Notification Service Client. + +#ifndef BLE_ANCS_C_BLE_OBSERVER_PRIO +#define BLE_ANCS_C_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_ANS_C_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Alert Notification Service Client. + +#ifndef BLE_ANS_C_BLE_OBSERVER_PRIO +#define BLE_ANS_C_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_BAS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Battery Service. + +#ifndef BLE_BAS_BLE_OBSERVER_PRIO +#define BLE_BAS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_BAS_C_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Battery Service Client. + +#ifndef BLE_BAS_C_BLE_OBSERVER_PRIO +#define BLE_BAS_C_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_BPS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Blood Pressure Service. + +#ifndef BLE_BPS_BLE_OBSERVER_PRIO +#define BLE_BPS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_CONN_PARAMS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Connection parameters module. + +#ifndef BLE_CONN_PARAMS_BLE_OBSERVER_PRIO +#define BLE_CONN_PARAMS_BLE_OBSERVER_PRIO 1 +#endif + +// <o> BLE_CONN_STATE_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Connection State module. + +#ifndef BLE_CONN_STATE_BLE_OBSERVER_PRIO +#define BLE_CONN_STATE_BLE_OBSERVER_PRIO 0 +#endif + +// <o> BLE_CSCS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Cycling Speed and Cadence Service. + +#ifndef BLE_CSCS_BLE_OBSERVER_PRIO +#define BLE_CSCS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_CTS_C_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Current Time Service Client. + +#ifndef BLE_CTS_C_BLE_OBSERVER_PRIO +#define BLE_CTS_C_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_DB_DISC_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Database Discovery module. + +#ifndef BLE_DB_DISC_BLE_OBSERVER_PRIO +#define BLE_DB_DISC_BLE_OBSERVER_PRIO 1 +#endif + +// <o> BLE_DFU_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the DFU Service. + +#ifndef BLE_DFU_BLE_OBSERVER_PRIO +#define BLE_DFU_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_DIS_C_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Device Information Client. + +#ifndef BLE_DIS_C_BLE_OBSERVER_PRIO +#define BLE_DIS_C_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_GLS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Glucose Service. + +#ifndef BLE_GLS_BLE_OBSERVER_PRIO +#define BLE_GLS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_HIDS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Human Interface Device Service. + +#ifndef BLE_HIDS_BLE_OBSERVER_PRIO +#define BLE_HIDS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_HRS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Heart Rate Service. + +#ifndef BLE_HRS_BLE_OBSERVER_PRIO +#define BLE_HRS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_HRS_C_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Heart Rate Service Client. + +#ifndef BLE_HRS_C_BLE_OBSERVER_PRIO +#define BLE_HRS_C_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_HTS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Health Thermometer Service. + +#ifndef BLE_HTS_BLE_OBSERVER_PRIO +#define BLE_HTS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_IAS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Immediate Alert Service. + +#ifndef BLE_IAS_BLE_OBSERVER_PRIO +#define BLE_IAS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_IAS_C_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Immediate Alert Service Client. + +#ifndef BLE_IAS_C_BLE_OBSERVER_PRIO +#define BLE_IAS_C_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_LBS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the LED Button Service. + +#ifndef BLE_LBS_BLE_OBSERVER_PRIO +#define BLE_LBS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_LBS_C_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the LED Button Service Client. + +#ifndef BLE_LBS_C_BLE_OBSERVER_PRIO +#define BLE_LBS_C_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_LLS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Link Loss Service. + +#ifndef BLE_LLS_BLE_OBSERVER_PRIO +#define BLE_LLS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_LNS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Location Navigation Service. + +#ifndef BLE_LNS_BLE_OBSERVER_PRIO +#define BLE_LNS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_NUS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the UART Service. + +#ifndef BLE_NUS_BLE_OBSERVER_PRIO +#define BLE_NUS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_NUS_C_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the UART Central Service. + +#ifndef BLE_NUS_C_BLE_OBSERVER_PRIO +#define BLE_NUS_C_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_OTS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Object transfer service. + +#ifndef BLE_OTS_BLE_OBSERVER_PRIO +#define BLE_OTS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_OTS_C_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Object transfer service client. + +#ifndef BLE_OTS_C_BLE_OBSERVER_PRIO +#define BLE_OTS_C_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_RSCS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Running Speed and Cadence Service. + +#ifndef BLE_RSCS_BLE_OBSERVER_PRIO +#define BLE_RSCS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_RSCS_C_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Running Speed and Cadence Client. + +#ifndef BLE_RSCS_C_BLE_OBSERVER_PRIO +#define BLE_RSCS_C_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BLE_TPS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the TX Power Service. + +#ifndef BLE_TPS_BLE_OBSERVER_PRIO +#define BLE_TPS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> BSP_BTN_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Button Control module. + +#ifndef BSP_BTN_BLE_OBSERVER_PRIO +#define BSP_BTN_BLE_OBSERVER_PRIO 1 +#endif + +// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the NFC pairing library. + +#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1 +#endif + +// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the NFC pairing library. + +#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1 +#endif + +// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the NFC pairing library. + +#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1 +#endif + +// <o> NRF_BLE_BMS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Bond Management Service. + +#ifndef NRF_BLE_BMS_BLE_OBSERVER_PRIO +#define NRF_BLE_BMS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> NRF_BLE_CGMS_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Contiuon Glucose Monitoring Service. + +#ifndef NRF_BLE_CGMS_BLE_OBSERVER_PRIO +#define NRF_BLE_CGMS_BLE_OBSERVER_PRIO 2 +#endif + +// <o> NRF_BLE_ES_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Eddystone module. + +#ifndef NRF_BLE_ES_BLE_OBSERVER_PRIO +#define NRF_BLE_ES_BLE_OBSERVER_PRIO 2 +#endif + +// <o> NRF_BLE_GATTS_C_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the GATT Service Client. + +#ifndef NRF_BLE_GATTS_C_BLE_OBSERVER_PRIO +#define NRF_BLE_GATTS_C_BLE_OBSERVER_PRIO 2 +#endif + +// <o> NRF_BLE_GATT_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the GATT module. + +#ifndef NRF_BLE_GATT_BLE_OBSERVER_PRIO +#define NRF_BLE_GATT_BLE_OBSERVER_PRIO 1 +#endif + +// <o> NRF_BLE_GQ_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the GATT Queue module. + +#ifndef NRF_BLE_GQ_BLE_OBSERVER_PRIO +#define NRF_BLE_GQ_BLE_OBSERVER_PRIO 1 +#endif + +// <o> NRF_BLE_QWR_BLE_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the Queued writes module. + +#ifndef NRF_BLE_QWR_BLE_OBSERVER_PRIO +#define NRF_BLE_QWR_BLE_OBSERVER_PRIO 2 +#endif + +// <o> NRF_BLE_SCAN_OBSERVER_PRIO +// <i> Priority for dispatching the BLE events to the Scanning Module. + +#ifndef NRF_BLE_SCAN_OBSERVER_PRIO +#define NRF_BLE_SCAN_OBSERVER_PRIO 1 +#endif + +// <o> PM_BLE_OBSERVER_PRIO - Priority with which BLE events are dispatched to the Peer Manager module. +#ifndef PM_BLE_OBSERVER_PRIO +#define PM_BLE_OBSERVER_PRIO 1 +#endif + +// </h> +//========================================================== + +// </h> +//========================================================== + + +// </e> + +// <e> NRF_SDH_ENABLED - nrf_sdh - SoftDevice handler +//========================================================== +#ifndef NRF_SDH_ENABLED +#define NRF_SDH_ENABLED 0 +#endif +// <h> Dispatch model + +// <i> This setting configures how Stack events are dispatched to the application. +//========================================================== +// <o> NRF_SDH_DISPATCH_MODEL + + +// <i> NRF_SDH_DISPATCH_MODEL_INTERRUPT: SoftDevice events are passed to the application from the interrupt context. +// <i> NRF_SDH_DISPATCH_MODEL_APPSH: SoftDevice events are scheduled using @ref app_scheduler. +// <i> NRF_SDH_DISPATCH_MODEL_POLLING: SoftDevice events are to be fetched manually. +// <0=> NRF_SDH_DISPATCH_MODEL_INTERRUPT +// <1=> NRF_SDH_DISPATCH_MODEL_APPSH +// <2=> NRF_SDH_DISPATCH_MODEL_POLLING + +#ifndef NRF_SDH_DISPATCH_MODEL +#define NRF_SDH_DISPATCH_MODEL 0 +#endif + +// </h> +//========================================================== + +// <h> Clock - SoftDevice clock configuration + +//========================================================== +// <o> NRF_SDH_CLOCK_LF_SRC - SoftDevice clock source. + +// <0=> NRF_CLOCK_LF_SRC_RC +// <1=> NRF_CLOCK_LF_SRC_XTAL +// <2=> NRF_CLOCK_LF_SRC_SYNTH + +#ifndef NRF_SDH_CLOCK_LF_SRC +#define NRF_SDH_CLOCK_LF_SRC 1 +#endif + +// <o> NRF_SDH_CLOCK_LF_RC_CTIV - SoftDevice calibration timer interval. +#ifndef NRF_SDH_CLOCK_LF_RC_CTIV +#define NRF_SDH_CLOCK_LF_RC_CTIV 0 +#endif + +// <o> NRF_SDH_CLOCK_LF_RC_TEMP_CTIV - SoftDevice calibration timer interval under constant temperature. +// <i> How often (in number of calibration intervals) the RC oscillator shall be calibrated +// <i> if the temperature has not changed. + +#ifndef NRF_SDH_CLOCK_LF_RC_TEMP_CTIV +#define NRF_SDH_CLOCK_LF_RC_TEMP_CTIV 0 +#endif + +// <o> NRF_SDH_CLOCK_LF_ACCURACY - External clock accuracy used in the LL to compute timing. + +// <0=> NRF_CLOCK_LF_ACCURACY_250_PPM +// <1=> NRF_CLOCK_LF_ACCURACY_500_PPM +// <2=> NRF_CLOCK_LF_ACCURACY_150_PPM +// <3=> NRF_CLOCK_LF_ACCURACY_100_PPM +// <4=> NRF_CLOCK_LF_ACCURACY_75_PPM +// <5=> NRF_CLOCK_LF_ACCURACY_50_PPM +// <6=> NRF_CLOCK_LF_ACCURACY_30_PPM +// <7=> NRF_CLOCK_LF_ACCURACY_20_PPM +// <8=> NRF_CLOCK_LF_ACCURACY_10_PPM +// <9=> NRF_CLOCK_LF_ACCURACY_5_PPM +// <10=> NRF_CLOCK_LF_ACCURACY_2_PPM +// <11=> NRF_CLOCK_LF_ACCURACY_1_PPM + +#ifndef NRF_SDH_CLOCK_LF_ACCURACY +#define NRF_SDH_CLOCK_LF_ACCURACY 7 +#endif + +// </h> +//========================================================== + +// <h> SDH Observers - Observers and priority levels + +//========================================================== +// <o> NRF_SDH_REQ_OBSERVER_PRIO_LEVELS - Total number of priority levels for request observers. +// <i> This setting configures the number of priority levels available for the SoftDevice request event handlers. +// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers. + +#ifndef NRF_SDH_REQ_OBSERVER_PRIO_LEVELS +#define NRF_SDH_REQ_OBSERVER_PRIO_LEVELS 2 +#endif + +// <o> NRF_SDH_STATE_OBSERVER_PRIO_LEVELS - Total number of priority levels for state observers. +// <i> This setting configures the number of priority levels available for the SoftDevice state event handlers. +// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers. + +#ifndef NRF_SDH_STATE_OBSERVER_PRIO_LEVELS +#define NRF_SDH_STATE_OBSERVER_PRIO_LEVELS 2 +#endif + +// <o> NRF_SDH_STACK_OBSERVER_PRIO_LEVELS - Total number of priority levels for stack event observers. +// <i> This setting configures the number of priority levels available for the SoftDevice stack event handlers (ANT, BLE, SoC). +// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers. + +#ifndef NRF_SDH_STACK_OBSERVER_PRIO_LEVELS +#define NRF_SDH_STACK_OBSERVER_PRIO_LEVELS 2 +#endif + + +// <h> State Observers priorities - Invididual priorities + +//========================================================== +// <o> CLOCK_CONFIG_STATE_OBSERVER_PRIO +// <i> Priority with which state events are dispatched to the Clock driver. + +#ifndef CLOCK_CONFIG_STATE_OBSERVER_PRIO +#define CLOCK_CONFIG_STATE_OBSERVER_PRIO 0 +#endif + +// <o> POWER_CONFIG_STATE_OBSERVER_PRIO +// <i> Priority with which state events are dispatched to the Power driver. + +#ifndef POWER_CONFIG_STATE_OBSERVER_PRIO +#define POWER_CONFIG_STATE_OBSERVER_PRIO 0 +#endif + +// <o> RNG_CONFIG_STATE_OBSERVER_PRIO +// <i> Priority with which state events are dispatched to this module. + +#ifndef RNG_CONFIG_STATE_OBSERVER_PRIO +#define RNG_CONFIG_STATE_OBSERVER_PRIO 0 +#endif + +// </h> +//========================================================== + +// <h> Stack Event Observers priorities - Invididual priorities + +//========================================================== +// <o> NRF_SDH_ANT_STACK_OBSERVER_PRIO +// <i> This setting configures the priority with which ANT events are processed with respect to other events coming from the stack. +// <i> Modify this setting if you need to have ANT events dispatched before or after other stack events, such as BLE or SoC. +// <i> Zero is the highest priority. + +#ifndef NRF_SDH_ANT_STACK_OBSERVER_PRIO +#define NRF_SDH_ANT_STACK_OBSERVER_PRIO 0 +#endif + +// <o> NRF_SDH_BLE_STACK_OBSERVER_PRIO +// <i> This setting configures the priority with which BLE events are processed with respect to other events coming from the stack. +// <i> Modify this setting if you need to have BLE events dispatched before or after other stack events, such as ANT or SoC. +// <i> Zero is the highest priority. + +#ifndef NRF_SDH_BLE_STACK_OBSERVER_PRIO +#define NRF_SDH_BLE_STACK_OBSERVER_PRIO 0 +#endif + +// <o> NRF_SDH_SOC_STACK_OBSERVER_PRIO +// <i> This setting configures the priority with which SoC events are processed with respect to other events coming from the stack. +// <i> Modify this setting if you need to have SoC events dispatched before or after other stack events, such as ANT or BLE. +// <i> Zero is the highest priority. + +#ifndef NRF_SDH_SOC_STACK_OBSERVER_PRIO +#define NRF_SDH_SOC_STACK_OBSERVER_PRIO 0 +#endif + +// </h> +//========================================================== + +// </h> +//========================================================== + + +// </e> + +// <e> NRF_SDH_SOC_ENABLED - nrf_sdh_soc - SoftDevice SoC event handler +//========================================================== +#ifndef NRF_SDH_SOC_ENABLED +#define NRF_SDH_SOC_ENABLED 0 +#endif +// <h> SoC Observers - Observers and priority levels + +//========================================================== +// <o> NRF_SDH_SOC_OBSERVER_PRIO_LEVELS - Total number of priority levels for SoC observers. +// <i> This setting configures the number of priority levels available for the SoC event handlers. +// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers. + +#ifndef NRF_SDH_SOC_OBSERVER_PRIO_LEVELS +#define NRF_SDH_SOC_OBSERVER_PRIO_LEVELS 2 +#endif + +// <h> SoC Observers priorities - Invididual priorities + +//========================================================== +// <o> BLE_DFU_SOC_OBSERVER_PRIO +// <i> Priority with which BLE events are dispatched to the DFU Service. + +#ifndef BLE_DFU_SOC_OBSERVER_PRIO +#define BLE_DFU_SOC_OBSERVER_PRIO 1 +#endif + +// <o> CLOCK_CONFIG_SOC_OBSERVER_PRIO +// <i> Priority with which SoC events are dispatched to the Clock driver. + +#ifndef CLOCK_CONFIG_SOC_OBSERVER_PRIO +#define CLOCK_CONFIG_SOC_OBSERVER_PRIO 0 +#endif + +// <o> POWER_CONFIG_SOC_OBSERVER_PRIO +// <i> Priority with which SoC events are dispatched to the Power driver. + +#ifndef POWER_CONFIG_SOC_OBSERVER_PRIO +#define POWER_CONFIG_SOC_OBSERVER_PRIO 0 +#endif + +// </h> +//========================================================== + +// </h> +//========================================================== + +// <e> NRFX_NVMC_ENABLED - nrfx_nvmc - NVMC peripheral driver +//========================================================== +#ifndef NRFX_NVMC_ENABLED +#define NRFX_NVMC_ENABLED 1 +#endif +// </e> + +//========================================================== +#ifndef NRFX_SYSTICK_ENABLED +#define NRFX_SYSTICK_ENABLED 1 +#endif +// <<< end of configuration section >>> +#endif //SDK_CONFIG_H + diff --git a/bsp/nrf5x/nrf51822/project.uvoptx b/bsp/nrf5x/nrf51822/project.uvoptx new file mode 100644 index 0000000000..18eba3bf25 --- /dev/null +++ b/bsp/nrf5x/nrf51822/project.uvoptx @@ -0,0 +1,1080 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<ProjectOpt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_optx.xsd"> + + <SchemaVersion>1.0</SchemaVersion> + + <Header>### uVision Project, (C) Keil Software</Header> + + <Extensions> + <cExt>*.c</cExt> + <aExt>*.s*; *.src; *.a*</aExt> + <oExt>*.obj; *.o</oExt> + <lExt>*.lib</lExt> + <tExt>*.txt; *.h; *.inc</tExt> + <pExt>*.plm</pExt> + <CppX>*.cpp</CppX> + <nMigrate>0</nMigrate> + </Extensions> + + <DaveTm> + <dwLowDateTime>0</dwLowDateTime> + <dwHighDateTime>0</dwHighDateTime> + </DaveTm> + + <Target> + <TargetName>rtthread</TargetName> + <ToolsetNumber>0x4</ToolsetNumber> + <ToolsetName>ARM-ADS</ToolsetName> + <TargetOption> + <CLKADS>12000000</CLKADS> + <OPTTT> + <gFlags>1</gFlags> + <BeepAtEnd>1</BeepAtEnd> + <RunSim>0</RunSim> + <RunTarget>1</RunTarget> + <RunAbUc>0</RunAbUc> + </OPTTT> + <OPTHX> + <HexSelection>1</HexSelection> + <FlashByte>65535</FlashByte> + <HexRangeLowAddress>0</HexRangeLowAddress> + <HexRangeHighAddress>0</HexRangeHighAddress> + <HexOffset>0</HexOffset> + </OPTHX> + <OPTLEX> + <PageWidth>79</PageWidth> + <PageLength>66</PageLength> + <TabStop>8</TabStop> + <ListingPath>.\build\</ListingPath> + </OPTLEX> + <ListingPage> + <CreateCListing>1</CreateCListing> + <CreateAListing>1</CreateAListing> + <CreateLListing>1</CreateLListing> + <CreateIListing>0</CreateIListing> + <AsmCond>1</AsmCond> + <AsmSymb>1</AsmSymb> + <AsmXref>0</AsmXref> + <CCond>1</CCond> + <CCode>0</CCode> + <CListInc>0</CListInc> + <CSymb>0</CSymb> + <LinkerCodeListing>0</LinkerCodeListing> + </ListingPage> + <OPTXL> + <LMap>1</LMap> + <LComments>1</LComments> + <LGenerateSymbols>1</LGenerateSymbols> + <LLibSym>1</LLibSym> + <LLines>1</LLines> + <LLocSym>1</LLocSym> + <LPubSym>1</LPubSym> + <LXref>0</LXref> + <LExpSel>0</LExpSel> + </OPTXL> + <OPTFL> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <IsCurrentTarget>1</IsCurrentTarget> + </OPTFL> + <CpuCode>5</CpuCode> + <DebugOpt> + <uSim>0</uSim> + <uTrg>1</uTrg> + <sLdApp>1</sLdApp> + <sGomain>1</sGomain> + <sRbreak>1</sRbreak> + <sRwatch>1</sRwatch> + <sRmem>1</sRmem> + <sRfunc>1</sRfunc> + <sRbox>1</sRbox> + <tLdApp>1</tLdApp> + <tGomain>1</tGomain> + <tRbreak>1</tRbreak> + <tRwatch>1</tRwatch> + <tRmem>1</tRmem> + <tRfunc>0</tRfunc> + <tRbox>1</tRbox> + <tRtrace>1</tRtrace> + <sRSysVw>1</sRSysVw> + <tRSysVw>1</tRSysVw> + <sRunDeb>0</sRunDeb> + <sLrtime>0</sLrtime> + <bEvRecOn>1</bEvRecOn> + <bSchkAxf>0</bSchkAxf> + <bTchkAxf>0</bTchkAxf> + <nTsel>4</nTsel> + <sDll></sDll> + <sDllPa></sDllPa> + <sDlgDll></sDlgDll> + <sDlgPa></sDlgPa> + <sIfile></sIfile> + <tDll></tDll> + <tDllPa></tDllPa> + <tDlgDll></tDlgDll> + <tDlgPa></tDlgPa> + <tIfile></tIfile> + <pMon>Segger\JL2CM3.dll</pMon> + </DebugOpt> + <TargetDriverDllRegistry> + <SetRegEntry> + <Number>0</Number> + <Key>UL2CM3</Key> + <Name>UL2CM3(-S0 -C0 -P0 ) -FN1 -FC4000 -FD20000000 -FF0nrf51xxx -FL0200000 -FS00 -FP0($$Device:nRF51822_xxAA$Flash\nrf51xxx.flm)</Name> + </SetRegEntry> + <SetRegEntry> + <Number>0</Number> + <Key>JL2CM3</Key> + <Name>-U17935099 -O78 -S8 -ZTIFSpeedSel50000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(0BB11477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8004 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC4000 -FN1 -FF0nrf51xxx -FS00 -FL0200000 -FP0($$Device:nRF51822_xxAA$Flash\nrf51xxx.flm)</Name> + </SetRegEntry> + </TargetDriverDllRegistry> + <Breakpoint/> + <Tracepoint> + <THDelay>0</THDelay> + </Tracepoint> + <DebugFlag> + <trace>0</trace> + <periodic>0</periodic> + <aLwin>0</aLwin> + <aCover>0</aCover> + <aSer1>0</aSer1> + <aSer2>0</aSer2> + <aPa>0</aPa> + <viewmode>0</viewmode> + <vrSel>0</vrSel> + <aSym>0</aSym> + <aTbox>0</aTbox> + <AscS1>0</AscS1> + <AscS2>0</AscS2> + <AscS3>0</AscS3> + <aSer3>0</aSer3> + <eProf>0</eProf> + <aLa>0</aLa> + <aPa1>0</aPa1> + <AscS4>0</AscS4> + <aSer4>0</aSer4> + <StkLoc>0</StkLoc> + <TrcWin>0</TrcWin> + <newCpu>0</newCpu> + <uProt>0</uProt> + </DebugFlag> + <LintExecutable></LintExecutable> + <LintConfigFile></LintConfigFile> + <bLintAuto>0</bLintAuto> + <bAutoGenD>0</bAutoGenD> + <LntExFlags>0</LntExFlags> + <pMisraName></pMisraName> + <pszMrule></pszMrule> + <pSingCmds></pSingCmds> + <pMultCmds></pMultCmds> + <pMisraNamep></pMisraNamep> + <pszMrulep></pszMrulep> + <pSingCmdsp></pSingCmdsp> + <pMultCmdsp></pMultCmdsp> + <DebugDescription> + <Enable>1</Enable> + <EnableFlashSeq>1</EnableFlashSeq> + <EnableLog>0</EnableLog> + <Protocol>2</Protocol> + <DbgClock>10000000</DbgClock> + </DebugDescription> + </TargetOption> + </Target> + + <Group> + <GroupName>Applications</GroupName> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <cbSel>0</cbSel> + <RteFlg>0</RteFlg> + <File> + <GroupNumber>1</GroupNumber> + <FileNumber>1</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>applications\application.c</PathWithFileName> + <FilenameWithoutPath>application.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + </Group> + + <Group> + <GroupName>CPU</GroupName> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <cbSel>0</cbSel> + <RteFlg>0</RteFlg> + <File> + <GroupNumber>2</GroupNumber> + <FileNumber>2</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\libcpu\arm\common\showmem.c</PathWithFileName> + <FilenameWithoutPath>showmem.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>2</GroupNumber> + <FileNumber>3</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\libcpu\arm\common\div0.c</PathWithFileName> + <FilenameWithoutPath>div0.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>2</GroupNumber> + <FileNumber>4</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\libcpu\arm\common\backtrace.c</PathWithFileName> + <FilenameWithoutPath>backtrace.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>2</GroupNumber> + <FileNumber>5</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\libcpu\arm\cortex-m0\cpuport.c</PathWithFileName> + <FilenameWithoutPath>cpuport.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>2</GroupNumber> + <FileNumber>6</FileNumber> + <FileType>2</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\libcpu\arm\cortex-m0\context_rvds.S</PathWithFileName> + <FilenameWithoutPath>context_rvds.S</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + </Group> + + <Group> + <GroupName>DeviceDrivers</GroupName> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <cbSel>0</cbSel> + <RteFlg>0</RteFlg> + <File> + <GroupNumber>3</GroupNumber> + <FileNumber>7</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\components\drivers\misc\pin.c</PathWithFileName> + <FilenameWithoutPath>pin.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>3</GroupNumber> + <FileNumber>8</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\components\drivers\serial\serial.c</PathWithFileName> + <FilenameWithoutPath>serial.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>3</GroupNumber> + <FileNumber>9</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\components\drivers\src\completion.c</PathWithFileName> + <FilenameWithoutPath>completion.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>3</GroupNumber> + <FileNumber>10</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\components\drivers\src\waitqueue.c</PathWithFileName> + <FilenameWithoutPath>waitqueue.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>3</GroupNumber> + <FileNumber>11</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\components\drivers\src\ringbuffer.c</PathWithFileName> + <FilenameWithoutPath>ringbuffer.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>3</GroupNumber> + <FileNumber>12</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\components\drivers\src\dataqueue.c</PathWithFileName> + <FilenameWithoutPath>dataqueue.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>3</GroupNumber> + <FileNumber>13</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\components\drivers\src\ringblk_buf.c</PathWithFileName> + <FilenameWithoutPath>ringblk_buf.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>3</GroupNumber> + <FileNumber>14</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\components\drivers\src\pipe.c</PathWithFileName> + <FilenameWithoutPath>pipe.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>3</GroupNumber> + <FileNumber>15</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\components\drivers\src\workqueue.c</PathWithFileName> + <FilenameWithoutPath>workqueue.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + </Group> + + <Group> + <GroupName>Drivers</GroupName> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <cbSel>0</cbSel> + <RteFlg>0</RteFlg> + <File> + <GroupNumber>4</GroupNumber> + <FileNumber>16</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>board\board.c</PathWithFileName> + <FilenameWithoutPath>board.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>4</GroupNumber> + <FileNumber>17</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\libraries\drivers\drv_uart.c</PathWithFileName> + <FilenameWithoutPath>drv_uart.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + </Group> + + <Group> + <GroupName>finsh</GroupName> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <cbSel>0</cbSel> + <RteFlg>0</RteFlg> + <File> + <GroupNumber>5</GroupNumber> + <FileNumber>18</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\components\finsh\shell.c</PathWithFileName> + <FilenameWithoutPath>shell.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>5</GroupNumber> + <FileNumber>19</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\components\finsh\msh.c</PathWithFileName> + <FilenameWithoutPath>msh.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>5</GroupNumber> + <FileNumber>20</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\components\finsh\cmd.c</PathWithFileName> + <FilenameWithoutPath>cmd.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + </Group> + + <Group> + <GroupName>Kernel</GroupName> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <cbSel>0</cbSel> + <RteFlg>0</RteFlg> + <File> + <GroupNumber>6</GroupNumber> + <FileNumber>21</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\src\mem.c</PathWithFileName> + <FilenameWithoutPath>mem.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>6</GroupNumber> + <FileNumber>22</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\src\clock.c</PathWithFileName> + <FilenameWithoutPath>clock.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>6</GroupNumber> + <FileNumber>23</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\src\kservice.c</PathWithFileName> + <FilenameWithoutPath>kservice.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>6</GroupNumber> + <FileNumber>24</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\src\idle.c</PathWithFileName> + <FilenameWithoutPath>idle.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>6</GroupNumber> + <FileNumber>25</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\src\thread.c</PathWithFileName> + <FilenameWithoutPath>thread.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>6</GroupNumber> + <FileNumber>26</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\src\mempool.c</PathWithFileName> + <FilenameWithoutPath>mempool.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>6</GroupNumber> + <FileNumber>27</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\src\scheduler.c</PathWithFileName> + <FilenameWithoutPath>scheduler.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>6</GroupNumber> + <FileNumber>28</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\src\ipc.c</PathWithFileName> + <FilenameWithoutPath>ipc.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>6</GroupNumber> + <FileNumber>29</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\src\device.c</PathWithFileName> + <FilenameWithoutPath>device.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>6</GroupNumber> + <FileNumber>30</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\src\object.c</PathWithFileName> + <FilenameWithoutPath>object.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>6</GroupNumber> + <FileNumber>31</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\src\components.c</PathWithFileName> + <FilenameWithoutPath>components.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>6</GroupNumber> + <FileNumber>32</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\src\timer.c</PathWithFileName> + <FilenameWithoutPath>timer.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>6</GroupNumber> + <FileNumber>33</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\..\..\src\irq.c</PathWithFileName> + <FilenameWithoutPath>irq.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + </Group> + + <Group> + <GroupName>nrfx</GroupName> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <cbSel>0</cbSel> + <RteFlg>0</RteFlg> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>34</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_lpcomp.c</PathWithFileName> + <FilenameWithoutPath>nrfx_lpcomp.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>35</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_temp.c</PathWithFileName> + <FilenameWithoutPath>nrfx_temp.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>36</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_comp.c</PathWithFileName> + <FilenameWithoutPath>nrfx_comp.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>37</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_spis.c</PathWithFileName> + <FilenameWithoutPath>nrfx_spis.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>38</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_twi_twim.c</PathWithFileName> + <FilenameWithoutPath>nrfx_twi_twim.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>39</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_pdm.c</PathWithFileName> + <FilenameWithoutPath>nrfx_pdm.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>40</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_wdt.c</PathWithFileName> + <FilenameWithoutPath>nrfx_wdt.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>41</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_spim.c</PathWithFileName> + <FilenameWithoutPath>nrfx_spim.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>42</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_nvmc.c</PathWithFileName> + <FilenameWithoutPath>nrfx_nvmc.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>43</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_power.c</PathWithFileName> + <FilenameWithoutPath>nrfx_power.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>44</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_twim.c</PathWithFileName> + <FilenameWithoutPath>nrfx_twim.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>45</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_rng.c</PathWithFileName> + <FilenameWithoutPath>nrfx_rng.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>46</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_i2s.c</PathWithFileName> + <FilenameWithoutPath>nrfx_i2s.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>47</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_saadc.c</PathWithFileName> + <FilenameWithoutPath>nrfx_saadc.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>48</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\mdk\system_nrf51.c</PathWithFileName> + <FilenameWithoutPath>system_nrf51.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>49</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_nfct.c</PathWithFileName> + <FilenameWithoutPath>nrfx_nfct.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>50</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_pwm.c</PathWithFileName> + <FilenameWithoutPath>nrfx_pwm.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>51</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_egu.c</PathWithFileName> + <FilenameWithoutPath>nrfx_egu.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>52</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_gpiote.c</PathWithFileName> + <FilenameWithoutPath>nrfx_gpiote.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>53</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_dppi.c</PathWithFileName> + <FilenameWithoutPath>nrfx_dppi.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>54</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_timer.c</PathWithFileName> + <FilenameWithoutPath>nrfx_timer.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>55</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_spi.c</PathWithFileName> + <FilenameWithoutPath>nrfx_spi.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>56</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_usbd.c</PathWithFileName> + <FilenameWithoutPath>nrfx_usbd.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>57</FileNumber> + <FileType>2</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\mdk\arm_startup_nrf51.s</PathWithFileName> + <FilenameWithoutPath>arm_startup_nrf51.s</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>58</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_qdec.c</PathWithFileName> + <FilenameWithoutPath>nrfx_qdec.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>59</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_ppi.c</PathWithFileName> + <FilenameWithoutPath>nrfx_ppi.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>60</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_uarte.c</PathWithFileName> + <FilenameWithoutPath>nrfx_uarte.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>61</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_qspi.c</PathWithFileName> + <FilenameWithoutPath>nrfx_qspi.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>62</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_rtc.c</PathWithFileName> + <FilenameWithoutPath>nrfx_rtc.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>63</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_usbreg.c</PathWithFileName> + <FilenameWithoutPath>nrfx_usbreg.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>64</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_ipc.c</PathWithFileName> + <FilenameWithoutPath>nrfx_ipc.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>65</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_twis.c</PathWithFileName> + <FilenameWithoutPath>nrfx_twis.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>66</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_twi.c</PathWithFileName> + <FilenameWithoutPath>nrfx_twi.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>67</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_clock.c</PathWithFileName> + <FilenameWithoutPath>nrfx_clock.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>68</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_systick.c</PathWithFileName> + <FilenameWithoutPath>nrfx_systick.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>69</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_uart.c</PathWithFileName> + <FilenameWithoutPath>nrfx_uart.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>70</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>packages\nrfx-latest\drivers\src\nrfx_adc.c</PathWithFileName> + <FilenameWithoutPath>nrfx_adc.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + </Group> + +</ProjectOpt> diff --git a/bsp/nrf5x/nrf51822/project.uvprojx b/bsp/nrf5x/nrf51822/project.uvprojx new file mode 100644 index 0000000000..b08d6f3904 --- /dev/null +++ b/bsp/nrf5x/nrf51822/project.uvprojx @@ -0,0 +1,777 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd"> + + <SchemaVersion>2.1</SchemaVersion> + + <Header>### uVision Project, (C) Keil Software</Header> + + <Targets> + <Target> + <TargetName>rtthread</TargetName> + <ToolsetNumber>0x4</ToolsetNumber> + <ToolsetName>ARM-ADS</ToolsetName> + <pCCUsed>5060750::V5.06 update 6 (build 750)::ARMCC</pCCUsed> + <uAC6>0</uAC6> + <TargetOption> + <TargetCommonOption> + <Device>nRF51822_xxAA</Device> + <Vendor>Nordic Semiconductor</Vendor> + <PackID>NordicSemiconductor.nRF_DeviceFamilyPack.8.38.0</PackID> + <PackURL>http://developer.nordicsemi.com/nRF5_SDK/pieces/nRF_DeviceFamilyPack/</PackURL> + <Cpu>IRAM(0x20000000,0x00004000) IROM(0x00000000,0x00040000) CPUTYPE("Cortex-M0") CLOCK(12000000) ELITTLE</Cpu> + <FlashUtilSpec></FlashUtilSpec> + <StartupFile></StartupFile> + <FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC4000 -FN1 -FF0nrf51xxx -FS00 -FL0200000 -FP0($$Device:nRF51822_xxAA$Flash\nrf51xxx.flm))</FlashDriverDll> + <DeviceId>0</DeviceId> + <RegisterFile>$$Device:nRF51822_xxAA$Device\Include\nrf.h</RegisterFile> + <MemoryEnv></MemoryEnv> + <Cmp></Cmp> + <Asm></Asm> + <Linker></Linker> + <OHString></OHString> + <InfinionOptionDll></InfinionOptionDll> + <SLE66CMisc></SLE66CMisc> + <SLE66AMisc></SLE66AMisc> + <SLE66LinkerMisc></SLE66LinkerMisc> + <SFDFile>$$Device:nRF51822_xxAA$SVD\nrf51.svd</SFDFile> + <bCustSvd>0</bCustSvd> + <UseEnv>0</UseEnv> + <BinPath></BinPath> + <IncludePath></IncludePath> + <LibPath></LibPath> + <RegisterFilePath></RegisterFilePath> + <DBRegisterFilePath></DBRegisterFilePath> + <TargetStatus> + <Error>0</Error> + <ExitCodeStop>0</ExitCodeStop> + <ButtonStop>0</ButtonStop> + <NotGenerated>0</NotGenerated> + <InvalidFlash>1</InvalidFlash> + </TargetStatus> + <OutputDirectory>.\build\</OutputDirectory> + <OutputName>rtthread</OutputName> + <CreateExecutable>1</CreateExecutable> + <CreateLib>0</CreateLib> + <CreateHexFile>0</CreateHexFile> + <DebugInformation>1</DebugInformation> + <BrowseInformation>1</BrowseInformation> + <ListingPath>.\build\</ListingPath> + <HexFormatSelection>1</HexFormatSelection> + <Merge32K>0</Merge32K> + <CreateBatchFile>0</CreateBatchFile> + <BeforeCompile> + <RunUserProg1>0</RunUserProg1> + <RunUserProg2>0</RunUserProg2> + <UserProg1Name></UserProg1Name> + <UserProg2Name></UserProg2Name> + <UserProg1Dos16Mode>0</UserProg1Dos16Mode> + <UserProg2Dos16Mode>0</UserProg2Dos16Mode> + <nStopU1X>0</nStopU1X> + <nStopU2X>0</nStopU2X> + </BeforeCompile> + <BeforeMake> + <RunUserProg1>0</RunUserProg1> + <RunUserProg2>0</RunUserProg2> + <UserProg1Name></UserProg1Name> + <UserProg2Name></UserProg2Name> + <UserProg1Dos16Mode>0</UserProg1Dos16Mode> + <UserProg2Dos16Mode>0</UserProg2Dos16Mode> + <nStopB1X>0</nStopB1X> + <nStopB2X>0</nStopB2X> + </BeforeMake> + <AfterMake> + <RunUserProg1>1</RunUserProg1> + <RunUserProg2>0</RunUserProg2> + <UserProg1Name>fromelf --bin !L --output rtthread.bin</UserProg1Name> + <UserProg2Name></UserProg2Name> + <UserProg1Dos16Mode>0</UserProg1Dos16Mode> + <UserProg2Dos16Mode>0</UserProg2Dos16Mode> + <nStopA1X>0</nStopA1X> + <nStopA2X>0</nStopA2X> + </AfterMake> + <SelectedForBatchBuild>0</SelectedForBatchBuild> + <SVCSIdString></SVCSIdString> + </TargetCommonOption> + <CommonProperty> + <UseCPPCompiler>0</UseCPPCompiler> + <RVCTCodeConst>0</RVCTCodeConst> + <RVCTZI>0</RVCTZI> + <RVCTOtherData>0</RVCTOtherData> + <ModuleSelection>0</ModuleSelection> + <IncludeInBuild>1</IncludeInBuild> + <AlwaysBuild>0</AlwaysBuild> + <GenerateAssemblyFile>0</GenerateAssemblyFile> + <AssembleAssemblyFile>0</AssembleAssemblyFile> + <PublicsOnly>0</PublicsOnly> + <StopOnExitCode>3</StopOnExitCode> + <CustomArgument></CustomArgument> + <IncludeLibraryModules></IncludeLibraryModules> + <ComprImg>1</ComprImg> + </CommonProperty> + <DllOption> + <SimDllName>SARMCM3.DLL</SimDllName> + <SimDllArguments> </SimDllArguments> + <SimDlgDll>DARMCM1.DLL</SimDlgDll> + <SimDlgDllArguments>-pCM0</SimDlgDllArguments> + <TargetDllName>SARMCM3.DLL</TargetDllName> + <TargetDllArguments> </TargetDllArguments> + <TargetDlgDll>TARMCM1.DLL</TargetDlgDll> + <TargetDlgDllArguments>-pCM0</TargetDlgDllArguments> + </DllOption> + <DebugOption> + <OPTHX> + <HexSelection>1</HexSelection> + <HexRangeLowAddress>0</HexRangeLowAddress> + <HexRangeHighAddress>0</HexRangeHighAddress> + <HexOffset>0</HexOffset> + <Oh166RecLen>16</Oh166RecLen> + </OPTHX> + </DebugOption> + <Utilities> + <Flash1> + <UseTargetDll>1</UseTargetDll> + <UseExternalTool>0</UseExternalTool> + <RunIndependent>0</RunIndependent> + <UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging> + <Capability>1</Capability> + <DriverSelection>4096</DriverSelection> + </Flash1> + <bUseTDR>1</bUseTDR> + <Flash2>BIN\UL2CM3.DLL</Flash2> + <Flash3></Flash3> + <Flash4></Flash4> + <pFcarmOut></pFcarmOut> + <pFcarmGrp></pFcarmGrp> + <pFcArmRoot></pFcArmRoot> + <FcArmLst>0</FcArmLst> + </Utilities> + <TargetArmAds> + <ArmAdsMisc> + <GenerateListings>0</GenerateListings> + <asHll>1</asHll> + <asAsm>1</asAsm> + <asMacX>1</asMacX> + <asSyms>1</asSyms> + <asFals>1</asFals> + <asDbgD>1</asDbgD> + <asForm>1</asForm> + <ldLst>0</ldLst> + <ldmm>1</ldmm> + <ldXref>1</ldXref> + <BigEnd>0</BigEnd> + <AdsALst>1</AdsALst> + <AdsACrf>1</AdsACrf> + <AdsANop>0</AdsANop> + <AdsANot>0</AdsANot> + <AdsLLst>1</AdsLLst> + <AdsLmap>1</AdsLmap> + <AdsLcgr>1</AdsLcgr> + <AdsLsym>1</AdsLsym> + <AdsLszi>1</AdsLszi> + <AdsLtoi>1</AdsLtoi> + <AdsLsun>1</AdsLsun> + <AdsLven>1</AdsLven> + <AdsLsxf>1</AdsLsxf> + <RvctClst>0</RvctClst> + <GenPPlst>0</GenPPlst> + <AdsCpuType>"Cortex-M0"</AdsCpuType> + <RvctDeviceName></RvctDeviceName> + <mOS>0</mOS> + <uocRom>0</uocRom> + <uocRam>0</uocRam> + <hadIROM>1</hadIROM> + <hadIRAM>1</hadIRAM> + <hadXRAM>0</hadXRAM> + <uocXRam>0</uocXRam> + <RvdsVP>0</RvdsVP> + <RvdsMve>0</RvdsMve> + <hadIRAM2>0</hadIRAM2> + <hadIROM2>0</hadIROM2> + <StupSel>8</StupSel> + <useUlib>0</useUlib> + <EndSel>0</EndSel> + <uLtcg>0</uLtcg> + <nSecure>0</nSecure> + <RoSelD>3</RoSelD> + <RwSelD>3</RwSelD> + <CodeSel>0</CodeSel> + <OptFeed>0</OptFeed> + <NoZi1>0</NoZi1> + <NoZi2>0</NoZi2> + <NoZi3>0</NoZi3> + <NoZi4>0</NoZi4> + <NoZi5>0</NoZi5> + <Ro1Chk>0</Ro1Chk> + <Ro2Chk>0</Ro2Chk> + <Ro3Chk>0</Ro3Chk> + <Ir1Chk>1</Ir1Chk> + <Ir2Chk>0</Ir2Chk> + <Ra1Chk>0</Ra1Chk> + <Ra2Chk>0</Ra2Chk> + <Ra3Chk>0</Ra3Chk> + <Im1Chk>1</Im1Chk> + <Im2Chk>0</Im2Chk> + <OnChipMemories> + <Ocm1> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </Ocm1> + <Ocm2> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </Ocm2> + <Ocm3> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </Ocm3> + <Ocm4> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </Ocm4> + <Ocm5> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </Ocm5> + <Ocm6> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </Ocm6> + <IRAM> + <Type>0</Type> + <StartAddress>0x20000000</StartAddress> + <Size>0x4000</Size> + </IRAM> + <IROM> + <Type>1</Type> + <StartAddress>0x0</StartAddress> + <Size>0x40000</Size> + </IROM> + <XRAM> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </XRAM> + <OCR_RVCT1> + <Type>1</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT1> + <OCR_RVCT2> + <Type>1</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT2> + <OCR_RVCT3> + <Type>1</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT3> + <OCR_RVCT4> + <Type>1</Type> + <StartAddress>0x0</StartAddress> + <Size>0x40000</Size> + </OCR_RVCT4> + <OCR_RVCT5> + <Type>1</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT5> + <OCR_RVCT6> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT6> + <OCR_RVCT7> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT7> + <OCR_RVCT8> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT8> + <OCR_RVCT9> + <Type>0</Type> + <StartAddress>0x20000000</StartAddress> + <Size>0x4000</Size> + </OCR_RVCT9> + <OCR_RVCT10> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT10> + </OnChipMemories> + <RvctStartVector></RvctStartVector> + </ArmAdsMisc> + <Cads> + <interw>1</interw> + <Optim>1</Optim> + <oTime>0</oTime> + <SplitLS>0</SplitLS> + <OneElfS>1</OneElfS> + <Strict>0</Strict> + <EnumInt>0</EnumInt> + <PlainCh>0</PlainCh> + <Ropi>0</Ropi> + <Rwpi>0</Rwpi> + <wLevel>2</wLevel> + <uThumb>0</uThumb> + <uSurpInc>0</uSurpInc> + <uC99>1</uC99> + <uGnu>0</uGnu> + <useXO>0</useXO> + <v6Lang>1</v6Lang> + <v6LangP>1</v6LangP> + <vShortEn>1</vShortEn> + <vShortWch>1</vShortWch> + <v6Lto>0</v6Lto> + <v6WtE>0</v6WtE> + <v6Rtti>0</v6Rtti> + <VariousControls> + <MiscControls>--reduce_paths</MiscControls> + <Define>NRF51822_XXAA, USE_APP_CONFIG, __RTTHREAD__</Define> + <Undefine></Undefine> + <IncludePath>applications;.;..\libraries\cmsis\include;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m0;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;..\libraries\drivers;..\..\..\components\finsh;.;..\..\..\include;packages\nrfx-latest;packages\nrfx-latest\drivers;packages\nrfx-latest\drivers\include;packages\nrfx-latest\mdk;packages\nrfx-latest\hal</IncludePath> + </VariousControls> + </Cads> + <Aads> + <interw>1</interw> + <Ropi>0</Ropi> + <Rwpi>0</Rwpi> + <thumb>0</thumb> + <SplitLS>0</SplitLS> + <SwStkChk>0</SwStkChk> + <NoWarn>0</NoWarn> + <uSurpInc>0</uSurpInc> + <useXO>0</useXO> + <uClangAs>0</uClangAs> + <VariousControls> + <MiscControls>--cpreproc_opts=-DBLE_STACK_SUPPORT_REQD,-DNRF_SD_BLE_API_VERSION=4,-DS132,-DSOFTDEVICE_PRESENT,-DSWI_DISABLE0,-DCONFIG_GPIO_AS_PINRESET,-DNRF52,-DNRF52832_XXAA,-DNRF52_PAN_12,-DNRF52_PAN_15,-DNRF52_PAN_20,-DNRF52_PAN_31,-DNRF52_PAN_36,-DNRF52_PAN_51,-DNRF52_PAN_54,-DNRF52_PAN_55,-DNRF52_PAN_58,-DNRF52_PAN_64,-DNRF52_PAN_74</MiscControls> + <Define></Define> + <Undefine></Undefine> + <IncludePath></IncludePath> + </VariousControls> + </Aads> + <LDads> + <umfTarg>0</umfTarg> + <Ropi>0</Ropi> + <Rwpi>0</Rwpi> + <noStLib>0</noStLib> + <RepFail>1</RepFail> + <useFile>0</useFile> + <TextAddressRange>0x00000000</TextAddressRange> + <DataAddressRange>0x20000000</DataAddressRange> + <pXoBase></pXoBase> + <ScatterFile>.\board\linker_scripts\link.sct</ScatterFile> + <IncludeLibs></IncludeLibs> + <IncludeLibsPath></IncludeLibsPath> + <Misc></Misc> + <LinkerInputFile></LinkerInputFile> + <DisabledWarnings></DisabledWarnings> + </LDads> + </TargetArmAds> + </TargetOption> + <Groups> + <Group> + <GroupName>Applications</GroupName> + <Files> + <File> + <FileName>application.c</FileName> + <FileType>1</FileType> + <FilePath>applications\application.c</FilePath> + </File> + </Files> + </Group> + <Group> + <GroupName>CPU</GroupName> + <Files> + <File> + <FileName>showmem.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\libcpu\arm\common\showmem.c</FilePath> + </File> + <File> + <FileName>div0.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\libcpu\arm\common\div0.c</FilePath> + </File> + <File> + <FileName>backtrace.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\libcpu\arm\common\backtrace.c</FilePath> + </File> + <File> + <FileName>cpuport.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\libcpu\arm\cortex-m0\cpuport.c</FilePath> + </File> + <File> + <FileName>context_rvds.S</FileName> + <FileType>2</FileType> + <FilePath>..\..\..\libcpu\arm\cortex-m0\context_rvds.S</FilePath> + </File> + </Files> + </Group> + <Group> + <GroupName>DeviceDrivers</GroupName> + <Files> + <File> + <FileName>pin.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\components\drivers\misc\pin.c</FilePath> + </File> + <File> + <FileName>serial.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\components\drivers\serial\serial.c</FilePath> + </File> + <File> + <FileName>completion.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\components\drivers\src\completion.c</FilePath> + </File> + <File> + <FileName>waitqueue.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\components\drivers\src\waitqueue.c</FilePath> + </File> + <File> + <FileName>ringbuffer.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\components\drivers\src\ringbuffer.c</FilePath> + </File> + <File> + <FileName>dataqueue.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\components\drivers\src\dataqueue.c</FilePath> + </File> + <File> + <FileName>ringblk_buf.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\components\drivers\src\ringblk_buf.c</FilePath> + </File> + <File> + <FileName>pipe.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\components\drivers\src\pipe.c</FilePath> + </File> + <File> + <FileName>workqueue.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\components\drivers\src\workqueue.c</FilePath> + </File> + </Files> + </Group> + <Group> + <GroupName>Drivers</GroupName> + <Files> + <File> + <FileName>board.c</FileName> + <FileType>1</FileType> + <FilePath>board\board.c</FilePath> + </File> + <File> + <FileName>drv_uart.c</FileName> + <FileType>1</FileType> + <FilePath>..\libraries\drivers\drv_uart.c</FilePath> + </File> + </Files> + </Group> + <Group> + <GroupName>finsh</GroupName> + <Files> + <File> + <FileName>shell.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\components\finsh\shell.c</FilePath> + </File> + <File> + <FileName>msh.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\components\finsh\msh.c</FilePath> + </File> + <File> + <FileName>cmd.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\components\finsh\cmd.c</FilePath> + </File> + </Files> + </Group> + <Group> + <GroupName>Kernel</GroupName> + <Files> + <File> + <FileName>mem.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\src\mem.c</FilePath> + </File> + <File> + <FileName>clock.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\src\clock.c</FilePath> + </File> + <File> + <FileName>kservice.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\src\kservice.c</FilePath> + </File> + <File> + <FileName>idle.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\src\idle.c</FilePath> + </File> + <File> + <FileName>thread.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\src\thread.c</FilePath> + </File> + <File> + <FileName>mempool.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\src\mempool.c</FilePath> + </File> + <File> + <FileName>scheduler.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\src\scheduler.c</FilePath> + </File> + <File> + <FileName>ipc.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\src\ipc.c</FilePath> + </File> + <File> + <FileName>device.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\src\device.c</FilePath> + </File> + <File> + <FileName>object.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\src\object.c</FilePath> + </File> + <File> + <FileName>components.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\src\components.c</FilePath> + </File> + <File> + <FileName>timer.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\src\timer.c</FilePath> + </File> + <File> + <FileName>irq.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\..\src\irq.c</FilePath> + </File> + </Files> + </Group> + <Group> + <GroupName>nrfx</GroupName> + <Files> + <File> + <FileName>nrfx_lpcomp.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_lpcomp.c</FilePath> + </File> + <File> + <FileName>nrfx_temp.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_temp.c</FilePath> + </File> + <File> + <FileName>nrfx_comp.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_comp.c</FilePath> + </File> + <File> + <FileName>nrfx_spis.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_spis.c</FilePath> + </File> + <File> + <FileName>nrfx_twi_twim.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_twi_twim.c</FilePath> + </File> + <File> + <FileName>nrfx_pdm.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_pdm.c</FilePath> + </File> + <File> + <FileName>nrfx_wdt.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_wdt.c</FilePath> + </File> + <File> + <FileName>nrfx_spim.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_spim.c</FilePath> + </File> + <File> + <FileName>nrfx_nvmc.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_nvmc.c</FilePath> + </File> + <File> + <FileName>nrfx_power.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_power.c</FilePath> + </File> + <File> + <FileName>nrfx_twim.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_twim.c</FilePath> + </File> + <File> + <FileName>nrfx_rng.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_rng.c</FilePath> + </File> + <File> + <FileName>nrfx_i2s.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_i2s.c</FilePath> + </File> + <File> + <FileName>nrfx_saadc.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_saadc.c</FilePath> + </File> + <File> + <FileName>system_nrf51.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\mdk\system_nrf51.c</FilePath> + </File> + <File> + <FileName>nrfx_nfct.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_nfct.c</FilePath> + </File> + <File> + <FileName>nrfx_pwm.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_pwm.c</FilePath> + </File> + <File> + <FileName>nrfx_egu.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_egu.c</FilePath> + </File> + <File> + <FileName>nrfx_gpiote.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_gpiote.c</FilePath> + </File> + <File> + <FileName>nrfx_dppi.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_dppi.c</FilePath> + </File> + <File> + <FileName>nrfx_timer.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_timer.c</FilePath> + </File> + <File> + <FileName>nrfx_spi.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_spi.c</FilePath> + </File> + <File> + <FileName>nrfx_usbd.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_usbd.c</FilePath> + </File> + <File> + <FileName>arm_startup_nrf51.s</FileName> + <FileType>2</FileType> + <FilePath>packages\nrfx-latest\mdk\arm_startup_nrf51.s</FilePath> + </File> + <File> + <FileName>nrfx_qdec.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_qdec.c</FilePath> + </File> + <File> + <FileName>nrfx_ppi.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_ppi.c</FilePath> + </File> + <File> + <FileName>nrfx_uarte.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_uarte.c</FilePath> + </File> + <File> + <FileName>nrfx_qspi.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_qspi.c</FilePath> + </File> + <File> + <FileName>nrfx_rtc.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_rtc.c</FilePath> + </File> + <File> + <FileName>nrfx_usbreg.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_usbreg.c</FilePath> + </File> + <File> + <FileName>nrfx_ipc.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_ipc.c</FilePath> + </File> + <File> + <FileName>nrfx_twis.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_twis.c</FilePath> + </File> + <File> + <FileName>nrfx_twi.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_twi.c</FilePath> + </File> + <File> + <FileName>nrfx_clock.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_clock.c</FilePath> + </File> + <File> + <FileName>nrfx_systick.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_systick.c</FilePath> + </File> + <File> + <FileName>nrfx_uart.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_uart.c</FilePath> + </File> + <File> + <FileName>nrfx_adc.c</FileName> + <FileType>1</FileType> + <FilePath>packages\nrfx-latest\drivers\src\nrfx_adc.c</FilePath> + </File> + </Files> + </Group> + </Groups> + </Target> + </Targets> + + <RTE> + <apis/> + <components/> + <files/> + </RTE> + +</Project> diff --git a/bsp/nrf5x/nrf51822/rtconfig.h b/bsp/nrf5x/nrf51822/rtconfig.h new file mode 100644 index 0000000000..8d42a13144 --- /dev/null +++ b/bsp/nrf5x/nrf51822/rtconfig.h @@ -0,0 +1,187 @@ +#ifndef RT_CONFIG_H__ +#define RT_CONFIG_H__ + +/* Automatically generated file; DO NOT EDIT. */ +/* RT-Thread Configuration */ + +/* RT-Thread Kernel */ + +#define RT_NAME_MAX 8 +#define RT_ALIGN_SIZE 4 +#define RT_THREAD_PRIORITY_32 +#define RT_THREAD_PRIORITY_MAX 32 +#define RT_TICK_PER_SECOND 100 +#define RT_USING_OVERFLOW_CHECK +#define RT_USING_HOOK +#define RT_USING_IDLE_HOOK +#define RT_IDLE_HOOK_LIST_SIZE 4 +#define IDLE_THREAD_STACK_SIZE 256 +#define RT_USING_TIMER_SOFT +#define RT_TIMER_THREAD_PRIO 4 +#define RT_TIMER_THREAD_STACK_SIZE 512 +#define RT_DEBUG + +/* Inter-Thread communication */ + +#define RT_USING_SEMAPHORE +#define RT_USING_MUTEX +#define RT_USING_EVENT +#define RT_USING_MAILBOX +#define RT_USING_MESSAGEQUEUE + +/* Memory Management */ + +#define RT_USING_MEMPOOL +#define RT_USING_SMALL_MEM +#define RT_USING_HEAP + +/* Kernel Device Object */ + +#define RT_USING_DEVICE +#define RT_USING_CONSOLE +#define RT_CONSOLEBUF_SIZE 128 +#define RT_CONSOLE_DEVICE_NAME "uart0" +#define RT_VER_NUM 0x40003 + +/* RT-Thread Components */ + +#define RT_USING_COMPONENTS_INIT +#define RT_USING_USER_MAIN +#define RT_MAIN_THREAD_STACK_SIZE 2048 +#define RT_MAIN_THREAD_PRIORITY 10 + +/* C++ features */ + + +/* Command shell */ + +#define RT_USING_FINSH +#define FINSH_THREAD_NAME "tshell" +#define FINSH_USING_HISTORY +#define FINSH_HISTORY_LINES 5 +#define FINSH_USING_SYMTAB +#define FINSH_USING_DESCRIPTION +#define FINSH_THREAD_PRIORITY 20 +#define FINSH_THREAD_STACK_SIZE 4096 +#define FINSH_CMD_SIZE 80 +#define FINSH_USING_MSH +#define FINSH_USING_MSH_DEFAULT +#define FINSH_USING_MSH_ONLY +#define FINSH_ARG_MAX 10 + +/* Device virtual file system */ + + +/* Device Drivers */ + +#define RT_USING_DEVICE_IPC +#define RT_PIPE_BUFSZ 512 +#define RT_USING_SERIAL +#define RT_SERIAL_RB_BUFSZ 64 +#define RT_USING_PIN + +/* Using USB */ + + +/* POSIX layer and C standard library */ + + +/* Network */ + +/* Socket abstraction layer */ + + +/* Network interface device */ + + +/* light weight TCP/IP stack */ + + +/* AT commands */ + + +/* VBUS(Virtual Software BUS) */ + + +/* Utilities */ + + +/* RT-Thread online packages */ + +/* IoT - internet of things */ + + +/* Wi-Fi */ + +/* Marvell WiFi */ + + +/* Wiced WiFi */ + + +/* IoT Cloud */ + + +/* security packages */ + + +/* language packages */ + + +/* multimedia packages */ + + +/* tools packages */ + + +/* system packages */ + + +/* Micrium: Micrium software products porting for RT-Thread */ + + +/* peripheral libraries and drivers */ + +#define PKG_USING_NRFX +#define PKG_USING_NRFX_LATEST_VERSION + +/* AI packages */ + + +/* miscellaneous packages */ + + +/* samples: kernel and components samples */ + + +/* games: games run on RT-Thread console */ + + +/* Hardware Drivers Config */ + +#define SOC_NRF51822 +#define SOC_NORDIC +#define BSP_BOARD_MICROBIT_1_5 + +/* On-chip Peripheral Drivers */ + +#define BSP_USING_UART +#define BSP_USING_UART0 +#define BSP_UART0_RX_PIN 25 +#define BSP_UART0_TX_PIN 24 + +/* On-chip flash config */ + +#define MCU_FLASH_START_ADDRESS 0x00000000 +#define MCU_FLASH_SIZE_KB 256 +#define MCU_SRAM_START_ADDRESS 0x20000000 +#define MCU_SRAM_SIZE_KB 16 +#define MCU_FLASH_PAGE_SIZE 0x1000 +#define NRFX_CLOCK_ENABLED 1 +#define NRFX_CLOCK_DEFAULT_CONFIG_IRQ_PRIORITY 7 +#define NRFX_CLOCK_CONFIG_LF_SRC 1 +#define NRFX_USING_UART +#define NRFX_UART_ENABLED 1 +#define NRFX_UART0_ENABLED 1 + +#endif diff --git a/bsp/nrf5x/nrf51822/rtconfig.py b/bsp/nrf5x/nrf51822/rtconfig.py new file mode 100644 index 0000000000..bfa1a160f1 --- /dev/null +++ b/bsp/nrf5x/nrf51822/rtconfig.py @@ -0,0 +1,92 @@ +import os + +# toolchains options +ARCH='arm' +CPU='cortex-m0' +CROSS_TOOL='keil' + +if os.getenv('RTT_CC'): + CROSS_TOOL = os.getenv('RTT_CC') + +# cross_tool provides the cross compiler +# EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR + +if CROSS_TOOL == 'gcc': + PLATFORM = 'gcc' + EXEC_PATH = 'D:/SourceryGCC/bin' +elif CROSS_TOOL == 'keil': + PLATFORM = 'armcc' + EXEC_PATH = 'C:/Keil_v5' +elif CROSS_TOOL == 'iar': + print('================ERROR============================') + print('Not support iar yet!') + print('=================================================') + exit(0) + +if os.getenv('RTT_EXEC_PATH'): + EXEC_PATH = os.getenv('RTT_EXEC_PATH') + +BUILD = 'debug' + +if PLATFORM == 'gcc': + # toolchains + PREFIX = 'arm-none-eabi-' + CC = PREFIX + 'gcc' + AS = PREFIX + 'gcc' + AR = PREFIX + 'ar' + LINK = PREFIX + 'gcc' + TARGET_EXT = 'elf' + SIZE = PREFIX + 'size' + OBJDUMP = PREFIX + 'objdump' + OBJCPY = PREFIX + 'objcopy' + + DEVICE = ' -mcpu='+CPU + ' -mthumb -ffunction-sections -fdata-sections' + CFLAGS = DEVICE + AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp' + LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,Reset_Handler -T board/linker_scripts/link.lds' + + CPATH = '' + LPATH = '' + + if BUILD == 'debug': + CFLAGS += ' -O0 -gdwarf-2' + AFLAGS += ' -gdwarf-2' + else: + CFLAGS += ' -O2' + + POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n' + +elif PLATFORM == 'armcc': + # toolchains + CC = 'armcc' + AS = 'armasm' + AR = 'armar' + LINK = 'armlink' + TARGET_EXT = 'axf' + + DEVICE = ' --device DARMSTM' + CFLAGS = DEVICE + ' --apcs=interwork' + AFLAGS = DEVICE + LFLAGS = DEVICE + ' --info sizes --info totals --info unused --info veneers --list rtthread.map --scatter "board\linker_scripts\link.sct"' + + CFLAGS += ' --c99' + CFLAGS += ' -I' + EXEC_PATH + '/ARM/RV31/INC' + LFLAGS += ' --libpath ' + EXEC_PATH + '/ARM/RV31/LIB' + + EXEC_PATH += '/arm/bin40/' + + if BUILD == 'debug': + CFLAGS += ' -g -O0' + AFLAGS += ' -g' + else: + CFLAGS += ' -O2' + + POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET' + + +def dist_handle(BSP_ROOT, dist_dir): + import sys + cwd_path = os.getcwd() + sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) + from sdk_dist import dist_do_building + dist_do_building(BSP_ROOT, dist_dir) diff --git a/bsp/nrf5x/nrf51822/template.uvoptx b/bsp/nrf5x/nrf51822/template.uvoptx new file mode 100644 index 0000000000..96e6c68740 --- /dev/null +++ b/bsp/nrf5x/nrf51822/template.uvoptx @@ -0,0 +1,184 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<ProjectOpt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_optx.xsd"> + + <SchemaVersion>1.0</SchemaVersion> + + <Header>### uVision Project, (C) Keil Software</Header> + + <Extensions> + <cExt>*.c</cExt> + <aExt>*.s*; *.src; *.a*</aExt> + <oExt>*.obj; *.o</oExt> + <lExt>*.lib</lExt> + <tExt>*.txt; *.h; *.inc</tExt> + <pExt>*.plm</pExt> + <CppX>*.cpp</CppX> + <nMigrate>0</nMigrate> + </Extensions> + + <DaveTm> + <dwLowDateTime>0</dwLowDateTime> + <dwHighDateTime>0</dwHighDateTime> + </DaveTm> + + <Target> + <TargetName>rtthread</TargetName> + <ToolsetNumber>0x4</ToolsetNumber> + <ToolsetName>ARM-ADS</ToolsetName> + <TargetOption> + <CLKADS>12000000</CLKADS> + <OPTTT> + <gFlags>1</gFlags> + <BeepAtEnd>1</BeepAtEnd> + <RunSim>0</RunSim> + <RunTarget>1</RunTarget> + <RunAbUc>0</RunAbUc> + </OPTTT> + <OPTHX> + <HexSelection>1</HexSelection> + <FlashByte>65535</FlashByte> + <HexRangeLowAddress>0</HexRangeLowAddress> + <HexRangeHighAddress>0</HexRangeHighAddress> + <HexOffset>0</HexOffset> + </OPTHX> + <OPTLEX> + <PageWidth>79</PageWidth> + <PageLength>66</PageLength> + <TabStop>8</TabStop> + <ListingPath>.\build\</ListingPath> + </OPTLEX> + <ListingPage> + <CreateCListing>1</CreateCListing> + <CreateAListing>1</CreateAListing> + <CreateLListing>1</CreateLListing> + <CreateIListing>0</CreateIListing> + <AsmCond>1</AsmCond> + <AsmSymb>1</AsmSymb> + <AsmXref>0</AsmXref> + <CCond>1</CCond> + <CCode>0</CCode> + <CListInc>0</CListInc> + <CSymb>0</CSymb> + <LinkerCodeListing>0</LinkerCodeListing> + </ListingPage> + <OPTXL> + <LMap>1</LMap> + <LComments>1</LComments> + <LGenerateSymbols>1</LGenerateSymbols> + <LLibSym>1</LLibSym> + <LLines>1</LLines> + <LLocSym>1</LLocSym> + <LPubSym>1</LPubSym> + <LXref>0</LXref> + <LExpSel>0</LExpSel> + </OPTXL> + <OPTFL> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <IsCurrentTarget>1</IsCurrentTarget> + </OPTFL> + <CpuCode>5</CpuCode> + <DebugOpt> + <uSim>0</uSim> + <uTrg>1</uTrg> + <sLdApp>1</sLdApp> + <sGomain>1</sGomain> + <sRbreak>1</sRbreak> + <sRwatch>1</sRwatch> + <sRmem>1</sRmem> + <sRfunc>1</sRfunc> + <sRbox>1</sRbox> + <tLdApp>1</tLdApp> + <tGomain>1</tGomain> + <tRbreak>1</tRbreak> + <tRwatch>1</tRwatch> + <tRmem>1</tRmem> + <tRfunc>0</tRfunc> + <tRbox>1</tRbox> + <tRtrace>1</tRtrace> + <sRSysVw>1</sRSysVw> + <tRSysVw>1</tRSysVw> + <sRunDeb>0</sRunDeb> + <sLrtime>0</sLrtime> + <bEvRecOn>1</bEvRecOn> + <bSchkAxf>0</bSchkAxf> + <bTchkAxf>0</bTchkAxf> + <nTsel>4</nTsel> + <sDll></sDll> + <sDllPa></sDllPa> + <sDlgDll></sDlgDll> + <sDlgPa></sDlgPa> + <sIfile></sIfile> + <tDll></tDll> + <tDllPa></tDllPa> + <tDlgDll></tDlgDll> + <tDlgPa></tDlgPa> + <tIfile></tIfile> + <pMon>Segger\JL2CM3.dll</pMon> + </DebugOpt> + <TargetDriverDllRegistry> + <SetRegEntry> + <Number>0</Number> + <Key>UL2CM3</Key> + <Name>UL2CM3(-S0 -C0 -P0 ) -FN1 -FC4000 -FD20000000 -FF0nrf51xxx -FL0200000 -FS00 -FP0($$Device:nRF51822_xxAA$Flash\nrf51xxx.flm)</Name> + </SetRegEntry> + <SetRegEntry> + <Number>0</Number> + <Key>JL2CM3</Key> + <Name>-U17935099 -O78 -S8 -ZTIFSpeedSel50000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(0BB11477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8004 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC4000 -FN1 -FF0nrf51xxx -FS00 -FL0200000 -FP0($$Device:nRF51822_xxAA$Flash\nrf51xxx.flm)</Name> + </SetRegEntry> + </TargetDriverDllRegistry> + <Breakpoint/> + <Tracepoint> + <THDelay>0</THDelay> + </Tracepoint> + <DebugFlag> + <trace>0</trace> + <periodic>0</periodic> + <aLwin>0</aLwin> + <aCover>0</aCover> + <aSer1>0</aSer1> + <aSer2>0</aSer2> + <aPa>0</aPa> + <viewmode>0</viewmode> + <vrSel>0</vrSel> + <aSym>0</aSym> + <aTbox>0</aTbox> + <AscS1>0</AscS1> + <AscS2>0</AscS2> + <AscS3>0</AscS3> + <aSer3>0</aSer3> + <eProf>0</eProf> + <aLa>0</aLa> + <aPa1>0</aPa1> + <AscS4>0</AscS4> + <aSer4>0</aSer4> + <StkLoc>0</StkLoc> + <TrcWin>0</TrcWin> + <newCpu>0</newCpu> + <uProt>0</uProt> + </DebugFlag> + <LintExecutable></LintExecutable> + <LintConfigFile></LintConfigFile> + <bLintAuto>0</bLintAuto> + <bAutoGenD>0</bAutoGenD> + <LntExFlags>0</LntExFlags> + <pMisraName></pMisraName> + <pszMrule></pszMrule> + <pSingCmds></pSingCmds> + <pMultCmds></pMultCmds> + <pMisraNamep></pMisraNamep> + <pszMrulep></pszMrulep> + <pSingCmdsp></pSingCmdsp> + <pMultCmdsp></pMultCmdsp> + <DebugDescription> + <Enable>1</Enable> + <EnableFlashSeq>1</EnableFlashSeq> + <EnableLog>0</EnableLog> + <Protocol>2</Protocol> + <DbgClock>10000000</DbgClock> + </DebugDescription> + </TargetOption> + </Target> + +</ProjectOpt> diff --git a/bsp/nrf5x/nrf51822/template.uvprojx b/bsp/nrf5x/nrf51822/template.uvprojx new file mode 100644 index 0000000000..e08678d3c2 --- /dev/null +++ b/bsp/nrf5x/nrf51822/template.uvprojx @@ -0,0 +1,390 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd"> + + <SchemaVersion>2.1</SchemaVersion> + + <Header>### uVision Project, (C) Keil Software</Header> + + <Targets> + <Target> + <TargetName>rtthread</TargetName> + <ToolsetNumber>0x4</ToolsetNumber> + <ToolsetName>ARM-ADS</ToolsetName> + <pCCUsed>5060750::V5.06 update 6 (build 750)::ARMCC</pCCUsed> + <uAC6>0</uAC6> + <TargetOption> + <TargetCommonOption> + <Device>nRF51822_xxAA</Device> + <Vendor>Nordic Semiconductor</Vendor> + <PackID>NordicSemiconductor.nRF_DeviceFamilyPack.8.38.0</PackID> + <PackURL>http://developer.nordicsemi.com/nRF5_SDK/pieces/nRF_DeviceFamilyPack/</PackURL> + <Cpu>IRAM(0x20000000,0x00004000) IROM(0x00000000,0x00040000) CPUTYPE("Cortex-M0") CLOCK(12000000) ELITTLE</Cpu> + <FlashUtilSpec></FlashUtilSpec> + <StartupFile></StartupFile> + <FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC4000 -FN1 -FF0nrf51xxx -FS00 -FL0200000 -FP0($$Device:nRF51822_xxAA$Flash\nrf51xxx.flm))</FlashDriverDll> + <DeviceId>0</DeviceId> + <RegisterFile>$$Device:nRF51822_xxAA$Device\Include\nrf.h</RegisterFile> + <MemoryEnv></MemoryEnv> + <Cmp></Cmp> + <Asm></Asm> + <Linker></Linker> + <OHString></OHString> + <InfinionOptionDll></InfinionOptionDll> + <SLE66CMisc></SLE66CMisc> + <SLE66AMisc></SLE66AMisc> + <SLE66LinkerMisc></SLE66LinkerMisc> + <SFDFile>$$Device:nRF51822_xxAA$SVD\nrf51.svd</SFDFile> + <bCustSvd>0</bCustSvd> + <UseEnv>0</UseEnv> + <BinPath></BinPath> + <IncludePath></IncludePath> + <LibPath></LibPath> + <RegisterFilePath></RegisterFilePath> + <DBRegisterFilePath></DBRegisterFilePath> + <TargetStatus> + <Error>0</Error> + <ExitCodeStop>0</ExitCodeStop> + <ButtonStop>0</ButtonStop> + <NotGenerated>0</NotGenerated> + <InvalidFlash>1</InvalidFlash> + </TargetStatus> + <OutputDirectory>.\build\</OutputDirectory> + <OutputName>rtthread</OutputName> + <CreateExecutable>1</CreateExecutable> + <CreateLib>0</CreateLib> + <CreateHexFile>0</CreateHexFile> + <DebugInformation>1</DebugInformation> + <BrowseInformation>1</BrowseInformation> + <ListingPath>.\build\</ListingPath> + <HexFormatSelection>1</HexFormatSelection> + <Merge32K>0</Merge32K> + <CreateBatchFile>0</CreateBatchFile> + <BeforeCompile> + <RunUserProg1>0</RunUserProg1> + <RunUserProg2>0</RunUserProg2> + <UserProg1Name></UserProg1Name> + <UserProg2Name></UserProg2Name> + <UserProg1Dos16Mode>0</UserProg1Dos16Mode> + <UserProg2Dos16Mode>0</UserProg2Dos16Mode> + <nStopU1X>0</nStopU1X> + <nStopU2X>0</nStopU2X> + </BeforeCompile> + <BeforeMake> + <RunUserProg1>0</RunUserProg1> + <RunUserProg2>0</RunUserProg2> + <UserProg1Name></UserProg1Name> + <UserProg2Name></UserProg2Name> + <UserProg1Dos16Mode>0</UserProg1Dos16Mode> + <UserProg2Dos16Mode>0</UserProg2Dos16Mode> + <nStopB1X>0</nStopB1X> + <nStopB2X>0</nStopB2X> + </BeforeMake> + <AfterMake> + <RunUserProg1>1</RunUserProg1> + <RunUserProg2>0</RunUserProg2> + <UserProg1Name>fromelf --bin !L --output rtthread.bin</UserProg1Name> + <UserProg2Name></UserProg2Name> + <UserProg1Dos16Mode>0</UserProg1Dos16Mode> + <UserProg2Dos16Mode>0</UserProg2Dos16Mode> + <nStopA1X>0</nStopA1X> + <nStopA2X>0</nStopA2X> + </AfterMake> + <SelectedForBatchBuild>0</SelectedForBatchBuild> + <SVCSIdString></SVCSIdString> + </TargetCommonOption> + <CommonProperty> + <UseCPPCompiler>0</UseCPPCompiler> + <RVCTCodeConst>0</RVCTCodeConst> + <RVCTZI>0</RVCTZI> + <RVCTOtherData>0</RVCTOtherData> + <ModuleSelection>0</ModuleSelection> + <IncludeInBuild>1</IncludeInBuild> + <AlwaysBuild>0</AlwaysBuild> + <GenerateAssemblyFile>0</GenerateAssemblyFile> + <AssembleAssemblyFile>0</AssembleAssemblyFile> + <PublicsOnly>0</PublicsOnly> + <StopOnExitCode>3</StopOnExitCode> + <CustomArgument></CustomArgument> + <IncludeLibraryModules></IncludeLibraryModules> + <ComprImg>1</ComprImg> + </CommonProperty> + <DllOption> + <SimDllName>SARMCM3.DLL</SimDllName> + <SimDllArguments> </SimDllArguments> + <SimDlgDll>DARMCM1.DLL</SimDlgDll> + <SimDlgDllArguments>-pCM0</SimDlgDllArguments> + <TargetDllName>SARMCM3.DLL</TargetDllName> + <TargetDllArguments> </TargetDllArguments> + <TargetDlgDll>TARMCM1.DLL</TargetDlgDll> + <TargetDlgDllArguments>-pCM0</TargetDlgDllArguments> + </DllOption> + <DebugOption> + <OPTHX> + <HexSelection>1</HexSelection> + <HexRangeLowAddress>0</HexRangeLowAddress> + <HexRangeHighAddress>0</HexRangeHighAddress> + <HexOffset>0</HexOffset> + <Oh166RecLen>16</Oh166RecLen> + </OPTHX> + </DebugOption> + <Utilities> + <Flash1> + <UseTargetDll>1</UseTargetDll> + <UseExternalTool>0</UseExternalTool> + <RunIndependent>0</RunIndependent> + <UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging> + <Capability>1</Capability> + <DriverSelection>4096</DriverSelection> + </Flash1> + <bUseTDR>1</bUseTDR> + <Flash2>BIN\UL2CM3.DLL</Flash2> + <Flash3></Flash3> + <Flash4></Flash4> + <pFcarmOut></pFcarmOut> + <pFcarmGrp></pFcarmGrp> + <pFcArmRoot></pFcArmRoot> + <FcArmLst>0</FcArmLst> + </Utilities> + <TargetArmAds> + <ArmAdsMisc> + <GenerateListings>0</GenerateListings> + <asHll>1</asHll> + <asAsm>1</asAsm> + <asMacX>1</asMacX> + <asSyms>1</asSyms> + <asFals>1</asFals> + <asDbgD>1</asDbgD> + <asForm>1</asForm> + <ldLst>0</ldLst> + <ldmm>1</ldmm> + <ldXref>1</ldXref> + <BigEnd>0</BigEnd> + <AdsALst>1</AdsALst> + <AdsACrf>1</AdsACrf> + <AdsANop>0</AdsANop> + <AdsANot>0</AdsANot> + <AdsLLst>1</AdsLLst> + <AdsLmap>1</AdsLmap> + <AdsLcgr>1</AdsLcgr> + <AdsLsym>1</AdsLsym> + <AdsLszi>1</AdsLszi> + <AdsLtoi>1</AdsLtoi> + <AdsLsun>1</AdsLsun> + <AdsLven>1</AdsLven> + <AdsLsxf>1</AdsLsxf> + <RvctClst>0</RvctClst> + <GenPPlst>0</GenPPlst> + <AdsCpuType>"Cortex-M0"</AdsCpuType> + <RvctDeviceName></RvctDeviceName> + <mOS>0</mOS> + <uocRom>0</uocRom> + <uocRam>0</uocRam> + <hadIROM>1</hadIROM> + <hadIRAM>1</hadIRAM> + <hadXRAM>0</hadXRAM> + <uocXRam>0</uocXRam> + <RvdsVP>0</RvdsVP> + <RvdsMve>0</RvdsMve> + <hadIRAM2>0</hadIRAM2> + <hadIROM2>0</hadIROM2> + <StupSel>8</StupSel> + <useUlib>0</useUlib> + <EndSel>0</EndSel> + <uLtcg>0</uLtcg> + <nSecure>0</nSecure> + <RoSelD>3</RoSelD> + <RwSelD>3</RwSelD> + <CodeSel>0</CodeSel> + <OptFeed>0</OptFeed> + <NoZi1>0</NoZi1> + <NoZi2>0</NoZi2> + <NoZi3>0</NoZi3> + <NoZi4>0</NoZi4> + <NoZi5>0</NoZi5> + <Ro1Chk>0</Ro1Chk> + <Ro2Chk>0</Ro2Chk> + <Ro3Chk>0</Ro3Chk> + <Ir1Chk>1</Ir1Chk> + <Ir2Chk>0</Ir2Chk> + <Ra1Chk>0</Ra1Chk> + <Ra2Chk>0</Ra2Chk> + <Ra3Chk>0</Ra3Chk> + <Im1Chk>1</Im1Chk> + <Im2Chk>0</Im2Chk> + <OnChipMemories> + <Ocm1> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </Ocm1> + <Ocm2> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </Ocm2> + <Ocm3> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </Ocm3> + <Ocm4> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </Ocm4> + <Ocm5> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </Ocm5> + <Ocm6> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </Ocm6> + <IRAM> + <Type>0</Type> + <StartAddress>0x20000000</StartAddress> + <Size>0x4000</Size> + </IRAM> + <IROM> + <Type>1</Type> + <StartAddress>0x0</StartAddress> + <Size>0x40000</Size> + </IROM> + <XRAM> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </XRAM> + <OCR_RVCT1> + <Type>1</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT1> + <OCR_RVCT2> + <Type>1</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT2> + <OCR_RVCT3> + <Type>1</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT3> + <OCR_RVCT4> + <Type>1</Type> + <StartAddress>0x0</StartAddress> + <Size>0x40000</Size> + </OCR_RVCT4> + <OCR_RVCT5> + <Type>1</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT5> + <OCR_RVCT6> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT6> + <OCR_RVCT7> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT7> + <OCR_RVCT8> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT8> + <OCR_RVCT9> + <Type>0</Type> + <StartAddress>0x20000000</StartAddress> + <Size>0x4000</Size> + </OCR_RVCT9> + <OCR_RVCT10> + <Type>0</Type> + <StartAddress>0x0</StartAddress> + <Size>0x0</Size> + </OCR_RVCT10> + </OnChipMemories> + <RvctStartVector></RvctStartVector> + </ArmAdsMisc> + <Cads> + <interw>1</interw> + <Optim>1</Optim> + <oTime>0</oTime> + <SplitLS>0</SplitLS> + <OneElfS>1</OneElfS> + <Strict>0</Strict> + <EnumInt>0</EnumInt> + <PlainCh>0</PlainCh> + <Ropi>0</Ropi> + <Rwpi>0</Rwpi> + <wLevel>2</wLevel> + <uThumb>0</uThumb> + <uSurpInc>0</uSurpInc> + <uC99>1</uC99> + <uGnu>0</uGnu> + <useXO>0</useXO> + <v6Lang>1</v6Lang> + <v6LangP>1</v6LangP> + <vShortEn>1</vShortEn> + <vShortWch>1</vShortWch> + <v6Lto>0</v6Lto> + <v6WtE>0</v6WtE> + <v6Rtti>0</v6Rtti> + <VariousControls> + <MiscControls>--reduce_paths</MiscControls> + <Define></Define> + <Undefine></Undefine> + <IncludePath></IncludePath> + </VariousControls> + </Cads> + <Aads> + <interw>1</interw> + <Ropi>0</Ropi> + <Rwpi>0</Rwpi> + <thumb>0</thumb> + <SplitLS>0</SplitLS> + <SwStkChk>0</SwStkChk> + <NoWarn>0</NoWarn> + <uSurpInc>0</uSurpInc> + <useXO>0</useXO> + <uClangAs>0</uClangAs> + <VariousControls> + <MiscControls>--cpreproc_opts=-DBLE_STACK_SUPPORT_REQD,-DNRF_SD_BLE_API_VERSION=4,-DS132,-DSOFTDEVICE_PRESENT,-DSWI_DISABLE0,-DCONFIG_GPIO_AS_PINRESET,-DNRF52,-DNRF52832_XXAA,-DNRF52_PAN_12,-DNRF52_PAN_15,-DNRF52_PAN_20,-DNRF52_PAN_31,-DNRF52_PAN_36,-DNRF52_PAN_51,-DNRF52_PAN_54,-DNRF52_PAN_55,-DNRF52_PAN_58,-DNRF52_PAN_64,-DNRF52_PAN_74</MiscControls> + <Define></Define> + <Undefine></Undefine> + <IncludePath></IncludePath> + </VariousControls> + </Aads> + <LDads> + <umfTarg>0</umfTarg> + <Ropi>0</Ropi> + <Rwpi>0</Rwpi> + <noStLib>0</noStLib> + <RepFail>1</RepFail> + <useFile>0</useFile> + <TextAddressRange>0x00000000</TextAddressRange> + <DataAddressRange>0x20000000</DataAddressRange> + <pXoBase></pXoBase> + <ScatterFile>.\board\linker_scripts\link.sct</ScatterFile> + <IncludeLibs></IncludeLibs> + <IncludeLibsPath></IncludeLibsPath> + <Misc>--diag_suppress 6330</Misc> + <LinkerInputFile></LinkerInputFile> + <DisabledWarnings></DisabledWarnings> + </LDads> + </TargetArmAds> + </TargetOption> + </Target> + </Targets> + + <RTE> + <apis/> + <components/> + <files/> + </RTE> + +</Project>