Настройки Ceedling CMock для ARM STM32
Я настраивал Ceedling для STM32. Howto очень мало, до сих пор мне удалось Google почти ничего. К счастью, рамки относительно прозрачны для своих размеров. Это конфигурация 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
64-битный указатель для платформы ПК Тем не менее я не совсем уверен, должен ли я контролировать CMOCK_MEM_PTR_AS_INT
или нет. Это зависит от того, CMOCK_MEM_PTR_AS_INT
является определением платформы критической цели (ARM).
До сих пор я не нашел пример STM32.
1 ответ
Вот сложная последовательность, полная интеграции 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++:
Главная / Проект: myproject
Главная / Применение:
/home/user/.gem/ruby/2.5.0/bin/ceedling
Главная / Отключить автоматическую сборку
Аргументы / Программные аргументы: clobber\ntest:all
Тестирование / Test Runner: Google Test Runner
Окружающая среда: переменная TERM Значение xterm