• 大小: 3.12MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-08-14
  • 语言: 其他
  • 标签: 舵机驱动  

资源简介

舵机电机驱动测试程序-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个文件信息

评论

共有 条评论