"Fat" LTO objects are only needed if future linking _without_ LTO is
planned. Not using this option gives about 1.5x building time advantage
without affecting the final binary.
An unused variable is removed along the way.
When a symbol is used from inline assembly, LTO compiling and linking
process becomes more picky with regard to the order of compile/linking
units.
Specifically, when FreeRTOS/Source/portable/GCC/ARM_CM3/port.c comes
before FreeRTOS/Source/tasks.c in find results, the build fails with
undefined reference to `pxCurrentTCB' error.
To workaround the issue, do the same as we already have for
vTaskSwitchContext.
Note: different order affects resulting binary (.text section) size:
39924 with the wrong order and 39884 with the correct.
Fixes#685.
This patch makes allocating special pages automatic and flexible,
allowing flash size and application start offset specification with
linker command line arguments. It should allow easier porting to
different targets and experimentation without adding code complexity.
Many original STM32F103x8 chips have fully functional 128 kiB flash and
so this additional space might come useful for experimentation,
additional optional features etc. Tested on v2.51A board, including
writing and verifying 128 kiB of random data.
Make variables are added to control that, so to build for the full
undocumented flash size and dapboot configured to start the app from 8
kiB offset one can run:
make flash_size=128k bootldr_size=0x2000
I suspect that since -flto was added listing generation wasn't working.
-ffat-lto-objects allows tools like objdump to still work by including
both the internal compiler representation (for LTO) and generated code
in the .o files. It increases the compile time from 12s to 17s on my
machine but I think it is small enough cost for the benefit.
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
License: MIT
* Estimated pinout into the ioc file
* Fix Atollic paths to be somewhat more portable
* Add make command
* Add rough calls to ADC2 [untested]
* Using dual ADC injected modes
* Start both ADCs
* Move some IRQ's to ram exec
* Stabilize PID a bit more
* Add in ideas for tip type selection
* Update peripheral setup to support TS80
* Add tiptype formula / settings struct
* Add function ids to the settings menu
* Rough tip selection
* Rough out new cal routine for simple tips
* Hardware test is fairly close for first pass
* Add Simple calibration case [UNTESTED]
This adds the calibration option that uses boiling water to the calibration menu.
This is untested, and may need gain adjustments before use.
* [Feat] Add some QC testing code
* Typo fix
* Add double button press handler for different rising times
* Add hook for jump to sleep mode
* QC for 9V Works!
* Rough out QC handler, trim out old menu help text thats useless
* QC 9V working... Static all the things (Low on ROM)!
* Static all I2C to save space
* Move QC negotiation into background task so it doesnt block the UI
* Input V display works, tune ADC
* QC 3 steps working
* Start tip R measurements
* Impliment tip resistance
* Fix up the accel position, link in auto QC stages
* Fix tip title
* Tip type settings, Static OLED
* Revert I2C callbacks
* Misc Cleanup
* Better Gain value, need to investiate offset
* Add model warning
* Add TS80 Boot Logo (#367)
* Add TS80 Boot Logo
* Refined
* Moved down by 1px
* Add in power selection 18/24W
* Clean up accelerometer, fix TS100 builds, Fix voltage div cal
#214
New Icons
Fix Hold to scroll timer with a lockout
Fix Menu lengths
New French Translation Closes#228
Fix confirmation message scroll speed
Fix translations.cpp