ch579如果用IP1地址CH57xNET_SocketCreat后,有服務(wù)器模式的使用AppCallBack的socket,和主動(dòng)發(fā)送的socket,dhcp獲取到新的IP,如何重新讓這些socket在新ip上生效,且不重啟設(shè)備?是否有什么接口調(diào)用先close socket,再重新create,還是直接調(diào)用什么接口?謝謝!
您好,可以在DHCP之前先關(guān)閉之前開啟的socket,在DHCP之后再開啟socket。
現(xiàn)在設(shè)計(jì)是dhcp不確定是否能拿到ip,所以先使用一個(gè)固定的ip做了create幾個(gè)socket,是否可以在dhcp成功后,再close 舊的socket,然后create 新的socket?或者說(shuō)是否一定要重新create,如果拿到了新ip,socket繼續(xù)使用舊的是否會(huì)導(dǎo)致server模式的收不到包?或者client模式的socket發(fā)不出去包?
另外CH57xNET_Init(const UINT8* ip,const UINT8* gwip,const UINT8* mask,const UINT8* macaddr); 啟動(dòng)時(shí)用就的ip地址已經(jīng)初始化過(guò)一次,在拿到新的IP地址后是否需要重新用新的ip地址調(diào)用一次?
是需要重新創(chuàng)建socket的,因?yàn)閭鬏敱仨毐WC在相同IP和網(wǎng)關(guān)下進(jìn)行,一旦ip改變,原socket是不起作用的
關(guān)于CH57xNET_Init這個(gè)函數(shù),在DHCP動(dòng)態(tài)IP之后,不需要第二次初始化
謝謝!?
發(fā)現(xiàn)一個(gè)奇怪的現(xiàn)象,我使用0x3ec00位置存儲(chǔ)用戶數(shù)據(jù),由于使用了藍(lán)牙庫(kù),這個(gè)位置的值每次開機(jī)后總是莫名其妙的被修改了,請(qǐng)問(wèn)是否這個(gè)位置在藍(lán)牙開啟時(shí),不能使用?
建議使用0x0003E800至0x0003EBFF這個(gè)1K區(qū)間的地址,0x0003EC00后面1K都是被藍(lán)牙使用的
好的,那我們改一下。另外想了解一下,現(xiàn)在是否有新的net庫(kù),發(fā)現(xiàn)CH57xNET_DHCPStart開始后,如果把網(wǎng)線換到另一個(gè)網(wǎng)絡(luò),時(shí)間到了也沒有重新發(fā)起dhcp請(qǐng)求。請(qǐng)問(wèn)CH57xNET_DHCPStop和CH57xNET_DHCPStart是否可以頻繁調(diào)用,例如我發(fā)現(xiàn)網(wǎng)口link斷了,就調(diào)用一次CH57xNET_DHCPStop,網(wǎng)口link恢復(fù)了,就調(diào)用一次CH57xNET_DHCPStart,循環(huán)調(diào)用不重啟設(shè)備,net庫(kù)是否能正常工作?
您留個(gè)郵箱,稍后發(fā)個(gè)新版的CH579壓縮包給您
“請(qǐng)問(wèn)CH57xNET_DHCPStop和CH57xNET_DHCPStart是否可以頻繁調(diào)用,例如我發(fā)現(xiàn)網(wǎng)口link斷了,就調(diào)用一次CH57xNET_DHCPStop,網(wǎng)口link恢復(fù)了,就調(diào)用一次CH57xNET_DHCPStart,循環(huán)調(diào)用不重啟設(shè)備,net庫(kù)是否能正常工作?”
理論上這個(gè)是可以的,可以嘗試一下,不行的話再聯(lián)系
個(gè)人信息保護(hù),已隱藏
已發(fā)送,請(qǐng)查收。
收到,謝謝!我使用CH579ETH-IAP, 一級(jí)bootloader很小只有64K,只是用來(lái)升級(jí)上層應(yīng)用,請(qǐng)問(wèn)上層應(yīng)用含ble的tmos系統(tǒng)是否大小不能超過(guò)128K,我發(fā)現(xiàn)超過(guò)128K就很容易系統(tǒng)卡死。
“請(qǐng)問(wèn)上層應(yīng)用含ble的tmos系統(tǒng)是否大小不能超過(guò)128K”
這個(gè)是沒有硬性規(guī)定的,只要內(nèi)存允許,多大都是可以的,可能是你那邊ETH+BLE內(nèi)存用超了導(dǎo)致的卡死