Menu

Source Commit Log


Commit Date  
[r221] by m0slevin

- Fixed problems in MSP430 port. Apparent memory corruptions were due to incorrect stack calculation macro which resulted in threads having misaligned stack pointers. Since MSP430 discards the LSB of the SP, this causes "bad things (tm)" to happen.

2015-06-07 01:43:25 Tree
[r220] by m0slevin

- More work on MSP430.
- Fixed a bug causing half the thread stack to be left uninitialized.
- Added preliminary code to support tickless timers.
- Fixed critical-section logic

However, there are still some major problems on the port...
- There appears to be memory corruptions or compiler bugs impacting the timer code.

2015-06-06 18:36:40 Tree
[r219] by m0slevin

Fixing IdleFunc for MSP430 port.

2015-06-02 01:03:48 Tree
[r218] by m0slevin

Fix MSP430 tick-based timers. Basic sanity achieved on MSP430f2274, with caveats.
-- RH/TI GCC port works, but community mspgcc doesn't. Need to investigate.
-- Tickless timers need porting.

2015-06-01 03:16:18 Tree
[r217] by m0slevin

Fixing context switch code for MSP430.

2015-06-01 02:51:06 Tree
[r216] by m0slevin

- Changes to get the MSP430 build working on GCC under linux.

2015-05-31 16:35:50 Tree
[r215] by m0slevin

Adding initial MSP430 port code

2015-05-31 11:45:46 Tree
[r214] by m0slevin

-- Missed some new controls. Adding those here.

2015-05-28 01:47:06 Tree
[r213] by m0slevin

-Forgot to add refactored/moved unit_test support

2015-05-28 01:42:47 Tree
[r212] by m0slevin

Major changes on the R1 codeline that have been pending for a long time.

- Added a bunch of "how-to" examples based on flAVR
- Fixed up the GUI library and built-in control code, added a GUI example (using flAVR, again)
- Ported idle-function support to all current AVR targets
- Got rid of some old examples that were more confusing than helpful
- Moved profiling and sanity tests into the unit-test directory, and refactored to support the unit-test APIs
- unit-test APIs now moved out of the "middleware libraries" section, and now get built into the UT platform directly
- Added thread-state tracking to Thread object. APIs allow a user to see if threads are ready, blocked, stopped, or exit'd.
- Fixed a bunch of instrumentation code that breaks now that g_pstNext is volatile
- Changed stacks in UT code to K_WORD from K_UCHAR (portability issues)
- Fixed logic in semaphore/mutex/event-flag objects to determine when a Yield() is required.
- Previous implementation did not handle priority inheritence properly
- Fixed bug preventing round-robin scheduling from being applied to static threads (those created before the kernel starts)
- Fixed a bug in Thread::Exit() that could hang the kernel in a variety of circumstances
- Fixed a similar bug in Thread::Stop()
- Change to remove pending timer callbacks from threads when Thread::Stop() is called, which could cause trouble.
- Fixed a bug in Timers where erratic behavior could be observed due to the m_ulTimerTolerance flag not being initialized
- Fixed a bug in Round-Robin scheduling where unblocking multiple threads in a given priority level can result in the wrong thread being scheduled.
- New approach ensures that threads get added to the *tail* of the threadlist, not the *head*

Summary:
- Dynamic threading is much more reliable (Stop & Exit behavior)
- Round-robin scheduling is much more reliable
- Timers are more reliable
- Priority inheritence works correctly
- Idle function works on all supported AVRs.

2015-05-28 01:32:22 Tree
Older >
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.