Commit Graph

576 Commits

Author SHA1 Message Date
Matthew Kennedy efdae2322d Start -> start (#4366) 2022-07-21 15:17:32 -04:00
Matthew Kennedy 492a5db2fb libfirmware gets efi::size (#4354) 2022-07-18 01:56:58 -04:00
Matthew Kennedy 1951bbda8b move math (#4353) 2022-07-17 00:16:22 -04:00
Matthew Kennedy cd98ad35c2 use libfirmware for a few things (#4351)
* use libfirmware

* unit tests

* crc

* missed one

* bootloader
2022-07-16 02:22:51 -04:00
rusefillc 4c4f494904 PID logging: p term #4337 2022-07-08 10:31:34 -04:00
rusefillc 443770e902 PID logging: p term #4337 2022-07-08 09:49:58 -04:00
Matthew Kennedy 67439afb96 rescale RPM values (#4300)
* rpm configs

* fix

* s

* s

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2022-06-29 18:48:30 -04:00
rusefillc adc460fb49 Iss debug (#4290)
* one call only

* oops am idiot

Co-authored-by: David Holdeman <dave@holdemanenterprises.com>
2022-06-27 22:29:34 -04:00
rusefillc 0b96f46f23 borrowing from David 2022-06-26 20:19:54 -04:00
rusefillc feaa920dc6 ChibiOS 20.3.5 (#4285)
* ChibiOS 20.3.5

* chibios bump

Co-authored-by: rusefillc <sdfsdfqsf2334234234>
2022-06-25 12:43:28 -04:00
rusefi 86da40e52d looks like some lines are longer than 128 2022-05-19 22:55:03 -04:00
rusefillc 5454b8f509 m_hasSynchronizedSymmetrical handling improvements #4099
API progress
2022-05-09 04:04:38 -04:00
Matthew Kennedy b66a226a76 Scaled channel ints (#4129)
* test that fails today

* Revert "int32 scaled_channel has float precision #4128"

This reverts commit eb82fbc162.

* fix the problem

* format

* x

* s
2022-05-02 15:20:02 -04:00
Matthew Kennedy 83caf1ea1b Brain pin is enum class (#4108)
* change most usages to Gpio::

* board configs

* engine configs etc

* isBrainPinValid, smart gpio

* generator

* generator

* generator

* connector yamls

* kinetis enums

* cypress txt

* kinetis config

* frankenso

* config generator

* actually do it for the others

* disable skips for pr ci

* fix tle8888

* misc

* weird cast from int

* needs this operator too

* this can be an unsigned subtract

* happy tests

* s

* kinetis isConfigurationChanged weirdness

* missed J/K

* cypress efifeatures

* build script mistake (!)

* mistake in smart gpio

* debounce

* eg33

* kinetis, so needy

* it's pretty green, we can skip these again
2022-04-28 17:32:39 -04:00
Matthew Kennedy c3532b4635 fix vss/iss filter parameter validation (#4114)
* fix filter parameter validation

* use values that don't get clipped
2022-04-27 22:29:51 -04:00
Matthew Kennedy a2e1a079b8 allow enum_class in rusefi_hw_enums.h (#4104)
* make things c++ friendly

* install various canaries in coal mines

* using is much clearer than typedef

* fixing builds

* lps25

* trigger includes were a mess

* c -> c++ cleanup

* os util

* why did so many include os_util.h?

* fwd declare

* cypress/kinetis

* s

* eg33 happy

* happy sim

* cypress usb

* pch

* cypress

* doesn't need to include all that

* h7
2022-04-25 20:38:16 -04:00
rusefillc 53f323ca0c Set sensible default for dwell by voltage multiplier table fix #4067 2022-04-13 15:21:44 -04:00
rusefillc 5f288d88dc do not control VVT during cranking fix #3443 2022-04-10 19:22:39 -04:00
Matthew Kennedy 4c2518c4c0 output channel tweaks (#4023)
* shuffle around output channels

* postState should take a ref

* s

* s

* patch input file

* limits

* accel bad bounds check

* units

* units

* Revert "accel bad bounds check"

This reverts commit b2bb493be331d5d2cf40b9ed01363a53182c883e.

* missed an autoscale
2022-03-24 08:58:55 -04:00
Matthew Kennedy 5cf2b1bba5 warning cleanup (#4020) 2022-03-22 16:53:24 -04:00
Andrey 332c4973ed docs 2022-03-19 19:33:37 -04:00
Andrey G 628c1eae4c cli_registry: save 99 bytes (#3992) 2022-03-13 09:18:45 -04:00
Andrey G e3b793ec95 Fix unknown command #3980 (#3987) 2022-03-09 18:52:12 -05:00
Matthew Kennedy 0c6a369777 flash storage uses 32 bit CRC (#3984)
* better flash logic and warning message

* comment

* s

* ssssss

* simplify logic

* use 32 bit crc

* s

* don't test things that don't exist
2022-03-08 23:17:35 -05:00
rusefillc abde5d280b volatile increment warning 2022-02-26 22:58:51 -05:00
rusefillc 622e5b84e4 volatile increment warning 2022-02-26 22:51:43 -05:00
Andrey G b160134b31 cli registry: rework this hell, add FFF and FFFFF (#3964)
* cli registry: rework this hell, add FFF and FFFFF

* kinetis: no nodefaultlib

* revert back token helpers

* cli_registery: argument parser: do not eat qoutes

* Unit test for FFF

* cli_registry: remove debug
2022-02-26 16:58:10 -05:00
Matthew Kennedy 47b4ace4cb less dependence on that logger (#3884)
* less dependence on that logger

* comma

* refactor a bit, make it clear what this thing actually *does*

* static

* shrink the buffer a bit and make names useful

* dead util that's just subtraction lol
2022-02-09 06:53:16 -05:00
Andreika e6c705ece1 hellen_board_id + hellen-common.mk (#3885)
* Hellen_board_id

* move EXTI init before config load

* add NT2USF()

* Hellen_board_id unit-tests

* hellen-common.mk

* fix for older macos compiler
2022-02-03 11:24:31 -05:00
Matthew Kennedy c7f824c015 delayedShutoffRequested (#3881) 2022-02-02 14:57:19 -05:00
rusefillc a4cdf72734 Main relay shutdown rebase (#3880)
* aggregate

* main relay controller handles delayed shutoff

* main relay controller handles delayed shutdown

Co-authored-by: Matthew Kennedy <matthewkennedy@outlook.com>
Co-authored-by: rusefillc <sdfsdfqsf2334234234>
2022-02-02 00:45:11 -05:00
rusefillc 5c16186919 safer file name (#3861)
* safer file name

* safer file name

Co-authored-by: rusefillc <sdfsdfqsf2334234234>
2022-01-31 21:51:32 -05:00
Matthew Kennedy e17b0d292d flash savings (#3858)
* save table space

* turn some stuff off on some boards

* comment
2022-01-31 08:57:37 -05:00
Matthew Kennedy a1647fd66e baro fully in sensor model (#3829)
* consumers and api

* dead test

* baro uses sensor model

* remove old (copy of?) map lookup logic

* I guess we don't need FastInterpolation any more?

* don't double init analog input
2022-01-23 09:42:11 -05:00
rusefillc e8f980eca0 docs 2022-01-22 22:18:50 -05:00
Matthew Kennedy bf8d07f729 does this help? (#3795)
* does this help?

* maybe this helps

* oops I snuck in an O0

* only firmware
2022-01-16 08:55:40 -05:00
rusefillc 597a3430d9 https://en.wikipedia.org/wiki/Pi 2022-01-14 21:23:27 -05:00
rusefillc dd4950f850 Code style for methods with zero arguments #3535 2022-01-11 22:40:52 -05:00
rusefillc fc996ad339 Code style for methods with zero arguments #3535 2022-01-11 22:26:24 -05:00
rusefillc 433aedd036 dead code 2022-01-11 22:20:15 -05:00
GitHub build-firmware Action e4f828c0a1 Auto-generated configs and docs 2022-01-05 06:49:51 +00:00
GitHub build-firmware Action fd23938b2a Auto-generated configs and docs 2022-01-05 05:09:04 +00:00
rusefillc 5737590d94 itoa unit test, not a very detailed one 2022-01-03 03:31:57 -05:00
Matthew Kennedy 041a3e12a3 extract isSyncPoint function (#3726)
* extract isSyncPoint

* test because why not

* check vvt resync nb2

* clean up noise from test case

* clarify and comment
2021-12-30 11:39:04 -05:00
Matthew Kennedy 5642ef07be Autoscale all the things! (#3713)
* Map3D accepts any scaled_channel type

* consistency

* reinstate test

* fix ratio

* throttle, boost, gppwm

* scale ignition and VE

* tests
2021-12-22 08:09:41 -05:00
Matthew Kennedy 0f133f88a1 Map3D accepts any scaled_channel type (#3712)
* Map3D accepts any scaled_channel type

* consistency

* reinstate test

* fix ratio
2021-12-21 18:52:46 -05:00
Matthew Kennedy f2312facd6 tables support non-integer-scaled scaled_channel (#3708)
* support dividers

* float

* format
2021-12-21 00:59:07 -05:00
Matthew Kennedy c92f6b832b ui & config for fuel/ign trim tables (#3704)
* ui & config

* bump flash version

* compaction

* s

* make things happy

* fsio too

* OK, well those defaults were insane

* b

* why are these defaults insane

* adjust cylinder offset ui

* s

* cleanup
2021-12-20 21:58:53 -05:00
Matthew Kennedy 2ba4c7844d simplify some table lookups (#3692)
* simplify

* expand interpolation test
2021-12-20 08:14:30 -05:00
rusefillc 44389c5eca helping mac 2021-12-20 01:23:23 -05:00
Andrey 53d842b19f 2 byte table axis #3045 2021-12-19 23:23:33 -05:00
Andrey 05daba6539 2 byte table axis #3045 2021-12-19 23:20:21 -05:00
Andrey 91f28b6cf5 2 byte table axis #3045 2021-12-19 23:17:17 -05:00
Andreika 95adac3f03 CAN ISO-TP progress (+unit-tests fix) (#3677)
Co-authored-by: Andrei <andreikagit@users.noreply.github.com>
2021-12-08 15:11:19 -05:00
rusefillc 216b5d9e7a tune via CAN #3361
CAN testability
2021-12-04 01:01:48 -05:00
rusefillc 8f3f2f4a55 hellen81 util changes 2021-12-01 20:46:36 -05:00
rusefillc 1e53844f5b why so many channels are hidden in debug ? #3614 2021-11-29 00:33:05 -05:00
rusefillc d791ef5581 skipspark script kills ECU fix #3611 2021-11-25 22:40:19 -05:00
Andrey 4e45297145 minor progress 2021-11-24 22:35:56 -05:00
Andrey f17c951742 dead file 2021-11-24 20:26:40 -05:00
Matthew Kennedy 9bd8a19564 oh my god we've had no asserts (#3595) 2021-11-22 17:52:03 -05:00
rusefillc 3d8ddbceea j1850 SAE crc8 2021-11-22 14:03:52 -05:00
Scott Smith 04fa1fd410 Fix potential buffer overrun in cyclic_buffer. (#3583)
This exposed a buffer overrun, so double the size of the buffer (to account for 720 degree engine
cycle vs 360 degree crank events).

Also use proper numeric limits when computing min/max.
Finally, add a lock around the call to cyclic_buffer that actually caused the contention.
2021-11-20 03:01:11 -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
Scott Smith 07d30285fc Basic framework for high pressure fuel pump control (#3476)
* Basic framework for high pressure fuel pump control

* Many changes

Move calculations to fast callback
Move main object into Engine
Respond to pin changes without requiring a reboot

* Use EngineModule for HpfpController
Schedule pin off after executing pin on so we are sure it ends, even if the motor stops.
Test scheduling.
Less RAM use by only having one event and reordering fields.

* Make scheduling test actually useful - need non-0 activation angle.

Co-authored-by: rusefillc <48498823+rusefillc@users.noreply.github.com>
2021-11-19 23:06:51 -05:00
Matthew Kennedy a0a1b5e6a0 delimeter is not comma (#3533)
* delimeter is not comma

* do it in config txt

* use txt

* s

* string

* compat

* also, spelling is hard

* use new name

* use new name

* generate enough for happy console

* use an even less common character

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-11-19 12:01:45 +03:00
Scott Smith b3e0b28c75 Make the module API more concise. (#3571)
engineModules.get<FOO>(). becomes modules<FOO>()->

I believe the new API is more conducive to supporting arrays, by doing std::array<T, N> or
std::array<Mockable<T>, N>, with the support of a helper class.
2021-11-17 21:50:00 -05:00
Scott Smith f9f13f0bad Create a base class EngineModule for that contains various useful callbacks. (#3548)
* Create a base class EngineModule for that contains various useful callbacks.

This cleans up the API by not requiring the notifiers to know about who wants callbacks.  The only
place you need to update to add a module is in one place.

* Add mockability.

* Convert InjectorModel to a Mockable EngineModule
2021-11-17 20:13:19 +03:00
Scott Smith dac2ae9b1d Programmatically remove EnginePtr/inject, EXPAND_Engine, and WITH_ENGINE_TEST_HELPER* (#3560)
* Programmatically remove EnginePtr/inject, EXPAND_Engine, and WITH_ENGINE_TEST_HELPER*

for i in ": public EnginePtr " ", public EnginePtr" "EXPAND_Engine;" "EXPAND_Engine"; do
    git grep -l "$i" | xargs sed -i "s/$i//g"
done

git grep -l "inject" | xargs sed -i "/inject[(][)]/d"

for i in WITH_ENGINE_TEST_HELPER_SENS WITH_ENGINE_TEST_HELPER_BOARD_CALLBACK WITH_ENGINE_TEST_HELPER; do
    git grep -l "$i" | xargs sed -i "s/$i/EngineTestHelper eth/g"
done

git checkout firmware/controllers/core/engine_ptr.h
git checkout unit_tests/global.h

* Review fixups.
2021-11-16 16:52:11 -05:00
Andrey c8b733ea6e refactoring launch 2021-11-15 19:34:42 -05:00
Matthew Kennedy c1941f3a49 (void) -> () (#3550)
* static functions with (void)

* more

* Revert "more"

This reverts commit 246e53441f935451437df186ac92d7df26b62fb6.

* s

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-11-15 13:02:34 +01:00
Matthew Kennedy bd04dc8352 less macro, more c++ (#3549)
* less macro

* s
2021-11-15 12:44:40 +01:00
rusefi 1f486a1e15 Lua: changing "table" API 2021-11-14 16:29:46 -05:00
rusefi e40780a595 more API 2021-11-14 14:53:44 -05:00
rusefillc 677a2ede70 Overflow in currentTimeMillis and getTimeNowSeconds #3531
it now takes 1000 times longer to overflow
2021-11-11 16:39:23 -05:00
rusefillc 0ec6d5be4a dead code 2021-11-08 19:01:18 -05: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
Scott Smith fcac26c032 Allow scaled_channel to have both multiplier and divisor (#3468)
Disallow scaled_channel for float.  I can't think of a reason to allow it, and it gets in the way
of rounding.

Add separate template param to setTable; let the compiler sort out whether assignment can happen
between TElement and VElement without forcing them to be the same at function call time.
2021-11-05 17:34:22 -04:00
racer-coder a18beadb03 Create an interpolate3d function to match the interpolate2d, but for 3d tables. (#3459)
Remove some implicit C array to pointer conversions in Map3D by adding
(), *, and & where appropriate.  This allows us to remove getBinPtr.

Call interpolate3d from Map3d so there's no code duplication.
2021-11-04 14:07:37 -04:00
Matthew Kennedy a2766e5d9b support autoscale on table axes (#3452)
* scale map Y axis

* allow different row/col types

* scaled channel detector

* interpolation

* looks like this actually works

* tests, no manual scaling

* comment
2021-11-03 19:53:26 -04:00
Andrey 592bf2a359 docs 2021-11-02 23:34:44 -04:00
Andrey 14aac56c41 warning(CUSTOM_PID_DTERM, "PID: unexpected dTime") 2021-10-29 18:31:43 -04:00
Matthew Kennedy e7d66fd242 Lua CAN RX (#3403)
* wiring

* static

* implementation

* comment

* unit tests happy

* guard

* guard smarter, not harder

* guard smarter not harder

* guard even smarter, not even harder

* don't need that
2021-10-24 08:37:04 -04:00
rusefillc 4ff353b98a pid into lua 2021-10-21 19:43:30 -04:00
rusefillc 8feeb9cacd refactoring 2021-10-20 21:47:49 -04:00
GitHub build-firmware Action 5ab712c51d Auto-generated configs and docs 2021-10-17 01:13:47 +00:00
rusefillc 86db25f94a progress - live doc generator works again! 2021-10-16 21:08:50 -04:00
rusefillc 94be3608a1 better file locations 2021-10-16 20:17:01 -04:00
Matthew Kennedy 9fc1e5d24c Knock count (#3240)
* knocky knocky

* check the right thing

* improve operator

* TS

* s

* bbbbb
2021-09-20 14:27:26 -04:00
Andrey 4d6e94645f SD-card log fields improvement (warning counter & last code) #3162 2021-09-05 07:25:52 -04:00
Andrey 9075888e7b zero dwell warning at zero RPM #3153 2021-08-16 09:11:22 -04:00
rusefillc 47c20c95dd zero dwell warning at zero RPM #3153 2021-08-16 04:20:32 -04:00
Matthew Kennedy e056369f05 actually remove FSIO idle stuff (#3150)
* debug mode

* pid cleanup

* more dead

* more dead

* wow more dead

* much dead many death wow
2021-08-14 09:48:45 +03:00
Matthew Kennedy 39388c75d8 even more pch (#3112)
* s

* more

* s

* f7
2021-08-04 19:30:52 -04:00
Matthew Kennedy 4e6b61234f yet more pch (#3068)
* big pch energy

* put back ramdisk stub

* tests are happy

* h743 nucleo

* kinetis

* I love deleting code!

* make stepper happy

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-08-03 22:05:01 -04:00
rusefillc f0cadf084b Faster enginePins.stopPins() #3070
refactoring: reducing magic constants
2021-07-28 14:14:51 -04:00
Matthew Kennedy d3ec2b21d1 Use pch in lots of files (#3066)
* most engine.h

* most engine_configuration

* more

* more

* more

* more

* more

* moooooore

* ok I'm done for now

* oops
2021-07-26 01:05:17 -04:00
Matthew Kennedy be7ef805c9 fix nonlinear correction threshold (#3060)
* s

* macro

* test has to do the inverse
2021-07-25 20:42:26 -04:00
Matthew Kennedy ba331f4895 knock sensing peak detect (#2910)
* knock peak detect

* comments

* comment

* initialize

* test

* fix warnings while we're here

* those are functions, not values

* ram
2021-07-06 21:44:59 -04:00
Andrey G fdfec5ea3c Fix swap macro (#2904)
* convert swap macroses to inline functions

* clean-up workarounds
2021-07-04 18:03:17 -04:00