Scott Lahteine
4dbec774b5
HAL_*_TIMER_RATE => *_TIMER_RATE
2018-06-12 16:39:12 -05:00
etagle
99af086cea
Add hidden Serial overflow debug options
2018-06-10 04:25:42 -05:00
etagle
d90e8fcad9
Fix XON/XOFF implementation
...
Pointed out by @GMagician
2018-06-10 04:25:42 -05:00
Eduardo José Tagle
d3c02410a8
[2.0.x] Small assorted collection of fixes and improvements ( #10911 )
...
* Misc fixes and improvements
- Get rid of most critical sections on the Serial port drivers for AVR and DUE. Proper usage of FIFOs should allow interrupts to stay enabled without harm to queuing and dequeuing.
Also, with 8-bit indices (for AVR) and up to 32-bit indices (for ARM), there is no need to protect reads and writes to those indices.
- Simplify the XON/XOFF logic quite a bit. Much cleaner now (both for AVR and ARM)
- Prevent a race condition (edge case) that could happen when estimating the proper value for the stepper timer (by reading it) and writing the calculated value for the time to the next ISR by disabling interrupts in those critical and small sections of the code - The problem could lead to lost steps.
- Fix dual endstops not properly homing bug (maybe).
* Set position immediately when possible
2018-06-01 19:02:22 -05:00
Scott Lahteine
5f8591528e
Remove #pragmas that don't help c files
2018-05-23 23:47:16 -05:00
Scott Lahteine
c89649b46e
Suppress U8glib build warnings
2018-05-23 02:47:36 -05:00
etagle
569df3fc0c
Fix interrupt-based endstop detection
...
- Also implemented real endstop reading on interrupt.
2018-05-20 07:10:24 -05:00
etagle
0566badcef
Add memory barrier, optimal interrupt on-off
...
Disabling an ISR on ARM has 3 instructions of latency. A Memory barrier is REQUIRED to ensure proper and predictable disabling. Memory barriers are expensive, so avoid disabling if already disabled (See https://mcuoneclipse.com/2015/10/16/nvic-disabling-interrupts-on-arm-cortex-m-and-the-need-for-a-memory-barrier-instruction/ )
2018-05-20 02:39:34 -05:00
Scott Lahteine
206014a957
Fix LPC176x timer functions
...
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-05-20 01:58:51 -05:00
Scott Lahteine
59f7861bcb
Move backtrace to the HAL folder ( #10790 )
2018-05-20 01:33:21 -05:00
Scott Lahteine
50270b53a0
Clear up some more compile warnings
2018-05-17 18:40:49 -05:00
Scott Lahteine
fb608938f8
Prevent compilation of unused u8g-oriented code
2018-05-14 13:31:04 -05:00
Scott Lahteine
37b15fe4cf
Reorder HAL timer header items
2018-05-13 16:50:39 -05:00
Scott Lahteine
99ecdf59af
Smarter MIN, MAX, ABS macros
...
Use macros that explicitly avoid double-evaluation and can be used for any datatype, replacing `min`, `max`, `abs`, `fabs`, `labs`, and `FABS`.
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-05-13 04:52:56 -05:00
etagle
9d98a62699
Followup to HAL optimizations and delays
...
- Cleanups, fixes for Due HAL code.
- TC_IER is write-only. Use TC_IMR to test ISR state.
2018-05-13 00:46:23 -05:00
Scott Lahteine
a1062eec5b
Better handling of DELAY_NS and DELAY_US ( #10716 )
...
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-05-12 08:34:04 -05:00
etagle
1b225a2809
DUE: Emergency parser for the USB CDC
2018-05-12 02:12:11 -05:00
Scott Lahteine
0436e16fb2
Apply shorthand Assembler macros
2018-05-08 10:08:54 -05:00
Scott Lahteine
d1b619be52
Standardize some hexadecimals
2018-05-08 09:19:18 -05:00
Scott Lahteine
2578996631
[2.0.x] Emergency parser for multiple serial ports ( #10524 )
2018-04-25 20:58:00 -05:00
Chris Pepper
2242b98248
[LPC176x] Emergency Parser Feature ( #10516 )
2018-04-25 06:44:26 -05:00
Eduardo José Tagle
c1e5ebbc1e
[2.0.x] AVR: Atomic bit set and clear of upper pin ports without critical section ( #10502 )
...
* AVR: Atomic bit set and clear
The critical section can be dropped, saving 3 cycles per access. Also simplified pin toggling for all ports.
2018-04-24 13:45:43 -05:00
Eduardo José Tagle
0c428a66d9
Proper AVR preemptive interrupt handling ( #10496 )
...
Also simplify logic on all ARM-based interrupts. Now, it is REQUIRED to properly configure interrupt priority. USART should have highest priority, followed by Stepper, and then all others.
2018-04-23 22:05:07 -05:00
Chris Pepper
cc6d41e1d3
Use a macro for HAL header redirection ( #10380 )
2018-04-12 20:25:08 -05:00
Scott Lahteine
9ff4e9e1e6
Patch _IS_HW_SPI so defined() works
2018-04-07 23:29:00 -05:00
Bob-the-Kuhn
acda4ecb20
Fix DUE Trinamic SW/HW SPI sanity check ( #10336 )
2018-04-06 22:22:30 -05:00
Bob-the-Kuhn
902c885782
Switch to TMC2130 compatible hardware SPI & misc ( #10299 )
2018-04-04 20:13:27 -05:00
Scott Lahteine
93305a2d5e
Fix some spellings
2018-04-02 03:03:37 -05:00
Scott Lahteine
889fd5f71f
Backtrace minor cleanup
2018-03-31 18:59:36 -05:00
Eduardo José Tagle
749f19e502
[2.0.x] Move backtrace to a shared location ( #10237 )
...
- And implement the `backtrace()` function call
2018-03-28 14:13:20 -04:00
etagle
8934a2c49b
Added some missing Thumb instructions to the traceback follower, so now it is able to traceback through switch() statements
2018-03-27 04:30:38 -03:00
etagle
328edea03a
Several fixes to the backtracer. Tested ant it works
2018-03-26 03:42:54 -03:00
ejtagle
9a24c0ae3f
Tons of fixes to the backtracker code, and also added an extra backtracker that does not require unwind tables to work and it is used if unwind tables are absent
2018-03-25 00:52:04 -03:00
Bob-the-Kuhn
f7857ac8a8
Merge pull request #10185 from ejtagle/bugfix-2.0.x
...
[2.0.x] DUE debugging: Solve WDT startup delay, add traceback & crash report uses programming port baud rate
2018-03-24 13:32:34 -05:00
Bob-the-Kuhn
509227fd80
change to mode 0
2018-03-23 09:37:58 -05:00
etagle
c3b23974bd
Added detection of case when no unwind tables are available
2018-03-23 05:22:45 -03:00
etagle
b210bdf032
Now the Crash reporter uses the configured BAUDRATE to send the report through the Programming port. And also shows the traceback of functions as discussed. For that latest feature to work, you need to compile the project with -funwind-tables and -mpoke-function-name compiler flags
2018-03-22 03:34:03 -03:00
etagle
c5730cf711
As Bob-The-Khun suggested, resetting the USB peripheral solves the huge startup delays that happen when a WDT reset happens and we are connected through the native port
2018-03-22 03:31:25 -03:00
Eduardo José Tagle
97e8a6ebd9
Various fixes for DUE... ( #10152 )
...
- Watchdog reset during SD Card initialization.
- Move `DebugMonitor` to `DebugMonitor_Due.cpp`.
- Since the watchdog is enabled on boot do extra resets during init.
- Have `thermalManager` do watchdog reset before its ISR starts to prevent reset.
- Ensure that timers are stopped before reprogramming them to address tone issues.
- Improve SAM3XE reset when reflashed through the native port.
2018-03-21 19:04:45 -05:00
Bob-the-Kuhn
7308ef7809
Add conditional, give DUE SPI a unique name, fix compiler warnings ( #10168 )
2018-03-20 15:53:21 -05:00
Bob-the-Kuhn
53362b81cc
Tone fixes/changes ( #10151 )
2018-03-19 04:48:06 -05:00
Eduardo José Tagle
bbfbf90797
Fix for DUE - no host support on native USB if SD card not enabled ( #10148 )
2018-03-18 19:49:51 -05:00
Bob-the-Kuhn
7f1afbfd60
can't type
2018-03-17 13:07:49 -05:00
Bob-the-Kuhn
23760d6c14
add full speed option
2018-03-17 12:56:44 -05:00
Bob-the-Kuhn
cbcd1ed42d
full speed
2018-03-17 02:57:18 -05:00
etagle
404fc94705
DUE USB CDC: Do not send any character if no program on the PC is listening to them. This avoids Marlin waiting until the user actually opens a program that is able to consume the output of Marlin
2018-03-15 00:56:28 -03:00
Bob-the-Kuhn
c4467da53a
Merge pull request #10063 from ejtagle/bugfix-2.0.x
...
[2.0.x] DUE - add programming capability to native port
2018-03-13 22:07:21 -05:00
Scott Lahteine
36452b4d6e
Fix filename HAL/DUE/servotimers.h => ServoTimers.h
2018-03-13 01:38:37 -05:00
ejtagle
703c8ac0ef
Added Arduino-compatible kludge to the (ATMEL supplied) SAM3X USB stack we are now using so the Native port is also usable as a programming port on Arduino DUE and derived designs
2018-03-11 15:17:55 -03:00
Scott Lahteine
dd19e74476
Cleanup trailing whitespace
...
@Bob-the-Kuhn — Please set your git options to remove trailing whitespace on commit.
2018-03-11 10:29:00 -05:00