* 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
* 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>
* 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
Having to remove the precompiled header when switching from firmware to simulator to unit_tests and
back again is annoying. Use a directory to store the precompiled header output. Turn off
precompiled header warnings as GCC still complains even if it finds a valid one eventually.
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.
* fix simulator
* print out halt reason
* option to close simulator after time
* workflow calls it
* test with the bug still present
* ...and fix the bug
* 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>
* ignore
* set up precompiled header
* makefile
* fixes
* cleanup
* only depend cpp on pch
* efifeatures in pch
* f7 efifeatures
* consolidate
* simulator
* proteus build
* error handling is a good one
* bootloader pch
* don't auto include pch
* dirs
* delete on clean
* bootloader cleans
* clean.sh deletes pch
* disable in bl for now
* there was a typo so maybe it'll work now
* remove todo
* don't need that any more
* don't need these parts
* don't need this part
* undo changes
* use a different cpp as example
* s
* Revert "cleanup"
This reverts commit 8de8698490f5d09c2df753f00a89751aa898be9a.
* also unnecessary now
* buh
* comment
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
* these start themselves now
* dead
* configure ports
* start serial
* dead
* minimal pins
* simulator logging works
* why not enable lua
* speeeeeed
* start lua
* spammy print
* rename
* core
* structing
* more
* makefile
* structing
* 6240 compiles
* explicit cast instead of implicit narrowing
* 8888
* no extern C
* fix tests build
* extern "C"
* 33810
* 8860
* 33810
* linker
* unbreak master
* don't need that if compiling as C++
* bump config
* fix test
* tests
* unit tests bad merge
* build
* move subaru logic to cpp file
* cpp goodness
* hpp include
* this is probably the right thing to do
* simulator
* hip9011: coexistance with other spi devices
* hip9011: rework so SPI transfer is invoked from thread
also use polling spi exchange to avoid cache problems
* hip9011: move calculations from ADC callback to thread
* hip9011: big cleanup
* hip9011: simplify spi communication
* No need to set knockBandCustom if it is not custom
HIP9011 calculates knockBand from cylinderBore same way
* hip9011: make unit test happy
* hip9011: fix unit test
* hip9011: remove duplicated initialization, reorder
* hip9011: just renames and data type adjustments
* hip9011: rename BAND() to HIP9011_BAND()
* hip9011: move some code from lookup.cpp to logic.cpp
* hip9011: move initEngineNoiseTable to engine_configuration.cpp
* hip9011: move lookup tables to hip9011_logic.c
* hip9011: remove empty files
* hip9011: additional checks
* carve out UART specific
* implement channel
* config cleanup
* use new config
* bootloader
* dead code
* s
* h7 inherits f7
* oops
* ok now it's right
* tests
* cleanup
* call setup
* put that in its own file
* cleanup
* format
* guard
* not needed
* improve guarding
* portable
* allow override of uart mode
* fixes for bootloader
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
* simplify trig emulator
* spelling is hard
* fix various builds
* spelling again
* add command/button for external stimulation
* enable hw stim for HW-in-loop test
* s
* I does spelling good
* clear flag when disabled
* generate enough for console build
* don't disable that
* this test needs external stimulation enabled
* import
* ui improvements
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
* fix typos, spelling
* add two V8 firing orders
* use the available number of CPU cores, not just 4
* add new firing orders to config
* updating generated files to include new v8 firing orders
* reverting update of auto-generated files
* correct firing order labels for new firing orders
* update all compile scripts to use available cores rather than a hardcoded value
* configure for no cache
* this doesn't need a setting
* now we don't need invalidate
* reorder and comment
* mmc
* sw knock
* use spiPolledExchange for small transfers
* mock spi
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
* set mcu type in hw_ports
* move f4 linker script
* move f7 linker script
* don't set default linker file in makefiles
* extra line
* prometheus actually didn't depend on anything special for f469
* dead line
* h7
* dead
* move board.c
* set explicit cpu type for simulator
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
* switch to CriticalSectionLocker
* that's just about all
* clean up last usage
* include hpp for sim
* need the cpp wrappers in the makefile too
* include dir
* include
* restructure
* guard c++
* idle too
* status_loop.h
* consolidate definitions
* use 1/0 instead, check for existence
* missed a few
* dead define
* defs for bootloader
* add env var to skip upload
* remove checking from compile.bat
* working on push.yaml
* finish sorting
* progress
* rename push to builds
* rename push to builds
* Add skip upload env var
* fix pull_request name
* fixed typo and changed name
* fixed indentation and runs-on
* try different env var setup
* add nucleos and switch to underscore
* add quotes
* remove boards that were commented
* remove boards that were commented
* fix project board name
* fixed variable name
* add ini-file and console-settings
* try installing gcc-multilib first
* Install g++-multilib as well
* remove unnecessary export
* fixed exit numbers
* change to different env setup
* add simulator and console compilation to board bundles
* changed OS and added linux simulator build
* add checkout and missing colon
* add gcc-multilib installes
* Install mingw
* fixed install
* remove mingw from linux sim and call compile directly
* change directory
* moved envs to command
* debug ls
* debug ls
* set ftp vars
* add makefile debug info
* removed batchecks
* redirect stdout to easier see orrs
* change name
* remove redirect, add file inpection
* Add conditional project name
* Try software upgrade
* missing char
* update ine files
* try quotes
* add escapes
* add quotes
* add escapes and quotes
* remove quotes and escapes
* remove software upgrade
* ignore test 2
* update apt
* like this then
* forgot import
* fix case
* remove RUSEFI_SKIP_UPLOAD and check RUSEFI_FTP_SERVER instead
* break workflow back apart
* upload simulator artifact
* fixed operator
* update apt
* change paths
* Update build-firmware.yaml
* move update bundle to artifacts
* fix var name
* Install ncftp
* set env vars conditionally
* remove check so zips are created
* try things the github way and copy to primary
* re-enable test
* missing space
* field support
* tests
* makefiles
* test data too
* missing include dir
* write correct thing
* fix one test
* fix test
* omnomnomnom ram
* format
* use defined names
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>