/* ------------------------------------------------------------------------------------------------ */
/* FILE :        readme.txt                                                                         */
/*                                                                                                  */
/* CONTENTS :                                                                                       */
/*               Abassi RTOS: description for MSP430 / IAR (free version)                           */
/*                                                                                                  */
/*                                                                                                  */
/* Copyright (c) 2011-2017, Code-Time Technologies Inc. All rights reserved.                        */
/*                                                                                                  */
/* Code-Time Technologies retains all right, title, and interest in and to this work                */
/*                                                                                                  */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS                          */
/* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF                                       */
/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL                          */
/* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR                             */
/* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,                            */
/* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR                            */
/* OTHER DEALINGS IN THE SOFTWARE.                                                                  */
/*                                                                                                  */
/*                                                                                                  */
/*  $Revision: 1.1 $                                                                                */
/*  $Date: 2012/03/13 20:30:02 $                                                                    */
/*                                                                                                  */
/* ------------------------------------------------------------------------------------------------ */

Quick overview at this level:

   - The RTOS source code is located in the folder ../Abassi, one level above
   - The RTOS object code is located in the folder ./obj
   - The demos source code is located in the folder ./src
   - The demos build options definition file (AbassiLib.h) is located in the folder ./inc
   - The IAR workspace is ./AbassiFree.eww
   - All demo projects are located in individual folders in ./ProjectsFree


/* ------------------------------------------------------------------------------------------------ */
/* IMPORTANT NOTES                                                                                  */

   - Multiple object files are provided in ./obj
     The Abassi "C" object files are named according to:
           Abassi_430?_D?_????.r43
                     |  |   |
                     |  |   + -- FULL : Full feature Abassi
                     |  |   + -- TINY : small code size Abassi (reduced number of features)
                     |  |
                     |  |  + ------ L    : Large data model
                     |  |  + ------ M    : Medium data model
                     |  |  + ------ S    : Small data model
                     |
                     + ------------ X    : MSP430X devices
                     + ------------ blank: first generation MSP430 devices

  - These files were generated with "Optimization" set to high & "Speed"

     The Abassi "ASM" object files are named according to:
           Abassi_MSP430?_D?_??.r43
                        |  |  |
                        |  |  + -- 16    : Interrupt vector table of 16 entries
                        |  |  + -- 32    : Interrupt vector table of 32 entries
                        |  |  + -- 64    : Interrupt vector table of 64 entries
                        |  |
                        |  + ------ L    : Large data model
                        |  + ------ M    : Medium data model
                        |  + ------ S    : Small data model
                        |
                        + --------- X    : MSP430X devices
                        + --------- blank: first generation MSP430 devices

    - There is always and only one pair of object files to use in an application.
     1 - the data model must be the same for both files & MSP430 vs MSP430X
         i.e. D? must be the same when making a pair
     2 - One file must be selected amongst these:
                   Abassi_430?_D?_TINY.obj
                   Abassi_430?_D?_FULL.obj
     3 - The other file must be selected amongst these:
                   Abassi_430?_D?_16.obj
                   Abassi_430?_D?_32.obj
                   Abassi_430?_D?_64.obj

   - For all projects, these definitions must be set:
        OS_DEMO     : must always be set to a -ve value ( < 0 ).
        TINY_ABASSI : define it when linking with Abassi_430?_C?_D?_TINY.obj
                          DO NOT define it when linking with Abassi_430?_C?_D?_FULL.obj
        OS_PLATFORM : 0x..430... 
                      See ../Abassi/Platform.txt if a different target platform is used

   - DO NOT SET any Abassi build options  (except OS_TIMER_US) otherwise there will be a mismatch
     between the RTOS data structures used in the object files and the ones used in the application
     This would likely result in a crash of the application 

     *** The objects were built using the configuration settings defined in AbassiLib.h located
         in ./inc

   - DO NOT change anything in ,/inc/AbassiLib.h

   - The application timer tick period (OS_TIMER_US) can be set to a different value from the one
     used to build the objects.  The value used in the objects is avaialble in ./inc/AbassiLib.h.
     Setting the proper value of OS_TIMER_US will convert all human time to the correct # timer ticks
     for your application.

   - Hardware multplier was not enable to make the object useable on all devices

   - The Abassi MSP430 assembly file (Abassi_MSP430?_D?_??.r82) was built using the following
      definitions:
                  OS_DATA_MODEL=?       ---->  0:Small, 1:Medium, 2:Large (DS, DM, DL in .r43 name)
                  OS_ISR_STACK=0
                  OS_NESTED_INTS=0
                  OS_HANDLE_OSC=1
                  OS_N_INTERRUPTS=??    ----> 16, 32 or 64 (in .r43 name)
                  OS_OPT__lock_r4=0
                  OS_OPT__lock_r5=0

   - When using Demo #3 with TINY, the two lowest priority tasks (ST-A & ST-B) will never run
     because the stravation protection is not turned on in the TINY version


/* ------------------------------------------------------------------------------------------------ */
/* Overall file system from at this level                                                           */

. --- / --- readme.txt        [Me]
      |
      / --- AbassiFree.eww    [IAR IDE Workspace]
      |
      / --- ProjectsFree      [All projects of the workspace are in this folder]
      |
      / --- inc               [Projects include files)
      |
      / --- obj               [Abassi object files)
      |
      / --- src               [Demo source code]

/* EOF */
