From 96cac1005bb37788050dfc8496ac2dabd3e6056e Mon Sep 17 00:00:00 2001 From: pvvx Date: Fri, 24 Mar 2017 18:24:37 +0300 Subject: [PATCH] update --- RTL00_SDKV35a/component/common/api/wifi_api.c | 4 +- .../realtek/8195a/fwlib/ram_lib/rtl_boot.c | 9 +- build/bin/ota.bin | Bin 298156 -> 298156 bytes build/bin/ram_1.p.bin | Bin 8252 -> 8252 bytes build/bin/ram_2.bin | Bin 298120 -> 298120 bytes build/bin/ram_2.ns.bin | Bin 298136 -> 298136 bytes build/bin/ram_2.p.bin | Bin 298136 -> 298136 bytes build/bin/ram_all.bin | Bin 343208 -> 343208 bytes build/obj/build.nmap | 118 +++++++++--------- flasher.mk | 14 +-- flasher/gdb_wrflash.jlink | 1 - sdkbuild.mk | 12 +- 12 files changed, 71 insertions(+), 87 deletions(-) diff --git a/RTL00_SDKV35a/component/common/api/wifi_api.c b/RTL00_SDKV35a/component/common/api/wifi_api.c index 64a8103..4b6777f 100644 --- a/RTL00_SDKV35a/component/common/api/wifi_api.c +++ b/RTL00_SDKV35a/component/common/api/wifi_api.c @@ -374,7 +374,7 @@ void _LwIP_Init(void) tcpip_init( NULL, NULL ); chk_ap_netif_num(); // Исполняется после _wifi_on() - for(int idx = 0; idx < NET_IF_NUM; idx++) { + for(idx = 0; idx < NET_IF_NUM; idx++) { xnetif[idx].name[0] = 'r'; xnetif[idx].name[1] = '0' + idx; } @@ -728,7 +728,7 @@ void fATWT(int argc, char *argv[]) { #define ReadTSF_Lo32() (*((volatile unsigned int *)(WIFI_REG_BASE + REG_TSFTR))) #define ReadTSF_Hi32() (*((volatile unsigned int *)(WIFI_REG_BASE + REG_TSFTR1))) -uint64_t get_tsf(void) +LOCAL uint64_t get_tsf(void) { return *((uint64_t *)(WIFI_REG_BASE + REG_TSFTR)); } diff --git a/RTL00_SDKV35a/component/soc/realtek/8195a/fwlib/ram_lib/rtl_boot.c b/RTL00_SDKV35a/component/soc/realtek/8195a/fwlib/ram_lib/rtl_boot.c index 98a84ed..99582c8 100644 --- a/RTL00_SDKV35a/component/soc/realtek/8195a/fwlib/ram_lib/rtl_boot.c +++ b/RTL00_SDKV35a/component/soc/realtek/8195a/fwlib/ram_lib/rtl_boot.c @@ -207,9 +207,10 @@ struct spic_table_flash_type spic_table_flash = { BIT_FLASE_SIZE(0x0F), // REG_SPIC_FLASE_SIZE 0x40006124 0x0E ? BIT_CS_H_WR_DUM_LEN(2)| BIT_AUTO_ADDR__LENGTH(3) | BIT_RD_DUMMY_LENGTH(0x0), // REG_SPIC_AUTO_LENGTH 0x4000611C 0x20030001 ? { - BIT_WR_BLOCKING, // REG_SPIC_VALID_CMD 0x40006120 0x200 SpicOneBitMode - BIT_WR_BLOCKING | BIT_RD_DUAL_I, // REG_SPIC_VALID_CMD 0x40006120 0x200 SpicOneBitMode - BIT_WR_BLOCKING | BIT_RD_QUAD_O, // REG_SPIC_VALID_CMD 0x40006120 0x200 SpicOneBitMode + BIT_WR_BLOCKING, // REG_SPIC_VALID_CMD 0x40006120 0x200 SpicOneBitMode + BIT_WR_BLOCKING | BIT_RD_DUAL_I, // REG_SPIC_VALID_CMD 0x40006120 0x202 SpicDualBitMode + BIT_WR_BLOCKING | BIT_RD_DUAL_I, // REG_SPIC_VALID_CMD 0x40006120 0x202 SpicDualBitMode +// BIT_WR_BLOCKING | BIT_RD_QUAD_O, // REG_SPIC_VALID_CMD 0x40006120 0x208 SpicQuadBitMode MXIC not QIO }, 0xC2, 0x20 // MX25L8006/MX25L1606 }; @@ -274,7 +275,7 @@ LOCAL int BOOT_RAM_TEXT_SECTION InitSpic(uint8 SpicBitMode) { for(x = 0; x < SpicMaxMode; x++) { *(uint32 *)&SpicInitParaAllClk[SpicOneBitMode][x].BaudRate = ptr[0]; *(uint32 *)&SpicInitParaAllClk[SpicDualBitMode][x].BaudRate = ptr[CPU_CLK_TYPE_NO]; - *(uint32 *)&SpicInitParaAllClk[SpicQuadBitMode][x].BaudRate = ptr[CPU_CLK_TYPE_NO]; + *(uint32 *)&SpicInitParaAllClk[SpicQuadBitMode][x].BaudRate = ptr[CPU_CLK_TYPE_NO]; // MXIC not QIO ptr++; } ACTCK_FLASH_CCTRL(1); diff --git a/build/bin/ota.bin b/build/bin/ota.bin index c9ac5d9fb1acedfc2456ff5734932dd9e68786de..a61ba09f46fcf7a116a13f8b7e71c7acfa430e7f 100644 GIT binary patch delta 3459 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 g1qrKH$=O)TK{;hQY?^k5tWUc`SvOf}xbY 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 XmYq0@Gvu_1url{{S delta 3458 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 delta 3453 zcmZWrdw3I77N2uxlBOkX11%8RKr?}s(g&nzfkG)n(6ORxp(vkV(So3@qEuPeq5_px zK|Yi!w1-kez!mzSO00b2LQBkaalNhZnOo8qqf?LTMEIltdM z_uO+IXLhs>+tE6#>0dD5`#A(@4{LcfUukvqwj#*7NwYcr>N~9o!eshVv_}%%8B!5V z)q9Fv6XRfI&s`JL)c8Yxk_w>MLmRh^pLuyinNB8}6!_dG$NL32!L_H_LucweMY9fG z1@H8nt$!yEj`nnP4^IYnPk(RbXn3yY+cRBRaP8q|;K^wup-**8hl=4D^+CZkRLNFk z`be;x3bO^7>kkG8zkBhia<~fS;fZp{nB@%~4G787z+y#;v5JF7Vs?dMiP`R;keS)I zqVdJXZyTK~O13_}W`9lQ(ifL?khfQQlvT|#*_7*>YUU|+CZdUk@I+z@BWXMsOPS6 zQakxf5UHK>?v4>Z{0(t%VqLpujq`%HBArd_UGVF~$FA_CI+HTU`&RpLlk>v*Dkn`A z-uz_yX8 zURWyl_r>b7oJFYZvmI{IoL-@Buiz{IYJg04;PdmL6t2TB=0jo1BwY%)L2z-*t-xfN zW~pN9PL)mV8FYui;->yrtjbnyok$kWF0zX3%F0Q3jXk{G~bE+HBZf62_V}M`@uVU=BkvXg!{&hR2~4 zZ?1vsVI=OY0U6BdpKD+hz>R9*J@A4^Ds?=4AIu~(bhNL6a~)wA`<8Z7kyj~EN@cNgG`&6|DrG)#=ZGBh$?WP`X`P$_2A9OVN|svk{BM4hn-E|`<1>LqM3iGh)1G%e6^=2l395?r(u?jo~- z_~ur4fPA3glqPl}e$>^KO;7<~!Tx99`t=TaHp+H0p+T9ajHc<@V1+8 zBew@EM7p?PwSyjv3S%2Jf05KtrUWnlY}`}h#V4PI%aVhxi(=z8I8OQ_Sg{@ECACCY zQt=y?=kSb9gq$8;V(O2{qzxr}FTm5<>TG$RmLu-nN@v_2WTo z-wj?^t^TkZZU*wMhTc7}u5^?3YsoBK;P)tIR*iKUzu3~nraEhhS#ir=Me20WE?s1g zgPWDuElWE|p@ZIyp*=8)H0wBGFWd*2`1oFUNJ^*QM_cy67^a+xs;+%7LnO`!R=o)4 zk~+ftyvC7SC7r$y#>M;D(cBcqru~pjR)_J(ei)N_N7&qX)%i_@E-j&y$eg)2jOX^l zY-@2imu&)crqjYOPCo$aQhzaC)q1CxJ6)RP3in4tJ$?Y1fZQL(+d5!2DG%em4)*BG z2;;jQFoih7EuFkRVb$FUV+hegIPW0%$)q59x*>bSn<1~y-d5;)O%rV9PN5~PE1lZe zyV(u)kqyBzhL!mGv|+XnG+_^a-O}kMe7+mTlgc2z+YR57f9UEfFM%1zPnvqF8-v{HE_EuE2yaJajLLNVGr|uJ^-m=)-0|+&n5rPxh1i#FM6OuW}%e1Rh0b zwvDyZCr~^KcNJA=PqfR*HJ#-b>Q~$8N7^av8z=YN?#X2dy{~x{SxNE_RchIDFKjPl zK3T)vXW{qGku)6L)Nby$_R83G8n>jt{p_09=|dWNzJ@GmBz-fgR(=gOGpxaTzlVOP zQS*O*o;WC1&r;Y6uug3_508kXF4}Slo`%

m@*V3&&rE^ctcv2YOmZjrdl=u#B<{&` zBW1q$)@eRVm#}THm8Q^n(Ihr9zQe;JE{l2@UhqHoYwDydQX`SiLh8;OvYE{NU8q@` z;7({i6KDOz>@o$4A%*r_@$HOD{=^jULXzJU$OE&BC3yvDiz5sv24ILMhO~z8zI-x* zJQczx@`*G4(NID==}4heeL0_;5Tz7)yRL31Ae(bQ#>7gpfLspZvP$A6Uk26fmE;du z;KCsdWP+4Pd;77tfxHbij5d(*#E7Wbjb!ol@V44;f;>jx12la|a$%NQ@F6)2QasJo z)E_@0$0kA{b`Y`OZl*`HDj#W`?_;f;)kf@;y3Ew3VZA7(j#?WPvM&sfR$)S5;J5f= z*e!}RBYGnrYunvY;EyJ2Nj7`lq)szU&@fLDCzA6~tdzuYl&K?1ek=mrU_iD8}+EG2NCEY1G6fXKjm~$o@FRsQPf0XdOCj zT-X#aM55Rg=~;0bp_O52XM-|du_asF1XB1X07j5|Y9iojSPR7427suearOb11856rWW^nBW zE*y-7=eX9(DS2G8a>_X_@|KHEtmM8eF*5h<;v)`naxd5NxOkMKH^ekf>E-51Zdz9` zv5T9>xoN~GT+HA;E7w-?5i_{9g^S}H=;gi}xcEGlcnsy5gU7RS%9a?)waQo&t{vn) g2iMMV-!4AlI2T4tW2pG}MPcKl6{0$6g;X>C-`>$gwEzGB diff --git a/build/bin/ram_2.p.bin b/build/bin/ram_2.p.bin index 1522887f9a4dd4735bdedbe9403d4469b3fa8b10..04149a7be53a6f4c267aeed4822a2c4e6a144228 100644 GIT binary patch delta 3454 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 delta 3453 zcmZWrdw3I77N2uxlBOkX11%8RKr?}s(g&nzfkG)n(6ORxp(vkV(So3@qEuPeq5_px zK|Yi!w1-kez!mzSO00b2LQBkaalNhZnOo8qqf?LTMEIltdM z_uO+IXLhs>+tE6#>0dD5`#A(@4{LcfUukvqwj#*7NwYcr>N~9o!eshVv_}%%8B!5V z)q9Fv6XRfI&s`JL)c8Yxk_w>MLmRh^pLuyinNB8}6!_dG$NL32!L_H_LucweMY9fG z1@H8nt$!yEj`nnP4^IYnPk(RbXn3yY+cRBRaP8q|;K^wup-**8hl=4D^+CZkRLNFk z`be;x3bO^7>kkG8zkBhia<~fS;fZp{nB@%~4G787z+y#;v5JF7Vs?dMiP`R;keS)I zqVdJXZyTK~O13_}W`9lQ(ifL?khfQQlvT|#*_7*>YUU|+CZdUk@I+z@BWXMsOPS6 zQakxf5UHK>?v4>Z{0(t%VqLpujq`%HBArd_UGVF~$FA_CI+HTU`&RpLlk>v*Dkn`A z-uz_yX8 zURWyl_r>b7oJFYZvmI{IoL-@Buiz{IYJg04;PdmL6t2TB=0jo1BwY%)L2z-*t-xfN zW~pN9PL)mV8FYui;->yrtjbnyok$kWF0zX3%F0Q3jXk{G~bE+HBZf62_V}M`@uVU=BkvXg!{&hR2~4 zZ?1vsVI=OY0U6BdpKD+hz>R9*J@A4^Ds?=4AIu~(bhNL6a~)wA`<8Z7kyj~EN@cNgG`&6|DrG)#=ZGBh$?WP`X`P$_2A9OVN|svk{BM4hn-E|`<1>LqM3iGh)1G%e6^=2l395?r(u?jo~- z_~ur4fPA3glqPl}e$>^KO;7<~!Tx99`t=TaHp+H0p+T9ajHc<@V1+8 zBew@EM7p?PwSyjv3S%2Jf05KtrUWnlY}`}h#V4PI%aVhxi(=z8I8OQ_Sg{@ECACCY zQt=y?=kSb9gq$8;V(O2{qzxr}FTm5<>TG$RmLu-nN@v_2WTo z-wj?^t^TkZZU*wMhTc7}u5^?3YsoBK;P)tIR*iKUzu3~nraEhhS#ir=Me20WE?s1g zgPWDuElWE|p@ZIyp*=8)H0wBGFWd*2`1oFUNJ^*QM_cy67^a+xs;+%7LnO`!R=o)4 zk~+ftyvC7SC7r$y#>M;D(cBcqru~pjR)_J(ei)N_N7&qX)%i_@E-j&y$eg)2jOX^l zY-@2imu&)crqjYOPCo$aQhzaC)q1CxJ6)RP3in4tJ$?Y1fZQL(+d5!2DG%em4)*BG z2;;jQFoih7EuFkRVb$FUV+hegIPW0%$)q59x*>bSn<1~y-d5;)O%rV9PN5~PE1lZe zyV(u)kqyBzhL!mGv|+XnG+_^a-O}kMe7+mTlgc2z+YR57f9UEfFM%1zPnvqF8-v{HE_EuE2yaJajLLNVGr|uJ^-m=)-0|+&n5rPxh1i#FM6OuW}%e1Rh0b zwvDyZCr~^KcNJA=PqfR*HJ#-b>Q~$8N7^av8z=YN?#X2dy{~x{SxNE_RchIDFKjPl zK3T)vXW{qGku)6L)Nby$_R83G8n>jt{p_09=|dWNzJ@GmBz-fgR(=gOGpxaTzlVOP zQS*O*o;WC1&r;Y6uug3_508kXF4}Slo`%

m@*V3&&rE^ctcv2YOmZjrdl=u#B<{&` zBW1q$)@eRVm#}THm8Q^n(Ihr9zQe;JE{l2@UhqHoYwDydQX`SiLh8;OvYE{NU8q@` z;7({i6KDOz>@o$4A%*r_@$HOD{=^jULXzJU$OE&BC3yvDiz5sv24ILMhO~z8zI-x* zJQczx@`*G4(NID==}4heeL0_;5Tz7)yRL31Ae(bQ#>7gpfLspZvP$A6Uk26fmE;du z;KCsdWP+4Pd;77tfxHbij5d(*#E7Wbjb!ol@V44;f;>jx12la|a$%NQ@F6)2QasJo z)E_@0$0kA{b`Y`OZl*`HDj#W`?_;f;)kf@;y3Ew3VZA7(j#?WPvM&sfR$)S5;J5f= z*e!}RBYGnrYunvY;EyJ2Nj7`lq)szU&@fLDCzA6~tdzuYl&K?1ek=mrU_iD8}+EG2NCEY1G6fXKjm~$o@FRsQPf0XdOCj zT-X#aM55Rg=~;0bp_O52XM-|du_asF1XB1X07j5|Y9iojSPR7427suearOb11856rWW^nBW zE*y-7=eX9(DS2G8a>_X_@|KHEtmM8eF*5h<;v)`naxd5NxOkMKH^ekf>E-51Zdz9` zv5T9>xoN~GT+HA;E7w-?5i_{9g^S}H=;gi}xcEGlcnsy5gU7RS%9a?)waQo&t{vn) g2iMMV-!4AlI2T4tW2pG}MPcKl6{0$6g;X>C-`>$gwEzGB diff --git a/build/bin/ram_all.bin b/build/bin/ram_all.bin index e1b0a12f610b96554d6c84aa9699e1dea9d06c73..f84f9f9f21c6b001bf804b7c77940333a67e399b 100644 GIT binary patch delta 3467 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 diff --git a/build/obj/build.nmap b/build/obj/build.nmap index 5e3caa5..90e3978 100644 --- a/build/obj/build.nmap +++ b/build/obj/build.nmap @@ -2655,65 +2655,65 @@ 1003bcc4 T ODM_TXPowerTrackingCallback_ThermalMeter 1003c0d0 T ODM_ResetIQKResult 1003c118 T ODM_GetRightChnlPlaceforIQK -1003c170 t __CmdDumpWord_veneer -1003c180 t __rtw_get_sec_ie_veneer -1003c190 t __rtw_set_fixed_ie_veneer -1003c1a0 t __Strtoul_veneer -1003c1b0 t __rtw_set_supported_rate_veneer -1003c1c0 t __rtw_set_ie_veneer -1003c1d0 t __AES_UnWRAP_veneer -1003c1e0 t __rtw_get_wps_attr_content_veneer -1003c1f0 t __AES_WRAP_veneer -1003c200 t __rt_arc4_init_veneer -1003c210 t __phy_CalculateBitShift_veneer -1003c220 t __aes_80211_decrypt_veneer -1003c230 t ___vsscanf_veneer -1003c240 t __rtw_get_rateset_len_veneer -1003c250 t __prvStrCmp_veneer -1003c260 t __HalI2SClrAllIntrRtl8195a_veneer -1003c270 t __rtw_get_wps_ie_veneer -1003c280 t __rtw_get_wpa2_ie_veneer -1003c290 t __wep_80211_decrypt_veneer -1003c2a0 t __PHY_SetBBReg_8195A_veneer -1003c2b0 t __ROM_odm_QueryRxPwrPercentage_veneer -1003c2c0 t __HalI2SRead32_veneer -1003c2d0 t __wep_80211_encrypt_veneer -1003c2e0 t __rtw_get_bit_value_from_ieee_value_veneer -1003c2f0 t __rtw_check_network_type_veneer -1003c300 t __ROM_odm_FalseAlarmCounterStatistics_veneer -1003c310 t __rt_arc4_crypt_veneer -1003c320 t __CmdWriteWord_veneer -1003c330 t __rt_md5_hmac_veneer -1003c340 t __PHY_QueryBBReg_8195A_veneer -1003c350 t __rom_psk_CalcGTK_veneer -1003c360 t __tkip_80211_encrypt_veneer -1003c370 t __rom_psk_CalcPTK_veneer -1003c380 t __rtw_secgetmic_veneer -1003c390 t __rtw_parse_wpa_ie_veneer -1003c3a0 t __rtw_seccalctkipmic_veneer -1003c3b0 t __rtw_secmicsetkey_veneer -1003c3c0 t __tkip_80211_decrypt_veneer -1003c3d0 t __StrUpr_veneer -1003c3e0 t __ROM_odm_CfoTrackingFlow_veneer -1003c3f0 t __aes_80211_encrypt_veneer -1003c400 t __rt_hmac_sha1_veneer -1003c410 t __ROM_odm_SetCrystalCap_veneer -1003c420 t __HalDelayUs_veneer -1003c430 t __rtw_get_ie_veneer -1003c440 t __HalI2SIntrCtrlRtl8195a_veneer -1003c450 t __SpicWaitBusyDoneRtl8195A_veneer -1003c460 t __HalI2SWrite32_veneer -1003c470 t __ROM_odm_EVMdbToPercentage_veneer -1003c480 t __HalCpuClkConfig_veneer -1003c490 t __rtw_secmicappend_veneer -1003c4a0 t __rtw_parse_wpa2_ie_veneer -1003c4b0 t __ROM_ODM_CfoTrackingReset_veneer -1003c4c0 t __ROM_odm_GetDefaultCrytaltalCap_veneer -1003c4d0 t __rtw_get_wpa_ie_veneer -1003c4e0 t __rom_psk_PasswordHash_veneer -1003c4f0 t __rtw_ieee802_11_parse_elems_veneer -1003c500 t __key_2char2num_veneer -1003c510 t __Rand_veneer +1003c170 t __rtw_get_ie_veneer +1003c180 t __rtw_get_wpa_ie_veneer +1003c190 t __HalI2SRead32_veneer +1003c1a0 t __aes_80211_decrypt_veneer +1003c1b0 t __rom_psk_PasswordHash_veneer +1003c1c0 t __ROM_odm_SetCrystalCap_veneer +1003c1d0 t __rtw_set_supported_rate_veneer +1003c1e0 t __rtw_ieee802_11_parse_elems_veneer +1003c1f0 t __SpicWaitBusyDoneRtl8195A_veneer +1003c200 t __ROM_ODM_CfoTrackingReset_veneer +1003c210 t ___vsscanf_veneer +1003c220 t __rtw_parse_wpa_ie_veneer +1003c230 t __AES_WRAP_veneer +1003c240 t __rtw_get_wpa2_ie_veneer +1003c250 t __rtw_secmicappend_veneer +1003c260 t __rtw_check_network_type_veneer +1003c270 t __wep_80211_decrypt_veneer +1003c280 t __rom_psk_CalcGTK_veneer +1003c290 t __rtw_set_ie_veneer +1003c2a0 t __CmdWriteWord_veneer +1003c2b0 t __ROM_odm_CfoTrackingFlow_veneer +1003c2c0 t __ROM_odm_EVMdbToPercentage_veneer +1003c2d0 t __phy_CalculateBitShift_veneer +1003c2e0 t __rtw_get_wps_attr_content_veneer +1003c2f0 t __rtw_seccalctkipmic_veneer +1003c300 t __rt_arc4_init_veneer +1003c310 t __rtw_get_bit_value_from_ieee_value_veneer +1003c320 t __tkip_80211_decrypt_veneer +1003c330 t __ROM_odm_FalseAlarmCounterStatistics_veneer +1003c340 t __HalCpuClkConfig_veneer +1003c350 t __rt_md5_hmac_veneer +1003c360 t __rtw_secgetmic_veneer +1003c370 t __StrUpr_veneer +1003c380 t __ROM_odm_QueryRxPwrPercentage_veneer +1003c390 t __HalDelayUs_veneer +1003c3a0 t __wep_80211_encrypt_veneer +1003c3b0 t __tkip_80211_encrypt_veneer +1003c3c0 t __rtw_get_sec_ie_veneer +1003c3d0 t __ROM_odm_GetDefaultCrytaltalCap_veneer +1003c3e0 t __rom_psk_CalcPTK_veneer +1003c3f0 t __rtw_get_rateset_len_veneer +1003c400 t __PHY_SetBBReg_8195A_veneer +1003c410 t __HalI2SClrAllIntrRtl8195a_veneer +1003c420 t __rtw_get_wps_ie_veneer +1003c430 t __rt_hmac_sha1_veneer +1003c440 t __CmdDumpWord_veneer +1003c450 t __rtw_secmicsetkey_veneer +1003c460 t __rt_arc4_crypt_veneer +1003c470 t __HalI2SWrite32_veneer +1003c480 t __AES_UnWRAP_veneer +1003c490 t __rtw_parse_wpa2_ie_veneer +1003c4a0 t __aes_80211_encrypt_veneer +1003c4b0 t __key_2char2num_veneer +1003c4c0 t __Strtoul_veneer +1003c4d0 t __prvStrCmp_veneer +1003c4e0 t __Rand_veneer +1003c4f0 t __PHY_QueryBBReg_8195A_veneer +1003c500 t __HalI2SIntrCtrlRtl8195a_veneer +1003c510 t __rtw_set_fixed_ie_veneer 1003c9f5 d __func__.21276 1003ca01 d __FUNCTION__.14658 1003cf5c d bitrate_table diff --git a/flasher.mk b/flasher.mk index 09ee653..31daea2 100644 --- a/flasher.mk +++ b/flasher.mk @@ -66,7 +66,7 @@ NMAPFILE = $(OBJ_DIR)/$(TARGET).nmap #FLASHER_PATH ?= flasher/ -RAM_IMAGE?= $(BIN_DIR)/ram.bin +#RAM_IMAGE?= $(BIN_DIR)/ram.bin RAM1_IMAGE ?= $(BIN_DIR)/ram_1.bin RAM1P_IMAGE ?= $(BIN_DIR)/ram_1.p.bin @@ -91,18 +91,12 @@ TST_IMAGE = $(BIN_DIR)/ram_2.bin LD_ADDRESS = 0x1000B000 ST_ADDRESS = 0x10006068 -.PHONY: copybin1 genbin1 genbin23 flashburn reset test readfullflash -.NOTPARALLEL: all mp copybin1 genbin1 genbin23 flashburn reset test readfullflash _endgenbin +.PHONY: genbin1 genbin23 flashburn reset test readfullflash +.NOTPARALLEL: all mp genbin1 genbin23 flashburn reset test readfullflash _endgenbin all: $(ELFFILE) $(OTA_IMAGE) $(FLASH_IMAGE) _endgenbin mp: $(ELFFILE) $(OTA_IMAGE) $(FLASH_IMAGE) _endgenbin -copybin1: -# cp $(patsubst sdk/%,$(SDK_PATH)%,$(BOOTS))/ram_1.r.bin $(BIN_DIR)/ram_1.r.bin - cp $(patsubst sdk/%,$(SDK_PATH)%,$(BOOTS))/ram_1.p.bin $(BIN_DIR)/ram_1.p.bin -# @chmod 777 $(OBJ_DIR)/ram_1.r.bin -# @$(OBJCOPY) --rename-section .data=.loader.data,contents,alloc,load,readonly,data -I binary -O elf32-littlearm -B arm $(BIN_DIR)/ram_1.r.bin $(OBJ_DIR)/ram_1.r.o - genbin1: $(ELFFILE) $(RAM1P_IMAGE) genbin23: $(ELFFILE) $(OTA_IMAGE) $(FLASH_IMAGE) _endgenbin @@ -191,7 +185,7 @@ ifeq ($(RAM1_START_ADDR),$(RAM1_END_ADDR)) ifdef COMPILED_BOOT_BIN $(OBJCOPY) --change-section-address .boot.head=0x10000ba8 -j .boot.head -j .bootloader -Obinary $(ELFFILE) $(RAM1P_IMAGE) else - $(OBJCOPY) -j .rom_ram -Obinary $(ELFFILE) $(RAM_IMAGE) +# $(OBJCOPY) -j .rom_ram -Obinary $(ELFFILE) $(RAM_IMAGE) $(OBJCOPY) -j .ram.start.table -j .ram_image1.text -Obinary $(ELFFILE) $(RAM1R_IMAGE) $(PICK) 0x$(RAM1_START_ADDR) 0x$(RAM1_END_ADDR) $(RAM1R_IMAGE) $(RAM1P_IMAGE) head+reset_offset 0x0B000 endif diff --git a/flasher/gdb_wrflash.jlink b/flasher/gdb_wrflash.jlink index 4c740fd..c07f501 100644 --- a/flasher/gdb_wrflash.jlink +++ b/flasher/gdb_wrflash.jlink @@ -7,7 +7,6 @@ set $rtl8710_flasher_auto_erase = 1 set $rtl8710_flasher_auto_verify = 1 set $rtl8710_flasher_firmware_ptr = 0x10001000 set $rtl8710_flasher_buffer = 0x10008000 -#262144 set $rtl8710_flasher_buffer_size = 421888 set $rtl8710_flasher_sector_size = 4096 set $rtl8710_flasher_auto_erase_sector = 0xFFFFFFFF diff --git a/sdkbuild.mk b/sdkbuild.mk index 3bb1cfa..dafc499 100644 --- a/sdkbuild.mk +++ b/sdkbuild.mk @@ -45,18 +45,10 @@ build_info: .PHONY: application application: build_info $(SRC_O) $(DRAM_O) $(BOOT_O) - @echo "===========================================================" - @echo "Make BootLoader (ram_1.p.bin, ram_1.r.bin)" -# @echo "===========================================================" - @mkdir -p $(BIN_DIR) $(OBJ_DIR) -## @cp $(patsubst sdk/%,$(SDK_PATH)%,$(BOOTS))/ram_1.r.bin $(BIN_DIR)/ram_1.r.bin -## @cp $(patsubst sdk/%,$(SDK_PATH)%,$(BOOTS))/ram_1.p.bin $(BIN_DIR)/ram_1.p.bin -# @chmod 777 $(OBJ_DIR)/ram_1.r.bin -## $(OBJCOPY) --rename-section .data=.loader.data,contents,alloc,load,readonly,data -I binary -O elf32-littlearm -B arm $(BIN_DIR)/ram_1.r.bin $(OBJ_DIR)/ram_1.r.o @echo "===========================================================" @echo "Link ($(TARGET))" # @echo "===========================================================" -## @$(LD) $(LFLAGS) -o $(ELFFILE) $(OBJ_LIST) $(OBJ_DIR)/ram_1.r.o $(LIBFLAGS) -T$(LDFILE) + @mkdir -p $(BIN_DIR) $(OBJ_DIR) @$(LD) $(LFLAGS) -o $(ELFFILE) $(OBJ_LIST) $(LIBFLAGS) -T$(LDFILE) @$(OBJDUMP) -d $(ELFFILE) > $(OBJ_DIR)/$(TARGET).asm @@ -96,7 +88,5 @@ VPATH:=$(OBJ_DIR) $(SDK_PATH) #.PHONY: clean clean: rm -rf $(OBJ_DIR) $(BIN_DIR) $(OBJ_DIR)/$(SDK_PATH) -# @rm -f $(patsubst %.c,%.d,$(SRC_C_LIST)) -# @rm -f $(patsubst %.c,%.o,$(SRC_C_LIST)) \ No newline at end of file