######################################################################

 		     NanoQplus OS 2 (Nano OS)
		    	   H I S T O R Y 

   ETRI (Electronics and Telecommunications of Research Institute)

######################################################################
2008.02.xx version 2.3.4
 1.TENO routing module.
  - Bug fix


2008.01.14 version 2.3.3
 1. Nano MAC
  - Bug that RX is not executed forever after TX has been fixed.

2.Tree-based ETRI NanoQplus OS (TENO) routing module is newly added.
  - Tree-based routing for tree networks.
  - support 16bit address. (0xFFFF is reserved for protocol)
 	

2007.11.28 version 2.3.2 hotfix 
 1. Nano MAC
  - Re-entrance bug of nmac_tx() and nmac_tx_noack() has been fixed.
  - Bug that RSSI, Corr cannot be read from namc_rx() has been fixed.
  - Performace is improved.


2007.11.23 version 2.3.2
 1. All modules have been rearranged.
  - Unnecessarily included header files are removed.
  - Global variables are defined in the C code instead of the header.

 2. Clock architecture for MSP430 has been changed.
  - clock.h and clock.c handle hardware clocks for MSP430 system.
  - MCLK for CPU is 4,194,304Hz (4096kHz) from DCO oscillator.
  - SMCLK is 2,097,152Hz (2048kHz) from DCO oscillator.
  - ACLK is 32,768Hz (32kHz) from LF mode of LFXT1 oscillator.

 3. Timer architerture has been changed.
  3.1 MSP430 
   - timer.h and timer.c manage timers for MSP430 system.
   - TimerA uses SMCLK for kernel, 802.15.4 and UART. (Do not change!)
   - TimerB uses ACLK for UART (32768KHz. It used for DCO calibration). 
   - TimerA CCR0 interrupt is used for kernel scheduling timer. The maximum period is 32ms
   - TimerA CCR1 interrupt is used for 802.15.4MAC scheduling timer. The period is 320us
   - TimerA overflow interrupt is used to make periodic DCO calibration for high-speed UART communication.
  3.2 ATmega128
   - Timer0 is used for "Time check" module (32.768KHz)
   - Timer2 is used for 802.15.4 scheduling (320us)
   - Timer3 is used for kernel scheduling (5, 10, 32ms)

 4. UART module for MSP430 has been updated
  - The periodic calibration for DCO oscillator makes UART module endurable for the change of temparature.
  - Baudrate for MSP430 supports up to 921600.
  - Baudrate for ATmega128L (Nano24, ETRI-SSN, Sky-z200) suppors up to 1M.

 5. Kernel module has been changed.
   5.1 Scheduling time (time slice) that are now supported has been changed to
    - 5ms, 10ms, 32ms
   5.2. thread_create() has been modified, so that they return a created id number after called.
    - If you want to use the old function, please select "Manual numbering for thread ID (Deprecated)" in menuconfig.
   5.3. thread_kill() function has been added.
   5.4. thread_suspend(), thread_exit bug has been fixed.
   5.5. timer_create() has been modified.
    - Old timer_create() is not supported in this version. Argument *ptmid should be removed. timer_create() will return TIMER_ID.
    - The file names are changed to user_timer.h, user_timer.c to distinguish user timer from hardware timer.
   5.6. Semaphore module has been updated.
   5.7. Message queue module has been updated.
   5.8. Automatic stack size configuring module (BETA) has been removed from menuconfig.
   5.9. Small changes in codes for performance optimization.

 6. Time check module has been changed.
  - Now, MSP430 is also supported.
  - It uses 32.768KHz crystal oscillator.
  - The resolution is from 30.52us to 2 sec.
  - ATmega128 uses Timer/Counter0 ISR for time check.
     . Check that interrupt is enabled if ATmega128 CPU is used. 
     . If interrupt is disabled, the maximum time that can be measured is 7.8125ms
  - You can check the local time (age) of each node with this module.

 7. Nano-MAC has been updated
  - You can refer to RSSI and correlation values from MAC-RX queue.

  
2007.10.08 version 2.3.1
 1. Kernel module supports up to 15 threads.
  - Extended multi-thread module is included as an option. This module may affect the performance quite a little.

 2. User timer module has been updated.
  - 'nos_timer_create_xx' function has been changed
    .Timer numbers are auto-generated by kernel
      ('tmid' argument should be a pointer to store timer id which is generated automatically by kernel.)
    .No need to pass arguments in the function called by timer
      ('args_data' argument has been removed. You can use "void function" only.)
  - Some minor errors have been fixed
  
 3. The non-blocking mode in message queue module is now supported.

 4. Nano-MAC has been changed.
  - RX overflow handling bugs have been fixed.
  - APIs for TX power level control has been added. ( vold mac_set_tx_power(UINT8 level), level:1~31 )


2007.09.17 version 2.3.0
 1. First release version of Nano Qplus OS 2


2007.08.09 version 2.2.7 
 1.Automatic stack size configuring module (BETA) has been added.
  - Warning! : Do not declare local pointer or local array. The address may not be valid because the address can be changed whenever ctx_sw() is called.

