首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何建立一个用手臂-无-eabi-gcc+ cmake的例子?

如何建立一个用手臂-无-eabi-gcc+ cmake的例子?
EN

Stack Overflow用户
提问于 2018-06-15 15:56:19
回答 1查看 1.6K关注 0票数 3

我正在为基于stm32f4xx的系统开发固件。为此,我建立了一个基于ARM -none gcc工具链的工具链,形成了ARM和cmake。这个工具链在Ubuntu上工作。我可以x编译和调试(通过openocd + eclipse )。现在,我喜欢为我的代码添加一些功能测试。我当时正在检查,似乎cmocka是用于嵌入式软件测试的一个很好的工具。

我现在正在寻找一个将测试集成到cmake构建中的示例/模板。

让我们假设myfunc.c .c上有一个简单的函数

代码语言:javascript
复制
#include "myFunc.h"

int buffer[10];

void myFunc(int i, int val) {
    buffer[i] = val;
}

如果我做对了,我可以在一个单独的c文件中进行测试,比如"test.c“。

代码语言:javascript
复制
#include "myFunc.h"
#include <cmocka.h>

// function success
static void test_myFunc_positive() {
    for(int i = 0; i < 10; i++) {
        myFunc(i,i);
    }
}

static void test_myFunc_outofbounds() {
    myFunc(100,44);
}


int main(void) {
    const struct CMUnitTest tests[] = {
        cmocka_unit_test(test_myFunc_positive),
        cmocka_unit_test(test_myFunc_outofbounds),
    };
    return cmocka_run_group_tests(tests, NULL, NULL);
}

通常我会跑

代码语言:javascript
复制
cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE="cmake/STM32Toolchain.cmake"

我的问题包括以下几个子问题:1)我安装了libcmocka。这是为了我的主机系统。我是否需要为我的arm-无eabi-gcc编译器安装cmocka?如何设置cmake来选择cmocka库,构建测试并在主机系统上运行它?认为我的工具链文件需要被忽略。

EN

回答 1

Stack Overflow用户

发布于 2018-10-23 07:03:46

你的源代码看起来很好。下面是如何使用cmocka的菜谱。我也建议交叉编译cmocka的源代码。事实上,我是这样做的:

  1. cmocka.c添加到源中
  2. 在包含目录中添加'cmocka.h、cmocka_pbc.hcmocka_private.h‘。
  3. 编译并运行您的软件

PS:我不知道libcmocka。我想这是一个预编好的版本吗?

PPS:我在将cmocka的输出重定向到我的串行UART时遇到了一些困难。如果你有同样的问题,请随便问。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50879081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档