wierd bug with uint8_t or bool in struct of FSM, updated FSM to uint32_t in/outputs

This commit is contained in:
Simon Schmidt 2021-07-07 15:34:36 +02:00
parent 0cd46a3c9f
commit fb3a438eb0
5 changed files with 882 additions and 0 deletions

@ -0,0 +1,276 @@
//
// Academic License - for use in teaching, academic research, and meeting
// course requirements at degree granting institutions only. Not for
// government, commercial, or other organizational use.
//
// File: FSMTreppe.cpp
//
// Code generated for Simulink model 'FSMTreppe'.
//
// Model version : 1.49
// Simulink Coder version : 9.5 (R2021a) 14-Nov-2020
// C/C++ source code generated on : Wed Jul 7 15:27:06 2021
//
// Target selection: ert.tlc
// Embedded hardware selection: ARM Compatible->ARM Cortex-M
// Code generation objectives: Unspecified
// Validation result: Not run
//
#include "FSMTreppe3.h"
// Named constants for Chart: '<Root>/FSMTreppe'
const uint8_t FSMTreppe_IN_abdimmen_hoch = 1U;
const uint8_t FSMTreppe_IN_abdimmen_ldr = 2U;
const uint8_t FSMTreppe_IN_abdimmen_runter = 3U;
const uint8_t FSMTreppe_IN_aufdimmen_hoch = 4U;
const uint8_t FSMTreppe_IN_aufdimmen_ldr = 5U;
const uint8_t FSMTreppe_IN_aufdimmen_runter = 6U;
const uint8_t FSMTreppe_IN_inaktiv = 7U;
const uint8_t FSMTreppe_IN_ruhezustand = 8U;
const uint8_t FSMTreppe_IN_warten_hoch = 9U;
const uint8_t FSMTreppe_IN_warten_runter = 10U;
// Model step function
void FSMTreppeModelClass::step()
{
// Chart: '<Root>/FSMTreppe' incorporates:
// Inport: '<Root>/anim_beendet'
// Inport: '<Root>/ldr_schwelle'
// Inport: '<Root>/sensor_oben'
// Inport: '<Root>/sensor_unten'
if (FSMTreppe_DW.temporalCounter_i1 < 511U) {
FSMTreppe_DW.temporalCounter_i1 = static_cast<uint16_t>
(FSMTreppe_DW.temporalCounter_i1 + 1U);
}
if (FSMTreppe_DW.is_active_c3_FSMTreppe == 0U) {
FSMTreppe_DW.is_active_c3_FSMTreppe = 1U;
FSMTreppe_DW.is_c3_FSMTreppe = FSMTreppe_IN_inaktiv;
// Outport: '<Root>/status'
FSMTreppe_Y.status = 0U;
} else {
switch (FSMTreppe_DW.is_c3_FSMTreppe) {
case FSMTreppe_IN_abdimmen_hoch:
// Outport: '<Root>/dimmrichtung'
FSMTreppe_Y.dimmrichtung = 0U;
// Outport: '<Root>/status'
FSMTreppe_Y.status = 6U;
if ((FSMTreppe_U.anim_beendet == 1U) || (FSMTreppe_DW.temporalCounter_i1 >=
500U)) {
FSMTreppe_DW.is_c3_FSMTreppe = FSMTreppe_IN_ruhezustand;
// Outport: '<Root>/status'
FSMTreppe_Y.status = 3U;
}
break;
case FSMTreppe_IN_abdimmen_ldr:
// Outport: '<Root>/status'
FSMTreppe_Y.status = 2U;
// Outport: '<Root>/dimmrichtung'
FSMTreppe_Y.dimmrichtung = 0U;
if ((FSMTreppe_U.anim_beendet == 1U) || (FSMTreppe_DW.temporalCounter_i1 >=
500U)) {
FSMTreppe_DW.is_c3_FSMTreppe = FSMTreppe_IN_inaktiv;
// Outport: '<Root>/status'
FSMTreppe_Y.status = 0U;
}
break;
case FSMTreppe_IN_abdimmen_runter:
// Outport: '<Root>/dimmrichtung'
FSMTreppe_Y.dimmrichtung = 0U;
// Outport: '<Root>/status'
FSMTreppe_Y.status = 9U;
if ((FSMTreppe_U.anim_beendet == 1U) || (FSMTreppe_DW.temporalCounter_i1 >=
500U)) {
FSMTreppe_DW.is_c3_FSMTreppe = FSMTreppe_IN_ruhezustand;
// Outport: '<Root>/status'
FSMTreppe_Y.status = 3U;
}
break;
case FSMTreppe_IN_aufdimmen_hoch:
// Outport: '<Root>/laufrichtung'
FSMTreppe_Y.laufrichtung = 1U;
// Outport: '<Root>/dimmrichtung'
FSMTreppe_Y.dimmrichtung = 1U;
// Outport: '<Root>/status'
FSMTreppe_Y.status = 4U;
if ((FSMTreppe_U.anim_beendet == 1U) || (FSMTreppe_DW.temporalCounter_i1 >=
500U)) {
FSMTreppe_DW.is_c3_FSMTreppe = FSMTreppe_IN_warten_hoch;
FSMTreppe_DW.temporalCounter_i1 = 0U;
// Outport: '<Root>/status'
FSMTreppe_Y.status = 5U;
}
break;
case FSMTreppe_IN_aufdimmen_ldr:
// Outport: '<Root>/status'
FSMTreppe_Y.status = 1U;
// Outport: '<Root>/dimmrichtung'
FSMTreppe_Y.dimmrichtung = 1U;
if ((FSMTreppe_U.anim_beendet == 1U) || (FSMTreppe_DW.temporalCounter_i1 >=
500U)) {
FSMTreppe_DW.is_c3_FSMTreppe = FSMTreppe_IN_ruhezustand;
// Outport: '<Root>/status'
FSMTreppe_Y.status = 3U;
}
break;
case FSMTreppe_IN_aufdimmen_runter:
// Outport: '<Root>/laufrichtung'
FSMTreppe_Y.laufrichtung = 0U;
// Outport: '<Root>/dimmrichtung'
FSMTreppe_Y.dimmrichtung = 1U;
// Outport: '<Root>/status'
FSMTreppe_Y.status = 7U;
if ((FSMTreppe_U.anim_beendet == 1U) || (FSMTreppe_DW.temporalCounter_i1 >=
500U)) {
FSMTreppe_DW.is_c3_FSMTreppe = FSMTreppe_IN_warten_runter;
FSMTreppe_DW.temporalCounter_i1 = 0U;
// Outport: '<Root>/status'
FSMTreppe_Y.status = 8U;
}
break;
case FSMTreppe_IN_inaktiv:
// Outport: '<Root>/status'
FSMTreppe_Y.status = 0U;
if (FSMTreppe_U.ldr_schwelle == 1U) {
FSMTreppe_DW.is_c3_FSMTreppe = FSMTreppe_IN_aufdimmen_ldr;
FSMTreppe_DW.temporalCounter_i1 = 0U;
// Outport: '<Root>/status'
FSMTreppe_Y.status = 1U;
// Outport: '<Root>/dimmrichtung'
FSMTreppe_Y.dimmrichtung = 1U;
}
break;
case FSMTreppe_IN_ruhezustand:
// Outport: '<Root>/status'
FSMTreppe_Y.status = 3U;
if (FSMTreppe_U.ldr_schwelle == 0U) {
FSMTreppe_DW.is_c3_FSMTreppe = FSMTreppe_IN_abdimmen_ldr;
FSMTreppe_DW.temporalCounter_i1 = 0U;
// Outport: '<Root>/status'
FSMTreppe_Y.status = 2U;
// Outport: '<Root>/dimmrichtung'
FSMTreppe_Y.dimmrichtung = 0U;
} else if (FSMTreppe_U.sensor_unten == 1U) {
FSMTreppe_DW.is_c3_FSMTreppe = FSMTreppe_IN_aufdimmen_hoch;
FSMTreppe_DW.temporalCounter_i1 = 0U;
// Outport: '<Root>/laufrichtung'
FSMTreppe_Y.laufrichtung = 1U;
// Outport: '<Root>/dimmrichtung'
FSMTreppe_Y.dimmrichtung = 1U;
// Outport: '<Root>/status'
FSMTreppe_Y.status = 4U;
} else if (FSMTreppe_U.sensor_oben == 1U) {
FSMTreppe_DW.is_c3_FSMTreppe = FSMTreppe_IN_aufdimmen_runter;
FSMTreppe_DW.temporalCounter_i1 = 0U;
// Outport: '<Root>/laufrichtung'
FSMTreppe_Y.laufrichtung = 0U;
// Outport: '<Root>/dimmrichtung'
FSMTreppe_Y.dimmrichtung = 1U;
// Outport: '<Root>/status'
FSMTreppe_Y.status = 7U;
}
break;
case FSMTreppe_IN_warten_hoch:
// Outport: '<Root>/status'
FSMTreppe_Y.status = 5U;
if ((FSMTreppe_U.sensor_oben == 1U) || (FSMTreppe_DW.temporalCounter_i1 >=
500U)) {
FSMTreppe_DW.is_c3_FSMTreppe = FSMTreppe_IN_abdimmen_hoch;
FSMTreppe_DW.temporalCounter_i1 = 0U;
// Outport: '<Root>/dimmrichtung'
FSMTreppe_Y.dimmrichtung = 0U;
// Outport: '<Root>/status'
FSMTreppe_Y.status = 6U;
}
break;
default:
// Outport: '<Root>/status'
// case IN_warten_runter:
FSMTreppe_Y.status = 8U;
if ((FSMTreppe_U.sensor_unten == 1U) || (FSMTreppe_DW.temporalCounter_i1 >=
500U)) {
FSMTreppe_DW.is_c3_FSMTreppe = FSMTreppe_IN_abdimmen_runter;
FSMTreppe_DW.temporalCounter_i1 = 0U;
// Outport: '<Root>/dimmrichtung'
FSMTreppe_Y.dimmrichtung = 0U;
// Outport: '<Root>/status'
FSMTreppe_Y.status = 9U;
}
break;
}
}
// End of Chart: '<Root>/FSMTreppe'
}
// Model initialize function
void FSMTreppeModelClass::initialize()
{
// (no initialization code required)
}
// Model terminate function
void FSMTreppeModelClass::terminate()
{
// (no terminate code required)
}
// Constructor
FSMTreppeModelClass::FSMTreppeModelClass() :
FSMTreppe_DW(),
FSMTreppe_U(),
FSMTreppe_Y()
{
// Currently there is no constructor body generated.
}
// Destructor
FSMTreppeModelClass::~FSMTreppeModelClass()
{
// Currently there is no destructor body generated.
}
//
// File trailer for generated code.
//
// [EOF]
//

@ -0,0 +1,120 @@
//
// Academic License - for use in teaching, academic research, and meeting
// course requirements at degree granting institutions only. Not for
// government, commercial, or other organizational use.
//
// File: FSMTreppe.h
//
// Code generated for Simulink model 'FSMTreppe'.
//
// Model version : 1.49
// Simulink Coder version : 9.5 (R2021a) 14-Nov-2020
// C/C++ source code generated on : Wed Jul 7 15:27:06 2021
//
// Target selection: ert.tlc
// Embedded hardware selection: ARM Compatible->ARM Cortex-M
// Code generation objectives: Unspecified
// Validation result: Not run
//
#ifndef RTW_HEADER_FSMTreppe_h_
#define RTW_HEADER_FSMTreppe_h_
#include <cstdint>
// Class declaration for model FSMTreppe
class FSMTreppeModelClass {
// public data and function members
public:
// Block states (default storage) for system '<Root>'
struct DW_FSMTreppe_T {
uint16_t temporalCounter_i1; // '<Root>/FSMTreppe'
uint8_t is_active_c3_FSMTreppe; // '<Root>/FSMTreppe'
uint8_t is_c3_FSMTreppe; // '<Root>/FSMTreppe'
};
// External inputs (root inport signals with default storage)
struct ExtU_FSMTreppe_T {
uint32_t sensor_unten; // '<Root>/sensor_unten'
uint32_t sensor_oben; // '<Root>/sensor_oben'
uint32_t anim_beendet; // '<Root>/anim_beendet'
uint32_t ldr_schwelle; // '<Root>/ldr_schwelle'
};
// External outputs (root outports fed by signals with default storage)
struct ExtY_FSMTreppe_T {
uint32_t laufrichtung; // '<Root>/laufrichtung'
uint32_t status; // '<Root>/status'
uint32_t dimmrichtung; // '<Root>/dimmrichtung'
};
// model initialize function
void initialize();
// model step function
void step();
// model terminate function
void terminate();
// Constructor
FSMTreppeModelClass();
// Destructor
~FSMTreppeModelClass();
// Root-level structure-based inputs set method
// Root inports set method
void setExternalInputs(const ExtU_FSMTreppe_T* pExtU_FSMTreppe_T)
{
FSMTreppe_U = *pExtU_FSMTreppe_T;
}
// Root-level structure-based outputs get method
// Root outports get method
const FSMTreppeModelClass::ExtY_FSMTreppe_T & getExternalOutputs() const
{
return FSMTreppe_Y;
}
// private data and function members
private:
// Block states
DW_FSMTreppe_T FSMTreppe_DW;
// External inputs
ExtU_FSMTreppe_T FSMTreppe_U;
// External outputs
ExtY_FSMTreppe_T FSMTreppe_Y;
};
//-
// The generated code includes comments that allow you to trace directly
// back to the appropriate location in the model. The basic format
// is <system>/block_name, where system is the system number (uniquely
// assigned by Simulink) and block_name is the name of the block.
//
// Note that this particular code originates from a subsystem build,
// and has its own system numbers different from the parent model.
// Refer to the system hierarchy for this subsystem below, and use the
// MATLAB hilite_system command to trace the generated code back
// to the parent model. For example,
//
// hilite_system('FSM_Treppenlicht/FSMTreppe') - opens subsystem FSM_Treppenlicht/FSMTreppe
// hilite_system('FSM_Treppenlicht/FSMTreppe/Kp') - opens and selects block Kp
//
// Here is the system hierarchy for this model
//
// '<Root>' : 'FSM_Treppenlicht'
// '<S1>' : 'FSM_Treppenlicht/FSMTreppe'
#endif // RTW_HEADER_FSMTreppe_h_
//
// File trailer for generated code.
//
// [EOF]
//

@ -0,0 +1,243 @@
.file "FSMTreppe3.cpp"
.text
.section .text._ZN19FSMTreppeModelClass4stepEv,"ax",@progbits
.literal_position
.literal .LC0, .L7
.align 4
.global _ZN19FSMTreppeModelClass4stepEv
.type _ZN19FSMTreppeModelClass4stepEv, @function
_ZN19FSMTreppeModelClass4stepEv:
l16ui a3, a2, 0
movi a4, 0x1fe
bltu a4, a3, .L2
addi.n a3, a3, 1
s16i a3, a2, 0
.L2:
l8ui a3, a2, 2
bnez.n a3, .L3
movi a4, 0x701
s16i a4, a2, 2
j .L35
.L3:
l8ui a3, a2, 3
movi.n a4, 8
addi.n a3, a3, -1
extui a3, a3, 0, 8
bltu a4, a3, .L5
l32r a4, .LC0
addx4 a3, a3, a4
l32i.n a3, a3, 0
jx a3
.align 4
.align 4
.L7:
.word .L15
.word .L14
.word .L13
.word .L12
.word .L11
.word .L10
.word .L9
.word .L8
.word .L6
.L15:
movi.n a3, 0
s8i a3, a2, 10
movi.n a3, 6
.L39:
s8i a3, a2, 9
.L38:
l8ui a3, a2, 6
beqz.n a3, .L33
.L17:
movi.n a3, 8
s8i a3, a2, 3
movi.n a3, 3
j .L35
.L14:
movi.n a3, 2
s8i a3, a2, 9
movi.n a3, 0
s8i a3, a2, 10
l8ui a3, a2, 6
bnez.n a3, .L18
l16ui a3, a2, 0
movi a4, 0x1f3
bgeu a4, a3, .L1
.L18:
movi.n a3, 7
s8i a3, a2, 3
movi.n a3, 0
j .L35
.L13:
movi.n a3, 0
s8i a3, a2, 10
movi.n a3, 9
j .L39
.L12:
movi a3, 0x401
s16i a3, a2, 8
movi.n a3, 1
s8i a3, a2, 10
l8ui a3, a2, 6
bnez.n a3, .L20
l16ui a3, a2, 0
movi a4, 0x1f3
bgeu a4, a3, .L1
.L20:
movi.n a3, 9
s8i a3, a2, 3
movi.n a3, 0
s16i a3, a2, 0
movi.n a3, 5
j .L35
.L11:
movi.n a3, 1
s8i a3, a2, 9
s8i a3, a2, 10
j .L38
.L33:
l16ui a3, a2, 0
movi a4, 0x1f3
bltu a4, a3, .L17
j .L1
.L10:
movi a3, 0x700
s16i a3, a2, 8
movi.n a3, 1
s8i a3, a2, 10
l8ui a3, a2, 6
bnez.n a3, .L21
l16ui a3, a2, 0
movi a4, 0x1f3
bgeu a4, a3, .L1
.L21:
movi.n a3, 0xa
s8i a3, a2, 3
movi.n a3, 0
s16i a3, a2, 0
movi.n a3, 8
j .L35
.L9:
movi.n a3, 0
s8i a3, a2, 9
l8ui a3, a2, 7
beqz.n a3, .L1
movi.n a3, 5
s8i a3, a2, 3
movi.n a3, 0
s16i a3, a2, 0
movi.n a3, 1
s8i a3, a2, 9
j .L37
.L8:
movi.n a3, 3
s8i a3, a2, 9
l8ui a3, a2, 7
bnez.n a3, .L22
movi.n a4, 2
s8i a4, a2, 3
s16i a3, a2, 0
s8i a4, a2, 9
j .L37
.L22:
l8ui a3, a2, 4
beqz.n a3, .L23
movi.n a3, 4
s8i a3, a2, 3
movi.n a3, 0
s16i a3, a2, 0
movi a3, 0x401
j .L36
.L23:
l8ui a4, a2, 5
beqz.n a4, .L1
movi.n a4, 6
s16i a3, a2, 0
s8i a4, a2, 3
movi a3, 0x700
.L36:
s16i a3, a2, 8
movi.n a3, 1
.L37:
s8i a3, a2, 10
j .L1
.L6:
movi.n a3, 5
s8i a3, a2, 9
l8ui a3, a2, 5
bnez.n a3, .L24
l16ui a3, a2, 0
movi a4, 0x1f3
bgeu a4, a3, .L1
.L24:
movi.n a3, 1
s8i a3, a2, 3
movi.n a3, 0
s16i a3, a2, 0
s8i a3, a2, 10
movi.n a3, 6
j .L35
.L5:
l8ui a3, a2, 4
s8i a4, a2, 9
bnez.n a3, .L25
l16ui a3, a2, 0
movi a4, 0x1f3
bgeu a4, a3, .L1
.L25:
movi.n a3, 3
s8i a3, a2, 3
movi.n a3, 0
s16i a3, a2, 0
s8i a3, a2, 10
movi.n a3, 9
.L35:
s8i a3, a2, 9
.L1:
ret.n
.size _ZN19FSMTreppeModelClass4stepEv, .-_ZN19FSMTreppeModelClass4stepEv
.section .text._ZN19FSMTreppeModelClass10initializeEv,"ax",@progbits
.literal_position
.align 4
.global _ZN19FSMTreppeModelClass10initializeEv
.type _ZN19FSMTreppeModelClass10initializeEv, @function
_ZN19FSMTreppeModelClass10initializeEv:
ret.n
.size _ZN19FSMTreppeModelClass10initializeEv, .-_ZN19FSMTreppeModelClass10initializeEv
.section .text._ZN19FSMTreppeModelClass9terminateEv,"ax",@progbits
.literal_position
.align 4
.global _ZN19FSMTreppeModelClass9terminateEv
.type _ZN19FSMTreppeModelClass9terminateEv, @function
_ZN19FSMTreppeModelClass9terminateEv:
ret.n
.size _ZN19FSMTreppeModelClass9terminateEv, .-_ZN19FSMTreppeModelClass9terminateEv
.section .text._ZN19FSMTreppeModelClassC2Ev,"ax",@progbits
.literal_position
.align 4
.global _ZN19FSMTreppeModelClassC2Ev
.type _ZN19FSMTreppeModelClassC2Ev, @function
_ZN19FSMTreppeModelClassC2Ev:
movi.n a3, 0
s16i a3, a2, 0
s16i a3, a2, 2
s16i a3, a2, 4
s16i a3, a2, 6
s16i a3, a2, 8
s8i a3, a2, 10
ret.n
.size _ZN19FSMTreppeModelClassC2Ev, .-_ZN19FSMTreppeModelClassC2Ev
.global _ZN19FSMTreppeModelClassC1Ev
.set _ZN19FSMTreppeModelClassC1Ev,_ZN19FSMTreppeModelClassC2Ev
.section .text._ZN19FSMTreppeModelClassD2Ev,"ax",@progbits
.literal_position
.align 4
.global _ZN19FSMTreppeModelClassD2Ev
.type _ZN19FSMTreppeModelClassD2Ev, @function
_ZN19FSMTreppeModelClassD2Ev:
ret.n
.size _ZN19FSMTreppeModelClassD2Ev, .-_ZN19FSMTreppeModelClassD2Ev
.global _ZN19FSMTreppeModelClassD1Ev
.set _ZN19FSMTreppeModelClassD1Ev,_ZN19FSMTreppeModelClassD2Ev
.ident "GCC: (GNU) 10.3.0"

@ -0,0 +1,242 @@
.file "FSMTreppe3.cpp"
.text
.section .text._ZN19FSMTreppeModelClass4stepEv,"ax",@progbits
.literal_position
.literal .LC0, .L7
.align 4
.global _ZN19FSMTreppeModelClass4stepEv
.type _ZN19FSMTreppeModelClass4stepEv, @function
_ZN19FSMTreppeModelClass4stepEv:
l16ui a3, a2, 0
movi a4, 0x1fe
bltu a4, a3, .L2
addi.n a3, a3, 1
s16i a3, a2, 0
.L2:
l8ui a3, a2, 2
bnez.n a3, .L3
movi a4, 0x701
s16i a4, a2, 2
j .L35
.L3:
l8ui a3, a2, 3
movi.n a4, 8
addi.n a3, a3, -1
extui a3, a3, 0, 8
bltu a4, a3, .L5
l32r a4, .LC0
addx4 a3, a3, a4
l32i.n a3, a3, 0
jx a3
.align 4
.align 4
.L7:
.word .L15
.word .L14
.word .L13
.word .L12
.word .L11
.word .L10
.word .L9
.word .L8
.word .L6
.L15:
movi.n a3, 0
s8i a3, a2, 14
movi.n a3, 6
.L39:
s8i a3, a2, 13
.L38:
l8ui a3, a2, 6
beqz.n a3, .L33
.L17:
movi.n a3, 8
s8i a3, a2, 3
movi.n a3, 3
j .L35
.L14:
movi.n a3, 2
s8i a3, a2, 13
movi.n a3, 0
s8i a3, a2, 14
l8ui a3, a2, 6
bnez.n a3, .L18
l16ui a3, a2, 0
movi a4, 0x1f3
bgeu a4, a3, .L1
.L18:
movi.n a3, 7
s8i a3, a2, 3
movi.n a3, 0
j .L35
.L13:
movi.n a3, 0
s8i a3, a2, 14
movi.n a3, 9
j .L39
.L12:
movi a3, 0x401
s16i a3, a2, 12
movi.n a3, 1
s8i a3, a2, 14
l8ui a3, a2, 6
bnez.n a3, .L20
l16ui a3, a2, 0
movi a4, 0x1f3
bgeu a4, a3, .L1
.L20:
movi.n a3, 9
s8i a3, a2, 3
movi.n a3, 0
s16i a3, a2, 0
movi.n a3, 5
j .L35
.L11:
movi.n a3, 1
s8i a3, a2, 13
s8i a3, a2, 14
j .L38
.L33:
l16ui a3, a2, 0
movi a4, 0x1f3
bltu a4, a3, .L17
j .L1
.L10:
movi a3, 0x700
s16i a3, a2, 12
movi.n a3, 1
s8i a3, a2, 14
l8ui a3, a2, 6
bnez.n a3, .L21
l16ui a3, a2, 0
movi a4, 0x1f3
bgeu a4, a3, .L1
.L21:
movi.n a3, 0xa
s8i a3, a2, 3
movi.n a3, 0
s16i a3, a2, 0
movi.n a3, 8
j .L35
.L9:
movi.n a3, 0
s8i a3, a2, 13
l32i.n a3, a2, 8
beqz.n a3, .L1
movi.n a3, 5
s8i a3, a2, 3
movi.n a3, 0
s16i a3, a2, 0
movi.n a3, 1
s8i a3, a2, 13
j .L37
.L8:
movi.n a3, 3
s8i a3, a2, 13
l32i.n a3, a2, 8
bnez.n a3, .L22
movi.n a4, 2
s8i a4, a2, 3
s16i a3, a2, 0
s8i a4, a2, 13
j .L37
.L22:
l8ui a3, a2, 4
beqz.n a3, .L23
movi.n a3, 4
s8i a3, a2, 3
movi.n a3, 0
s16i a3, a2, 0
movi a3, 0x401
j .L36
.L23:
l8ui a4, a2, 5
beqz.n a4, .L1
movi.n a4, 6
s16i a3, a2, 0
s8i a4, a2, 3
movi a3, 0x700
.L36:
s16i a3, a2, 12
movi.n a3, 1
.L37:
s8i a3, a2, 14
j .L1
.L6:
movi.n a3, 5
s8i a3, a2, 13
l8ui a3, a2, 5
bnez.n a3, .L24
l16ui a3, a2, 0
movi a4, 0x1f3
bgeu a4, a3, .L1
.L24:
movi.n a3, 1
s8i a3, a2, 3
movi.n a3, 0
s16i a3, a2, 0
s8i a3, a2, 14
movi.n a3, 6
j .L35
.L5:
l8ui a3, a2, 4
s8i a4, a2, 13
bnez.n a3, .L25
l16ui a3, a2, 0
movi a4, 0x1f3
bgeu a4, a3, .L1
.L25:
movi.n a3, 3
s8i a3, a2, 3
movi.n a3, 0
s16i a3, a2, 0
s8i a3, a2, 14
movi.n a3, 9
.L35:
s8i a3, a2, 13
.L1:
ret.n
.size _ZN19FSMTreppeModelClass4stepEv, .-_ZN19FSMTreppeModelClass4stepEv
.section .text._ZN19FSMTreppeModelClass10initializeEv,"ax",@progbits
.literal_position
.align 4
.global _ZN19FSMTreppeModelClass10initializeEv
.type _ZN19FSMTreppeModelClass10initializeEv, @function
_ZN19FSMTreppeModelClass10initializeEv:
ret.n
.size _ZN19FSMTreppeModelClass10initializeEv, .-_ZN19FSMTreppeModelClass10initializeEv
.section .text._ZN19FSMTreppeModelClass9terminateEv,"ax",@progbits
.literal_position
.align 4
.global _ZN19FSMTreppeModelClass9terminateEv
.type _ZN19FSMTreppeModelClass9terminateEv, @function
_ZN19FSMTreppeModelClass9terminateEv:
ret.n
.size _ZN19FSMTreppeModelClass9terminateEv, .-_ZN19FSMTreppeModelClass9terminateEv
.section .text._ZN19FSMTreppeModelClassC2Ev,"ax",@progbits
.literal_position
.align 4
.global _ZN19FSMTreppeModelClassC2Ev
.type _ZN19FSMTreppeModelClassC2Ev, @function
_ZN19FSMTreppeModelClassC2Ev:
movi.n a3, 0
s32i.n a3, a2, 0
s32i.n a3, a2, 4
s32i.n a3, a2, 8
s16i a3, a2, 12
s8i a3, a2, 14
ret.n
.size _ZN19FSMTreppeModelClassC2Ev, .-_ZN19FSMTreppeModelClassC2Ev
.global _ZN19FSMTreppeModelClassC1Ev
.set _ZN19FSMTreppeModelClassC1Ev,_ZN19FSMTreppeModelClassC2Ev
.section .text._ZN19FSMTreppeModelClassD2Ev,"ax",@progbits
.literal_position
.align 4
.global _ZN19FSMTreppeModelClassD2Ev
.type _ZN19FSMTreppeModelClassD2Ev, @function
_ZN19FSMTreppeModelClassD2Ev:
ret.n
.size _ZN19FSMTreppeModelClassD2Ev, .-_ZN19FSMTreppeModelClassD2Ev
.global _ZN19FSMTreppeModelClassD1Ev
.set _ZN19FSMTreppeModelClassD1Ev,_ZN19FSMTreppeModelClassD2Ev
.ident "GCC: (GNU) 10.3.0"

@ -0,0 +1 @@
C:\Users\simon\.platformio\packages\toolchain-xtensa\bin\xtensa-lx106-elf-g++.exe -S -fno-rtti -std=gnu++17 -fno-exceptions -Os -mlongcalls -mtext-section-literals -falign-functions=4 -U__STRICT_ANSI__ -D_GNU_SOURCE -ffunction-sections -fdata-sections -Wall -Werror=return-type -free -fipa-pta -DPLATFORMIO=50200 -DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ADAFRUIT_HUZZAH -DF_CPU=80000000L -D__ets__ -DICACHE_FLASH -DARDUINO=10805 -DARDUINO_BOARD=\"PLATFORMIO_HUZZAH\" -DFLASHMODE_QIO -DLWIP_OPEN_SRC -DNONOSDK22x_190703=1 -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DVTABLES_IN_FLASH -DMMU_IRAM_SIZE=0x8000 -DMMU_ICACHE_SIZE=0x8000 -Ilib\treppe -Ilib\PCA9685-Arduino\src -IC:\Users\simon\.platformio\packages\framework-arduinoespressif8266\libraries\Wire -IC:\Users\simon\.platformio\packages\framework-arduinoespressif8266\tools\sdk\include -IC:\Users\simon\.platformio\packages\framework-arduinoespressif8266\cores\esp8266 -IC:\Users\simon\.platformio\packages\toolchain-xtensa\include -IC:\Users\simon\.platformio\packages\framework-arduinoespressif8266\tools\sdk\lwip2\include -IC:\Users\simon\.platformio\packages\framework-arduinoespressif8266\variants\adafruit lib\treppe\FSMTreppe3\FSMTreppe3.cpp