你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

内存分配方案

[复制链接]
wujique 发布时间:2018-5-24 17:12
做开发时间长了,经常会发现自己经常重复发明轮子。
6 z7 \) i+ i+ j) H" Y9 k1 p% Z例如做触摸屏,开始不知道有tslib,自己做校正算法,效果不好,用了tslib后,一切都好了。
( y0 Z) Y3 y4 U' M7 ]内存分配也是。4 c* h  B/ N3 B* x
很多朋友可能直接用c库的malloc和free,能用,但是要增加一些功能,就不好处理了。! s# K& F) ^# Q0 e2 ~7 K# k
像freertos、lwip等开源组件,其实也有自己的内存算法。
9 h( J/ d" g& r' p6 S/ Y5 i有不少朋友也自己写过内存分配算法。
6 F$ o4 w# w6 X其实有一种内存分配算法,k&R方法,就在我们的c语言书上。9 O; o0 y8 N% g- l& b7 n
可惜以前学C语言的时候,后面一些章节根本不考试,大部分人都不知道这种算法了。
$ `. A* b* e. f" F) }$ S0 y. T# _这本书就是《C程序设计语言》,如果你有这本书,请翻到162页。+ t6 H" J: K; i9 I& m" r4 p
这种算法通过空闲内存链表管理内存。只有两个函数。非常精简的函数。
1 {9 q% v. _8 F; Z) a7 h% V在这个基础上,我们可以做很多优化:
7 ]6 j0 A7 H: Z/ T1 将首先适应法改为最适应法,降低内存碎片化程度。
! {& Y5 q# `2 G) Q2 增加已分配内存链表,管理已分配内存,统计各模块使用内存量。
3 e2 T% D' b) `( k# C5 W3 添加小内存分配二级算法,在出现频繁大量申请小内存(小于16字节的内存申请)时,提高内存利用率。1 f9 t- s1 e5 r3 \5 p9 [5 R+ A
4 利用原来的内存管理结构,进行内存染色,侦测malloc的内存越界问题。0 o0 f: @9 [+ ^6 L5 R" h5 n
。。。
$ H4 m% G% d; Y: c0 x5 Z有兴趣的请下载附件。
+ ~# F* C4 _! |9 p; U( s3 Y附件仅仅实现了上面说的优化1,其他优化已经实现,还在优化当中。8 V9 G) Y* U) l. [4 p
: _9 S& K5 u9 x! [
欢迎参观github:http://github.com/wujique/stm32f407
7 M, T' P+ @) p# V) c- w% V! @这个仓库为本人基于F407做的一些程序总结。
; g" M! q! q# I9 r个人认为比较有参考意义的有:I2C核心,SPI控制器和SPI通道核心,SPI FLASH,LCD总线抽象,LCD驱动抽象。
4 k) f% [- s+ @欢迎商用,后果自负。6 T$ S: o* E2 @" J0 r

5 q: Y7 s" P$ B# h: D* j% X7 G8 c

alloc.rar

下载

487.69 KB, 下载次数: 25

评分

参与人数 1 ST金币 +6 收起 理由
MrJiu + 6 赞一个!

查看全部评分

收藏 2 评论9 发布时间:2018-5-24 17:12

举报

9个回答
xiajintaord 回答时间:2018-5-24 17:49:02
有时候造一下轮子,可以加深对概念的理解!2 O0 `; l$ p. |
主要是造轮子的时候要多思考,思考别人的库为什么就比自己写的要好,好在哪里。
andey 回答时间:2018-5-24 18:12:21
提示: 作者被禁止或删除 内容自动屏蔽
zhangxu56726 回答时间:2018-5-24 19:10:03
请问, tslib   能不能分享下?谢谢
wujique 回答时间:2018-5-24 19:50:25
zhangxu56726 发表于 2018-5-24 19:10
' M5 x5 L! n4 o( k7 j% M9 ~3 e请问, tslib   能不能分享下?谢谢

4 C+ I9 j- ?9 l& A8 mgithub上有
西点钟灵毓秀 回答时间:2018-5-24 23:06:41
mark 一下子
anobodykey 回答时间:2018-5-25 08:37:43
mark一下
landeng 回答时间:2018-5-25 08:41:11
k&R的C语言书绝对值得经常翻翻,太经典了
MrJiu 回答时间:2018-5-25 09:55:16
楼主说的非常好!!!不过内存方案呢,我觉得用freertos自带的就基本OK啦!!!
heyv11 回答时间:2018-6-7 21:53:30

( O6 Q' G6 ^' B/ m$ _mark 下

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版