debevv / nanoMODBUS

A compact MODBUS RTU/TCP C library for embedded/microcontrollers
MIT License
234 stars 47 forks source link

Not compiling with SDCC #32

Closed DracoTomes closed 1 year ago

DracoTomes commented 1 year ago

Hi,

I'm using platformio to develop for an STM8 but nanoMODBUS is not compiling.

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/ststm8/stm8sblue.html
PLATFORM: ST STM8 (2.1.0) > ST STM8S103F3 Breakout Board
HARDWARE: STM8S103F3P6 16MHz, 1KB RAM, 8KB Flash
DEBUG: Current (stlink) External (stlink)
PACKAGES:
 - framework-arduinoststm8 @ 0.50.210317
 - tool-stm8binutils @ 0.230.0 (2.30)
 - toolchain-sdcc @ 1.30901.11242 (3.9.1)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 13 compatible libraries
Scanning dependencies...
Dependency Graph
|-- nanoModbus
Building in release mode
Compiling .pio\build\stm8sblue\src\main.c.rel
Compiling .pio\build\stm8sblue\libb6b\nanoModbus\nanomodbus.c.rel
src\main.c:32: warning 85: in function read_serial unreferenced function argument : 'arg'
src\main.c:51: warning 85: in function write_serial unreferenced function argument : 'arg'
src\main.c:63: warning 85: in function handler_read_holding_registers unreferenced function argument : 'unit_id'
src\main.c:63: warning 85: in function handler_read_holding_registers unreferenced function argument : 'arg'
lib\nanoModbus\nanomodbus.c:1152: error 2: Initializer element is not a constant expression
lib\nanoModbus\nanomodbus.c:1290: error 0: Duplicate symbol 'subreq_file_number', symbol IGNORED
lib\nanoModbus\nanomodbus.c:1261: error 177: previously defined here
lib\nanoModbus\nanomodbus.c:1291: error 0: Duplicate symbol 'subreq_record_number', symbol IGNORED
lib\nanoModbus\nanomodbus.c:1262: error 177: previously defined here
lib\nanoModbus\nanomodbus.c:1292: error 0: Duplicate symbol 'subreq_record_length', symbol IGNORED
lib\nanoModbus\nanomodbus.c:1263: error 177: previously defined here
lib\nanoModbus\nanomodbus.c:1293: error 20: Undefined identifier 'subreq_record_length'
lib\nanoModbus\nanomodbus.c:1296: error 20: Undefined identifier 'subreq_file_number'
lib\nanoModbus\nanomodbus.c:1296: error 20: Undefined identifier 'subreq_record_number'
lib\nanoModbus\nanomodbus.c:1297: error 20: Undefined identifier 'subreq_record_length'
lib\nanoModbus\nanomodbus.c:1305: error 20: Undefined identifier 'subreq_record_length'
lib\nanoModbus\nanomodbus.c:1311: error 20: Undefined identifier 'subreq_record_length'
*** [.pio\build\stm8sblue\libb6b\nanoModbus\nanomodbus.c.rel] Error 1
========================================================================================= [FAILED] Took 10.02 seconds =========================================================================================

I'm new to C development and microcontrollers in general so I'm sorry if this is something obvious.

Any help is appreciated.

debevv commented 1 year ago

Can you try building with the --std-c99 compiler flag? I expect it to fix at least the errors about undefined identifiers

DracoTomes commented 1 year ago

Doesn't seem that way. I also put it on verbose maybe you can get some more info from there

Processing stm8sblue (platform: ststm8; board: stm8sblue; framework: arduino)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/ststm8/stm8sblue.html
PLATFORM: ST STM8 (2.1.0) > ST STM8S103F3 Breakout Board
HARDWARE: STM8S103F3P6 16MHz, 1KB RAM, 8KB Flash
DEBUG: Current (stlink) External (stlink)
PACKAGES:
 - framework-arduinoststm8 @ 0.50.210317
 - tool-stm8binutils @ 0.230.0 (2.30)
 - toolchain-sdcc @ 1.30901.11242 (3.9.1)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 14 compatible libraries
Scanning dependencies...
Dependency Graph
|-- nanoModbus
Building in release mode
Compiling .pio\build\stm8sblue\_pio_main_ref.c.rel
Compiling .pio\build\stm8sblue\src\main.c.rel
Compiling .pio\build\stm8sblue\libb6b\nanoModbus\nanomodbus.c.rel
Archiving .pio\build\stm8sblue\libFrameworkArduinoVariant.lib
Compiling .pio\build\stm8sblue\FrameworkArduino\HardwareSerial.c-1.c.rel
Compiling .pio\build\stm8sblue\FrameworkArduino\HardwareSerial.c-10.c.rel
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__SIn file included from C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\HardwareSerial.c-1.c:1:
C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\/HardwareSerial.c.h:38:2: warning: #warning "using uart1 for HardwareSerial"
TIn file included from C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\HardwareSerial.c-10.c:1:
C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\/HardwareSerial.c.h:38:2: warning: #warning "using uart1 for HardwareSerial"
DC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -DIn file included from C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\HardwareSerial.c-2.c:1:
C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\/HardwareSerial.c.h:38:2: warning: #warning "using uart1 for HardwareSerial"
In file included from C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\HardwareSerial.c-3.c:1:
C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\/HardwareSerial.c.h:38:2: warning: #warning "using uart1 for HardwareSerial"
In file included from C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\HardwareSerial.c-6.c:1:
__STDCC:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\/HardwareSerial.c.h:38:2: warning: #warning "using uart1 for HardwareSerial"
In file included from C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\HardwareSerial.c-4.c:1:
C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\/HardwareSerial.c.h:38:2: warning: #warning "using uart1 for HardwareSerial"
_UTF_32_In file included from C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\HardwareSerial.c-7.c:1:
C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\/HardwareSerial.c.h:38:2: warning: #warning "using uart1 for HardwareSerial"
_=1 In file included from C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\HardwareSerial.c-5.c:1:
-isystemC:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\/HardwareSerial.c.h:38:2: warning: #warning "using uart1 for HardwareSerial"
 "In file included from C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\HardwareSerial.c-8.c:1:
C:\Users\VinC:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\/HardwareSerial.c.h:38:2: warning: #warning "using uart1 for HardwareSerial"
cent\.platforIn file included from C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\HardwareSerial.c-9.c:1:
C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\/HardwareSerial.c.h:38:2: warning: #warning "using uart1 for HardwareSerial"
mio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  ".pio\build\stm8sblue\_pio_main_ref.c" 
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\_pio_main_ref.c".asm"
Compiling .pio\build\stm8sblue\FrameworkArduino\HardwareSerial.c-2.c.rel
Compiling .pio\build\stm8sblue\FrameworkArduino\HardwareSerial.c-3.c.rel
Compiling .pio\build\stm8sblue\FrameworkArduino\HardwareSerial.c-4.c.rel
Compiling .pio\build\stm8sblue\FrameworkArduino\HardwareSerial.c-5.c.rel
Compiling .pio\build\stm8sblue\FrameworkArduino\HardwareSerial.c-6.c.rel
Compiling .pio\build\stm8sblue\FrameworkArduino\HardwareSerial.c-7.c.rel
Compiling .pio\build\stm8sblue\FrameworkArduino\HardwareSerial.c-8.c.rel
Compiling .pio\build\stm8sblue\FrameworkArduino\HardwareSerial.c-9.c.rel
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\HardwareSerial.c-2.c"
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\HardwareSerial.c-2.c".asm"
Compiling .pio\build\stm8sblue\FrameworkArduino\Print-float.c.rel
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\HardwareSerial.c-5.c"
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\HardwareSerial.c-5.c".asm"
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\HardwareSerial.c-10.c"
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\HardwareSerial.c-10.c".asm"
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\HardwareSerial.c-3.c"
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\HardwareSerial.c-3.c".asm"
Compiling .pio\build\stm8sblue\FrameworkArduino\Print.c.rel
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"lib\nanoModbus" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 -D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "lib\nanoModbus\nanomodbus.c"
sdcc: Generating code...
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\HardwareSerial.c-4.c"
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\HardwareSerial.c-4.c".asm"
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\HardwareSerial.c-7.c"
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\HardwareSerial.c-7.c".asm"
sdcc: Calling preprocessor...
src\main.c:32: warning 85: in function read_serial unreferenced function argument : 'arg'
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000src\main.c:51: warning 85: in function write_serial unreferenced function argument : 'arg'
000L" -src\main.c:63: warning 85: in function handler_read_holding_registers unreferenced function argument : 'unit_id'
D"Psrc\main.c:63: warning 85: in function handler_read_holding_registers unreferenced function argument : 'arg'
LATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 -D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\HardwareSerial.c-1.c"
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\HardwareSerial.c-1.c".asm"
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\HardwareSerial.c-6.c"
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\HardwareSerial.c-6.c".asm"
Compiling .pio\build\stm8sblue\FrameworkArduino\SPI.c.rel
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\HardwareSerial.c-9.c"
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\HardwareSerial.c-9.c".asm"
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\HardwareSerial.c-8.c"
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\HardwareSerial.c-8.c".asm"
Compiling .pio\build\stm8sblue\FrameworkArduino\WInterrupts.c.rel
C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\weak_atexit.c:13: warning 85: in function atexit unreferenced function argument : 'func'
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"include" -I"src" -I"lib\nanoModbus" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 -D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "src\main.c"
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\src\main.c".asm"
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\Print.c"
sdcc: Generating code...
Compiling .pio\build\stm8sblue\FrameworkArduino\WMath.c.rel
Compiling .pio\build\stm8sblue\FrameworkArduino\weak_atexit.c.rel
Compiling .pio\build\stm8sblue\FrameworkArduino\weak_serialEvent.c.rel
Compiling .pio\build\stm8sblue\FrameworkArduino\weak_initVariant.c.rel
Compiling .pio\build\stm8sblue\FrameworkArduino\main.c.rel
Compiling .pio\build\stm8sblue\FrameworkArduino\wiring-alternate-function.c.rel
Compiling .pio\build\stm8sblue\FrameworkArduino\wiring-delay-microseconds.c.rel
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\SPI.c"
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\SPI.c".asm"
sdcc: Calling preprocessor...
C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\WInterrupts.c:73: warning 85: in function attachInterrupt unreferenced function argument : 'mode'
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\weak_initVariant.c"
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\weak_initVariant.c".asm"
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\weak_atexit.c" 
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\weak_atexit.c".asm"
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\Print.c".asm"
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\Print-float.c" 
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\Print-float.c".asm"
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\wiring-alternate-function.c"
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\wiring-alternate-function.c".asm"
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platfC:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\wiring_digital.c-4.c:114:63: warning: missing terminating ' character
ormio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\weak_serialEvent.c"
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\weak_serialEvent.c".asm"
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\WInterrupts.c"
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\WInterrupts.c".asm"
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\main.c"
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\main.c".asm"
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\WMath.c"
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\WMath.c".asm"
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\wiring-delay-microseconds.c"
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\wiring-delay-microseconds.c".asm"
Compiling .pio\build\stm8sblue\FrameworkArduino\wiring-delay.c.rel
Compiling .pio\build\stm8sblue\FrameworkArduino\wiring-init.c.rel
Compiling .pio\build\stm8sblue\FrameworkArduino\wiring-millis.c.rel
Compiling .pio\build\stm8sblue\FrameworkArduino\wiring_digital-tables.c.rel
Compiling .pio\build\stm8sblue\FrameworkArduino\wiring_digital.c-2.c.rel
Compiling .pio\build\stm8sblue\FrameworkArduino\wiring_digital.c-3.c.rel
Compiling .pio\build\stm8sblue\FrameworkArduino\wiring_digital.c-1.c.rel
Compiling .pio\build\stm8sblue\FrameworkArduino\wiring_analog.c.rel
Compiling .pio\build\stm8sblue\FrameworkArduino\wiring-micros.c.rel
Compiling .pio\build\stm8sblue\FrameworkArduino\wiring_digital.c-4.c.rel
Compiling .pio\build\stm8sblue\FrameworkArduino\wiring_digital.c-5.c.rel
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\wiring-init.c"
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\wiring-init.c".asm"
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\wiring_digital-tables.c"
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\wiring_digital-tables.c".asm"
Compiling .pio\build\stm8sblue\FrameworkArduino\wiring_digital.c-6.c.rel
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\wiring-delay.c"
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\wiring-delay.c".asm"
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\wiring_digital.c-1.c" 
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\wiring_digital.c-1.c".asm"
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\wiring_digital.c-3.c"
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\wiring_digital.c-3.c".asm"
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\wiring_digital.c-2.c"
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\wiring_digital.c-2.c".asm"
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\wiring-millis.c"
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\wiring-millis.c".asm"
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\wiring_digital.c-4.c"
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\wiring_digital.c-4.c".asm"
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\wiring_digital.c-5.c"
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\wiring_digital.c-5.c".asm"
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\wiring_analog.c"
sdcc: Generating code...
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\wiring-micros.c"
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\wiring-micros.c".asm"
Compiling .pio\build\stm8sblue\FrameworkArduino\wiring_digital.c-7.c.rel
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\wiring_digital.c-6.c" 
sdcc: Generating code...
Compiling .pio\build\stm8sblue\FrameworkArduino\wiring_pulse.c.rel
Compiling .pio\build\stm8sblue\FrameworkArduino\wiring_shift.c.rel
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\wiring_analog.c".asm"
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\wiring_shift.c" 
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\wiring_digital.c-6.c".asm"
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\wiring_digital.c-7.c"
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\wiring_digital.c-7.c".asm"
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\wiring_shift.c".asm"
sdcc: Calling preprocessor...
sdcc: sdcpp -nostdinc -Wall -std=c99 -D"F_CPU=16000000L" -D"PLATFORMIO=60107" -D"STM8S_BLUE" -D"STM8S103" -D"ARDUINO_ARCH_STM8" -D"ARDUINO=10802" -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\STM8S_StdPeriph_Driver\inc" -I"C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\variants\standard" -obj-ext=.rel -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_9_1 -D__SDCC_VERSION_MAJOR=3 
-D__SDCC_VERSION_MINOR=9 -D__SDCC_VERSION_PATCH=1 -D__SDCC_REVISION=11242 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include\stm8" -isystem "C:\Users\Vincent\.platformio\packages\toolchain-sdcc\bin\..\include"  "C:\Users\Vincent\.platformio\packages\framework-arduinoststm8\cores\sduino\wiring_pulse.c"
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: sdasstm8 -plosgffw "".pio\build\stm8sblue\FrameworkArduino\wiring_pulse.c".asm"
Archiving .pio\build\stm8sblue\libFrameworkArduino.lib
lib\nanoModbus\nanomodbus.c:1152: error 2: Initializer element is not a constant expression
lib\nanoModbus\nanomodbus.c:1290: error 0: Duplicate symbol 'subreq_file_number', symbol IGNORED
lib\nanoModbus\nanomodbus.c:1261: error 177: previously defined here
lib\nanoModbus\nanomodbus.c:1291: error 0: Duplicate symbol 'subreq_record_number', symbol IGNORED
lib\nanoModbus\nanomodbus.c:1262: error 177: previously defined here
lib\nanoModbus\nanomodbus.c:1292: error 0: Duplicate symbol 'subreq_record_length', symbol IGNORED
lib\nanoModbus\nanomodbus.c:1263: error 177: previously defined here
lib\nanoModbus\nanomodbus.c:1293: error 20: Undefined identifier 'subreq_record_length'
lib\nanoModbus\nanomodbus.c:1296: error 20: Undefined identifier 'subreq_file_number'
lib\nanoModbus\nanomodbus.c:1296: error 20: Undefined identifier 'subreq_record_number'
lib\nanoModbus\nanomodbus.c:1297: error 20: Undefined identifier 'subreq_record_length'
lib\nanoModbus\nanomodbus.c:1305: error 20: Undefined identifier 'subreq_record_length'
lib\nanoModbus\nanomodbus.c:1311: error 20: Undefined identifier 'subreq_record_length'
*** [.pio\build\stm8sblue\libb6b\nanoModbus\nanomodbus.c.rel] Error 1
========================================================================================= [FAILED] Took 11.39 seconds =========================================================================================
debevv commented 1 year ago

I never used this compiler, so I made a couple of tests:

So I would say, since all the errors are inside handle_read_file_record(), as a workaround you could disable it by defining NMBS_SERVER_READ_FILE_RECORD_DISABLED, if you don't plan on using FC 20 . Otherwise this function should be substantially changed to remove the usage of features not supported by SDCC

EDIT the errors are inside handle_read_file_record() and handle_write_file_record(), so they should be both disabled

debevv commented 1 year ago

Ok, it was not that bad after all. Can you try this branch https://github.com/debevv/nanoMODBUS/tree/sdcc_compat and see if it builds?

DracoTomes commented 1 year ago

The new new one builds with the c99 flag. The defines didn't do anything.

debevv commented 1 year ago

The new new one builds with the c99 flag.

Nice! Also I think the --std-c99 was never necessary, so you can omit it

The defines didn't do anything.

Strange, how are you defining them? I added -DNMBS_SERVER_READ_FILE_RECORD_DISABLED -DNMBS_SERVER_WRITE_FILE_RECORD_DISABLED to the sdcc command line and these functions were skipped as expected

DracoTomes commented 1 year ago

I just put

#define NMBS_SERVER_READ_FILE_RECORD_DISABLED
#define NMBS_SERVER_WRITE_FILE_RECORD_DISABLED

into my main.c.

debevv commented 1 year ago

That won't work, because #defines are scoped inside each compilation unit (.c files), so in this case they should be defined inside nanomodbus.c. But, since it's better to not change the code of external libraries, they are usually put in the build command line.

Anyway, I'll keep this issue open in case you discover other problems, otherwise I'll close it after a while and make a release with these fixes

debevv commented 1 year ago

ae6a93c963b497fc71296aa727ba09b40c15a2e7

arhiv6 commented 1 year ago

@debevv, I want to discuss about commit a08d59c. I think, it is non-optimal memory usage in struct subreq. Now, it usage 7*23=245 bytes on stack always. It may be big for embedded devices. It's a shame that almost always only the first element will be used (when we didn't use multiple sub-requests in one request). Maybe we can leave variable-length array (VLA)? VLA is part of C99 standard. Old versions SDCC were not supported VLA, but it fixed in last year and it already available in SDCC-4.3.0-RC1. Also, I can offer next variant:

struct {
        uint8_t reference_type;
        uint16_t file_number;
        uint16_t record_number;
        uint16_t record_length;
    }
#ifdef __STDC_NO_VLA__
    subreq[35];    // 245 / subreq_header_size
#else
    subreq[subreq_count];
#endif

Macros __STDC_NO_VLA__ is is part of the standard С11, but old versions SDCC understand it too, including --std-c99.

What do you think?

debevv commented 12 months ago

@arhiv6 Yes, that would be a downside of this approach. But consider that this is not the only place where it happens: the first one it comes to my mind is in handle_read_discrete() where a whole nmbs_bitfield is loaded onto the stack (or, in general, the nmbs_bitfield array itself when used by the user). For me it's a decent compromise between memory usage and ease of development.
Anyway, in this case it doesn't make sense to not use your solution, I really didn't know the existence of these macros. I will implement it asap

PS are you sure about SDCC 4.3.0 rc1? Because I tried 4.9.0 and the VLA didn't compile (see my previous comment)

arhiv6 commented 12 months ago

I checked VLA in SDCC 4.3.0 and it not fully supported :( They added support VLA to their changelog and removed the line from the "SDCC Compiler User Guide" that VLA is not supported. I will send them a issue. But this is not so important if you use a macro __STDC_NO_VLA__. Good news: I checked supporting macros __STDC_NO_VLA__ for different SDCC versions. It supported since version 3.2 (released in July 2012) to last version 4.3 (released 07.07.2023).

Where did you get version 4.9.0? Maybe we are talking about different compilers? I checked it: https://sdcc.sourceforge.net/.

debevv commented 12 months ago

@arhiv6 sorry it was a typo, I meant 4.3.0

debevv commented 12 months ago

@debevv, I want to discuss about commit a08d59c. I think, it is non-optimal memory usage in struct subreq. Now, it usage 7*23=245 bytes on stack always. It may be big for embedded devices. It's a shame that almost always only the first element will be used (when we didn't use multiple sub-requests in one request). Maybe we can leave variable-length array (VLA)? VLA is part of C99 standard. Old versions SDCC were not supported VLA, but it fixed in last year and it already available in SDCC-4.3.0-RC1. Also, I can offer next variant:

struct {
        uint8_t reference_type;
        uint16_t file_number;
        uint16_t record_number;
        uint16_t record_length;
    }
#ifdef __STDC_NO_VLA__
    subreq[35];    // 245 / subreq_header_size
#else
    subreq[subreq_count];
#endif

Macros __STDC_NO_VLA__ is is part of the standard С11, but old versions SDCC understand it too, including --std-c99.

What do you think?

e3456986b551c891d4b95e89aaf5eded15e6f3a2