CH582如何優(yōu)化BLE協(xié)議棧的RAM占用

請(qǐng)問(wèn),如何能優(yōu)化下BLE協(xié)議棧的RAM空間,我編譯BLE中最基本的一個(gè)示例,光BLE協(xié)議棧就占去了16K RAM,分析map文件,發(fā)現(xiàn)其中6K是BLE_MEMHEAP,還有8K是highcode占用的。

看手冊(cè)描述6K的BLE_MEMHEAP是最小要求,不好優(yōu)化了,但highcode中占用的8K代碼都是libCH58xBLE.a中的,用戶無(wú)法控制,由于我的業(yè)務(wù)代碼需要大概20K空間,已經(jīng)無(wú)法再優(yōu)化了,只有從BLE_MEMHEAP和highcode中優(yōu)化RAM,或者可以控制下highcode的使用,先不追求效率了,首要問(wèn)題是運(yùn)行我的業(yè)務(wù)代碼。

可以看一下我們的CH32V208芯片,最近就出了,RAM的大小滿足你的需求。


CH32V208這個(gè)片子我看了,flash才128K,又小了。

近一個(gè)月一直評(píng)估CH582,內(nèi)部資源和外設(shè)及功耗剛好符合我的應(yīng)用,單芯片解決方案,usb,觸摸,BLE等功能我都評(píng)估完成了,完美運(yùn)行,現(xiàn)在把之前的業(yè)務(wù)代碼移植過(guò)來(lái)才發(fā)現(xiàn)ram不夠了,之前用stm32f103cbt6,20Kram剛好夠用。

我現(xiàn)在嘗試把6K的BLE_MEMHEAP減少到4K,好像沒(méi)什么大問(wèn)題,不敢再減了。目前就是這個(gè)8K的highcode區(qū)域無(wú)法控制,libCH58xBLE.a這個(gè)庫(kù)不能改動(dòng),只需要再有幾K的highcode代碼恢復(fù)到flash運(yùn)行就可以。

除了運(yùn)行效率高,有些highcode是必須到RAM中運(yùn)行嗎?


廠家可不可以提供幾個(gè)不同highcode級(jí)別的libCH58xBLE.a庫(kù),可以根據(jù)不同情況選用,雖然ch582有32Kram,但一用到BLE功能就占去了16K ram,只剩下16K ram的單片機(jī)了,稍微復(fù)雜點(diǎn)的應(yīng)用就無(wú)法使用了。


我們這里嘗試了將外部放在RAM中跑的程序放在了FLASH中,最終精簡(jiǎn)也只有幾百字節(jié)的大小,其他主要是在底層進(jìn)行的調(diào)用處理,用戶無(wú)法進(jìn)行處理的,因此針對(duì)你的需求使用582無(wú)法達(dá)到。

可以嘗試使用208芯片,208的RAM有64K,大小是足夠的,F(xiàn)LASH總共有448K,其中的128kFLASH是快速FLASH,運(yùn)行的速度更快,總體來(lái)說(shuō),208是滿足你的需求,可以考慮一下。


就是libCH58xBLE.a這個(gè)庫(kù)造成的,里面有很多highcode代碼放到RAM運(yùn)行,足足有8K RAM被用了,這個(gè)用戶不能改,你們廠家應(yīng)該是可以改動(dòng)的,能不能提供一個(gè)減少highcode區(qū)域的庫(kù),減少RAM的用量。

CH582我評(píng)估了一個(gè)多月了,其中填了不少坑了,現(xiàn)在所有功能都能正常運(yùn)行了,而且我的項(xiàng)目幾乎把CH582的外設(shè)都用到了,幾乎單芯片就滿足我的要求了,所以這個(gè)單片機(jī)太適合我用了,現(xiàn)在就差那1,2KRAM的空間就能完成我的項(xiàng)目了,改方案的話又要一切重頭開始了。


208跟582的使用是一致的,移植過(guò)去也基本沒(méi)有差別,可以替換沒(méi)有區(qū)別。582的RAM如果是差幾百字節(jié),可以精簡(jiǎn)代碼想辦法處理,如果是差了幾k的大小基本無(wú)法處理。目前暫不提供專門的庫(kù)給客戶。因此推薦使用208。


208大概什么時(shí)候出來(lái),現(xiàn)在項(xiàng)目快到截止日期了,時(shí)間比較緊了。

目前可以申樣嗎


可以跟銷售工程師聯(lián)系一下

image.png


好的,多謝解答


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频