中级会员
 
- 积分
- 232
- 金钱
- 232
- 注册时间
- 2014-8-6
- 在线时间
- 8 小时
|
近日做了《例14-1 UCOSIII 内存管理》实验,结合之前做的几个实验,对正点原子及 UCOSIII的内存管理有了一点认识:
1. 便利性:正如文档所述,UCOSIII的内存管理功能比较粗糙,一个内存分区包含若干个固定大小的存储块。原子哥的内存管理比较灵活,可以申请任意大小的存储块。
2. 实时性:UCOSIII会把第一个空闲的存储块分配给应用程序,执行时间很快且时间固定。原子哥的内存管理执行时间,会根据申请内存数量的增大而延长。
比如在72M时钟下,OSMemGet()的执行时间为1.3us。 mymalloc()申请10个字节时为3.2us,申请500字节时为13us,申请1K字节时为23us。
3. 互斥保护:UCOSIII的内存管理已经加入了互斥保护。原子哥的内存管理没有互斥保护。
4. 具体应用:①.当在中断及任务中分配内存时,建议使用UCOSIII的内存管理,执行时间固定而迅速,不会影响到系统的实时性。
②.当只在任务中分配内存时,建议使用原子哥的内存管理,并加入互斥保护(锁定调度器,互斥信号量)。 |
|