Re: [問題] 沒有作業系統的動態記憶體管理
> ==>發信人: mingtai1.bbs@ptt.cc (綠豆嘉義人), 信區: programming
> 請問一下各位大大
> C裡面, 印象中要用動態記憶體管理像是malloc這種功能,
> 是不是都要有OS支援才可以 ?
> 那如果在沒有OS的環境下跑 (例如用ARM編譯到某種電路板上跑的程式)
> 是不是這種功能就得要完全自己寫了呢
> 那如果要自己寫, 要怎麼得知目前記憶體的使用狀況勒?
> 不知道這樣問會不會太怪 @_@
一般 Compiler 都會提供 stdlib, 而 malloc 是 stdlib 中的一個標準函式
所以不管有沒有 OS, 應該都會有
如果你用的 compiler 沒有提供, 或是你想要練功, 而想自己寫看看, 偍供你
這個想法:
找出 data 和 bss 的頂端和 stack 最低位址間的記憶體容量 (heap size,
這個部份可以由 compiler 預設的 segment symbol 找出來), 然後分成固定
size (ex. 16 bytes) 的小區塊來管理
想要參考 source code 的話, 一些整合開發環境如 Keil C-51, IAR Embedded
Workbench, Freescale Codewarrior, Renesas High-performance Embedded
Workshop, Hi-Tech Soft PICC/PICC18 等都有提供 alloc 程式庫, 並且 C51,
CW, HEW 和 PICC/PICC-18 評估版都有附 library source, 可以下載來研究看看
--
** 版權聲明 **
本篇文章歡迎轉載收錄,無須為任何用途支付任何費用。
本文一經轉載收錄引用,本人即無須對其內容負責。
--
◎ Origin: 中央松濤站□bbs.csie.ncu.edu.tw From: 218-168-48-85.dynamic.hinet.n
推
08/17 01:39, , 1F
08/17 01:39, 1F
→
08/17 01:39, , 2F
08/17 01:39, 2F
討論串 (同標題文章)
完整討論串 (本文為第 3 之 3 篇):