"可能是你那邊ETH+BLE內(nèi)存用超了導(dǎo)致的卡死"? -- 請問上限內(nèi)存是多少?另外有什么方法可以知道是否超過了?
ble.map文件如下,要檢查哪一個是否超過了上限?謝謝!
"可能是你那邊ETH+BLE內(nèi)存用超了導(dǎo)致的卡死"? -- 請問上限內(nèi)存是多少?另外有什么方法可以知道是否超過了?
ble.map文件如下,要檢查哪一個是否超過了上限?謝謝!
FLASH內(nèi)存倒是剩不少,問題主要應(yīng)該在您的RAM區(qū),最大是32K,您這邊已經(jīng)用了將近31K
我配置的是IRAM1?0x20000000, 大小是0x4000 (16K), IRAM2 0x20004000,大小也是0x4000(16K),請問IRAM1還是IRAM2超過了,怎么判斷?
這種情況下,flash代碼增加后,藍(lán)牙都無法搜索到。不知道如何debug?怎么知道是IRAM1不夠了,還是IRAM2不夠了?
一般的程序RAM使用量建議控制在95%以下,盡量給棧留出2KB以上的空間。
如果您堅(jiān)持需要用這么大的ram內(nèi)存,建議您更換CH32V208系列單片機(jī)使用。
CH32V208同樣支持BLE+ETH,同時RAM為64KB
如果上面Total RW size我們控制BLE.map里編譯后顯示在30K以內(nèi),那么是否會IRAM1或者IRAM2滿了,總的沒有滿?此時是否也會有異常?能否知道IRAM1和IRAM2實(shí)際各占了多少k?
實(shí)際上IRAM1和IRAM2是按照順序填充的,只有IRAM1填滿了,才會順著地址填充至IRAM2,因此假設(shè)您的RAM如果使用量為30K,那么IRAM1必定為16K,IRAM2為30-16=14K。
謝謝!BLE_MEMHEAP_SIZE我看到config.h里有這個定義,缺省是6K,請問這個是從哪個地址開始的?
這個BLE的內(nèi)存如果你不指定它從哪里開始的話,它會自己隨機(jī)找個地址作為它的起始地址的
請問這個BLE_MEMHEAP_SIZE選多少比較合適,根據(jù)什么來選擇比較合理?
一般地,平常使用,如果連接的藍(lán)牙設(shè)備為一個的情況下,程序中所設(shè)定的6K是能滿足大部分場景下的使用需求的,如果設(shè)備增加至3-4個的時候,可以適量將該大小增加至8K左右。