资源简介
舵机电机驱动测试程序-K60 十分好用 开来看看
代码片段和文件信息
/*
* File: alloc.c
* Purpose: generic malloc() and free() engine
*
* Notes: 99% of this code stolen/borrowed from the K&R C
* examples.
*
*/
#include “common.h“
#include “stdlib.h“
#pragma section = “HEAP“
/********************************************************************/
/*
* This struct forms the minimum block size which is allocated and
* also forms the linked list for the memory space used with alloc()
* and free(). It is padded so that on a 32-bit machine all malloc‘ed
* pointers are 16-byte aligned.
*/
typedef struct ALLOC_HDR
{
struct
{
struct ALLOC_HDR *ptr;
unsigned int size;
} s;
unsigned int align;
unsigned int pad;
} ALLOC_HDR;
static ALLOC_HDR base;
static ALLOC_HDR *freep = NULL;
/********************************************************************/
void
free (void *ap)
{
ALLOC_HDR *bp *p;
bp = (ALLOC_HDR *)ap - 1; /* point to block header */
for (p = freep; !((bp > p) && (bp < p->s.ptr)) ; p = p->s.ptr)
{
if ((p >= p->s.ptr) && ((bp > p) || (bp < p->s.ptr)))
{
break; /* freed block at start or end of arena */
}
}
if ((bp + bp->s.size) == p->s.ptr)
{
bp->s.size += p->s.ptr->s.size;
bp->s.ptr = p->s.ptr->s.ptr;
}
else
{
bp->s.ptr = p->s.ptr;
}
if ((p + p->s.size) == bp)
{
p->s.size += bp->s.size;
p->s.ptr = bp->s.ptr;
}
else
{
p->s.ptr = bp;
}
freep = p;
}
/********************************************************************/
void *
malloc (unsigned nbytes)
{
/* Get addresses for the HEAP start and end */
#if (defined(CW))
extern char __HEAP_START;
extern char __HEAP_END[];
#elif (defined(IAR))
char *__HEAP_START = __section_begin(“HEAP“);
char *__HEAP_END = __section_end(“HEAP“);
#endif
ALLOC_HDR *p *prevp;
unsigned nunits;
nunits = ((nbytes + sizeof(ALLOC_HDR) - 1) / sizeof(ALLOC_HDR)) + 1;
if ((prevp = freep) == NULL)
{
p = (ALLOC_HDR *)__HEAP_START;
p->s.size = ( ((uint32)__HEAP_END - (uint32)__HEAP_START)
/ sizeof(ALLOC_HDR) );
p->s.ptr = &base;
base.s.ptr = p;
base.s.size = 0;
prevp = freep = &base;
}
for (p = prevp->s.ptr; ; prevp = p p = p->s.ptr)
{
if (p->s.size >= nunits)
{
if (p->s.size == nunits)
{
prevp->s.ptr = p->s.ptr;
}
else
{
p->s.size -= nunits;
p += p->s.size;
p->s.size = nunits;
}
freep = prevp;
return (void *)(p + 1);
}
if (p == freep)
return NULL;
}
}
/**************************************************
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2030 2010-10-28 03:30 07-BTS7960电机驱动模块(PWM)-修改底层\build\config files\128KB_Pflash.icf
文件 2206 2010-11-12 03:41 07-BTS7960电机驱动模块(PWM)-修改底层\build\config files\128KB_Pflash_128KB_Dflash.icf
文件 2035 2012-02-28 15:33 07-BTS7960电机驱动模块(PWM)-修改底层\build\config files\128KB_Ram.icf
文件 2030 2010-10-28 03:30 07-BTS7960电机驱动模块(PWM)-修改底层\build\config files\256KB_Pflash.icf
文件 2214 2012-03-01 20:12 07-BTS7960电机驱动模块(PWM)-修改底层\build\config files\256KB_Pflash_256KB_Dflash.icf
文件 2024 2010-10-28 03:30 07-BTS7960电机驱动模块(PWM)-修改底层\build\config files\32KB_Ram.icf
文件 2041 2012-03-01 18:46 07-BTS7960电机驱动模块(PWM)-修改底层\build\config files\512KB_Pflash.icf
文件 2217 2010-11-12 03:41 07-BTS7960电机驱动模块(PWM)-修改底层\build\config files\64KB_Pflash_64KB_Dflash.icf
文件 2024 2010-10-28 03:30 07-BTS7960电机驱动模块(PWM)-修改底层\build\config files\64KB_Ram.icf
文件 3463 2012-03-08 21:04 07-BTS7960电机驱动模块(PWM)-修改底层\build\config files\fire_RAM_K60N512.icf
文件 3441 2012-03-08 21:04 07-BTS7960电机驱动模块(PWM)-修改底层\build\config files\fire_ROM_K60N512.icf
文件 47865 2013-04-27 16:26 07-BTS7960电机驱动模块(PWM)-修改底层\build\gpio_demo\fire_gpio_demo.dep
文件 52297 2012-04-14 21:17 07-BTS7960电机驱动模块(PWM)-修改底层\build\gpio_demo\fire_gpio_demo.ewd
文件 55018 2012-09-28 07:27 07-BTS7960电机驱动模块(PWM)-修改底层\build\gpio_demo\fire_gpio_demo.ewp
文件 669 2012-03-10 23:38 07-BTS7960电机驱动模块(PWM)-修改底层\build\iar.h
文件 23581 2013-05-05 21:23 07-BTS7960电机驱动模块(PWM)-修改底层\DEMOK_Kinetis_PWM_Example.dep
文件 52169 2013-01-02 16:58 07-BTS7960电机驱动模块(PWM)-修改底层\DEMOK_Kinetis_PWM_Example.ewd
文件 52539 2013-05-05 21:18 07-BTS7960电机驱动模块(PWM)-修改底层\DEMOK_Kinetis_PWM_Example.ewp
文件 179 2013-01-02 16:58 07-BTS7960电机驱动模块(PWM)-修改底层\DEMOK_Kinetis_PWM_Example.eww
文件 3021 2012-04-17 23:47 07-BTS7960电机驱动模块(PWM)-修改底层\src\common\alloc.c
文件 1449 2013-04-27 16:53 07-BTS7960电机驱动模块(PWM)-修改底层\src\common\assert.c
文件 903 2012-04-17 23:47 07-BTS7960电机驱动模块(PWM)-修改底层\src\common\assert.h
文件 3883 2013-05-05 21:20 07-BTS7960电机驱动模块(PWM)-修改底层\src\common\common.h
文件 654 2012-04-17 23:47 07-BTS7960电机驱动模块(PWM)-修改底层\src\common\io.c
文件 420 2012-04-17 23:47 07-BTS7960电机驱动模块(PWM)-修改底层\src\common\io.h
文件 6691 2012-04-17 23:47 07-BTS7960电机驱动模块(PWM)-修改底层\src\common\memtest.c
文件 1121 2012-04-17 23:47 07-BTS7960电机驱动模块(PWM)-修改底层\src\common\memtest.h
文件 16157 2012-04-17 23:47 07-BTS7960电机驱动模块(PWM)-修改底层\src\common\printf.c
文件 2556 2012-04-17 23:47 07-BTS7960电机驱动模块(PWM)-修改底层\src\common\queue.c
文件 784 2012-04-17 23:47 07-BTS7960电机驱动模块(PWM)-修改底层\src\common\queue.h
............此处省略357个文件信息
- 上一篇:考勤管理系统源码_毕业设计源码
- 下一篇:任意波形发生器论文
评论
共有 条评论