Free Online Training Series with Videos, Tutorials, and Example Software!
10-Part Series - even more coming later
[Scroll down to see all Sessions]
- Session 1: MQX Architecture and Initialization (20 min)
- Creating tasks
- Setting priorities
- Scheduling
- Synchronization concepts
- Introduction to drivers
- Session 2: Designing for a Multi-Tasking Environment (15 min)
- Writing applications in a Multi-Tasking Environment
- Super Loop Programming Limitations, Task Coding Structure
- Task States
- What is a blocking call?
- Task Context Switching
- Session 3: Task Management and the Scheduler (21 min)
- How does the MQX scheduler work?
- Scheduling Policies
- Priority-based, Time-slice (Round Robin)
- Selecting Priority Levels for Tasks
- What is the Task Template List?
- Using Tasks in your Application
- Session 4: Synchronization and Message Passing (17 min)
- What is Synchronization? What is it used for?
- Data Flow, Control Flow, Mutual Exclusion
- Synchronization Options
- Events, Semaphores, Mutexes, Message Passing
- Message Passing
- Types of Message Pools, Message Pool Creation, Sending and Receiving, Light-weight Message Passing
- Session 5: Introduction to Drivers (28 min)
- Driver Architecture and options
- Block vs. Byte modes, POSIX drivers, Low level drivers, Polled vs. Interrupt modes
- Driver Initialization
- I/O Subsystem (POSIX)
- Serial Driver Details
- Light-weight GPIO Driver Details
- Session 6: Interrupts (15 min)
- Interrupts and the scheduler
- Techniques for writing an ISR
- Hardware Vector Table
- Nested Interrupts
- MQX Interrupt ISR Table
- Installing ISRs
- Default Interrupt handler
- Session 7: Light Weight Events (15 min)
- Overview of events
- Working with light-weight & full-featured events
- Ways to wait on an event
- Session 8: Light Weight Timers (17 min)
- One shot vs periodic timers
- Use cases for timers
- Working with correlated timers
- Writing timer Interrupt Service Routines (ISRs)
- Light weight timers & timer queues
- Timers and the timer task
- Session 9: Light Weight ADC Driver (18 min)
- Light-weight ADC driver (LWADC) Details
- Attributes of ADCs
- Configuring and reading ADCs
- Scaling the ADC output
- Session 10: Logging (23 min)
- What is logging? Why use logs?
- Working with light-weight logs
- Working with kernel logging
- Logging MQX function and ISR entries and exits, task and stack usage
- Working with full-featured logs