0

我正在使用基于 8051 内核的 CC2532 进行项目。我使用 SDCC 作为编译器。

我需要创建一个字符串列表,并添加、删除、追加、列出元素。

是否有任何简单的开源/免费库足够轻,可以在 MCU 中使用?

我找到了 SimCList 和 SGLIB,但它们似乎有点矫枉过正,我想知道是否有人知道更简单/更轻的替代方案。我只需要 (add,remove,list,size) 函数。不需要它只是一个简单的 FIFO 列表循环。我总共有 4K RAM。列表元素的数量最多为 20 个。

4

1 回答 1

1

简单的列表很容易实现,所以你自己做可能会更好。如果您愿意,您可以从我很久以前为简单实现而编写的库中提取文件include/proto/exec.hinclude/exec/nodes.h、和。您可以使用初始化一个空的 FIFO,将节点添加到您的 FIFO,从您的 FIFO 中删除节点。该函数如下所示:include/exec/lists.hlib/NewList.clib/List.cNewListAddTailRemHeadsize

unsigned int size(struct List *list)
{
    unsigned int res = 0;
    struct Node *node = list->lh_Head;
    while (node->ln_Succ != NULL) {
        res++;
        node = node->ln_Succ;
    }
    return res;
}

请注意,列表结尾的测试node->ln_Succ != NULL与许多其他列表框架不同。这实际上是对Amiga 列表系统的重做。

我应该在这里复制所有代码以进行列表处理吗?

于 2013-01-28T10:47:38.953 回答