我正在使用基于 8051 内核的 CC2532 进行项目。我使用 SDCC 作为编译器。
我需要创建一个字符串列表,并添加、删除、追加、列出元素。
是否有任何简单的开源/免费库足够轻,可以在 MCU 中使用?
我找到了 SimCList 和 SGLIB,但它们似乎有点矫枉过正,我想知道是否有人知道更简单/更轻的替代方案。我只需要 (add,remove,list,size) 函数。不需要它只是一个简单的 FIFO 列表循环。我总共有 4K RAM。列表元素的数量最多为 20 个。
我正在使用基于 8051 内核的 CC2532 进行项目。我使用 SDCC 作为编译器。
我需要创建一个字符串列表,并添加、删除、追加、列出元素。
是否有任何简单的开源/免费库足够轻,可以在 MCU 中使用?
我找到了 SimCList 和 SGLIB,但它们似乎有点矫枉过正,我想知道是否有人知道更简单/更轻的替代方案。我只需要 (add,remove,list,size) 函数。不需要它只是一个简单的 FIFO 列表循环。我总共有 4K RAM。列表元素的数量最多为 20 个。
简单的列表很容易实现,所以你自己做可能会更好。如果您愿意,您可以从我很久以前为简单实现而编写的库中提取文件include/proto/exec.h
、include/exec/nodes.h
、和。您可以使用初始化一个空的 FIFO,将节点添加到您的 FIFO,从您的 FIFO 中删除节点。该函数如下所示:include/exec/lists.h
lib/NewList.c
lib/List.c
NewList
AddTail
RemHead
size
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 列表系统的重做。
我应该在这里复制所有代码以进行列表处理吗?