Home         What's New         Contact Us         Jump Start         People    



This page in PDF

VeriWiz Code Base

The code base includes the following:

OS

A real-time, prioritized preemptive task scheduler capable of 100,000 task switches per second with 60 mHz clock.

Timer Tick Function Calls

OS calls to small application functions at specific timer ticks, i.e. at 65,536 times a second, or other powers-of-two divisors of the system tick clock.

Task Mail

OS managed task communictions. Tasks can wait on mail reception or a bounding time or function. Tasks can send mail non-blocking, or block until mail is received and/or consumed.

Resource Locks, (Mutexes)

Resource locks are used to prevent concurrent access to a common data structure, such as malloc/free, linked lists and queues.

Malloc and Free

A thread-safe small and fast memory manager. Using a first fit algorithm, which has been shown to be fastest, with low fragmentation, this version has been pounded on and stands up to it.

Printf and Scanf

Thread-safe integer version with a low memory imprint. Additions have been made to allow format strings with decimal point specifiers to be used with integers where fixed point is used.

Double Linked Lists

Thread-safe double linked lists can be used as LIFO, FIFO, or node insertion/deletions. Opening a list returns a non-moving head that is used thereafter to insert or delete items. Lists can use an insert-sort function to order a list. A list traverse function is provided that calls back a function for each list element.

Simple Queues

Queues are implemented for bytes and pointers. The number of elements in queues can be queried. Queue length is set when the queue is opened.

Stdio Lib

The stdio library contains the usual suspects such as fgetc, fputc, etc.

String Lib

Again, the usual string functions but written in-house to avoid bugs, buffer overflows, and operate in ROM as well as RAM.

Math Lib

As noted earlier, this is a hack of the Linux newlib to permit some limited floating point operations;