Skip to content
Snippets Groups Projects
Commit 1afe51fa authored by Dean Camera's avatar Dean Camera
Browse files

Fix up documentation - remove obsolete Scheduler Overview page, roll...

Fix up documentation - remove obsolete Scheduler Overview page, roll documentation into the documentation for the (deprecated) Simple Scheduler module.
parent b3c6599b
No related branches found
No related tags found
No related merge requests found
......@@ -17,6 +17,5 @@
* \li \subpage Page_BuildLibrary - Building as a Linkable Library
* \li \subpage Page_WritingBoardDrivers - How to Write Custom Board Drivers
* \li \subpage Page_SoftwareBootloaderStart - How to jump to the bootloader in software
* \li \subpage Page_SchedulerOverview - Overview of the Simple LUFA Scheduler (DEPRECATED)
*/
\ No newline at end of file
......@@ -9,7 +9,7 @@
*
* \image html Author.jpg "Dean Camera, LUFA Developer"
*
* I am a 20 year old University student studying for a double degree in Computer Science and Electronics Engineering.
* I am a 21 year old University student studying for a double degree in Computer Science and Electronics Engineering.
* The development and support of this library requires much effort from myself, as I am the sole developer, maintainer
* and supporter. Please consider donating a small amount to support this and my future Open Source projects - All
* donations are <i>greatly</i> appreciated.
......
/** \file
*
* This file contains special DoxyGen information for the generation of the main page and other special
* documentation pages. It is not a project source file.
*/
/** \page Page_SchedulerOverview LUFA Scheduler Overview
*
* <B>THE LUFA SCHEDULER IS NOW DEPRECATED AND WILL BE REMOVED IN A FUTURE RELEASE. EXISTING CODE SHOULD CONVERT
* TO STANDARD LOOPS AS SHOWN IN THE CURRENT LIBRARY DEMOS.</b>
*
*
* The LUFA library comes with a small, basic round-robbin scheduler which allows for small "tasks" to be executed
* continuously in sequence, and enabled/disabled at runtime. Unlike a conventional, complex RTOS scheduler, the
* LUFA scheduler is very simple in design and operation and is essentially a loop conditionally executing a series
* of functions.
*
* Each LUFA scheduler task should be written similar to an ISR; it should execute quickly (so that no one task
* hogs the processor, preventing another from running before some sort of timeout is exceeded). Unlike normal RTOS
* tasks, each LUFA scheduler task is a regular function, and thus must be designed to be called, and designed to
* return to the calling scheduler function repeatedly. Data which must be preserved between task calls should be
* declared as global or (preferably) as a static local variable inside the task.
*
* The scheduler consists of a task list, listing all the tasks which can be executed by the scheduler. Once started,
* each task is then called one after another, unless the task is stopped by another running task or interrupt.
*
*
* If desired, the LUFA scheduler <b>does not need to be used</b> in a LUFA powered application. A more conventional
* approach to application design can be used, or a proper scheduling RTOS inserted in the place of the LUFA scheduler.
* In the case of the former the USB task must be run manually repeatedly to maintain USB communications, and in the
* case of the latter a proper RTOS task must be set up to do the same.
*
*
* For more information on the LUFA scheduler, see the Scheduler.h file documentation.
*/
......@@ -51,35 +51,53 @@
*
* For a task to yield it must return, thus each task should have persistent data marked with the static attribute.
*
* Each LUFA scheduler task should be written similar to an ISR; it should execute quickly (so that no one task
* hogs the processor, preventing another from running before some sort of timeout is exceeded). Unlike normal RTOS
* tasks, each LUFA scheduler task is a regular function, and thus must be designed to be called, and designed to
* return to the calling scheduler function repeatedly. Data which must be preserved between task calls should be
* declared as global or (preferably) as a static local variable inside the task.
*
* The scheduler consists of a task list, listing all the tasks which can be executed by the scheduler. Once started,
* each task is then called one after another, unless the task is stopped by another running task or interrupt.
*
* Usage Example:
* \code
* #include <LUFA/Scheduler/Scheduler.h>
*
* TASK(MyTask1);
* TASK(MyTask2);
* TASK(MyTask1); // Task prototype
* TASK(MyTask2); // Task prototype
*
* TASK_LIST
* {
* { .Task = MyTask1, .TaskStatus = TASK_RUN, .GroupID = 1 },
* { .Task = MyTask2, .TaskStatus = TASK_RUN, .GroupID = 1 },
* { .Task = MyTask1, .TaskStatus = TASK_RUN, .GroupID = 1 },
* { .Task = MyTask2, .TaskStatus = TASK_RUN, .GroupID = 1 },
* }
*
* int main(void)
* {
* Scheduler_Start();
* Scheduler_Init();
*
* // Other initialisation here
*
* Scheduler_Start();
* }
*
* TASK(MyTask1)
* {
* // Implementation Here
* // Task implementation here
* }
*
* TASK(MyTask2)
* {
* // Implementation Here
* // Task implementation here
* }
* \endcode
*
* If desired, the LUFA scheduler <b>does not need to be used</b> in a LUFA powered application. A more conventional
* approach to application design can be used, or a proper scheduling RTOS inserted in the place of the LUFA scheduler.
* In the case of the former the USB task must be run manually repeatedly to maintain USB communications, and in the
* case of the latter a proper RTOS task must be set up to do the same.
*
* @{
*/
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment