Commit Graph

7368 Commits

Author SHA1 Message Date
rusefillc 6d58518fb2 Proteus Harley 2021-11-12 21:56:07 -05:00
GitHub set-date Action e3a3bd6b7a Update date 2021-11-13 01:04:13 +00:00
GitHub build-firmware Action aae236188c Auto-generated configs and docs 2021-11-12 04:15:01 +00:00
GitHub build-firmware Action bcdea6b33a Auto-generated configs and docs 2021-11-12 04:00:30 +00:00
GitHub build-firmware Action 0c8f9dd01d Auto-generated configs and docs 2021-11-12 03:51:31 +00:00
Andrey 88dcab9cd6 Something something Automatic Compression Release #3442 2021-11-11 21:38:49 -05:00
Andrey 5c99178eeb docs 2021-11-11 21:31:24 -05:00
GitHub build-firmware Action 2765d386b9 Auto-generated configs and docs 2021-11-12 01:54:56 +00:00
Andrey 562ab174d7 Bench Test IAC Valve fails #3534
that's not even funny
2021-11-11 20:39:01 -05:00
Andrey 8d154b94df Bench Test IAC Valve fails #3534 2021-11-11 20:31:46 -05:00
Andrey df98eb69d4 Bench Test IAC Valve fails #3534 2021-11-11 20:28:01 -05:00
GitHub build-firmware Action 9861ca4d99 Auto-generated configs and docs 2021-11-12 01:22:13 +00:00
Andrey cd57e1fdb6 Something something Automatic Compression Release #3442 2021-11-11 20:16:46 -05:00
Andrey 6436a2b9a4 dead line 2021-11-11 20:16:46 -05:00
Andrey aff7664c21 refactoring: less hacky implementation 2021-11-11 20:16:46 -05:00
GitHub set-date Action bfabe25f2e Update date 2021-11-12 01:01:37 +00:00
GitHub build-firmware Action cfccb29fae Auto-generated configs and docs 2021-11-11 23:37:47 +00:00
rusefillc 80cf7b5ecd Overflow in currentTimeMillis and getTimeNowSeconds #3531 2021-11-11 17:54:31 -05:00
rusefillc 46e9269982 Overflow in currentTimeMillis and getTimeNowSeconds #3531
it now takes 1000 times longer to overflow
2021-11-11 16:43:41 -05:00
rusefillc 825a57e33a Overflow in currentTimeMillis and getTimeNowSeconds #3531
it now takes 1000 times longer to overflow
2021-11-11 16:39:23 -05:00
Matthew Kennedy 57ad75aa98
load lua libs correctly (#3529)
* fix lua lib loading

* test
2021-11-11 13:44:13 -05:00
Scott Smith 713083baa5
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
rusefillc 32d3d5fc67 where are we now? 2021-11-11 11:11:40 -05:00
rusefillc 1564f8aa02 where are we now? 2021-11-11 10:36:31 -05:00
Scott Smith 2f4d123052
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 1f98e53972 Idle valve outputs not available in TS #3523 2021-11-10 21:07:38 -05:00
GitHub build-firmware Action 664d20fdee Auto-generated configs and docs 2021-11-11 01:46:41 +00:00
rusefillc 2794a85ff8 Idle valve outputs not available in TS #3523 2021-11-10 20:40:42 -05:00
GitHub build-firmware Action adefa4b312 Auto-generated configs and docs 2021-11-11 01:09:25 +00:00
Scott Smith d4c4db9a12
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 dcacef45ab open q 2021-11-10 19:24:17 -05:00
Scott Smith dac67235c4
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 1db9a02f1d Revert "Don't keep a separate MultiChannelStateSequence for the trigger emulator. (#3513)"
This reverts commit 280dfa94e7.
2021-11-09 20:42:23 -05:00
GitHub set-date Action aea4a2ad22 Update date 2021-11-10 01:00:05 +00:00
GitHub build-firmware Action 6056a62a14 Auto-generated configs and docs 2021-11-09 20:43:52 +00:00
Scott Smith 280dfa94e7
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 158f719d95
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 7f373a6415 Auto-generated configs and docs 2021-11-09 02:36:07 +00:00
GitHub build-firmware Action 710f35d515 Auto-generated configs and docs 2021-11-09 02:26:06 +00:00
rusefi 06e97a1794 why is meat allowed to touch machine?! 2021-11-08 20:49:12 -05:00
rusefi 22e78a97a5 nicer messages 2021-11-08 20:49:12 -05:00
GitHub build-firmware Action 0b0140db83 Auto-generated configs and docs 2021-11-09 01:26:41 +00:00
GitHub set-date Action 6038b5a6ae Update date 2021-11-09 01:00:19 +00:00
rusefi 8aaecb568e pid demo progress 2021-11-08 17:31:33 -05:00
GitHub build-firmware Action e089b8d9ac Auto-generated configs and docs 2021-11-08 22:24:44 +00:00
Scott Smith 13c496b79b
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 2c715be4b7 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 9d2f9f0d35 docs 2021-11-08 12:23:00 -05:00
Scott Smith d4132fdf01
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 45c4ccd4c4 Auto-generated configs and docs 2021-11-08 03:23:43 +00:00