Commit Graph

15401 Commits

Author SHA1 Message Date
Scott Smith 8406fafa9e Expose console over serial port for H7 proc (#3578)
This way you can use the console/TunerStudio with the ST-Link

In the process, combine TS_PRIMARY_UART and TS_PRIMARY_SERIAL into TS_PRIMARY_PORT, to make UART vs
SERIAL selection more robus.  Ditto for TS_SECONDARY_*.  Also change use of TS_NO_PRIMARY to be #if
not #ifdef, so that it can be properly set as a compile flag and not be overwritten by various
header files.
2021-11-20 00:39:08 -05:00
rusefillc 03b13af2db On -fpermissive in Windows in unit tests fix #3581 2021-11-20 00:26:52 -05:00
rusefillc 6766ff8cab On -fpermissive in Windows in unit tests #3581 2021-11-20 00:23:27 -05:00
rusefillc 18aacc0ef6 On -fpermissive in Windows in unit tests #3581 2021-11-20 00:16:03 -05:00
rusefillc a3fc6d3e80 brave refactoring 2021-11-19 23:56:52 -05:00
GitHub build-firmware Action 10affa60db Auto-generated configs and docs 2021-11-20 04:16:43 +00: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
GitHub build-firmware Action f6730e32fe Auto-generated configs and docs 2021-11-20 03:34:23 +00:00
Matthew Kennedy e7956a53f6 fuel pump doesn't use fsio (#3576)
* fuel pump

* s

* call correct callback

* more dead

* test adjustment

* don't overflow

* don't need separate function

* java

* give it a name

* generated

* generated

* add to generate script

* import *

* this is so cheap we don't need a flag
2021-11-19 22:23:12 -05:00
Matthew Kennedy a79b0c424c turn on c++ 20 (#3579)
* set flags

* emit initializers

* jar
2021-11-19 22:19:34 -05:00
GitHub set-date Action d0f92574a9 Update date 2021-11-20 00:59:29 +00:00
GitHub build-firmware Action a3b9af0951 Auto-generated configs and docs 2021-11-19 12:08:29 +00:00
rusefillc c441d7dd89 debug mode for skipped count for 4 cylinders #3570 2021-11-19 07:02:21 -05:00
Matthew Kennedy 739be57ac8 fast exti interrupt handoff (#3497)
* fast exti

* test code snuck in

* full interrupt disable :(

* do it the old fashioned way

* enable interrupt

* consume stored timestamp

* dead

* h7 maybe

* guard maybe

* non-stm32

* exti 16 wrong on f4/f7

* CORTEX_MAXIMUM_PRIORITY

* safer but uglier

* s

* chibios

* no const

* initializers

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-11-19 06:37:52 -05:00
GitHub build-firmware Action 6dc1e4dfcc Auto-generated configs and docs 2021-11-19 09:16:06 +00: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
Matthew Kennedy 7dee1e42eb adjust miata sync conditions (#3577) 2021-11-19 02:30:05 -05:00
Scott Smith 7d65b2e5f8 Extend LogField to support scaled_channel divisors. (#3575)
Also move the type field and shrink the size field for better packing.
Saves about 800 bytes of flash.  This fixes #3574.
2021-11-19 02:29:19 -05:00
rusefillc dad52881f0 automation around outputs section #197
a step back
2021-11-18 21:12:54 -05:00
rusefillc 4bf31a4016 automation around outputs section #197 2021-11-18 20:09:07 -05:00
GitHub set-date Action 3f54533821 Update date 2021-11-19 01:01:05 +00:00
rusefillc f5cddb6337 automation around outputs section #197 2021-11-18 19:46:17 -05:00
rusefillc 1b93e07b31 automation around outputs section #197 2021-11-18 19:34:46 -05:00
rusefillc 1a7eecbf01 better error handling 2021-11-18 19:33:20 -05:00
rusefillc 224090dfec docs 2021-11-18 19:19:22 -05:00
Scott Smith aba4e5167e Separate out scheduleOrQueue into it's own standalone scheduler. (#3573)
It's a large enough entity that it shouldn't be buried in ignition logic.
2021-11-18 14:27:21 -05:00
rusefillc f1ab9d7054 automation around outputs section #197
wow huge step!
2021-11-18 00:19:11 -05:00
rusefillc fc9345de5e automation around outputs section #197 2021-11-18 00:05:27 -05:00
rusefillc 1b0acc0b86 better error handling 2021-11-18 00:04:19 -05:00
rusefillc d8508870d5 automation around outputs section #197 2021-11-17 23:51:58 -05:00
rusefillc 82ffcad01f proportional spark cut #3427 2021-11-17 23:35:26 -05:00
GitHub build-firmware Action dc73fe3404 Auto-generated configs and docs 2021-11-18 04:30:54 +00:00
rusefillc f9c43e4dfa automation around outputs section #197
packing & making my job easier
2021-11-17 23:22:08 -05:00
rusefillc 28998b70a6 automation around outputs section #197
refactoring
2021-11-17 23:16:15 -05:00
rusefillc 571a08b46a Bells & whistles: board-specific image into console splash screen #3498 2021-11-17 22:26:24 -05:00
rusefillc e97dcee6f2 Bells & whistles: board-specific image into console splash screen #3498 2021-11-17 22:18:46 -05: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 a5b0604880 Add a lock for scheduleOrQueue events. (#3572)
Ignition callers are all tooth based, but aux valves calls it from both the microsecond timer and
the main initialization thread.  HPFP will also soon call it from both those places too.
2021-11-18 05:08:32 +03:00
GitHub set-date Action 2dae11b443 Update date 2021-11-18 01:00:51 +00: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 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
rusefillc 8bcc8c0160 Better Windows build-in DFU #3338 2021-11-17 08:03:35 -05:00
rusefillc 8a40616a15 Better Windows build-in DFU #3338 2021-11-17 07:57:58 -05:00
rusefillc dfac1897e1 Startup Pin State Error - maybe hardware damage of STM32 pin connected to a 12v-powered TC4427? #3558 2021-11-17 04:45:55 -05:00
rusefillc 46d2b21ecc proportional spark cut #3427 2021-11-17 04:06:22 -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
Scott Smith 19f7fa8f89 Make engine* and friends be const pointers in production. (#3564)
This allows the compiler to see through the pointer and make accesses faster.
It saves 1336 bytes of text.
2021-11-17 03:53:17 -05:00
Scott Smith 14578ddae7 Remove a bunch of macros from engine_ptr.h (#3562) 2021-11-17 10:01:39 +03:00
Matthew Kennedy 26502351f1 simulator gets a heap (#3563) 2021-11-17 10:00:12 +03:00
GitHub set-date Action 05bef81735 Update date 2021-11-17 01:00:29 +00:00