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

内存分配方案

[复制链接]
wujique 发布时间:2018-5-24 17:12
做开发时间长了,经常会发现自己经常重复发明轮子。% D8 t& U: U1 f1 c- P
例如做触摸屏,开始不知道有tslib,自己做校正算法,效果不好,用了tslib后,一切都好了。
  L0 i( N9 G+ R2 l5 n* c内存分配也是。4 j+ c5 p9 Y8 }  N
很多朋友可能直接用c库的malloc和free,能用,但是要增加一些功能,就不好处理了。
+ ~* S: H2 ]1 C) Z  Z/ P0 i像freertos、lwip等开源组件,其实也有自己的内存算法。
+ A. h9 I' ?  @6 {有不少朋友也自己写过内存分配算法。
2 W$ q' {* z- a$ t  k6 N& X7 n. X其实有一种内存分配算法,k&R方法,就在我们的c语言书上。
1 z/ Q" c. ]! \* K! ?% [2 v4 F可惜以前学C语言的时候,后面一些章节根本不考试,大部分人都不知道这种算法了。  n1 B/ G, W4 ]5 B6 Q' u; t' N* {
这本书就是《C程序设计语言》,如果你有这本书,请翻到162页。
" S0 b4 y5 L) i$ Q; S; b$ }6 Q这种算法通过空闲内存链表管理内存。只有两个函数。非常精简的函数。6 l! @  }- V4 i3 r" o
在这个基础上,我们可以做很多优化:+ T( [5 P3 K& N. Q0 [0 a
1 将首先适应法改为最适应法,降低内存碎片化程度。
4 @3 T3 e+ h$ S5 U, D2 增加已分配内存链表,管理已分配内存,统计各模块使用内存量。
+ \7 p1 y: T% Y$ `3 添加小内存分配二级算法,在出现频繁大量申请小内存(小于16字节的内存申请)时,提高内存利用率。# |7 a* Q* L- |' k) ^
4 利用原来的内存管理结构,进行内存染色,侦测malloc的内存越界问题。
/ {2 {6 E- U5 w( M( d4 L" |。。。# @$ H3 W$ E# E' i
有兴趣的请下载附件。
5 a+ D# Z1 O; a8 u" F附件仅仅实现了上面说的优化1,其他优化已经实现,还在优化当中。( K! w5 g/ I: ^9 N
' u$ a  f" ?& q1 n* b" n& {5 `
欢迎参观github:http://github.com/wujique/stm32f4072 F8 k: G5 z: u: A0 s( h" M
这个仓库为本人基于F407做的一些程序总结。# P, ?: k7 f5 M9 o8 u- @$ k
个人认为比较有参考意义的有:I2C核心,SPI控制器和SPI通道核心,SPI FLASH,LCD总线抽象,LCD驱动抽象。
( P& b: h  Z9 J$ t( H+ r0 S& J7 `欢迎商用,后果自负。) h3 {* w+ b8 u
4 |9 \0 I+ s- ?+ q$ G0 o) [$ F

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
有时候造一下轮子,可以加深对概念的理解!0 Z9 s" [. ]0 c' r: E: K2 E
主要是造轮子的时候要多思考,思考别人的库为什么就比自己写的要好,好在哪里。
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:102 M6 B- x$ X5 `2 _) T& ^* h
请问, tslib   能不能分享下?谢谢

% F% B/ T, B- e  Kgithub上有
西点钟灵毓秀 回答时间: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
. h, }) ^) A, T" P0 j, P! K
mark 下

所属标签

相似分享

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