Crate teensycore

source ·
Expand description

A kernel for teensy-4.0 microcontroller.

This crate provides all the resources necessary to begin interfacing with the teensy-4.0. To get started, you simply need to use the main! macro. This will perform a number of chores for you including the following:

  • Initialize uart, xbar, gpio, system clock
  • Enable interrupts
  • Add panic handling
  • Verify memory access
  • Enable FPU

Modules

  • A top level system which keeps track of time using the onboard clock peripheral.
  • This module provides the ability to designate any two gpio pins as SDA/SCL which allows you to introduce i2c capabilities into your project.
  • This module represents basic math functionality that you might find useful in a kernel.
  • This module represents paged memory functionality alloc(), and free().
  • Phys module handles kernel-level interfacing for physical, on-board peripherals.
  • This module represents the serial communication protocol based on UART physical hardware.
  • A collection of datastructures to aid in general development.

Macros

  • This method will call the asm! macro but in a way that doesn’t break tests. Use it in lieu of the asm! macro.
  • This is the primary macro necessary to bootstrap your application. It takes a code block that will be used as the entrypoint to your logic.
  • A thin wrapper around Str::with_content($X)
  • A directive for managing memory.
  • This macro takes a static string and returns a vector containing the sequence of characters.
  • This macro returns a vector of the items you pass to it.

Enums

Constants

Traits

Functions

  • This function returns a u32 containing the program counter of the line of code which invokes this function.
  • Data Memory Barrier
  • Use this method to enter a system-wide failure event.
  • Instruction Synchronization Barrier
  • This method will intiate a pendsv interrupt
  • This method will wait a certain amount of milliseconds by calculating how many nop commands it will take and issuing them sequentially.
  • Waits for a specific amount of nanoseconds.