Commit Graph

129 Commits

Author SHA1 Message Date
rusefillc 9ce37314c0 Engine phase wrap around in log #3645
refactoring & docs
2021-12-02 17:06:20 -05:00
Scott Smith 9d61fb4cfd Drop SingleChannelStateSequence in favor of MultiChannelStateSequenceWithData (#3519)
* Drop SingleChannelStateSequence in favor of MultiChannelStateSequenceWithData

Most all the users were Multi* anyways, so just improve that:
1. Allow up to 8 waveforms to share one byte per timestamp.  It could be better but this is simple
   and gets most of the benefit.
2. Use a wrapper structure to handle reserving space for the arrays.  Makes the interface simpler
   and more rigid.  Also saves 4 bytes per Multi*.  Downside is access is now via -> and *,
   not . and (nothing).

Saves 224 bytes of BSS, 1832 bytes of RAM4/CCM, 952 bytes of TEXT, and 103 bytes of RODATA

* Instantiate a base_t to make debugging easier.
Also fixes crash on real firmware by using &m_base instead - LTO optimization issue?

* No magical templated StaticAlloc thingy.  Just virtual functions.
2021-11-21 04:56:07 -05:00
Matthew Kennedy 569415930c detect more overflows with asan (#3582)
* overflow detector

* type list dynamic allocate

* fix the buffer length

* comment

* pr fb

* sanitize sim

* fix sim sanitizer bug

* didn't mean to turn off optimization for sim

* asan can do that, if you turn it on!

* cleaning
2021-11-20 01:38:39 -05:00
rusefillc a3fc6d3e80 brave refactoring 2021-11-19 23:56:52 -05:00
Scott Smith 659cc68be1 Final cleanup of ENGINE macros (#3567)
Fix some uses of ENGINE() not detected by regex due to parenthesis.
Remove now empty engine_ptr.h
Don't worry about EFI_* not being defined, the compiler defaults to 0 if they aren't.
2021-11-17 13:45:10 -05:00
Scott Smith 80091498a6 Programmatically replace ENGINE() and CONFIG() with engine-> etc (#3565)
git grep -l -w ENGINE | xargs sed -i -r "s/ENGINE\(([]a-zA-Z_0-9.[]+)\)/engine->\1/g"

git grep -l -w CONFIG | xargs sed -i -r "s/([^a-zA-Z_])CONFIG\(([]a-zA-Z_0-9.[]+)\)/\1engineConfiguration->\2/g"
2021-11-17 03:54:21 -05:00
Matthew Kennedy 7296593448 remove engine pointer passing (#3556)
* some

* more

* more

* the last?!
2021-11-16 04:15:29 -05:00
rusefillc 8cb1f2545c trigger refactoring & docs 2021-11-14 15:35:11 -05:00
Scott Smith 93d31c6c9b Convert TriggerWaveform::wave to a pointer in preparation for code-defined sequences. (#3528)
It will eventually be class to support dynamic universal patterns in addition to ROM-based
tables.
2021-11-11 13:19:25 -05:00
Scott Smith 1a299a3221 Move phaseCount into MultiChannelStateSequence (#3520)
We can them drop the field from a bunch of callers, simplifying the code.
2021-11-10 19:47:27 -05:00
rusefillc 38ea0d1835 Revert "Don't keep a separate MultiChannelStateSequence for the trigger emulator. (#3513)"
This reverts commit 4e220dc163.
2021-11-09 20:42:23 -05:00
Scott Smith 4e220dc163 Don't keep a separate MultiChannelStateSequence for the trigger emulator. (#3513)
All it wants is to use the main trigger state, so don't bother copying it.  Instead, change
PwmConfig to take a const pointer to a Multi.*Sequence, then make all the users adapt.  Worse
fallout is that SimplePwm now has its own Multi.*Sequence, but PwmConfig is downgraded to a
pointer, so that's only a net +4 bytes.  And we can make the overhead of Multi.*Sequence much lower
using embedded arrays, which only the caller can do since it knows the maximum size... (for another
day...)

Also remove SimplePwm's 2nd copy of SingleChannelStateSequence.  It served no purpose.

Saves 1992 bytes of BSS and 24 bytes of RAM4 (latter probably due to SimplePwm change)
2021-11-09 14:35:07 -05:00
Scott Smith 9b40e68155 Save ~2800 bytes of RAM by not caching angle->trigger mapping (#3506)
Memory seems more valuable than CPU; use the O(lg n) lookup by angle.  A side effect is that it
seems to fix trigger lookup for the second phase of TRIGGERTYPE 53 544 TT_TRI _TACH 0.00
2021-11-09 07:03:27 -05:00
Andrey 94faa375e1 reducing complexity 2021-11-07 01:57:32 -05:00
rusefillc d0a8bbc974 typo 2021-11-07 01:51:05 -05:00
rusefillc 4f6dc57d31 refactoring - magic constant bad
cypress and kinetis both have this macro already
2021-11-07 01:34:16 -04:00
rusefillc 73fe152db2 refactoring - magic constant bad
cypress and kinetis both have this macro already
2021-11-07 01:28:28 -04:00
rusefillc fd28e82f73 refactoring - magic constant bad 2021-11-07 00:03:16 -04:00
Andrey 1685ec95cf Honda K cam wheels #3405 2021-10-28 19:26:59 -04:00
Andrey 94b5b3a089 Honda K cam wheels #3405 2021-10-28 11:40:31 -04:00
Matthew Kennedy 98c4e71f03 enable address sanitizer (#3217)
* enable asan

* lua

* this is dead and leaky

* leaky nissan

* fix pwm generator use-after-stack

* initializers

* prevent problems in case of invalid trigger shape

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-09-05 05:56:59 -04:00
Andrey c9360448cc NB2 trigger shape does not seem to match JimStim #2980
only first steps of unit test
2021-07-17 17:47:32 -04:00
Andrey d76132c206 refactoring 2021-07-17 00:46:39 -04:00
rusefillc 206bf7adc8 reducing warnings 2021-07-13 14:50:10 -04:00
Andrey 4627707e1c refactoring - explicit read method 2021-06-26 22:17:07 -04:00
Andrey 1003056f85 refactoring - explicit read method 2021-06-26 22:07:45 -04:00
Andrey 62ecef3e3f Override trigger gaps feature #2734 2021-05-23 19:51:00 -04:00
Matthew Kennedy b6fc9befc8 finish it off: remove scheduleMsg (#2575)
* finish it off

* one more logger ptr

* fwd decl

* Revert "one more logger ptr"

This reverts commit a21fb0087ddc748978d716db2710800cf26e437b.

* unused

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-04-21 15:33:40 -04:00
Matthew Kennedy 5f0791f9fb Destroy all shared logger (#2574)
* most of shared logger

* a few more

* one more

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-04-21 14:28:48 -04:00
rusefillc 782ae69cc3 GM/Daewoo 60/2/2/2 Trigger Pattern #2264 2021-02-01 23:44:14 -05:00
rusefi 0cc7cb8eb4 Revert "Save more space in the angle cache (#2228)"
This reverts commit 1800219e
2021-01-18 18:53:00 -05:00
Matthew Kennedy 1800219e44 Save more space in the angle cache (#2228)
* store event angles in a scaled field

* tests

* comment
2021-01-18 18:31:06 -05:00
Matthew Kennedy a294dfeadd save 1440 bytes (#2226) 2021-01-16 21:22:30 -05:00
Matthew Kennedy b047ec4f12 clean up some includes (#2227)
* cleanup

* make c happy
2021-01-16 09:45:45 -05:00
rusefillc 4072db3052 trigger lifecycle 2020-12-09 12:19:25 -05:00
rusefillc 9871d5b501 refactoring: magic constants 2020-12-04 16:24:19 -05:00
rusefillc 5ae3347927 6.1 Hemi V8 decoder #2010 2020-12-04 16:03:27 -05:00
rusefillc 2b2ffe9d7d 6.1 Hemi V8 decoder #2010 2020-12-04 15:33:07 -05:00
rusefillc 45e47220ab 6.1 Hemi V8 decoder #2010 2020-12-04 15:22:53 -05:00
rusefillc 7327fd6e6c all triggers should be documented way nicer #2001 2020-12-02 22:17:38 -05:00
Matthew Kennedy 060cfbd778 const ref-ify trigger (#1856)
* const ref-ify

* tests
2020-10-05 14:22:59 -04:00
rusefillc 9808e675f5 Trigger performance: variable gapTrackingLength #1851
cool change but looks to have made zero difference
2020-10-04 13:05:49 -04:00
rusefi 0992f90f18 VVT support for VAG trigger #883 2020-08-26 20:57:11 -04:00
rusefi 470a9f5a5a VVT support for VAG trigger #883 2020-08-25 12:45:18 -04:00
rusefi 7d53f5859d VVT support for VAG trigger #883 2020-08-25 00:59:07 -04:00
rusefi 978c3ff16d VVT support for VAG trigger #883
a bit of dead code?
2020-08-24 02:31:27 -04:00
rusefi c1a4bd857b TT_HONDA_K_12_1 2020-04-19 14:23:01 -04:00
rusefi 4967e8ba7b better trigger definition API 2020-04-18 20:28:03 -04:00
Matthew Kennedy eb46d7bd58 warnings (#1169) 2020-03-03 08:37:02 -05:00
rusefi 6c70f390da trigger shape constraint validation 2020-01-14 03:54:46 -05:00
rusefi abe1b8c1f3 refactoring: no need to specify parameter manually 2020-01-12 10:43:02 -05:00
rusefi 63e3e84e08 happy new year 2020-01-08 00:02:40 -05:00
rusefi bcec694eb1 just a trivial massive rename: TriggerState > TriggerWaveform 2019-12-08 01:09:39 -05:00
rusefi 889ee45c16 typo 2019-12-06 00:07:27 -05:00
rusefi 561986d3e4 The Big Refactoring of 2019: folder structure #723 2019-12-04 01:11:10 -05:00
rusefi c5e60a7f93 improving API? 2019-11-24 00:15:44 -05:00
rusefi 79ada84b56 'triggerEventAngle' not really needed 2019-11-23 17:44:44 -05:00
rusefi 4cebc85cbf refactoring 2019-11-20 01:35:08 -05:00
rusefi 19bdb9a35f docs & code formatting 2019-11-19 18:17:03 -05:00
rusefi 7e1e7629ee refactoring: better field name(s) 2019-10-08 01:03:57 -04:00
rusefi 46e1ff671a refactoring: better field name 2019-10-08 00:54:19 -04:00
rusefi 4c1c497bbc refactoring: smarter C++ initialization 2019-10-08 00:27:49 -04:00
rusefi 9112b7f797 WTF is wrong with MRE_miata_na6 config? operationMode complexity #898
fatal error is the best I can come up with quickly
2019-08-08 22:57:22 -04:00
rusefi 43962ccff0 WFT is wrong with MRE_miata_na6 config? operationMode complexity #898
more refactoring
2019-08-08 00:30:32 -04:00
rusefi d6cf6c312a refactoring: extracting method to facilitate debugging 2019-08-07 22:02:08 -04:00
Matthew Kennedy 515ab03688 const, explicit, and override (#831)
* const, explicit, and override

* more const

* more const

* missed a spot
2019-06-08 09:51:36 -04:00
rusefi abc8545b47 typo 2019-05-10 22:43:03 -04:00
rusefi aefcbe0895 refactoring: better method name 2019-05-02 18:05:33 -04:00
rusefi 884c54a185 defined(__DOXYGEN__) ? #748 2019-04-12 22:07:03 -04:00
rusefi e28ce71bb8 unifying_file_naming 2019-03-29 09:11:13 -04:00
dron0gus 2027977e2c warning cleanup (#693)
* Kill annoing warnings about unused vars

* Kill annoing signed vs unsigned warnings

* Make ALWAYS_INLINE macro realy inlining

* Incorrect attribute placement.

While correct attribute placement cause ram4 overflow.
Move to correct place (to avoid gcc-2018-q4 errors) and comment
out.

* Silence -Wcast-function-type warnings

Cast to intermediate "void *" to lose compiler knowledge about the original
type and pass the warning. This is a workaround.
2019-02-21 05:44:45 -05:00
rusefi 8fee275f53 Refactor Trigger System #635
better field names
2019-02-03 01:49:41 -05:00
rusefi 8d3d716d7f Refactor Trigger System #635 2019-02-03 01:34:20 -05:00
rusefi 0b41d011b7 Refactor Trigger System #635 2019-02-03 01:19:16 -05:00
rusefi 4d368e0ca8 Refactor Trigger System #635 2019-02-03 01:04:24 -05:00
rusefi 57c6b75e81 #657 pulling global access down 2019-01-28 00:44:30 -05:00
rusefi 689726c801 enjoying C++11 2019-01-14 00:20:50 -05:00
rusefi 7ba963ab3b #635 2019-01-01 14:05:11 -05:00
rusefi 095d9d4417 #625 big step - no more engine dependency from TriggerShape 2018-12-25 22:47:29 -05:00