From bb1e2b1ac12abee41c27c8b8ebedbf73d6745638 Mon Sep 17 00:00:00 2001 From: Dong Heng Date: Wed, 4 Mar 2020 19:37:56 +0800 Subject: [PATCH] feat(esp8266): refactor function "os_update_cpu_frequency" --- components/esp8266/lib/VERSION | 2 +- components/esp8266/lib/libcore.a | Bin 88862 -> 87702 bytes components/esp8266/lib/libcore_dbg.a | Bin 90126 -> 88966 bytes components/esp8266/source/system_api.c | 16 ++++++++++++++++ .../port/esp8266/include/freertos/portmacro.h | 2 +- 5 files changed, 18 insertions(+), 2 deletions(-) diff --git a/components/esp8266/lib/VERSION b/components/esp8266/lib/VERSION index f97de66c..87e5b6db 100644 --- a/components/esp8266/lib/VERSION +++ b/components/esp8266/lib/VERSION @@ -1,5 +1,5 @@ gwen: - core: e1fe83a + core: 71005fb net80211: e1fe83a pp: e1fe83a wpa: e1fe83a diff --git a/components/esp8266/lib/libcore.a b/components/esp8266/lib/libcore.a index d8eda7af256196ada779d683f53177aa48e34983..597190a9bdbf7c45981af6e5c864da7a1a5e92f8 100755 GIT binary patch delta 2100 zcmb_dU1(HS5T3I!ZraV7zx{~>%{5Us!D{y>nxy`8ldNo%EkaOh6^W3hRa=QQ(FY4& z3qDEOnoe;QMSN-TC88`Uw4hc&=|e>*MIS5;*oT5YEm8{=!G3e@x$*8kv`RDZotgRO z%$zyrp0j)6eEH$=@J@+uMSA_`u7IV3Uv-(X9y zXZwGn?=PZF*Pdfw5789Bo{A#>qlP^tyYM!k(x1@_U~pu(e`MPZZuXt$`@Wg{tUXf5 zm3>v=Hy0uwU#X&ns>)iQmx&Zs%(y$Zh$(AJ#lkuH+ z6@6&@D0D4mj6h5EChgbJ0pqXIewdCzi#YQ!zTZDMyc35x@WF6Df7 zIak(~aptRtqb;bA*^2a}>K$H`@WP25Fnk4URnIq&=-+}GXWTSNJi^Hq$0SrAiu^~icWtHxOTAl|ufzWR}ef-&_o-|dOn zx6zC2D-DP|MNe{NEI@9&#AHu@0$7_&ANm?e+!dK8@;l(Iw-tvY2W|mD6O(#j*$B~$ z$%6Yq1~{8(Zr$%msq&;GoRrCoQ65?pUH%$a?}A4>*)^VQeRA;K4V;3V%nxi(&Gs3j z#Nk>%9pLV{zhuEXh`j^2;_i84NedIGC(qIX!hl=PE~zIU77r}{IH79Z*jrMh?Um;T zCvVX$@`WiP4U4Q%`O7^jQhN+MzTKo8RD3fSvB%AHm%jqvO%)EVmQyffiL~QV4$Jq# zwg9=$?(*MYo|^-j9>E#)5UzO+267^k1;0c=nP?$t77t|`rtia>y{h<7wkepwGpNS% zn1f)1FCn-Vd-=eW?+J5*K7oPPUKc`sE`*2*k(>M9yoUMr z^H}=e%IiY>lRx{45Sv#0>09m!@qiwC(8B+zF807H|2GSeD?H-8l&ILC^zFus|mIH7>VGOtg4nMz=Z?^W(a z0dL|G_gL6$EBA;SDu2St3q-cscY;5I+7>rA1p+<2eZj%#j!3AhM+5?0p`BelH5_b@ z_9lX!&=8My^+ZA*eMf3ql(^Vi?5aEGraM+yMuM*rsq? z4b5p*9AJnw2j?yy<%Vq?J9HR}S&2;z;GSurE=2-{SPNnIvX~pTo$L?-hS;X?B95iW z4I6G1IKU9wOm39PLfW&$8=I3zv2`~ZWil1dNPyUeJ2Mem&xB)?m!ug>5eo6~CPlzh}iG@8n3Y%%PSoRU;Q>$qIULX@zX3=Euur z*lOQIJCeJGhjKS(kL;f35zJJNL80TKUtU zm-{kyY!+ka^D#g7>X5}C$3(CDOJhg50Qp$1bb@>}< z<&B*C)Kbvt<-D4vhvTf~@iKOg;^BnfP3Xmv8^l67ctD#LJd`F_&DHCe1VJ1eco001 z5KQWQ#W{XMwQ0T2{-QTuh}XDUKYCBAWM(Nhdc9r)CoSbMvwdD+5A5MYh2=p diff --git a/components/esp8266/lib/libcore_dbg.a b/components/esp8266/lib/libcore_dbg.a index 2a3fbce3a5a81fd71cc3651db741b89f9f863ff3..c3a01aa9fd0653fd43cb60960dc4459f5128cbde 100755 GIT binary patch delta 2044 zcmcgsOK4PA82-=1G3v~iWL`;(CfAAWn5rSk#Kc!@M#oN+U|JPHtxig{salBC$HLcj zAzhT%#{AN$?OJi8ScVcP_+E&MKp=}|(H0@NYf;3FAn5m>d+y{K@U^HveCK~Z&g0%6 zZu-9)_7B$hQ>o_mp<@R?nVT z;L%H3TbekXYKT|?yowT{RxqN4l%P63ky^)FTgQ29!x0ta>yb(xiB$3Nv%#UEAU|E& z#O3FLg*|Oc6%Tw~&-dD6nBW#qEIZG=Uv1=$z6kgBg@>SJv49S`BR)P^zsV+G2FERnX(-JB;r5%jg@USAvHTaR^+hC$t`+(?(yf^%$K8 z7jojU_T}~*JdiuI_sjhUb9`obDNZuTKdq{j)8y`wO&KR%#T{;eMa@=ZCROFwg^68k zA_t6p24q#mqaBsDu{4{=h2TPNWyy^Cv`H_j#*wuhH{;Svc5#CAdHNk$PXbw777&Fj zQ`pi_6ghOAFdYJ@7KlQYgjGh)fD6Pf$yp;yuFNHN@i!QG4Y=i z$*%BZ>qCR?Zr~E+mi*?Os@}eelqRSa5CPmh=cY9L3%+fDOYWYxPZ{Ap>dDt=0WrX> zXHTgocZ%;S|Da7(tT;NQNbAhWgOg9tEiz<^$iPB9Du1<0#lyeCj=L+;_lieDar?3f zckQ>KyQyM>s_7C0Y0>GZ)Q$FCkS#!-vD^L+#JM>z(_<(D9)m0X4gopwV!?ALD1jD| z=5c?vX8K8ds&^C*W)qd;kCd delta 2896 zcmcImU1(HC6rNe#WaI9J&1SRtwYh1c8>IhQE3s}@H_@%JMmNz= z0vl*+OIw0+3MnGeUntTRX#{;xYw#sVz?MQ$3O>|6L=a6?iUo0dzI$il?LH~RLuTfj zZ@%-*oVj!F=Fn;9=mqEDQfIiasiE$OQIcv78>YQEPY5w6L~ibrwR+}1Nn3wM2wO|p zgIT}(Ss`{XQMcV+3h{JW>S+l-rf$#wt4wap5|7cy=Qu~3R+Q6KhnI}0GOC;k(vOV= z;}0C)xU9QCqg#u{&%5&-w(yqsdex(F&a!Y5{S{u6e}*5qm?K034?etbU z_si(`aCYiy=Z)3IABOxpeL;wcd+9xnYEMEo=gGSOhVpjF4#yjFez}=$&92Fkw*fN6 zyFDhtF)42%-X(|fK&r`V&6d+ZtlqWnhG&s?GIphNdbNMT@XiQWMLJ#WQ2x?1jnrS7 z`!d56dF>!wXmCk`CK?Wo&1{gKoFwB8%+bX0(0Kc@Ws+JOJ#?+Gl8!YN@Yxi(YWorc zJ^N#Qv~PJ4O*WnYNE6@X(>u$L6vkr%vD%%{o@9S?AhBb2GTPs>KRTGCoTg25sLW5_ zmig#@Nrd8OeKg$cqg|ywnrix-wl?|b)Y-a<3L$xQ*j#RTqD%yM^l+=^<`*71*Ib_R zh*cbE^Re@y4tPZTYDT;*Bi@}64|8mAL;Ze{D?ZJLzvmb`%EtV5UgDwxtZm*&U$PTe z;&&AnB7uvz&LcL)Z!X6{aaY9~%(zInRNWT8ggREVwML`8eS2dAgKsAj@m>*)#uEqP zz4h$u8SJy1-oy~k#(R?q5gi&Zj~uK-a_@dBpPH}lF+Fg+!f&!^ve+689s+7n6d_A3 zyh!1|;JX#>VqbHr6$co6%~`5&V5X*8i$jr;6&S47BEWYHgbr@-VGxt^O;^`Q|?Hryd_fWdbg+$odAG_tZVwZIBddH|g=X~&%wh%y3MmTx{2_K{*J97lt51_wuA z@^L-cP-K98@LQDM&f^+%m_YJ+R#?4Zjn zGsT<&YvOw(mEUgqbftCW0<6OJ2@vIfX7j%`{jtNjvQXyG7s*A3eg z{lkp(7LLPeD;V^4-p$a%an|vC6}O<`;e@}k^is10Vk294LYo#mo*`Jr*Z z2wt=VXZ5By#y3-&);s?ny(L1t$JzP`lrUQh{-y-^2ivqiB}JA7{kIj2qF~c}j@?23 zeTLOVH{nVLjd+9pdHkaA%&c{raLUOr)`_TzW45C30nvLX%t$AWCvAG#^=IhKupW3- ztW{yt%VVGGp^k8lvzr$&s5@Ng9p-C(k`?f=DW;FZrCCdI@D9-HYZpBFH)j0k+WdT5 kcxm%bPAeQA-Fn;p@6XXFW!s1wcdozoC_MecI(enwU%tbmMF0Q* diff --git a/components/esp8266/source/system_api.c b/components/esp8266/source/system_api.c index c3c0402c..f464446a 100644 --- a/components/esp8266/source/system_api.c +++ b/components/esp8266/source/system_api.c @@ -32,6 +32,7 @@ static const char* TAG = "system_api"; static uint8_t base_mac_addr[6] = { 0 }; +uint32_t g_esp_ticks_per_us = 80; // Bootloader can get this information const __attribute__((section(".SystemInfoVector.text"))) esp_sys_info_t g_esp_sys_info = { @@ -366,3 +367,18 @@ uint32_t esp_get_old_sysconf_addr(void) { return rtc_sys_info.old_sysconf_addr; } + +void os_update_cpu_frequency(uint32_t ticks_per_us) +{ + extern uint32_t _xt_tick_divisor; + + if (REG_READ(DPORT_CTL_REG) & DPORT_CTL_DOUBLE_CLK) { + g_esp_ticks_per_us = CPU_CLK_FREQ * 2 / 1000000; + _xt_tick_divisor = (CPU_CLK_FREQ * 2 / CONFIG_FREERTOS_HZ); + } else { + g_esp_ticks_per_us = CPU_CLK_FREQ / 1000000;; + _xt_tick_divisor = (CPU_CLK_FREQ / CONFIG_FREERTOS_HZ); + } +} + +void ets_update_cpu_frequency(uint32_t ticks_per_us) __attribute__((alias("os_update_cpu_frequency"))); diff --git a/components/freertos/port/esp8266/include/freertos/portmacro.h b/components/freertos/port/esp8266/include/freertos/portmacro.h index 5d24707d..2955f9d2 100644 --- a/components/freertos/port/esp8266/include/freertos/portmacro.h +++ b/components/freertos/port/esp8266/include/freertos/portmacro.h @@ -213,7 +213,7 @@ void esp_increase_tick_cnt(const TickType_t ticks); extern void esp_vApplicationIdleHook( void ); extern void esp_vApplicationTickHook( void ); -extern const uint32_t g_esp_ticks_per_us; +extern uint32_t g_esp_ticks_per_us; /* * @brief Get FreeRTOS system idle ticks