欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

liteos不采用malloc的原因

江奕云2年前16瀏覽0評論

liteos不采用malloc的原因?

這是因為內存有限啊,嵌入式的內存就只有幾十K到幾百K,當然你指的嵌入式應該是單片機,不能運行Linux系統的嵌入式系統,可以上Linux系統的嵌入式就可以使用標準C開發了,同樣具有malloc函數。

主要原因是內存太小的問題,深層次的原因是由于標準C庫的內存管理的容易產生碎片,不利于在小內存運行。

通過自己實現內存管理,從本質上是預先分配一大段內存(嵌入式中就是一個大的數組),那后在依據需要保存的對象大小,按特定的方式分配的。

比如,你需要存儲的記錄為256字節,假設需要存取16條記錄,那么,就需要分配256*16=4096字節,這樣就需要4k的數組才可以分配了,這樣就避免了內存碎片。

當然這是以靈活性為代價的,如果是可變的,處理方式就比較復雜了,一般在單片機中需要避免,可以分區域(多分配幾個數組),取最大長度。