Commit Graph

7193 Commits

Author SHA1 Message Date
rusefillc ad7c5d9aae where are we now? 2021-11-11 10:36:31 -05:00
Scott Smith aec887efc8 Change users of MultiChannelStateSequence to use the API (#3524)
Better than reaching into members that should be private. I didn't feel like actually making
them private though, as one user validates pinStates isn't NULL.
2021-11-11 09:19:22 -05:00
rusefillc 1f415a0212 Idle valve outputs not available in TS #3523 2021-11-10 21:07:38 -05:00
GitHub build-firmware Action 17b786734c Auto-generated configs and docs 2021-11-11 01:46:41 +00:00
rusefillc 371f0ca72c Idle valve outputs not available in TS #3523 2021-11-10 20:40:42 -05:00
GitHub build-firmware Action 993a2111dd Auto-generated configs and docs 2021-11-11 01:09:25 +00: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
rusefi 35f6ac4305 open q 2021-11-10 19:24:17 -05:00
Scott Smith 5bd7d8e372 Don't keep a separate MultiChannelStateSequence for the trigger emulator, version 2. (#3517)
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-10 07:01:20 -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
GitHub set-date Action 150019b0ed Update date 2021-11-10 01:00:05 +00:00
GitHub build-firmware Action 6b39c9f5f1 Auto-generated configs and docs 2021-11-09 20:43:52 +00: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
GitHub build-firmware Action 3484c3270b Auto-generated configs and docs 2021-11-09 02:36:07 +00:00
GitHub build-firmware Action e63e942fb5 Auto-generated configs and docs 2021-11-09 02:26:06 +00:00
rusefi 99a90309ef why is meat allowed to touch machine?! 2021-11-08 20:49:12 -05:00
rusefi 8bab53c1fd nicer messages 2021-11-08 20:49:12 -05:00
GitHub build-firmware Action 464332e5be Auto-generated configs and docs 2021-11-09 01:26:41 +00:00
GitHub set-date Action 3168ccd62c Update date 2021-11-09 01:00:19 +00:00
rusefi 69a53c565f pid demo progress 2021-11-08 17:31:33 -05:00
GitHub build-firmware Action dbecc45968 Auto-generated configs and docs 2021-11-08 22:24:44 +00:00
Scott Smith 8639b7c7e4 Make getTimeNowNt even faster (#3504)
The last version is already much better than the original, mostly because it doesn't call
CriticalSectionLocker, which has a ton of overhead due to debug tracking.  But this version is
another 4 instructions / 12 bytes shorter.  Does as much match in 32-bit land as possible, and
avoids math operations that span 64-bits (i.e. either operate on the lower half or upper half, but
not both).  The result is only 3 instructions not including the necessary 4 loads (ptr to now, now,
ptr to upper, upper), 1 store (upper), and 1 return/branch.
2021-11-08 14:24:31 -05:00
Andrey 2166a5ba16 ETB: do not touch HW pins if function not selected, this way Lua can use DC motor hardware pins directly 2021-11-08 12:44:37 -05:00
Andrey 757cd10c1f docs 2021-11-08 12:23:00 -05:00
Scott Smith 2752c39d7f Change getTimeNowNt to be lock free. (#3502)
Track the top two bits of the 32-bit time field, along with the bits that comprise the top half of
the 64-bit time field.  We can detect when the 32-bit field is advancing or falling back from the
global time counter as long as the change is less than about 1 billion ticks.  This shows up as
either 01 or 11 in the top 2 bits of the 32-bit time field relative to the 64-bit field.  Or is
there is no change it shows up as 00.  Changes of 2 billion or more cannot be discerned as +2
billion and -2 billion both show up as 10.

Change the simulator to use this logic to make sure it gets some exercise.
2021-11-08 08:24:20 -05:00
GitHub build-firmware Action f6aac4b1f9 Auto-generated configs and docs 2021-11-08 03:23:43 +00:00
GitHub set-date Action db5ef62885 Update date 2021-11-08 01:02:17 +00:00
GitHub build-firmware Action 41fe16ed40 Auto-generated configs and docs 2021-11-07 18:40:19 +00:00
GitHub build-firmware Action 678f5db3b9 Auto-generated configs and docs 2021-11-07 15:30:54 +00:00
Andrey 49d4dea65e lua pid class #3411 2021-11-07 09:53:40 -05:00
Andrey c98bfecf11 lua pid class #3411 2021-11-07 09:49:47 -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
GitHub build-firmware Action fdc32277ea Auto-generated configs and docs 2021-11-07 04:44:16 +00:00
rusefillc 5ddd516860 refactoring - magic constant bad 2021-11-07 00:09:17 -04:00
rusefillc fd28e82f73 refactoring - magic constant bad 2021-11-07 00:03:16 -04:00
GitHub build-firmware Action 2ee8ecb287 Auto-generated configs and docs 2021-11-07 03:59:47 +00:00
rusefillc eb4ef563dd a bit of dead code 2021-11-06 23:39:56 -04:00
GitHub build-firmware Action 1ce3fa63b7 Auto-generated configs and docs 2021-11-07 03:33:26 +00:00
GitHub build-firmware Action 7df704907c Auto-generated configs and docs 2021-11-07 02:14:13 +00:00
rusefillc 3f278e989b a bit of dead code 2021-11-06 21:19:56 -04:00
GitHub build-firmware Action 4dca92f21e Auto-generated configs and docs 2021-11-07 01:05:29 +00:00
rusefillc 31347d66be a bit of dead code 2021-11-06 21:01:01 -04:00
Andrey e3355ab2d3 Remove Miata MX5 NB1 trigger #3488 2021-11-06 20:24:41 -04:00
GitHub build-firmware Action cab19aeba0 Auto-generated configs and docs 2021-11-06 23:15:42 +00:00
rusefillc faa8abf673 a bit of dead code 2021-11-06 18:43:19 -04:00
GitHub build-firmware Action beb2083509 Auto-generated configs and docs 2021-11-06 22:37:34 +00:00