В последнее время я получаю странную ошибку в Simulink, о которой не могу найти никакой информации.
версия Matlab: 2018a
ОС: Windows 10
gpio_in.c - это код для s-функции, созданный с помощью построителя s-функций. Мой собственный код находится в соответствующем файле оболочки gpio_in_wrapper.c . Конструктор s-функции настроен на сохранение только кода, а не на его сборку. Я использую этот файл для взаимодействия с оборудованием при последующем развертывании через кодировщик Simulink.
Всякий раз, когда я пытаюсь запустить симуляцию, Simulink представляет мне вышеуказанную ошибку, и я понятия не имею, в чем может быть проблема. Мне кажется, что D: это начало пути к файлу, особенно если учесть вышеупомянутое предупреждение, которое гласит \D
и, вероятно, является началом каталога моделей, который D:\Dateien\Git_Repositories\BMaS_Neu\Simulink
.
Содержимое gpio_in_wrapper.c в соответствии с предложением UnbearableLightness
/*
* Include Files
*
*/
#if defined(MATLAB_MEX_FILE)
#include "tmwtypes.h"
#include "simstruc_types.h"
#else
#include "rtwtypes.h"
#endif
/* %%%-SFUNWIZ_wrapper_includes_Changes_BEGIN --- EDIT HERE TO _END */
#include <gpio.h>
/* %%%-SFUNWIZ_wrapper_includes_Changes_END --- EDIT HERE TO _BEGIN */
#define u_width 1
#define y_width 1
/*
* Create external references here.
*
*/
/* %%%-SFUNWIZ_wrapper_externs_Changes_BEGIN --- EDIT HERE TO _END */
/* %%%-SFUNWIZ_wrapper_externs_Changes_END --- EDIT HERE TO _BEGIN */
/*
* Output function
*
*/
void gpio_in_Outputs_wrapper(const int32_T *port_popupvalue,
const int32_T *pin_number,
boolean_T *gpio_in)
{
/* %%%-SFUNWIZ_wrapper_Outputs_Changes_BEGIN --- EDIT HERE TO _END */
if (*port_popupvalue == 1) {
*gpio_in = HAL_GPIO_ReadPin(GPIOA, (1 << *pin_number));
} else if (*port_popupvalue == 2) {
*gpio_in = HAL_GPIO_ReadPin(GPIOB, (1 << *pin_number));
} else if (*port_popupvalue == 3) {
*gpio_in = HAL_GPIO_ReadPin(GPIOC, (1 << *pin_number));
} else if (*port_popupvalue == 4) {
*gpio_in = HAL_GPIO_ReadPin(GPIOD, (1 << *pin_number));
} else if (*port_popupvalue == 5) {
*gpio_in = HAL_GPIO_ReadPin(GPIOE, (1 << *pin_number));
} else if (*port_popupvalue == 6) {
*gpio_in = HAL_GPIO_ReadPin(GPIOF, (1 << *pin_number));
} else if (*port_popupvalue == 7) {
*gpio_in = HAL_GPIO_ReadPin(GPIOG, (1 << *pin_number));
} else if (*port_popupvalue == 8) {
*gpio_in = HAL_GPIO_ReadPin(GPIOH, (1 << *pin_number));
} else if (*port_popupvalue == 9) {
*gpio_in = HAL_GPIO_ReadPin(GPIOI, (1 << *pin_number));
}
/* %%%-SFUNWIZ_wrapper_Outputs_Changes_END --- EDIT HERE TO _BEGIN */
}
Буду признателен за каждый ваш намек.