gpt4 book ai didi

ARM STM32 的 Ceedling CMock 设置

转载 作者:太空宇宙 更新时间:2023-11-04 03:18:21 24 4
gpt4 key购买 nike

我一直在为 STM32 设置 Ceedling。 howto 非常稀缺,到目前为止,我几乎什么都没用谷歌搜索。幸运的是,该框架相对于它的大小而言是相对透明的。 This是 PIC 配置。我设置了类似的东西(project.yml):

...
:defines:
# in order to add common defines:
# 1) remove the trailing [] from the :common: section
# 2) add entries to the :common: section (e.g. :test: has TEST defined)
:commmon: &common_defines #[]
- STM32F103xB
- UNITY_INT_WIDTH=32
- CMOCK_MEM_INDEX_TYPE=uint32_t
- UNITY_LINE_TYPE=uint16_t
:test:
- *common_defines
- TEST
:test_preprocess:
- *common_defines
- TEST

到目前为止一切顺利(尚未尝试实际工作)。添加了这个定义

    - CMOCK_MEM_PTR_AS_INT=uint32_t

我有一个警告:

/vendor/ceedling/vendor/cmock/src/cmock.c:105:40: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
index = *(CMOCK_MEM_INDEX_TYPE*)((CMOCK_MEM_PTR_AS_INT)next - CMOCK_MEM_INDEX_SIZE);

难怪,因为next是PC平台的64位指针。我仍然不确定是否必须控制 CMOCK_MEM_PTR_AS_INT 。这取决于 CMOCK_MEM_PTR_AS_INT 是否为关键目标 (ARM) 平台定义。

到目前为止我还没有找到STM32的例子。

最佳答案

这是来之不易的序列,完成了 Eclipse 集成:

安装Ceedling:

$ gem install ceedling

创建 Ceedling 项目(故障排除 #215):

myproject $ cd ..
$ ceedling new myproject
$ cd myproject/vendor/
$ rm -rf ceedling/
$ git clone --recursive https://github.com/throwtheswitch/ceedling.git

修改vendor/ceedling/plugins/module_generator/config/module_generator.yml:

:module_generator:
:project_root: ./
:source_root: Src/
:inc_root: Inc/
:test_root: test/

修改project.yml:

...
:paths:
:test:
- +:test/**
- -:test/support
:source:
- Src/**
:include:
- Drivers/**
- Inc/**
:support:
- test/support
...
:defines:
:commmon: &common_defines # A nice typo, next to invisible :)
- STM32F103xB
...
:cmock:
:strippables:
- volatile
...
:plugins:
:load_paths:
- vendor/ceedling/plugins
:enabled:
# - stdout_pretty_tests_report
- stdout_gtestlike_tests_report
- module_generator

Eclipse C/C++ 单元插件配置:

  • 主要/项目:我的项目

  • 主要/应用程序:/home/user/.gem/ruby/2.5.0/bin/ceedling

  • 主要/禁用自动构建

  • 参数/程序参数:clobber\ntest:all

  • 测试/测试运行器:Google 测试运行器

  • 环境:变量 TERM 值 xterm

关于ARM STM32 的 Ceedling CMock 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49192395/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com