Sep
13
3:00 PM15:00

Chapter 0

CHAPTER 0

Workshop Intro, OOB

Embedded Advantage – Intro

Who is Embedded Advantage?

What services does Embedded Advantage provide?

How does Embedded Advantage structure their workshops?

Getting Started, Fundamentals and Bonus (or advanced topics)

What are the future workshop or training plans?

Does Embedded Advantage do consulting?

Can we contract with Embedded Advantage to write our software or augment our software engineering team?

TI-RTOS Workshop – Intro

What services does the TI-RTOS library provide?

Scheduler, Drivers, Synchronization, Real-time Analysis tools, memory management

What is the agenda for the overall TI-RTOS workshop?

Workshop Logistics

What is inside the workshop datasheet?

What rev of CCS and SDKs and software libraries are supported in the TI-RTOS workshop?

How to DO the Labs…

What is the preferred way to do the labs?

Can I just run the solutions?

Are the labs in the same order I should do them in?

How can I challenge myself more in these labs?

Lab 0 – Out of Box Demo

What is the link to SimpleLink Academy?

Where do I find the OOB – Out of Box demo example?

View Event →
Sep
12
3:30 PM15:30

Chapter 1

CHAPTER 1

Tools/SDK Installation

What to Install

CCS Desktop for Windows, Mac and Linux

CCS Cloud

Device Family Software libraries (or the SDK)

TI-RTOS workshop labs and solution files

Code Composer Studio (CCS desktop)

How do I download Code Composer Studio (CCS)?

How do I install Code Composer Studio (CCS)?

How do I check for CCS updates?

Software Development Kit (SDK)

How do I download and install a Simplelink Software Development Kit (SDK)?

How do I download and install SimpleLink Academy?

Workshop Files and Solutions

Where do I find the labs/solutions files for the TI-RTOS workshop?

How do I install the labs/solutions files for the TI-RTOS workshop?

Verify Installation

How do I verify that CCS and the SDK and labs/solutions files are properly installed?

How do I build the OOB demo successfully?

Lab 1 – Installation

The lab is actually all the steps in this entire chapter

How do I install Code Composer Studio (CCS)?

How do I install the SDK? Libraries? 

View Event →
Sep
11
3:30 PM15:30

Chapter 2

CHAPTER 2

Tools & Software Intro

CCS Overview

How do you edit code using CCS?

How does Code Composer Studio work?

How do you build code using CCS?

What is the difference between the edit and debug perspective in CCS?

How do you connect your target board to CCS?

What is the target configuration file?

CCS Cloud IDE

Where is CCS Cloud located? Dev.ti.com

What is the difference between CCS and CCS Cloud?

Looking at the SDK

What is contained in the TI SimpleLink SDK?

SDK Components, RTOS support in SDK

What are the supported software layers in the TI SDK, driver libraries?

Embedded System Topology

What are the basics of an embedded program?

What is the topology of an embedded system?

How does CCS differ from using Arduino?

Creating a New CCS Project

How do you create a NEW CCS project?

Don’t use Project->New CCS Project

Lab 2A — Build and Debug an SDK Example

How do you build a simple SDK example for TI Simplelink? (CCS step-by-step tutorial, training, and walkthrough)

How do you create an empty project with CCS?

Can you restore the LaunchPad or target board back to the default factory code for the OOB – Out of Box experience?

View Event →
Sep
10
3:30 PM15:30

Chapter 3

CHAPTER 3

Using TI’s GPIO Driver

GPIO intro

What is GPIO?

How does GPIO work?

How do you program a GPIO pin?

Using the TI GPIO Driver

How do you use a TI GPIO Driver from the SimpleLink SDK?

Please explain how a TI Driver works in SimpleLink?

What is a callback function?

Lab 3A – Using GPIO NoRTOS Driver

How do you use a TI NoRTOS Driver?

What is the difference between a NoRTOS a No RTOS and TI-RTOS drivers?

Extending the GPIO Driver

How do I extend the features of the TI GPIO Driver?

Lab 3B – Extending GPIO Drivers

How do I modify the contents of a TI Driver?

View Event →
Sep
9
3:30 PM15:30

Chapter 4

CHAPTER 4

Drivers and Interrupts

Reading Input Pins

How do I write code to read (poll) GPIO input from a push-button on the Launchpad?

How do I write code to configure GPIO to be input or output, set high or low and use pull-up resistors?

Lab 4A – Reading GPIO input pin

Interrupts

How do you write code to respond to a GPIO interrupt?

How do interrupts fit into the overall Embedded System Topology?

What is an interrupt and how do they work?

What is an event-driven system?

Lab 4B – GPIO interrupt

Timer Interrupts

How do you write code to respond to a timer interrupt using TI Drivers?

How are driver callback functions used in interrupt handlers? 

Lab 4C – Timer interrupt

View Event →
Sep
8
4:00 PM16:00

Chapter 5

CHAPTER 5

TI-RTOS Intro (concepts)

RTOS – Library of Services

Why use an RTOS?

Explain RTOS vs bare-metal programming

What is the difference between RTOS and Linux?

Compare/contrast Linux and RTOS

What are the TI-RTOS thread types?

What is the list of TI-RTOS Services?

Why use an RTOS Scheduler?

What is an RTOS Scheduler?

How does an RTOS Scheduler work?

What are the benefits of using an RTOS?

TI-RTOS DNA

What is the DNA of TI-RTOS and how does it behave in general?

Linux vs RTOS – Compare/Contrast

What is the difference between RTOS and Linux?

Compare/contrast Linux and RTOS

TI-RTOS Thread Types 

What are the TI-RTOS thread types?

What is the list of TI-RTOS Services?

System Timeline & Scheduling Example

What is the timeline of events when using an RTOS?

Can I see the TI-RTOS scheduler in action?

Quiz: TI-RTOS Threads

How do I assign thread types to my application?

View Event →
Sep
7
4:00 PM16:00

Chapter 6

CHAPTER 6

TI-RTOS Mechanics

Creating a TI-RTOS Project

How do you create a starter (empty) project when using TI-RTOS?

What is a step-by-step method for using an example out of TI Resource Explorer to create a starter TI-RTOS project?

Can someone help de-mystify all of the starter examples in the Simplelink SDK?

Lab 6A – Creating an Empty TI-RTOS Driver Project

Create an empty project using TI starting examples from TI Resource Explorer

Basic RTOS Configuration

How does the TI-RTOS configuration (.cfg) file work and what is contained inside of it?

How do you add services to TI-RTOS statically?

How do you add services to TI-RTOS dynamically?

Using IDLE

How do you add the Idle service to TI-RTOS?

How do you add a function to the Idle thread in TI-RTOS?

RTOS Object Viewer (ROV)

What is ROV? What is the RTOS Object Viewer?

How do you use the RTOS Object Viewer (ROV)?

What is the best tool to use to debug TI-RTOS application?

BIOS Footprint & Timing Benchmarks

What is the TI-RTOS Footprint?

How much program space does TI-RTOS take?

How much data RAM does TI-RTOS take?

How fast is TI-RTOS?

Can TI-RTOS be used in a real-time application?

Lab 6B – Using Idle

Add Idle function to an existing TI-RTOS application 

How do you use BIOS_start(); ?

How do you use BIOS_exit(); ?

View Event →
Sep
6
4:00 PM16:00

Chapter 7

CHAPTER 7

Using Tasks

Task Topology and Signaling

What is the topology of a TI-RTOS Task?

How does the signaling mechanism work to unblock a TI-RTOS Task?

How are TI-RTOS Tasks Scheduled?

What is a TI-RTOS Task’s group priority ranking among other thread types?

Task API

What are the Task API and their basic uses?

Can you describe the basic Task function calls that I might need in my application and the benefits of each?

How to Create Tasks

How do you create a Task statically? Dynamically using the heap?

How to use Error Block

What is Error Block and how do you use it properly?

What happens if you use NULL instead of a properly initialized Error Bock in a MOD_create() function call?

Is there an alternative to using Error Block?

How does Error_IGNORE work?

Scheduling Tasks

How are Tasks scheduled in TI-RTOS Scheduler?

When do Tasks start running?

Is there no Task_post()?

Scheduling Strategies

What are the common thread scheduling models in the industry?

Compare/Contrast the thread scheduling methods.

Lab 7A and 7B: Using Tasks

Program Tasks to blink an LED

Program Two Tasks to blink an LED

How does Task_create() work?

How do you use Task_sleep(); ?

View Event →
Sep
5
4:00 PM16:00

Chapter 8

CHAPTER 8

TI-RTOS Instrumentation

Intro to RTOS Analyzer and UIA

How do you set up UIA and the RTOS Analyzer?

What are the built-in TI-RTOS Instrumentation Tools?

What are the visualization and instrumentation tools in TI-RTOS?

Log_info() — What does Log_info() do? Is there a small, light-weight, fast version of printf() in TI-RTOS?

Execution Graph — What is the Execution Graph? Can you benchmark timing on the Execution Graph?

Load Analysis — Can you track overall Task loading? CPU Load? Thread Load?

Configuring UIA for your application

What is UIA? Unified Instrumentation Architecture?

What are the main function calls I can use in UIA to instrument my code for TI-RTOS?

How do you add Logging and instrumentation tools to TI-RTOS configuration (.cfg) file?

How much space and time does UIA take in my application?

Where do you set the buffer sizes for data collection for the RTOS Analyzer?

Can I track Hwis? Can I track Tasks? Can I track SWIs?

Benchmarking with Timestamp

What is the Timestamp service in TI-RTOS?

How do you add Timestamp service to the TI-RTOS configuration (.cfg) file?

Lab 8 – Using UIA and RTOS Analyzer 

Configure UIA

Use RTOS Analyzer to debug the application

Use ROV to debug my application

View Event →
Sep
4
4:30 PM16:30

Chapter 9

CHAPTER 9

Using Semaphores (Hwi)

Where Semaphores Fit In

What is a semaphore in TI-RTOS?

How is a semaphore used in TI-RTOS?

How PEND and POST Work

How does Semaphore_pend() work in TI-RTOS? BIOS? SYS/BIOS?

How does Semaphroe_post() work in TI-RTOS? BIOS? SYS/BIOS? TI-RTOS kernel?

Object Creation

How do you create a semaphore statically using .cfg file? 

How do you create a semaphore dynamically?

What is a binary semaphore? What is a counting semaphore?

Lab 9 – Using Semaphores

How do I program semaphores coming from an HWI to unblock a Task?

How does Semaphore_create() work?

How do HWIs work?

How do you use TI Drivers and callback functions with TI Simplelink MCUs?

Advanced Topic – Semaphore Modes

What is a FIFO semaphore?

What is a priority-based semaphore?

Compare/contrast FIFO vs. priority-based semaphores

View Event →
Sep
3
4:30 PM16:30

Chapter 10

CHAPTER 10

Using Clock (Timers)

Timers – Let me count the ways

How do hardware timers interact with TI-RTOS?

Does BIOS, TI-RTOS kernel use hardware timers?

Which timer is used by BIOS, TI-RTOS by default? 

Which timer should I use on my target and why?

What are the default timers used by TI-RTOS, BIOS? SYS/BIOS?

Can you combine timers for use as tick rate and Timestamp?

TI-RTOS System “Tick”

How do you configure the RTOS heartbeat or system tick or tick rate on BIOS, TI-RTOS?

What is the system tick used for?

How do you trigger functions to run periodically based on the tick rate?

If I have a low-power application, is there a way to suppress the interrupts or the ticks that are not necessary?

Creating Clock Functions

How do you create a clock function statically in the .cfg file?

How do you create a clock function dynamically via the heap? Clock_create()?

Timer Usage – Summary

What are the default timers used in TI-RTOS? BIOS? SYS/BIOS?

Can I combine timers in TI-RTOS?

What timer is used for the BIOS tick rate?

What timer is used for Timestamp?

What timer is used for Seconds module? RTC?

Lab 10 – Using Clock Functions

How do I create a clock function and use it to blink an LED?

What is a TI-RTOS Swi? What is the Swi priority?

View Event →
Sep
2
4:30 PM16:30

Chapter 11

CHAPTER 11

Using Mailbox

Passing Data between Threads

What are common ways to pass data between TI-RTOS threads and Tasks?

Is it safe to use globals to pass data between threads?

Explain the producer-consumer model.

What about priority-inversion? This is handled in an advanced/bonus chapter.

Creating and Using a Mailbox

What is a TI-RTOS, BIOS, SYS/BIOS Mailbox?

How does a TI-RTOS Mailbox work? 

How do you create a TI-RTOS Mailbox?

How do you use a TI-RTOS Mailbox to pass data between Tasks?

Does TI-RTOS Mailbox have built-in signaling between sender and receiver?

Please compare a TI-RTOS mailbox to a TI-RTOS queue.

Lab 11 – Using Mailbox

How do you program a TI-RTOS Mailbox to pass data between two Tasks?

How do you program Mailbox_post();?

How do you use Mailbox_pend();?

View Event →
Sep
1
4:30 PM16:30

Chapter 12

CHAPTER 12

Using Events

Events – Intro

What is an event?

Define event?

How is an event different than an interrupt or a BIOS event?

What is the strict definition of a TI-RTOS, BIOS, SYS/BIOS Event?

How does a TI-RTOS Event work?

How do you program a TI-RTOS Event?

Pending on Multiple Semaphores

Can you use multiple semaphores to unblock a TI-RTOS Task?

What is the Event Object?

Creating and Using Events

How do you create an Event object statically?

How do you create an Event object dynamically?

What does an Event Object contain?

How does the Event mask work?

What is an OR mask and what is an AND mask?

Posting Events with Semaphores

Can a Sempahore_post() also post an EVENT?

Can Mailbox_post() also post an Event?

How does Event_post() work?

How does Event_pend() work?

Lab 12 – Using Events

How do you program an Event to blink an LED?

How do you program and use Event_post()?

How do you program and use Event_pend()?

View Event →