Git Product home page Git Product logo

gcy / atrial-fibrillation-detection-blood-pressure-monitor-oscillometric-method- Goto Github PK

View Code? Open in Web Editor NEW
43.0 4.0 15.0 37.9 MB

Atrial Fibrillation Detection Blood Pressure Monitor (Oscillometric Method)

License: MIT License

C++ 3.40% C 94.35% Makefile 0.03% HTML 0.63% Assembly 1.60%
blood-pressure-monitor blood-pressure atrial-fibrillation pid-control pid-codes stm32f4 stm32 biomedical blood-pressure-measurment atrial-fibrillation-detection

atrial-fibrillation-detection-blood-pressure-monitor-oscillometric-method-'s Introduction

Atrial-Fibrillation-Detection-Blood-Pressure-Monitor-Oscillometric-Method-

This project is electronic blood pressure monitor research platform with Oscillometric method, include SBP and DBP estimate algorithm, Atrial Fibrillation detection algorithm, calibration curve, GUI tool for fine-tune BP algorithm...etc, ofcourse, this is research use only.

alt text

Blood Pressure Measurement Oscillometric Method

The oscillometric method was first demonstrated in 1876 and involves the observation of oscillations in the sphygmomanometer cuff pressure which are caused by the oscillations of blood flow, It uses a sphygmomanometer cuff, like the auscultatory method, but with an electronic pressure sensor (transducer) to observe cuff pressure oscillations, electronics to automatically interpret them, and automatic inflation and deflation of the cuff. The pressure sensor should be calibrated periodically to maintain accuracy.

A new analysis of relevant anatomy, physiology and physics reveals the mechanisms underlying the production of cuff pressure oscillations as well as a way to extract systolic and diastolic pressures from the envelope of oscillations in any individual subject. Stiffness characteristics of the compressed artery segment can be extracted from the envelope shape to create an individualized mathematical model. The model is tested with a matrix of possible systolic and diastolic pressure values, and the minimum least squares difference between observed and predicted envelope functions indicates the best fit choices of systolic and diastolic pressure within the test matrix.

In practice the different methods do not give identical results; an algorithm and experimentally obtained coefficients are used to adjust the oscillometric results to give readings which match the auscultatory results as well as possible. Accurate extraction of systolic and diastolic pressures from the envelope of cuff pressure oscillations remains an open problem in biomedical engineering. Since many oscillometric devices have not been validated, caution must be given as most are not suitable in clinical and acute care settings.

via wiki.

Features

  • Blood Pressure Measurment - Systolic, Diastolic, Mean
  • Atrial Fibrillation Detection - Irregular Pulse Peak , Irregular Heart Beats
  • GUI Toos - Algorithm Finetune
  • ADC Clibration to Mercury Manometer Pressure - Polynomial Curve Fit
  • RAW Data Record

Hardware

Project create is Eagle PCB 8.1.0 .

V2 version, D1(BAT20) should be replaced with zero ohm resistor.

alt text

alt text

alt text

Key Component List

  • Electronics
    • TB6612FNG (for PUMP and VALVE PID control)
    • MPS-3117-006GC A2/A3(MEMS Wheatstone Bridge)
  • Mechatronic
    • 3V DC Air Pump Motor(JQB032-3A or DQB030-A-3V)
    • 3V DC Electric Solenoid Valve(JQF1-3C1/DC3V Mini 10mm*15mm)
  • Cuff and Tubing
    • 2mm*4mm Silicone Rubber Tubing x 2(20cm~30cm, for wrist cuff input and output)
    • 2mm*4mm Silicone Rubber Tubing x 3(5cm~10cm, for T Type connector)
    • 2mm*3mm T Type Plastic Barbed Connector
    • 2mm*3mm Straight Plastic Barbed Connector x 3
    • Wrist Air Cuff Input/Output(2 pinhole 2mm~3mm)

Configure for Motor Electric Drives With Independent Power Supply - Battery2(U$19)

  • J1, J2 pin1 connect to pin2 - battery2 charge
  • J1, J2 pin2 connect to pin3 - motor drive with independent power supply
  • JP1 pin1 connect to pin2 - motor drive with VCC
  • JP1 pin2 connect to pin3 - motor drive with independent power supply

Firmware

Build and Burn The .elf

  • 1.cd src/BPM
  • 2.make
  • 3.load main.elf

Key Parameters

PWM_Freq is DC Motor PWM frequency.
TIM_Prescaler = (168M/2)/1M = 84M
TIM_Period = TIMER_PWM_MAX/PWM_Freq = 1000

TIM = 84M / TIM_Prescaler = 1M
TIM = 1M / TIM_ClockDivision = 1M
1M / (TIM_Period + 1) = 1000Hz (1ms)


const uint16_t PWM_Freq = 1000;

ARR = TIMER_PWM_MAX;
CCR = 0 to TIMER_PWM_MAX = 0 to 100% PWM.
In this case, PID PWM step 1 to 100 mapped to 100000 to 1000000.
TIMER_PWM_33 and TIMER_PWM_40 is 33% and 40% PWM for calibration hand control.


const uint32_t PID_PWM_MIN = 1;
const uint32_t PID_PWM_MAX = 100;
const uint32_t TIMER_PWM_MIN = 100000;
const uint32_t TIMER_PWM_MAX; = 1000000;
const uint32_t TIMER_PWM_33 = 330000;
const uint32_t TIMER_PWM_40 = 400000;

This is PID parameter, you need to redefine in ResetMeasurementParameter() function.


Kp = 2, Ki = 0.3, Kd = 0.001; // for JQB032-3A

AC signal amplitude point of Systolic and Diastolic BP.


float as_am_value = 0.65f;
float ad_am_value = 0.7f;

Polynomial curve fitting is generated from 『Calibration ADC-DC to Mercury Manometer Pressure』, you'll need to create 『curve.csv』and execute PC-GUI software main.app or BPM.exe in the same folder, it will output the『equation.txt』.
e.g. degree = 2, equation.txt format is : (-1.0620516546)x^0+(0.1262915457)x^1+(-0.0000012119)x^2


float a[3] = {-0.0000012119f,0.1262915457f,-1.0620516546f};

If pulse_value_N / total_pulse_value_mean > IPP_Ratio, pulse_N is irregular pulse peak, and IPP ratio range 15%~25%.
If IPP number / total_pulse_number > IHB_Ratio, this measurement is irregular heart beat.
If two or more IHB of the three BP measurements, AF detected.


const float IPP_Ratio = 0.2f;
const float IHB_Ratio = 0.2f;

Operation Flowchart

alt text

DC/AC Signal Process Flowchart

alt text

Measurment Flowchart

alt text

BPM Mode Demo

Audi R8

Software

AFib-BPM GUI Demo

Audi R8

Build

  • Win10
    • 1.Open BPM.sln
    • 2.Rebuild
  • Mac High Sierra
    • 1.make

Dependence

  • Win10
    • wxWidgets 3.1.2
    • VS2017 - MSVC 10.0.17763-SDK
  • Mac High Sierra
    • wxWidgets 3.x
    • g++

Parameters Setup

When burning the firmware for the first time, you must set the PID control and blood pressure algorithm parameters. After the PC-Host and VCP are successfully connected, select the Tuning menu to adjust the parameters.

alt text
alt text

Display the parameters that have been set. If the parameters are unset, the value is "0xFFFFFFFF" in sector11 of flash. The PID parameters shown in the figure need to be divided by hundred. (for example, P = 290, in firmware, P is 2.9 .)

alt text

Mac High Sierra GUI

alt text

Win10 GUI

alt text

Operation Manual

  • Menu Tools -> VCP is connect to device.
  • "Ad/Am" and "As/Am" text box is Diastolic and Systolic BP Point of AC signal amplitude.
  • "Measurment" button is BP measurment after VCP connected.
  • "USB Mode" button is switch from "USB Mode"(Measurment) to "Calibration Mode", and vice versa.
  • "Pressurize" and "Leak" button for control mercury manometer high and low in calibration mode.

Oscillometric Method

The two chart below show AC signal types, all of types are correct.

Type1 AC Signal

alt text

Type2 AC Signal

alt text

Calibration ADC-DC to Mercury Manometer Pressure

Pressure calibration reference is Mercury Manometer(Sphygmomanometer) or Aneroid Sphygmomanometer, you can buy products from Yuwell, Welch Allyn...etc

PC-GUI Software Control Steps

  • 1.Connecting device and PC-GUI software.
  • 2.Click USB Mode button switch to Calibration Mode, after this, OLED display show you ADC0 value per-second.
  • 3.Control Mercury Manometer high and low with Presurize and Leak button.
  • 4.Record Mercury Manometer pressure point and OLED ADC0 value to 『curve.csv』file, at least 10-points and pressure range 0~250mmHg.
  • 5.checking curve.csv is located in the same folder as the PC-GUI software.
  • 6.Close PC-GUI software than reopen it, it will generate the『equation.txt』.
  • 7.copy equation and replace firmware parameter 『float a[3]』 in main.c.

Column A is ADC0-value, B is Mercury Manometer mmHg pressure.
alt text

Atrial Fibrillation In Oscillometric Method Detect Algorithm

Below are a few real world cases of the AFib(for example PCV, PAC), envelope wave lost some peaks.

Premature Atrial Contractions

alt text

alt text

Premature Ventricular Contractions

alt text

alt text

Reference

  • Kabutoya, T., Imai, Y., Hoshide, S., & Kario, K. (2017). Diagnostic accuracy of a new algorithm to detect atrial fibrillation in a home blood pressure monitor. The Journal of Clinical Hypertension, 19(11), 1143-1147.

  • Ogedegbe, G., & Pickering, T. (2010). Principles and techniques of blood pressure measurement. Cardiology clinics, 28(4), 571-586.

  • Babbs, C. F. (2012). Oscillometric measurement of systolic and diastolic blood pressures validated in a physiologic mathematical model. Biomedical engineering online, 11(1), 56.

  • Geddes, L. A., Voelz, M., Combs, C., Reiner, D., & Babbs, C. F. (1982). Characterization of the oscillometric method for measuring indirect blood pressure. Annals of biomedical engineering, 10(6), 271-280.

  • C++ Program for Polynomial Fit (Least Squares) : https://www.bragitoff.com/2015/09/c-program-for-polynomial-fit-least-squares/

LICENSE

MIT License

Copyright (c) 2019 Tony Guo

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

OSHW Certification

https://certification.oshwa.org/tw000002.html

alt text

atrial-fibrillation-detection-blood-pressure-monitor-oscillometric-method-'s People

Contributors

gcy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

atrial-fibrillation-detection-blood-pressure-monitor-oscillometric-method-'s Issues

usb_cdc_device part geeting error

23:02:50 **** Incremental Build of configuration Debug for project ECG1 ****
make -j8 all
arm-none-eabi-gcc "../Src/usb_cdc_device/usb_bsp.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F407xx -c -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -I../Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Src/usb_cdc_device/usb_bsp.d" -MT"Src/usb_cdc_device/usb_bsp.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/usb_cdc_device/usb_bsp.o"
arm-none-eabi-gcc "../Src/usb_cdc_device/usb_core.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F407xx -c -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -I../Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Src/usb_cdc_device/usb_core.d" -MT"Src/usb_cdc_device/usb_core.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/usb_cdc_device/usb_core.o"
arm-none-eabi-gcc "../Src/usb_cdc_device/usb_dcd.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F407xx -c -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -I../Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Src/usb_cdc_device/usb_dcd.d" -MT"Src/usb_cdc_device/usb_dcd.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/usb_cdc_device/usb_dcd.o"
arm-none-eabi-gcc "../Src/usb_cdc_device/usb_dcd_int.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F407xx -c -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -I../Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Src/usb_cdc_device/usb_dcd_int.d" -MT"Src/usb_cdc_device/usb_dcd_int.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/usb_cdc_device/usb_dcd_int.o"
arm-none-eabi-gcc "../Src/usb_cdc_device/usbd_cdc_core.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F407xx -c -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -I../Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Src/usb_cdc_device/usbd_cdc_core.d" -MT"Src/usb_cdc_device/usbd_cdc_core.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/usb_cdc_device/usbd_cdc_core.o"
arm-none-eabi-gcc "../Src/usb_cdc_device/usbd_cdc_vcp.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F407xx -c -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -I../Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Src/usb_cdc_device/usbd_cdc_vcp.d" -MT"Src/usb_cdc_device/usbd_cdc_vcp.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/usb_cdc_device/usbd_cdc_vcp.o"
arm-none-eabi-gcc "../Src/usb_cdc_device/usbd_core.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F407xx -c -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -I../Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Src/usb_cdc_device/usbd_core.d" -MT"Src/usb_cdc_device/usbd_core.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/usb_cdc_device/usbd_core.o"
arm-none-eabi-gcc "../Src/usb_cdc_device/usbd_desc.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F407xx -c -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -I../Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Src/usb_cdc_device/usbd_desc.d" -MT"Src/usb_cdc_device/usbd_desc.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/usb_cdc_device/usbd_desc.o"
In file included from ../Src/usb_cdc_device/usb_core.h:33,
from ../Src/usb_cdc_device/usb_core.c:29:
../Src/usb_cdc_device/usb_conf.h:240: warning: "__packed" redefined
240 | #define __packed attribute ((packed))
|
In file included from c:\st\stm32cubeide_1.12.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\include\stdio.h:35,
from ../Src/usb_cdc_device/usb_conf.h:35,
from ../Src/usb_cdc_device/usb_core.h:33,
from ../Src/usb_cdc_device/usb_core.c:29:
c:\st\stm32cubeide_1.12.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\include\sys\cdefs.h:247: note: this is the location of the previous definition
247 | #define __packed attribute((packed))
|
../Src/usb_cdc_device/usb_core.c: In function 'USB_OTG_WritePacket':
../Src/usb_cdc_device/usb_core.c:183:7: warning: 'packed' attribute ignored for type 'uint32_t *' {aka 'long unsigned int *'} [-Wattributes]
183 | USB_OTG_WRITE_REG32( fifo, *((__packed uint32_t *)src) );
| ^~~~~~~~~~~~~~~~~~~
../Src/usb_cdc_device/usb_core.c: In function 'USB_OTG_ReadPacket':
../Src/usb_cdc_device/usb_core.c:208:5: warning: 'packed' attribute ignored for type 'uint32_t *' {aka 'long unsigned int *'} [-Wattributes]
208 | *(__packed uint32_t *)dest = USB_OTG_READ_REG32(fifo);
| ^
In file included from ../Src/usb_cdc_device/usb_core.h:33,
from ../Src/usb_cdc_device/usb_bsp.h:33,
from ../Src/usb_cdc_device/usb_bsp.c:30:
../Src/usb_cdc_device/usb_conf.h:240: warning: "__packed" redefined
240 | #define __packed attribute ((packed))
|
In file included from c:\st\stm32cubeide_1.12.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\include\stdio.h:35,
from ../Src/usb_cdc_device/usb_conf.h:35,
from ../Src/usb_cdc_device/usb_core.h:33,
from ../Src/usb_cdc_device/usb_bsp.h:33,
from ../Src/usb_cdc_device/usb_bsp.c:30:
c:\st\stm32cubeide_1.12.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\include\sys\cdefs.h:247: note: this is the location of the previous definition
247 | #define __packed attribute((packed))
|
../Src/usb_cdc_device/usb_bsp.c: In function 'USB_OTG_BSP_Init':
../Src/usb_cdc_device/usb_bsp.c:53:3: error: unknown type name 'GPIO_InitTypeDef'; did you mean 'GPIO_TypeDef'?
53 | GPIO_InitTypeDef GPIO_InitStructure;
| ^~~~~~~~~~~~~~~~
| GPIO_TypeDef
In file included from ../Src/usb_cdc_device/usb_core.h:33,
from ../Src/usb_cdc_device/usb_dcd.h:33,
from ../Src/usb_cdc_device/usb_dcd.c:29:
../Src/usb_cdc_device/usb_conf.h:240: warning: "__packed" redefined
240 | #define __packed attribute ((packed))
|
In file included from c:\st\stm32cubeide_1.12.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\include\stdio.h:35,
from ../Src/usb_cdc_device/usb_conf.h:35,
from ../Src/usb_cdc_device/usb_core.h:33,
from ../Src/usb_cdc_device/usb_dcd.h:33,
from ../Src/usb_cdc_device/usb_dcd.c:29:
c:\st\stm32cubeide_1.12.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\include\sys\cdefs.h:247: note: this is the location of the previous definition
247 | #define __packed attribute((packed))
|
In file included from ../Src/usb_cdc_device/usb_core.h:33,
from ../Src/usb_cdc_device/usb_dcd.h:33,
from ../Src/usb_cdc_device/usb_dcd_int.h:33,
from ../Src/usb_cdc_device/usb_dcd_int.c:29:
../Src/usb_cdc_device/usb_conf.h:240: warning: "__packed" redefined
240 | #define __packed attribute ((packed))
|
In file included from c:\st\stm32cubeide_1.12.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\include\stdio.h:35,
from ../Src/usb_cdc_device/usb_conf.h:35,
from ../Src/usb_cdc_device/usb_core.h:33,
from ../Src/usb_cdc_device/usb_dcd.h:33,
from ../Src/usb_cdc_device/usb_dcd_int.h:33,
from ../Src/usb_cdc_device/usb_dcd_int.c:29:
c:\st\stm32cubeide_1.12.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\include\sys\cdefs.h:247: note: this is the location of the previous definition
247 | #define __packed attribute((packed))
|
../Src/usb_cdc_device/usb_bsp.c:55:2: warning: implicit declaration of function 'RCC_AHB1PeriphClockCmd' [-Wimplicit-function-declaration]
55 | RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_GPIOA , ENABLE);
| ^~~~~~~~~~~~~~~~~~~~~~
../Src/usb_cdc_device/usb_bsp.c:55:26: error: 'RCC_AHB1Periph_GPIOA' undeclared (first use in this function)
55 | RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_GPIOA , ENABLE);
| ^~~~~~~~~~~~~~~~~~~~
../Src/usb_cdc_device/usb_bsp.c:55:26: note: each undeclared identifier is reported only once for each function it appears in
../Src/usb_cdc_device/usb_bsp.c:56:20: error: request for member 'GPIO_Pin' in something not a structure or union
56 | GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | // OTG FS Data -
| ^
../Src/usb_cdc_device/usb_bsp.c:56:33: error: 'GPIO_Pin_11' undeclared (first use in this function)
56 | GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | // OTG FS Data -
| ^~~~~~~~~~~
../Src/usb_cdc_device/usb_bsp.c:57:10: error: 'GPIO_Pin_12' undeclared (first use in this function)
57 | GPIO_Pin_12; // OTG FS Data +
| ^~~~~~~~~~~
../Src/usb_cdc_device/usb_bsp.c:59:20: error: request for member 'GPIO_Speed' in something not a structure or union
59 | GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
| ^
In file included from ../Src/usb_cdc_device/usbd_conf.h:33,
from ../Src/usb_cdc_device/usbd_def.h:34,
from ../Src/usb_cdc_device/usbd_ioreq.h:34,
from ../Src/usb_cdc_device/usbd_cdc_core.h:33,
from ../Src/usb_cdc_device/usbd_cdc_core.c:67:
../Src/usb_cdc_device/usb_conf.h:240: warning: "__packed" redefined
240 | #define __packed attribute ((packed))
|
In file included from c:\st\stm32cubeide_1.12.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\include\stdio.h:35,
from ../Src/usb_cdc_device/usb_conf.h:35,
from ../Src/usb_cdc_device/usbd_conf.h:33,
from ../Src/usb_cdc_device/usbd_def.h:34,
from ../Src/usb_cdc_device/usbd_ioreq.h:34,
from ../Src/usb_cdc_device/usbd_cdc_core.h:33,
from ../Src/usb_cdc_device/usbd_cdc_core.c:67:
c:\st\stm32cubeide_1.12.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\include\sys\cdefs.h:247: note: this is the location of the previous definition
247 | #define __packed attribute((packed))
|
In file included from ../Src/usb_cdc_device/usb_core.h:33,
from ../Src/usb_cdc_device/usb_dcd.h:33,
from ../Src/usb_cdc_device/usbd_core.h:33,
from ../Src/usb_cdc_device/usbd_core.c:29:
../Src/usb_cdc_device/usb_conf.h:240: warning: "__packed" redefined
240 | #define __packed attribute ((packed))
|
In file included from c:\st\stm32cubeide_1.12.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\include\stdio.h:35,
from ../Src/usb_cdc_device/usb_conf.h:35,
from ../Src/usb_cdc_device/usb_core.h:33,
from ../Src/usb_cdc_device/usb_dcd.h:33,
from ../Src/usb_cdc_device/usbd_core.h:33,
from ../Src/usb_cdc_device/usbd_core.c:29:
c:\st\stm32cubeide_1.12.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\include\sys\cdefs.h:247: note: this is the location of the previous definition
247 | #define __packed attribute((packed))
|
../Src/usb_cdc_device/usb_bsp.c:59:34: error: 'GPIO_Speed_100MHz' undeclared (first use in this function)
59 | GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
| ^~~~~~~~~~~~~~~~~
../Src/usb_cdc_device/usb_bsp.c:60:20: error: request for member 'GPIO_Mode' in something not a structure or union
60 | GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
| ^
../Src/usb_cdc_device/usb_bsp.c:60:33: error: 'GPIO_Mode_AF' undeclared (first use in this function)
60 | GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
| ^~~~~~~~~~~~
../Src/usb_cdc_device/usb_bsp.c:61:20: error: request for member 'GPIO_OType' in something not a structure or union
61 | GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
| ^
../Src/usb_cdc_device/usb_bsp.c:61:34: error: 'GPIO_OType_PP' undeclared (first use in this function); did you mean 'GPIO_TypeDef'?
61 | GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
| ^~~~~~~~~~~~~
| GPIO_TypeDef
../Src/usb_cdc_device/usb_bsp.c:62:20: error: request for member 'GPIO_PuPd' in something not a structure or union
62 | GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;
| ^
../Src/usb_cdc_device/usb_bsp.c:62:33: error: 'GPIO_PuPd_NOPULL' undeclared (first use in this function)
62 | GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;
| ^~~~~~~~~~~~~~~~
../Src/usb_cdc_device/usb_bsp.c:63:2: warning: implicit declaration of function 'GPIO_Init' [-Wimplicit-function-declaration]
63 | GPIO_Init(GPIOA, &GPIO_InitStructure);
| ^~~~~~~~~
In file included from ../Src/usb_cdc_device/usbd_conf.h:33,
from ../Src/usb_cdc_device/usbd_def.h:34,
from ../Src/usb_cdc_device/usbd_ioreq.h:34,
from ../Src/usb_cdc_device/usbd_cdc_core.h:33,
from ../Src/usb_cdc_device/usbd_cdc_vcp.h:34,
from ../Src/usb_cdc_device/usbd_cdc_vcp.c:29:
../Src/usb_cdc_device/usb_conf.h:240: warning: "__packed" redefined
240 | #define __packed attribute ((packed))
|
../Src/usb_cdc_device/usb_bsp.c:65:2: warning: implicit declaration of function 'GPIO_PinAFConfig' [-Wimplicit-function-declaration]
65 | GPIO_PinAFConfig(GPIOA, GPIO_PinSource11, GPIO_AF_OTG1_FS);
| ^~~~~~~~~~~~~~~~
In file included from c:\st\stm32cubeide_1.12.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\include\stdio.h:35,
from ../Src/usb_cdc_device/usb_conf.h:35,
from ../Src/usb_cdc_device/usbd_conf.h:33,
from ../Src/usb_cdc_device/usbd_def.h:34,
from ../Src/usb_cdc_device/usbd_ioreq.h:34,
from ../Src/usb_cdc_device/usbd_cdc_core.h:33,
from ../Src/usb_cdc_device/usbd_cdc_vcp.h:34,
from ../Src/usb_cdc_device/usbd_cdc_vcp.c:29:
c:\st\stm32cubeide_1.12.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\include\sys\cdefs.h:247: note: this is the location of the previous definition
247 | #define __packed attribute((packed))
|
In file included from ../Src/usb_cdc_device/usb_core.h:33,
from ../Src/usb_cdc_device/usb_dcd.h:33,
from ../Src/usb_cdc_device/usbd_core.h:33,
from ../Src/usb_cdc_device/usbd_desc.c:29:
../Src/usb_cdc_device/usb_conf.h:240: warning: "__packed" redefined
240 | #define __packed attribute ((packed))
|
In file included from c:\st\stm32cubeide_1.12.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\include\stdio.h:35,
from ../Src/usb_cdc_device/usb_conf.h:35,
from ../Src/usb_cdc_device/usb_core.h:33,
from ../Src/usb_cdc_device/usb_dcd.h:33,
from ../Src/usb_cdc_device/usbd_core.h:33,
from ../Src/usb_cdc_device/usbd_desc.c:29:
c:\st\stm32cubeide_1.12.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\include\sys\cdefs.h:247: note: this is the location of the previous definition
247 | #define __packed attribute((packed))
|
../Src/usb_cdc_device/usb_bsp.c:65:26: error: 'GPIO_PinSource11' undeclared (first use in this function)
65 | GPIO_PinAFConfig(GPIOA, GPIO_PinSource11, GPIO_AF_OTG1_FS);
| ^~~~~~~~~~~~~~~~
../Src/usb_cdc_device/usbd_desc.c: In function 'USBD_USR_ProductStrDescriptor':
../Src/usb_cdc_device/usbd_desc.c:47:41: warning: pointer targets in passing argument 1 of 'USBD_GetString' differ in signedness [-Wpointer-sign]
47 | #define USBD_PRODUCT_FS_STRING "STM32 Virtual ComPort in FS Mode"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| char *
../Src/usb_cdc_device/usbd_desc.c:47:41: note: in definition of macro 'USBD_PRODUCT_FS_STRING'
47 | #define USBD_PRODUCT_FS_STRING "STM32 Virtual ComPort in FS Mode"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../Src/usb_cdc_device/usbd_desc.c:31:
../Src/usb_cdc_device/usbd_req.h:92:30: note: expected 'uint8_t *' {aka 'unsigned char *'} but argument is of type 'char *'
92 | void USBD_GetString(uint8_t *desc, uint8_t *unicode, uint16_t *len);
| ~~~~~~~~~^~~~
../Src/usb_cdc_device/usbd_desc.c: In function 'USBD_USR_ManufacturerStrDescriptor':
../Src/usb_cdc_device/usbd_desc.c:42:41: warning: pointer targets in passing argument 1 of 'USBD_GetString' differ in signedness [-Wpointer-sign]
42 | #define USBD_MANUFACTURER_STRING "STMicroelectronics"
| ^~~~~~~~~~~~~~~~~~~~
| |
| char *
../Src/usb_cdc_device/usbd_desc.c:165:19: note: in expansion of macro 'USBD_MANUFACTURER_STRING'
165 | USBD_GetString (USBD_MANUFACTURER_STRING, USBD_StrDesc, length);
| ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../Src/usb_cdc_device/usbd_desc.c:31:
../Src/usb_cdc_device/usbd_req.h:92:30: note: expected 'uint8_t *' {aka 'unsigned char *'} but argument is of type 'char *'
92 | void USBD_GetString(uint8_t *desc, uint8_t *unicode, uint16_t *len);
| ~~~~~~~~~^~~~
../Src/usb_cdc_device/usbd_desc.c: In function 'USBD_USR_SerialStrDescriptor':
../Src/usb_cdc_device/usbd_desc.c:48:41: warning: pointer targets in passing argument 1 of 'USBD_GetString' differ in signedness [-Wpointer-sign]
48 | #define USBD_SERIALNUMBER_FS_STRING "00000000050C"
| ^~~~~~~~~~~~~~
| |
| char *
../Src/usb_cdc_device/usbd_desc.c:178:19: note: in expansion of macro 'USBD_SERIALNUMBER_FS_STRING'
178 | USBD_GetString (USBD_SERIALNUMBER_FS_STRING, USBD_StrDesc, length);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../Src/usb_cdc_device/usbd_desc.c:31:
../Src/usb_cdc_device/usbd_req.h:92:30: note: expected 'uint8_t *' {aka 'unsigned char *'} but argument is of type 'char *'
92 | void USBD_GetString(uint8_t *desc, uint8_t *unicode, uint16_t *len);
| ~~~~~~~~~^~~~
../Src/usb_cdc_device/usbd_desc.c: In function 'USBD_USR_ConfigStrDescriptor':
../Src/usb_cdc_device/usbd_desc.c:53:41: warning: pointer targets in passing argument 1 of 'USBD_GetString' differ in signedness [-Wpointer-sign]
53 | #define USBD_CONFIGURATION_FS_STRING "VCP Config"
| ^~~~~~~~~~~~
| |
| char *
../Src/usb_cdc_device/usbd_desc.c:191:19: note: in expansion of macro 'USBD_CONFIGURATION_FS_STRING'
191 | USBD_GetString (USBD_CONFIGURATION_FS_STRING, USBD_StrDesc, length);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../Src/usb_cdc_device/usbd_desc.c:31:
../Src/usb_cdc_device/usbd_req.h:92:30: note: expected 'uint8_t *' {aka 'unsigned char *'} but argument is of type 'char *'
92 | void USBD_GetString(uint8_t *desc, uint8_t *unicode, uint16_t *len);
| ~~~~~~~~~^~~~
../Src/usb_cdc_device/usbd_desc.c: In function 'USBD_USR_InterfaceStrDescriptor':
../Src/usb_cdc_device/usbd_desc.c:54:41: warning: pointer targets in passing argument 1 of 'USBD_GetString' differ in signedness [-Wpointer-sign]
54 | #define USBD_INTERFACE_FS_STRING "VCP Interface"
| ^~~~~~~~~~~~~~~
| |
| char *
../Src/usb_cdc_device/usbd_desc.c:205:19: note: in expansion of macro 'USBD_INTERFACE_FS_STRING'
205 | USBD_GetString (USBD_INTERFACE_FS_STRING, USBD_StrDesc, length);
| ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../Src/usb_cdc_device/usbd_desc.c:31:
../Src/usb_cdc_device/usbd_req.h:92:30: note: expected 'uint8_t *' {aka 'unsigned char *'} but argument is of type 'char *'
92 | void USBD_GetString(uint8_t *desc, uint8_t *unicode, uint16_t len);
| ~~~~~~~~~^~~~
../Src/usb_cdc_device/usbd_cdc_vcp.c: In function 'VCP_DataRx':
../Src/usb_cdc_device/usbd_cdc_vcp.c:236:3: warning: implicit declaration of function 'INT_USB_VCP_AddReceived' [-Wimplicit-function-declaration]
236 | INT_USB_VCP_AddReceived(
(Buf + i));
| ^~~~~~~~~~~~~~~~~~~~~~~
../Src/usb_cdc_device/usb_bsp.c:65:44: error: 'GPIO_AF_OTG1_FS' undeclared (first use in this function)
65 | GPIO_PinAFConfig(GPIOA, GPIO_PinSource11, GPIO_AF_OTG1_FS);
| ^~~~~~~~~~~~~~~
../Src/usb_cdc_device/usb_bsp.c:66:26: error: 'GPIO_PinSource12' undeclared (first use in this function)
66 | GPIO_PinAFConfig(GPIOA, GPIO_PinSource12, GPIO_AF_OTG1_FS);
| ^~~~~~~~~~~~~~~~
../Src/usb_cdc_device/usb_bsp.c:69:20: error: request for member 'GPIO_Pin' in something not a structure or union
69 | GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
| ^
../Src/usb_cdc_device/usb_bsp.c:69:32: error: 'GPIO_Pin_9' undeclared (first use in this function)
69 | GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
| ^~~~~~~~~~
../Src/usb_cdc_device/usb_bsp.c:70:20: error: request for member 'GPIO_Speed' in something not a structure or union
70 | GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
| ^
../Src/usb_cdc_device/usb_bsp.c:71:20: error: request for member 'GPIO_Mode' in something not a structure or union
71 | GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
| ^
../Src/usb_cdc_device/usb_bsp.c:71:33: error: 'GPIO_Mode_IN' undeclared (first use in this function)
71 | GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
| ^~~~~~~~~~~~
../Src/usb_cdc_device/usb_bsp.c:72:20: error: request for member 'GPIO_OType' in something not a structure or union
72 | GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
| ^
../Src/usb_cdc_device/usb_bsp.c:72:34: error: 'GPIO_OType_OD' undeclared (first use in this function); did you mean 'GPIO_TypeDef'?
72 | GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
| ^~~~~~~~~~~~~
| GPIO_TypeDef
../Src/usb_cdc_device/usb_bsp.c:73:20: error: request for member 'GPIO_PuPd' in something not a structure or union
73 | GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;
| ^
../Src/usb_cdc_device/usb_bsp.c:79:20: error: request for member 'GPIO_Pin' in something not a structure or union
79 | GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
| ^
../Src/usb_cdc_device/usb_bsp.c:79:32: error: 'GPIO_Pin_10' undeclared (first use in this function)
79 | GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
| ^~~~~~~~~~~
../Src/usb_cdc_device/usb_bsp.c:80:20: error: request for member 'GPIO_OType' in something not a structure or union
80 | GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
| ^
../Src/usb_cdc_device/usb_bsp.c:81:20: error: request for member 'GPIO_PuPd' in something not a structure or union
81 | GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ;
| ^
../Src/usb_cdc_device/usb_bsp.c:81:33: error: 'GPIO_PuPd_UP' undeclared (first use in this function)
81 | GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ;
| ^~~~~~~~~~~~
../Src/usb_cdc_device/usb_bsp.c:82:20: error: request for member 'GPIO_Speed' in something not a structure or union
82 | GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
| ^
../Src/usb_cdc_device/usb_bsp.c:84:26: error: 'GPIO_PinSource10' undeclared (first use in this function)
84 | GPIO_PinAFConfig(GPIOA, GPIO_PinSource10, GPIO_AF_OTG1_FS);
| ^~~~~~~~~~~~~~~~
../Src/usb_cdc_device/usb_bsp.c:87:2: warning: implicit declaration of function 'RCC_APB2PeriphClockCmd' [-Wimplicit-function-declaration]
87 | RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
| ^~~~~~~~~~~~~~~~~~~~~~
../Src/usb_cdc_device/usb_bsp.c:87:25: error: 'RCC_APB2Periph_SYSCFG' undeclared (first use in this function)
87 | RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
| ^~~~~~~~~~~~~~~~~~~~~
../Src/usb_cdc_device/usb_bsp.c:88:2: warning: implicit declaration of function 'RCC_AHB2PeriphClockCmd' [-Wimplicit-function-declaration]
88 | RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_OTG_FS, ENABLE);
| ^~~~~~~~~~~~~~~~~~~~~~
arm-none-eabi-gcc "../Src/usb_cdc_device/usbd_ioreq.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F407xx -c -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -I../Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Src/usb_cdc_device/usbd_ioreq.d" -MT"Src/usb_cdc_device/usbd_ioreq.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/usb_cdc_device/usbd_ioreq.o"
../Src/usb_cdc_device/usb_bsp.c:88:25: error: 'RCC_AHB2Periph_OTG_FS' undeclared (first use in this function)
88 | RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_OTG_FS, ENABLE);
| ^~~~~~~~~~~~~~~~~~~~~
arm-none-eabi-gcc "../Src/usb_cdc_device/usbd_req.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F407xx -c -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -I../Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Src/usb_cdc_device/usbd_req.d" -MT"Src/usb_cdc_device/usbd_req.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/usb_cdc_device/usbd_req.o"
../Src/usb_cdc_device/usb_bsp.c: In function 'USB_OTG_BSP_EnableInterrupt':
../Src/usb_cdc_device/usb_bsp.c:140:2: error: unknown type name 'NVIC_InitTypeDef'
140 | NVIC_InitTypeDef NVIC_InitStructure;
| ^~~~~~~~~~~~~~~~
arm-none-eabi-gcc "../Src/usb_cdc_device/usbd_usr.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F407xx -c -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -I../Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Src/usb_cdc_device/usbd_usr.d" -MT"Src/usb_cdc_device/usbd_usr.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/usb_cdc_device/usbd_usr.o"
arm-none-eabi-gcc "../Src/algorithm/FIR.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F407xx -c -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -I../Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Src/algorithm/FIR.d" -MT"Src/algorithm/FIR.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/algorithm/FIR.o"
../Src/usb_cdc_device/usb_bsp.c:142:2: warning: implicit declaration of function 'NVIC_PriorityGroupConfig'; did you mean 'NVIC_GetPriorityGrouping'? [-Wimplicit-function-declaration]
142 | NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
| ^~~~~~~~~~~~~~~~~~~~~~~~
| NVIC_GetPriorityGrouping
arm-none-eabi-gcc "../Src/algorithm/HC_Chen_detect.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F407xx -c -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -I../Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Src/algorithm/HC_Chen_detect.d" -MT"Src/algorithm/HC_Chen_detect.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/algorithm/HC_Chen_detect.o"
../Src/usb_cdc_device/usb_bsp.c:142:27: error: 'NVIC_PriorityGroup_1' undeclared (first use in this function); did you mean 'NVIC_GetPriorityGrouping'?
142 | NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
| ^~~~~~~~~~~~~~~~~~~~
| NVIC_GetPriorityGrouping
../Src/usb_cdc_device/usb_bsp.c:143:20: error: request for member 'NVIC_IRQChannel' in something not a structure or union
143 | NVIC_InitStructure.NVIC_IRQChannel = OTG_FS_IRQn;
| ^
../Src/usb_cdc_device/usb_bsp.c:144:20: error: request for member 'NVIC_IRQChannelPreemptionPriority' in something not a structure or union
144 | NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = USB_VCP_NVIC_PRIORITY;
| ^
../Src/usb_cdc_device/usb_bsp.c:145:20: error: request for member 'NVIC_IRQChannelSubPriority' in something not a structure or union
145 | NVIC_InitStructure.NVIC_IRQChannelSubPriority = USB_VCP_NVIC_SUBPRIORITY + 2;
| ^
../Src/usb_cdc_device/usb_bsp.c:146:20: error: request for member 'NVIC_IRQChannelCmd' in something not a structure or union
146 | NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
| ^
../Src/usb_cdc_device/usb_bsp.c:147:2: warning: implicit declaration of function 'NVIC_Init' [-Wimplicit-function-declaration]
147 | NVIC_Init(&NVIC_InitStructure);
| ^~~~~~~~~
arm-none-eabi-gcc "../Src/algorithm/Pan_Tompkins_detect.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F407xx -c -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -I../Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Src/algorithm/Pan_Tompkins_detect.d" -MT"Src/algorithm/Pan_Tompkins_detect.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/algorithm/Pan_Tompkins_detect.o"
arm-none-eabi-gcc "../Src/algorithm/So_Chen_detect.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F407xx -c -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -I../Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Src/algorithm/So_Chen_detect.d" -MT"Src/algorithm/So_Chen_detect.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/algorithm/So_Chen_detect.o"
../Src/usb_cdc_device/usb_bsp.c: In function 'OTG_FS_WKUP_IRQHandler':
../Src/usb_cdc_device/usb_bsp.c:205:2: warning: implicit declaration of function 'EXTI_ClearITPendingBit' [-Wimplicit-function-declaration]
205 | EXTI_ClearITPendingBit(EXTI_Line18);
| ^~~~~~~~~~~~~~~~~~~~~~
../Src/usb_cdc_device/usb_bsp.c:205:25: error: 'EXTI_Line18' undeclared (first use in this function)
205 | EXTI_ClearITPendingBit(EXTI_Line18);
| ^~~~~~~~~~~
make: *** [Src/usb_cdc_device/subdir.mk:49: Src/usb_cdc_device/usb_bsp.o] Error 1
make: *** Waiting for unfinished jobs....
In file included from ../Src/usb_cdc_device/usbd_conf.h:33,
from ../Src/usb_cdc_device/usbd_def.h:34,
from ../Src/usb_cdc_device/usbd_ioreq.h:34,
from ../Src/usb_cdc_device/usbd_ioreq.c:29:
../Src/usb_cdc_device/usb_conf.h:240: warning: "__packed" redefined
240 | #define __packed attribute ((packed))
|
In file included from c:\st\stm32cubeide_1.12.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\include\stdio.h:35,
from ../Src/usb_cdc_device/usb_conf.h:35,
from ../Src/usb_cdc_device/usbd_conf.h:33,
from ../Src/usb_cdc_device/usbd_def.h:34,
from ../Src/usb_cdc_device/usbd_ioreq.h:34,
from ../Src/usb_cdc_device/usbd_ioreq.c:29:
c:\st\stm32cubeide_1.12.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\include\sys\cdefs.h:247: note: this is the location of the previous definition
247 | #define __packed attribute((packed))
|
In file included from ../Src/usb_cdc_device/usbd_conf.h:33,
from ../Src/usb_cdc_device/usbd_def.h:34,
from ../Src/usb_cdc_device/usbd_req.h:34,
from ../Src/usb_cdc_device/usbd_req.c:29:
../Src/usb_cdc_device/usb_conf.h:240: warning: "__packed" redefined
240 | #define __packed attribute ((packed))
|
In file included from c:\st\stm32cubeide_1.12.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\include\stdio.h:35,
from ../Src/usb_cdc_device/usb_conf.h:35,
from ../Src/usb_cdc_device/usbd_conf.h:33,
from ../Src/usb_cdc_device/usbd_def.h:34,
from ../Src/usb_cdc_device/usbd_req.h:34,
from ../Src/usb_cdc_device/usbd_req.c:29:
c:\st\stm32cubeide_1.12.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\include\sys\cdefs.h:247: note: this is the location of the previous definition
247 | #define __packed attribute((packed))
|
../Src/algorithm/FIR.c: In function 'FIR_filter':
../Src/algorithm/FIR.c:6:23: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
6 | float *coeff = coefficients;
| ^~~~~~~~~~~~
../Src/algorithm/FIR.c:7:23: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
7 | float *coeff_end = coefficients + taps;
| ^~~~~~~~~~~~
../Src/usb_cdc_device/usbd_req.c: In function 'USBD_GetString':
../Src/usb_cdc_device/usbd_req.c:828:18: warning: comparison between pointer and integer
828 | while (*desc != NULL)
| ^~
../Src/usb_cdc_device/usbd_req.c: In function 'USBD_GetLen':
../Src/usb_cdc_device/usbd_req.c:846:17: warning: comparison between pointer and integer
846 | while (*buf != NULL)
| ^~
In file included from ../Src/usb_cdc_device/usb_core.h:33,
from ../Src/usb_cdc_device/usb_dcd.h:33,
from ../Src/usb_cdc_device/usbd_core.h:33,
from ../Src/usb_cdc_device/usbd_usr.h:33,
from ../Src/usb_cdc_device/usbd_usr.c:29:
../Src/usb_cdc_device/usb_conf.h:240: warning: "__packed" redefined
240 | #define __packed attribute ((packed))
|
In file included from c:\st\stm32cubeide_1.12.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\include\stdio.h:35,
from ../Src/usb_cdc_device/usb_conf.h:35,
from ../Src/usb_cdc_device/usb_core.h:33,
from ../Src/usb_cdc_device/usb_dcd.h:33,
from ../Src/usb_cdc_device/usbd_core.h:33,
from ../Src/usb_cdc_device/usbd_usr.h:33,
from ../Src/usb_cdc_device/usbd_usr.c:29:
c:\st\stm32cubeide_1.12.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\include\sys\cdefs.h:247: note: this is the location of the previous definition
247 | #define __packed attribute((packed))
|
../Src/algorithm/So_Chen_detect.c: In function 'So_Chen_detect':
../Src/algorithm/So_Chen_detect.c:16:19: warning: unused variable 'value' [-Wunused-variable]
16 | SignalPoint value;
| ^~~~~
"make -j8 all" terminated with exit code 2. Build might be incomplete.

23:02:52 Build Failed. 42 errors, 32 warnings. (took 1s.883ms)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.