===========================================================================
Freescale CodeWarrior Development Studio for Nintendo® DSi 1.6 Service Pack 1
===========================================================================
© 2009-2011 Freescale Semiconductor, Inc. All rights reserved.
Freescale, the Freescale logo, and CodeWarrior are trademarks of Freescale 
Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. All other product or 
service names are the property of their respective owners.
===========================================================================

August 31, 2011

CONTENTS

  + Important Notes
  + About new compiler
  + IS-NITRO-DEBUGGER and IS-TWL-DEBUGGER software
  + Installing CodeWarrior for NINTENDO DSi
  + New Features
  + Summary of Fixes
  + Helpful Tips
  + Restrictions
  + Known Issues

===========================================================================
         Important Notes. Please Read Before Using The Tools!
===========================================================================

NOTE: For version 1.1 and beyond, Nintendo TWL is renamed Nintendo DSi 
system.

NOTE: Default for "C/C++ Language"->"ISO C++ Template Parser" is changed 
from "OFF" to "ON" at DSi 1.1 - build tool patch 1 (ARM Compiler 4.0 
Build 1018). There might be some influences while compiling when the 
template code has not suited standard C++ by this change.

This is a collection of important information concerning last-minute 
changes and other topics that deserve special attention. Please read 
these notes carefully, they supersede the manuals and other documentation.

*** THE PRODUCT LICENSE WILL EXPIRE MARCH 31, 2012 ***

IMPORTANT!

When this version of the IDE opens a project which was created
by previous versions of CW for Nintendo DS®, the IDE will perform a
project conversion to update to the current IDE.

You should not use the converted projects with older versions of CW for
Nintendo DS. The project files will be renamed with a suffix of "old.mcp"
before the conversion occurs. You may continue using the "old.mcp" 
project files in older versions of CW for Nintendo DS.

A warning is displayed before this project conversion occurs and the user 
can choose to cancel and prevent project conversion.

For example when opening a project named "SimpleProject.mcp", the IDE 
will convert the project and create a "SimpleProject.old.mcp" in the 
same location as SimpleProject.mcp.

===========================================================================
About new compiler
===========================================================================

Refer to the following file, which contains the explanation about a new compiler.

{CW}\Release_Notes\ARM\Compiler_Release_Notes\
    ARM_Compiler4.0_Transition_Notes.txt

===========================================================================
IS-NITRO-DEBUGGER and IS-TWL-DEBUGGER software
===========================================================================

All stationery and examples in this version use the libisdmainparm.a 
library for debug output. You MUST install IS-NITRO-DEBUGGER and 
IS-TWL-DEBUGGER before installing CodeWarrior for Nintendo DSi. It is 
also required to use the IS-NITRO-DEBUGGER/IS-TWL-DEBUGGER hardware from 
the CodeWarrior debugger. We recommend you install the latest 
IS-NITRO-DEBUGGER/IS-TWL-DEBUGGER software available on the Nintendo site 
to prevent unexpected problems caused by a DLL conflict.

If you choose to install even though the IS-NITRO-DEBUGGER or 
IS-TWL-DEBUGGER is not installed, you must perform these steps to 
complete the CodeWarrior installation:

1) Install a debugger, which will create the required environment variable.

   - DS:  Install IS-NITRO-DEBUGGER. Creates variable IS_NITRO_DIR.
   - TWL: Install IS-TWL-DEBUGGER. Creates variable IS_TWL_DEBUGGER_DIR.

2) Run this batch file in the CodeWarrior installation directory:
   
   {CW}\bin\setTWLSrcTree.bat
   
   This will ensure that your source trees are created correctly.

===========================================================================
Installing CodeWarrior for Nintendo DSi
===========================================================================

* HOW TO INSTALL
----------------
Run CodeWarrior for Nintendo DSi Installer.

See Known Issues below if you are installing on a system with Windows 
Vista.

* ENVIRONMENT VARIABLES
-----------------------
The installer has been modified to attempt to detect an installation of 
the TWL SDK. It will look for the SDK at this location in this order:

    1. environment variable TWLSDK_ROOT for TWL SDK.
    2. root of the C: drive, using the default folder names

In all cases, the installer will confirm the path found, or ask for a 
path, before continuing the installation. The installer will then create 
the environment variable CW_TWLSDK_ROOT for TWL to point to the selected 
path.

If you are building NAND applications, you must add the path 
"{Cygwin}\bin\" to the environment variable "PATH". When building NAND
applications, maketad.exe in the TWL SDK is used. The cygcrypto-0.9.8.dll 
library in cygwin is required to be installed for maketad.exe. In a NAND 
application project, maketad.exe is executed using a .bat file.

CAUTION: If you build projects in Nitro mode using CodeWarrior for DSi 
1.2 and later, the environment variable NITROSDK_ROOT is no longer 
supported. If NITROSDK_ROOT is used, linker errors may occur. 

* SOURCE TREE CREATION
----------------------
The installer will ask the user to restart after completion. This 
allows it to create source trees in CodeWarrior. The created source 
tree for TWL is {TWLSDK_ROOT} and it will point to the environment 
variable CW_TWLSDK_ROOT described above. 

NOTE: If the path used during installation does not point to a valid TWL 
SDK file structure, the CodeWarrior projects will not build correctly. 
To correct this, make sure that the environment variable CW_TWLSDK_ROOT is
set to a valid path. (See Known Issues below if you are installing on 
Windows Vista)

* FAILURE HANDLING
------------------
If you get an error upon restarting your machine, the source tree 
creation has likely failed. The installation requires that the IDE be 
launched, and a failure is sometimes due to an unexpected IDE startup 
state. 

If a failure occurs, you can easily add the source tree by navigating to 
the {CW}\bin folder and running the setTWLSrcTree.bat batch file.

* SDK INTEROPERABILITY
----------------------------
If you install a new revision of the TWL SDK, please remember to 
update the CodeWarrior environment variable CW_TWLSDK_ROOT to 
point to the new location.

===========================================================================
New Features
===========================================================================

---------------------------------------------------------------------------
NEW FEATURES IN THIS RELEASE - CodeWarrior for Nintendo DSi 1.6 Service Pack 1
---------------------------------------------------------------------------

- It is now possible to comment and uncomment code through a keyboard 
shortcut "ctrl + /".
  
The (Un)Comment Text Selection feature is implemented as follows depending 
upon how the text is selected:

If a complete line or lines is selected //... will be used.

If an uncomplete line or lines is selected then /* ...*/ will be used. 

Text commented using //... is indented from the start of the line.

If the number of lines selected exceeds the number of lines indented with 
//... then the selection will be commented with //... otherwise the 
selection will be uncommented.

Comments using the form /*yyy*/ can be uncommented in three ways:
- select the text with comment, i.e. /*yyy*/;
- select the text without comment, i.e. yyy;
- select the text with the comment and with blanks, i.e. __/*yyy*/___

If nothing is selected, pressing "Ctrl + /" will result in the current line 
being commented or uncommented. 

---------------------------------------------------------------------------
NEW FEATURES IN FORMER RELEASE - CodeWarrior for Nintendo DSi 1.6 Patch 1
---------------------------------------------------------------------------
No new features for this release.

---------------------------------------------------------------------------
NEW FEATURES IN FORMER RELEASE - CodeWarrior for Nintendo DSi 1.6
---------------------------------------------------------------------------

- Inconsistent line ending warning

A new IDE setting is now available. If enabled, it prohibits the inconsistent 
line ending alert dialog from being displayed.  Furthermore, as long as the 
user does not modify and save the files on their own, source files with 
inconsistent line endings will not be repaired by the IDE, and the file state 
will not be set as modified. If the user explicitly saves a source file, the 
line endings will be repaired regardless of whether the setting is turned on 
or off.  The setting can be controlled through "Disable newline conversion 
alert" checkbox accessed by "Edit" -> "Preferences..." -> "Editor Settings".


- Create new projects as

A new IDE setting is now available. It controls how newly created projects
are displayed. It's a combo box "Create new projects as" with options 
"MDI Child", "Docked", "Floating", "Tabbed". "Docked" is used by default. 
The setting can be accessed by "Edit" -> "Preferences..." -> "IDE Extras". 

When changing a window from "tabbed" to "docked" or from "docked" to "tabbed" 
you must first make the window "floating". Then you can drag and drop the 
window into position as either "tabbed" or "docked".


- Project format conversion and confirmation dialog

When attempting to open a project file that differs from the current global 
preference; the IDE will ask if a conversion to the current format is wanted. 
This applies whether converting from text-based to binary project formats or 
from binary to text-based project formats. 


---------------------------------------------------------------------------
NEW FEATURES IN FORMER RELEASE - CodeWarrior for Nintendo DSi 1.5
---------------------------------------------------------------------------

- Bookmarks navigation

Navigation is now done between all set bookmarks instead of only those 
in the open document.

- File Open dialogs

File Open dialogs are now resizable.

- "Make new access paths recursive" setting

A new setting "Make new access paths recursive" has been added to 
IDE Preferences. If enabled, the new access paths will be added with the 
recursive option on. By default this setting is disabled. This setting can be 
set by clicking Edit->Preferences->IDE Extras.

- Search Results Window

A details button has been added to Search Results Window. If pressed, full file
path is shown for found files. The button is located in the upper right corner
and has an exclamation mark with a magnifying glass over it.

- Displaying which project accepts user input

It used to be unclear which project was in focus or accepted user input 
such as pressing F5 or F7 buttons. Now such projects are clearly marked 
with '[' and ']'. For instance [myproj.mcp]. 

---------------------------------------------------------------------------
NEW FEATURES IN FORMER RELEASE - CodeWarrior for Nintendo DSi 1.4 Patch 2
---------------------------------------------------------------------------
No new features for this release.

---------------------------------------------------------------------------
NEW FEATURES IN FORMER RELEASE - CodeWarrior for Nintendo DSi 1.4 Patch 1
---------------------------------------------------------------------------
No new features for this release.

---------------------------------------------------------------------------
NEW FEATURES IN FORMER RELEASE - CodeWarrior for Nintendo DSi 1.4
---------------------------------------------------------------------------

- Windows 7
 
CodeWarrior for Nintendo DSi 1.4 supports Windows 7

- Reload externally modified files automatically

A new IDE setting is now available. If enabled, it prohibits the "Reload"
dialog from displaying when a file is modified outside of the 
CodeWarrior IDE. The file is reloaded automatically.

The setting can be controlled through "Reload externally modified files 
automatically" checkbox located in the "Edit" -> "Preferences..." -> 
"Editor Settings".

- TwlSDK 5.5

Stationeries and Examples have been added to support TwlSDK 5.5

---------------------------------------------------------------------------
NEW FEATURES IN FORMER RELEASE - CodeWarrior for Nintendo DSi 1.3 Patch 1
---------------------------------------------------------------------------
No new features for this release.

---------------------------------------------------------------------------
NEW FEATURES IN FORMER RELEASE - CodeWarrior for Nintendo DSi 1.3
---------------------------------------------------------------------------

- Warn when starting NAND application Card emulation

Enabling this setting displays a warning dialog box if NAND Debug Mode
is not selected when debugging a NAND Application. The dialog will not 
be displayed for consecutive debug sessions and will be shown again after 
CodeWarrior is reopened. To disable it, clear "Show this message next 
time" checkbox. This setting also can be controlled through "Warn when 
starting NAND application Card emulation" checkbox located in the "TWL 
Debug Setting" preferences panel under "[Target] settings->Debugger".

* NAND Debug Mode can be changed in "TWL Debug Setting" pref-panel

- Disable interrupts while running steps

This setting is applicable when running steps. Enabling this setting masks
the IME and disables interrupts while running steps. This prevents step 
execution from being forcibly moved to an interrupt routine by an 
interrupt.
 
This setting can be controlled through "Disable interrupts while running 
steps" checkbox located in the "TWL Debug Setting" or "Nitro Debug 
Setting" preferences panels under "[Target] settings->Debugger".

* This option is set false (unchecked) by default to keep compatible 
  behavior for earlier versions of CodeWarrior.
  
* Disabling interrupts will cause debugger to hang inside OS_Init().

- Stationery SDK5.4

Stationery SDK5.4 also work with TwlSDK 5.2 and 5.3

---------------------------------------------------------------------------
NEW FEATURES IN FORMER RELEASE - CodeWarrior for Nintendo DSi 1.2 Patch 1
---------------------------------------------------------------------------
- New linker feature, Linker Command File keyword 'FORCE_OBJECT'

FORCE_OBJECT: 

Specify an object to be forced into a specific section.

Normally, referenced objects in linker object modules are placed in the 
memory map by the linker as they are encountered within the SECTION 
directive block of the linker command file (LCF). Once an object has 
been placed, if it is encountered again in another section or SECTION 
directive, it is ignored because it is already written to the memory 
map. This feature, called the FORCE_OBJECT directive, will tell the 
linker to  place an object in a specific LCF section. This will allow 
users to more precisely control the location of specific objects in the 
memory map.

Example:
SECTION {
	.sec1:
	{
		* (.text)
		Filename.c (.data)
	} > SEGMENT1
	.sec2:
	{
		FORCE_OBJECT(afunc,Filename2.c)
		* (.text)
	} > SEGMENT2
} 

In this example, the object 'afunc' is not placed in .sec1 even though 
the file selection directive '* (.text)' has been specified to place 
all objects in .text sections. The next section, .sec2, has a 
FORCE_OBJECT directive, and 'afunc' is placed in .sec2.

SYNTAX:

	FORCE_OBJECT(objectName, moduleName)
	
where objectName is the full (and mangled, if C++) name of the object 
you wish to force. moduleName is either the C/C++ filename or a library 
filename. When moduleName refers to a filename, the plugin linker 
supports the .c or .cpp extensions, while the command line linker 
supports the .o extension.

USAGE INFORMATION:

The OBJECT directive overrides FORCE_OBJECT. If an OBJECT directive 
occurs in a preceding section, the object will be placed by the OBJECT 
directive. 

If multiple FORCE_OBJECT(<obj>,<module>) directives occur in different 
sections, a warning will be issued. The first 
FORCE_OBJECT(<obj>,<module>) takes precedence and the remaining 
directives are ignored. The <obj>, <module> parameters must be the same 
for each duplicate FORCE_OBJECT directive.


Example:
SECTION {
	.sec1:
	{
		* (.text)
		Filename.c (.data)
		FORCE_OBJECT(afunc,Filename2.c)
	} > SEGMENT1
	.sec2:
	{
		FORCE_OBJECT(afunc,Filename2.c)
		* (.text)
	} > SEGMENT2
} 

Linker command file warning at line 323
Object "afunc" already forced in section ".sec1", FORCE_OBJECT at line 
323 ignored

The FORCE_OBJECT directive works with function and data objects and may 
be specified multiple times within a section directive. Duplicate 
directives with the same  <obj>,<module> parameters and within the same 
section are ignored with no warning.

Objects must reside in their own ELF section for the directive to 
operate properly. This is generally true for function objects. Data 
objects are sometimes pooled into a common sections, however, and may 
not be forced individually if they are pooled.

FORCE_OBJECT directives may be placed anywhere within the section 
specification. The actual placement of the object is controlled by the 
normal placement directives within the section. In other words, a 
placement directive such as '* (.text)' is required to place the object 
in the memory map. Note this is slightly different than the OBJECT 
directive, which places an object immediately.

---------------------------------------------------------------------------
NEW FEATURES IN FORMER RELEASE - CodeWarrior for Nintendo DSi 1.2
---------------------------------------------------------------------------
- Support is now available to add the LTD Libraries to the ltdoverlay 
  sections. To place the LTD libraries in the ltdoverlay sections, 
  you must do the following:

  1. In the "Overlays" tab of your CodeWarrior project, right click to 
     select "Create Overlay Group...". The group name should be 
     prefixed with "LTDOVERLAY". A valid address or "FF" should be 
     entered as the "Base Code Address". 
     * Please note that the ltdoverlay sections must be placed on a 
       memory address that is higher than the address of LTDMAIN. 
       Please make sure that "@LTDMAIN" is located before ltdoverlay 
       sections.
     * Using FF as the "Base Code Address" means that the current 
       section is placed immediately after the other specified section.
   
  2. Expand the newly created group and double-click "New Overlay" to 
     rename the overlay to anything you want (No spaces).

  3. Drag your LTD libraries and other files into this ltdoverlay. The 
     files can also be added by right clicking the new ltdoverlay and 
     selecting "Add Files...".

- Support is now available to specify overlay modules to exclude from 
  compression. To exclude an overlay from compression, you must to do 
  the following:

  1. In the "Overlays" tab of your CodeWarrior project, double-click 
     the overlay to exclude. Edit the overlay name and put as it's 
     suffix either ".EXCLUSION" or ".SMART".
     * EXCLUSION - excludes the file from compression
     * SMART     - applies compression according to the -c option. 
                   This is the default behavior.
	  
  2. Open "Twl TS Debug Settings"->"Linker"->"TWL Makerom Postlinker"
  3. Add -l "%OUTPUT_FOLDER%\compspec.list" to the compstatic options
     * Note that the -l option is used in combination with the -c 
       option. If the -c option is not specified no compression will 
       be performed.

- Support is now available to force the NITRO mode for TWL Hybrid 
  Applications. To select the NITRO mode, you must do the following:

  1. Open "Twl TS Debug Settings"->"Debugger"->"TWL Debugger Settings" 
  2. Select "Force NITRO mode for Hybrid Application" Debug mode.
  
- Support is now available to force NAND mode for a TWL Nand 
  Application. This is shown with the TWL Nand stationery. To 
  manually force NAND debugging mode, you must do the following:

  1. Open "Twl TS Debug Settings"->"Debugger"->"TWL Debugger Settings" 
  2. Select "NAND mode (TAD file)" Debug mode.
  3. Change NAND options as needed.
    3.1. "Control imports" controls Import mode. 
         * Uncheck to import to NAND when needed.
         * Check "Control imports" to choose between "Always import" 
           and "Never import".
    3.2. Other NAND options clear data when selected.
         * Sub-banners - These are subsets of the game banners. This data 
           is used to swap out image data contained in game banners. 
           Alternately, it is the mechanism for swapping out banner images.
         * Public save data - One of the save data regions. You can copy 
           this region to an SD card.
         * Private save data - One of the save data regions. You cannot 
           copy data from this region to an SD card.

- Support is now available to emulate an AC adapter and remaining battery 
  life. This can be done either through a "TWL" menu or toolbar.

  * AC Adapter Connection Status - Emulates connection and disconnection 
    of an AC adapter. If the button icon is highlighted (turned ON), an 
    AC adapter is connected.

  * Remaining Battery Life - Emulates the remaining battery life. Specify 
    the remaining battery life by choosing an option from the drop-down 
    menu. 
 
---------------------------------------------------------------------------
NEW FEATURES IN FORMER RELEASE - CodeWarrior for Nintendo DSi 1.1
---------------------------------------------------------------------------
- Support is now available to add the LTD Libraries to the LTDMAIN 
  section. This is shown with the TWL Hybrid stationery. To manually 
  place the LTD libraries in the LTDMAIN section, you will need to do the 
  following:

  1. In the "Overlays" tab of your CodeWarrior project, right click to 
     select "Create Overlay Group...". The name "@LTDMAIN" should be 
     entered for the group and "FF" for the "Base Code Address". 

     * Please note that the "@LTDMAIN" group must be placed on a memory 
       address that is higher than the address of other shared overlay 
       groups. Please make sure that "@LTDMAIN" is located after standard 
       overlay groups.
   
  2. Expand the group "@LTDMAIN" and double-click "New Overlay" to rename 
     the overlay to "LTDMAIN".

  3. Drag your LTD libraries and other files into "LTDMAIN". The files can 
     also be added by right clicking "LTDMAIN" and selecting "Add 
     Files...".

- A new prefix file called twl_TS_LTD_prefix.h has been added to 
  ARM_EABI_Support/TWL/prefix. It defines SDK_TWLLTD and should be used 
  with all LTD projects. It has been included in all new LTD stationeries.
  The existing file twl_TS_prefix.h remains to be used with all hybrid 
  projects since it defines SDK_TWLHYB. 
  
  * Note that the definition for SDK_RELEASE has been removed from
    twl_TS_prefix.h and is not included in twl_TS_LTD_prefix. This 
    definition was removed to resolve conflicts that could occur when 
    compiling ROM build targets. The removal of this definition may cause 
    target definition should be added to the C/C++ Preprocessor panel.

- This product was tested on the following operating systems:

   *  Microsoft® Windows XP® with SP3 (32 bit)
   *  Microsoft Windows XP with SP2 (32 bit)
   *  Microsoft Windows Vista® (32 bit)
   *  Microsoft Windows Vista with SP1 (32 bit)
   *  Microsoft Windows 7 (32 bit/64 bit)

===========================================================================
Summary of Fixes
===========================================================================

---------------------------------------------------------------------------
FIXES IN THIS RELEASE - CodeWarrior for Nintendo DSi 1.6 Service Pack 1
---------------------------------------------------------------------------

- MTWX36247 Feature Request: to be able to comment and uncomment code through
            a keyboard shortcut.

- MTWX48001 Multiple watchpoints can be set at same point with context menu.

- MTWX43621 Project Inspector doesn't save changes when pressing "save".

- MTWX45618 Sometimes focused project mark [] disappears.

- MTWX48401 IDE does not indicate an error dialog when IDE is opened by
            double-clicking mcp though an error occurs.

- MTWX15373 Debugger loses connection after doing a break while in an infinite 
            loop in an overlay.	

- MTWX30080 Variable assignment "scratch space" shows up in disassembly view.

- MTWX45690 If after debugging '.tef.mcp' project(Elf_Droped project) with 
            missing '.srl' in folder, put '.srl' in folder and start to debug, 
            then error message about missing '.srl' continue to appear.

- MTWX45693 The feature ("AC adapter connection status" and "remaining battery 
            charge") stops working if connection name is renamed.

- MTWX18892 Refresh "Nitro Debug message window" more frequently to decrease a 
            delay of showing messages from user program.

- MTWX41767 'watchpoint' works incorrect. for Nitro.	

---------------------------------------------------------------------------
FIXES IN FORMER RELEASE - CodeWarrior for Nintendo DSi 1.6 Patch 1
---------------------------------------------------------------------------

Summary of Changes for ARM Compiler 4.0 Build 1051 (07-15-2011)
---------------------------------------------------------------------------

- MTWX48125 Turning on inlining causes the <this pointer > of the related 
            class object to be corrupted

---------------------------------------------------------------------------
FIXES IN FORMER RELEASE - CodeWarrior for Nintendo DSi 1.6
---------------------------------------------------------------------------
			
- MTWX33107 Option to turn off the inconsistent line ending warning

- MTWX38602 FEATURE REQUEST: Opening more than one project splits the project
            panel horizontally. You can move the project so that it becomes 
            a separate tab, but if the project files are updated then it will 
            go back to splitting the project panel for the next session.
            Could this be controlled by a setting on the IDE preferences screen?

- MTWX39404 Request to convert text based project to binary if "Use text-based 
            projects" setting is NOT selected.
			
- MTWX42325 IDE searches a wrong character in Shift-JIS text file.	
	
- MTWX44102 After the initial install the font in the "Font & Tab" settings
            is shown as being "Agency FB" although "Courier" or "Courier new" 
            is actually used.
			
- MTWX47141 Breakpoints disappearing from subproject.
			
- MTWX47656 IDE crash when rebuilding a specific repro project.


Summary of Changes for ARM Compiler 4.0 Build 1050 (06-21-2011)
---------------------------------------------------------------------------

- MTWX47729 Alignment issue when compiling thumb code

- MTWX21541 Unsupported option -inst[mgr | ance_manager] resides in -help 
            message

- MTWX19878 mwccarm help message to have improved description of -w 
            impl_signedunsigned

- MTWX37459 CodeWarrior issue with precompiled headers

- MTWX20403 Compiler to use the method to maintain 8 byte alignment for stack 
            which is the most suitable for a situation of source code

  Example:
  From: (r3 was dummy)
    stmfd    sp!,{r3-r4,lr}
    sub      sp,sp,#0x4
  
  To:
    stmfd    sp!,{r4,lr}
    sub      sp,sp,#0x8

Compiler was pushing a dummy register to make stack 8-byte aligned.
This is now changed to emit sub/add SP to make stack 8-byte aligned for speed 
optimization. (And decrease cycle time of stmfd)

- MTWX41898 KW typeid works incorrect with pointer to method type

---------------------------------------------------------------------------
FIXES IN FORMER RELEASE - CodeWarrior for Nintendo DSi 1.5
---------------------------------------------------------------------------

- MTWX31059 FEATURE: There doesn't appear to be an effective way of moving 
            through the disassembly view of the memory window. At the 
            moment for example I am looking at 802DD164 - 802DD274 (incl.),
            which judging by the border at the bottom is the most code it 
            will show at once. But if I click the page up or page down 
            buttons, it moves by 0x1000. This makes following code a bit 
            tricky. It would be more useful to just let people page up and
            down using the keyboard, or use the cursor keys.

- MTWX31304 [Classic IDE] When we modify the value for a pointer the address 
            value is not updated for the dereference pointer if the value of
            deference pointer is not changed.

- MTWX33102 save/restore registers window sometimes causes odd flickering 
            for a few seconds

- MTWX33104 FEATURE REQUEST: resizable File->Open dialogs.

- MTWX34842 FEATURE REQUEST: Add feature to turn off the behavior of 
            automatically making access paths recursive when you add a 
            file to a project. 

- MTWX36342 navigating bookmarks functioning only in current file not 
            through all placed bookmarks.

- MTWX36946 FEATURE REQUEST: the full path displayed for each file right in
            the entry itself? When searching a large codebase that contains 
            many similarly-named files it is tricky to find the one you are 
            after when you can only view the location of each by 
            painstakingly moving the cursor to each line.

- MTWX37467 debugger uses breakpoint from other project when multiple 
            duplicated projects are opend

- MTWX41864 Checkbox cannot be unchecked in Targets tab of the Project 
            Inspector window.

- MTWX42222 CodeWarrior for Wii and DSi highlights syntax in the Plug-In 
            Diagnostic Info window

- MTWX42640 Breakpoint is not assigned a project, when it is set on a source,
            which is not part of the current target.

- MTWX43015 Clicking on a memory address will open memory window for every 
            click.

- MTWX43292 Exception error occurs in IDE if there is an attempt to delete 
            the current target, which was built beforehand and if 
            "Errors&Warnings" window is shown.

- MTWX43377 In Errors&Warnings window bookmark is not being repainted, 
            after arrow has passed from string, where bookmark is to 
            another error/warning.

- MTWX43405 Renaming target in Target Settings panel to name that already 
            exists does not produce any error message.

- MTWX43518 Creating a project with special characters in its name is not 
            handled correctly. 

- MTWX43525 Bookmarks are not being repainted properly while scrolling.

- MTWX43564 Bookmark set in source window is not being updated in another 
            window with this source.

- MTWX43651 The code for error/warning is not being shown in the 
            Errors&Warnings window, if the window is explicitly opened.

- MTWX43849 There is garbage in the Expressions view, if opened 2 projects,
            which are using the same variables.

- MTWX43933 IDE crashes if start to debug .tef.mcp project(Elf_Droped project)
            with missing .srl in folder.

- MTWX43943 Pressing on "Show or hide warning messages"(triangle with 
            exclamation mark) in "Errors&Warnings" and in "Find in Files" 
            windows always selects the first item in the list.

- MTWX44446 Localization has been completed for MTWX36946. 
            It should be rolled into the Japanese next IDE builds.

- MTWX44140 Setting a bookmark on the very first or very last line of text 
            causes unstable behavior.

- MTWX44082 At times bookmarks aren't being repainted properly

- MTWX44243 Project Messages window doesn't work properly

- MTWX45154 Update Copyright year to 2011

- MTWX45391 Show which project accepts user input.


Summary of Changes for ARM Compiler 4.0 Build 1048 (02/02/2011)
---------------------------------------------------------------------------

- Fixed MTWX45665 - Values are still getting passed improperly into 
                    functions in some cases.

Summary of Changes for ARM Compiler 4.0 Build 1047 (01-24-2011)
---------------------------------------------------------------------------

- Fixed MTWX44089 - Speed optimizations results in a smaller code size than 
                    compiling the same target optimized for Size

- Fixed MTWX19893 - Unnecessary bit clear instruction is generated in 
                    writing to a member of bitfield

- Fixed MTWX38568 - The compiler is generating umull code rather than using 
                    smull which is resulting in decreased performance


---------------------------------------------------------------------------
FIXES IN FORMER RELEASE - CodeWarrior for Nintendo DSi 1.4 Patch 2
---------------------------------------------------------------------------

Summary of Changes for ARM Compiler 4.0 Build 1046 (12-20-2010)
---------------------------------------------------------------------------

- MTWX43171 Update SP for scratch space used on stack. (Re-fixed)

---------------------------------------------------------------------------
FIXES IN FORMER RELEASE - CodeWarrior for Nintendo DSi 1.4 Patch 1
---------------------------------------------------------------------------

- MTWX43838 IDE/Debugger crashing when trying to close debugger/thread 
            window after selecting "Attach to Thread" option.

- MTWX43839 IDE becomes unresponsive if while debugging you change the 
            project's target and start up another debugging session.

- MTWX43996 When leaving a function after 2nd breakpoint iteration
            message box with "TWL Hardware Debugger: Unknown error"
            appears and execution does not return to caller 
            (no similar error for Nitro project)

- MTWX43841 Add description of Windows 7 64-bit support in Developer 
            Notes and Quick Start.

Summary of Changes for ARM Compiler 4.0 Build 1045 (12-09-2010)
---------------------------------------------------------------------------

- MTWX44325 Fix passing struct by value due to unaligned stack offsets.
            Side effect of fix for MTWX43171. Reverted MTWX43171 fix.

- MTWX43819 pragma to control long long divison optimization 
            (MTWX27741).

signed long long divison optimization is turned off by default and
can be controlled using following pragma

	#pragma opt_longlong_div on | off | reset

- MTWX40838 Handled warning inconsistencies for unary operator 
            promotions when run with -w all.   

unsigned short us1,us2;            
Case 1
	us1 |= us2;  // No Warning (CORRECT)
Case 2
	us1 &= ~us2; // Warning : implicit arithmetic conversion from
                     // "int" to "unsigned short" (WRONG)

- MTWX43357 Handled the Linker error caused after the introduction 
            of new flag in the compiler  for explicit declarations.

- MTWX43356 IPA program disabled as it is not supported.

- MTWX44523 Passing structs by value as arguments to a function. Side 
            effect of fix for MTWX43171. Reverted MTWX43171 fix.

- MTWX44088 Not a bug. Software divide routine, division by constant 
            2 is replaced with bit-shift by the user's use of 
            '#pragma opt_longlong_div on'. Therefore, the pattern is 
            different and constant propagation/folding cannot be 
            efficient. Refer opt_longlong_div pragma documentation for 
            more details.

---------------------------------------------------------------------------
FIXES IN FORMER RELEASE - CodeWarrior for Nintendo DSi 1.4
---------------------------------------------------------------------------

- MTWX29078 IDE internal editor does not detect source file encoding 
            correctly when it reloads the file.
			
- MTWX29626 "View As" settings not saved in Live Variable view

- MTWX30084 CodeWarrior highlights C and C++ syntax in the debugging 
            messages view.
			
- MTWX33194 Log Message of Log Point is shown on different windows.

- MTWX35102 The path of include file is unrecognized when compiling a 
            project.
			
- MTWX36116 Request an option to avoid "reload" dialog for modified file 
            by external editor.
			
- MTWX36341 Bookmarks are not working properly in the editor.

- MTWX36557 CodeWarrior now remembers the last place you searched for 
            files in the Find-in-Files window. 
			
- MTWX40616 Type name of template which is created newly was not 
            displayed correctly.
			
- MTWX41197 Copyright years are old for "About Freescale CodeWarrior IDE"
            dialog in Japanese Version.
			
- MTWX41386 In "Variables:Live Pane", clicking on a variable several 
            times opens another window for this same variable.
			
- MTWX41387 Tcl command window crashes.

- MTWX41738 Added missing TWL SDK 5.4 examples

- MTWX41812 Tcl command 'dir' works incorrectly for CW DSi (found during 
            testing 'dir_ls' test case)
			
- MTWX42232 CodeWarrior IDE crashes on Windows 7 when Aero is enabled

- MTWX42581 Bookmarks in the debugger window are not re-painting when 
            Program Counter arrow goes through.

- MTWX42811 Request to add stationery and examples that may be 
            added to TwlSDK 5.5.
			
- MTWX42888 DTCM address for Release and ROM targets is wrong for 
            some examples.
			
- MTWX43014 Clicking on a particular register several times, 
            opens a new window for this same register for every click.
			
Summary of Changes for ARM Compiler 4.0 Build 1040 (09-15-2010)
---------------------------------------------------------------------------

- MTWX43171 DSi compiler may not allocate stack space properly. 
            Function arguments are passed either in registers, on the 
            stack, or a combination of both. In certain cases where 
            function arguments were passed in registers and the stack, 
            the compiler writes to unused stack memory without properly 
            allocating the stack pointer by decrementing the stack 
            pointer. In most cases, this action was benign since the 
            callee would then allocate its stack space. However, in some 
            cases where interrupts occurred when the machine was using 
            unallocated stack space, the interrupt would corrupt the 
            data in the unallocated stack, resulting in a program 
            failure. The compiler now only uses stack space that has 
            been properly allocated in the calling function. You will 
            not see a difference in your programs if you were 
            unaffected by this bug previously.

- MTWX38390 User code generates illegal explicit template  
            specialization error. This error will occur if the following 
            code:

template<> void S<0>::method()
{
} 
            is followed directly by 

#pragma section ...

            It is caused by a conflict between the C++ parser and the 
            ARM specific #pragma parser. Unless you have specifically 
            seen this issue, the fix will be transparent to existing code.

- MTWX38486 The compiler is allocating more local storage than it appears 
            to need. Some optimizations eliminate stores to the stack 
            memory locations. However, the actual the location of the 
            dead store was left on the stack. The unused stack locations 
            are now deleted. You may see a beneficial reduction in 
            stack size for some functions where dead stores have been 
            eliminated.

- MTWX39435 There are cases where the "size" optimization creates a 
            larger code size than the "speed" optimization or "no 
            optimizations". When optimizing for size, the compiler will 
            force inlining of function when it determines that inlining 
            will result in smaller code size. The heuristics have been 
            modified to better calculate the size effects of inlining. 
            You are not likely to see much effect from this change.

- MTWX40838 Warning for implicit arithmetic conversion was not shown 
            when using an integer constant into the short variable. When 
            a numerical constant exceeding the width of a type is found 
            in an expression, an implicit arithmetic conversion warning 
            will be issued when '-w all' is specified. Previously no 
            warning was issued. For example:

svar = svar2 + 33000;
	
            A warning is issued since 33000 exceeds the width of a short 
            data type.

- MTWX37062 Vector STL code was no longer compiling as with previous 
            versions. The STL has been modified to correctly build as it 
            was previously.

- MWTX41496 An apparent ABI violation occurred in _fsqrt when you 
            square-root negative numbers. When taking the square 
            root of a negative number with the C library function, 
            sqrtf(), the math runtime library corrupts the math R4 
            register while setting the 'errno' value to EDOM. Note that 
            this fix adds 2 instruction cycles (to save and restore R4) 
            to all sqrtf() function calls. This fix appears in the math 
            runtime libraries.

- MTWX41719 An optimization bug caused failure of a test program. The 
            compiler was erroneously removing code between a load and a 
            store instruction.

- MTWX27741 The code generation has been improved when dividing 64-bit 
            data by a power-of-2 divisor.

- MTWX30753 A local constant data which is not strings is put in the 
            same section with a global constant strings data when the 
            "Pool Strings" option is used. The initialization of an 
            unused local variable is not longer considered a reference 
            to that variable. The initialization data will now be 
            properly dead-stripped if the variable is unused. Overall 
            data size may be reduced due to dead-stripped of unused 
            initialization data.

Summary of Changes for ARM Compiler 4.0 Build 1037 (07-08-2010)
---------------------------------------------------------------------------

- MTWX42369 An illegal implicit conversion is generating an internal 
            compiler error. In attempting to generate an error message 
            for an illegal implicit conversion, the compiler generated 
            an ICE (Internal Compiler Error) instead of a proper error 
            message.

---------------------------------------------------------------------------
FIXES IN FORMER RELEASE - CodeWarrior for Nintendo DSi 1.3 Patch 1
---------------------------------------------------------------------------

- MTWX40081 IDE shows a corrupt stack when a program is stopped by the 
            interrupt handler.

- MTWX41133 The "Auto power on card slot" checkbox was removed from the 
            TWL debugger preferences panel.
			
- MTWX41673 Debugger not returning to the appropriate instruction from 
            the calling function.
			
Summary of Changes for ARM Compiler 4.0 Build 1036 (05-21-2010)
---------------------------------------------------------------------------

- MTWX40894 Compiler has an unexpected error triggered by level 1 
            optimizations.

- MTWX41250 Compiler generates erroneous results when code is optimized.
 
- MTWX41086 The loop analyzer incorrectly calculated the iteration 
            count for some loops, causing an optimization error.
 
- MTWX41371 Expression containing explicit destructor call sometimes 
            does not fully evaluate
 
- MTWX41329 Compiler shows Error #10233 "cannot instantiate" with 
            specialized template function.

Other changes: Updated usage information in MSL and Runtime makefiles.

---------------------------------------------------------------------------
FIXES IN FORMER RELEASE - CodeWarrior for Nintendo DSi 1.3
---------------------------------------------------------------------------

- MTWX29902 IDE crashes when "Errors & Warnings" window is open 
            (after Make) and F5 is pressed twice in 0.5 sec.
			
- MTWX32747 Request to indicate a notice dialog when starting Debugger 
            (and starting RUN without Debugger) when NAND ROM image is used
			
- MTWX32953 Editing expression viewed as CString corrupts expression

- MTWX34393 The DS profiler is generating some garbage .mwp files. Some 
            files simply show garbage and other crash the IDE completely. 
			
- MTWX34712 Debugger refers to the incorrect file when stepping in 
            swscanf().

- MTWX34844 In CW for DSi (version 5.9.0 Build 3317), using the same code
            and Windows_Formats.xml file, the Smart Variable Formatting 
            types do not get formatting applied when they are embedded 
            in structs or classes, and just show up as pointer values 
            (dsi.png)
			
- MTWX36891 The Debug target of some projects in Examples links the 
            libraries for ROM target.
			
- MTWX37010 Resetting the DSi through software leads to a loss of future 
            CodeWarrior / TWL Debugger communication.
			
- MTWX37096 After pressing and holding the power button on the 
            IS-TWL-DEBUGGER DSi Unit until the power turns off, the 
            CodeWarrior GUI no longer responds or updates. 
			
- MTWX37228 Breakpoint in library code is not being displayed correctly.

- MTWX37484 Command Evaluate incorrectly displays the type of variable in 
            Command Window.
			
- MTWX37955 Running cmdIDE.exe with a tcl script will leave a command 
            window command interpreter running, preventing a clean exit.

- MTWX38249 Request to add missing TWL SDK 5.2 Examples

- MTWX38318 Some TWL Examples have IS-NITRO-EMULATOR selected as debug 
            connection
			
- MTWX38354 Some examples do not build for the ROM target.

- MTWX38416 When stepping through a project, the debugger does not return 
            to the appropriate instruction. 
            (see "Disable interrupts while running steps" in New Features)
			
- MTWX38448 Some example projects have a Rescued items folder.

- MTWX38632 The parser improperly picks up \" as the beginning of a string.

- MTWX38812 If a project has libs with identical names for diff targets 
            and you delete these files from folders but do not delete 
            folders that contans libs, then your libs are deleted from 
            the project hierarchy when you build it.
			
- MTWX39129 "View As Fixed" was removed from Data Menu.

- MTWX39145 The "Generate Symbol Table" setting is not enabled by default 
            for the "ROM" targets in the DSi stationery and examples.
			
- MTWX39146 Incorrect default settings for the Makelst Preprocessor panel 
            in the TWL stationery and examples.
			
- MTWX39156 Copyright years are old at "About Freescale CodeWarrior IDE" 
            dialog.
			
- MTWX39162 Tcl command 'evaluate' works incorrect. Local variable 
            displays incorrect for type 'string'.
			
- MTWX39630 Need to add stationery for TwlSDK 5.4

- MTWX39631 Need to add examples for TwlSDK 5.4

- MTWX39633 Request to remove "OLD_Materials" directory.

- MTWX39638 StripDebug Postlinker information is lost when you export 
            binary project to xml format
			
- MTWX39656 Add new TWL SDK 5.2 Examples

- MTWX39688 IDE doesn't remember the size and position and style of the 
            "Nitro debug message" window (FB5720)
			
- MTWX39768 Some panels incorrectly import Cmd Window option

- MTWX39885 During import, settings for "TWL_Debug_Setting" preference 
            panel get values from the "NITRO_Debug_Setting" panel.
			
- MTWX39951 Request to remove ChangeHistory.txt and ChangeHistory.jp.txt
			
- MTWX39972 Some settings of "ARM Assembler" Panel conflict with 
            "ARM CodeGen" and "ARM Debugger" panels during import.
			
- MTWX40014 When opening an older project settings of "TWL_Debug_Setting" 
            and  "NITRO_Debug_Setting" panels will be reset to default 
            during convert.
			
- MTWX40553 One project will use debugger settings of another project for 
            it's first debugger session.
			
- MTWX40825 Hiding the Main Toolbar crashes the IDE.

- MTWX41017 In the NITRO Stationery for CW for DSi 1.3, the default 
            configuration for [Target Settings > Language Settings > 
            Makelst Preprocessor > Additional static files] is 
            mistakenly set to the HYBRID version of the OS Library

Summary of Changes for ARM Compiler 4.0 Build 1034 (04-01-2010)
---------------------------------------------------------------------------

- MTWX33309 Want the compiler to treat the expressions 
            ("val_1 = val_1 + val_2" and "val_1 += val_2") equally.

- MTWX35497 The compiler does not generats the warning "illegal 
            constant expression" in some cases that should be warned.

- MTWX36844 Request to set the type name of template in the debugging 
            data format like "Base<int>".

- MTWX36886 Possible pointer to member issue

- MTWX36947 FEATURE REQUEST: Given the sample code below user would 
            like a pragma to generate a warning on the conversion from 
            SomeObject to bool.

Usage:

#pragma warn_impl_p2b_conv on | off | reset (default: off)
Generates a warning for implicit pointer to bool conversions.

Example:

#pragma warn_impl_p2b_conv on

extern void foo(bool);
void bar(char *cp)
{
foo(cp);
}
=>
Warning : implicit arithmetic conversion from 'char *' to 'bool'
Test.cpp line 6 foo(cp); 

- MTWX38109 If "Undefined Macro in #if" warnings are enabled in the 
            target settings and is being included, the following warning 
            is generated.

- MTWX38343 With the code below the compiler is emitting an error: 
            "struct/union/enum/class tag 'X' redefined"

- MTWX39733 Compiler is generating differing results at optimization 
            level 1 and then again at level 2.

- MTWX33959 The default of "ISO C++ Template Parser" option in the 
            "C/C++ Language" panel and command-line tool was changed 
            from 'OFF' to 'ON' in the compiler (as of build 1018). Users 
            may see some effect on their compilation if their template 
            code does not conform to standard C++.

- MTWX38527 KW typeid works incorrect with pointer type (TWL\NITRO).

Example:
const char* name = typeid(int*).name(); 

name is now "int *" instead of C++ mangled name  "Pi"
Note: typeid object name() member output is implementation
defined and should not be relied upon for comparisons.

- MTWX40839 Warning (for implicit arithmetic conversion) was displayed
            for short_var = short_var + (short)int_var.
			
- MTWX39803 The Value of predefined macro __CWCC__ isn't same as the
            value in Release_Notes\ARM\Compiler_Release_Notes\CW C-C++ 
            Notes 4.x.txt.

- MTWX27705 The following warning comes up showing some possible 
			incorrect code in MSL
			
Warning : implicit arithmetic conversion from 'int' to 'unsigned short'
cwctype line 84 || (c >= __msl_wcmap_size)) ? c : 
(int)(_MSL_CWLOWER_ACCESS c]);}  

- MTWX33325 FEATURE REQUEST, Requests to add the option to enable / 
            disable to show a warning message for implicit arithmetic 
            conversion for objects passed to functions.

Added support for new option: [no]impl_funarg

Usage:

-w[arn[ings]] [no]impl_funarg

Example:

mwccarm -w impl_funarg -c main.c
                       
void main(void)
{
    u16 val_1, val_2;
    int i = 1;

    val_1 = val_1 + val_2;  //NO WARNING 
    val_1 = val_2 + 10;     //NO WARNING

    i = sum(i);             //WARNING
}

int sum( short s )
{
    int i = 0;
    i = s + 5;
    return i;
}

Output:

#      22:     i = sum(i);             //WARNING
# Warning:              ^
#   implicit arithmetic conversion from 'int' to 'short'


Other changes:

__CWBE__ built-in macro is now reads as 0x3201.

---------------------------------------------------------------------------
FIXES IN FORMER RELEASE - CodeWarrior for Nintendo DSi 1.2 Patch 2
---------------------------------------------------------------------------

- MTWX39197 (In the [TWL SDK 5.2 Nand Application C] Stationery, 
            the importing of a .tad file over a certain size fails when you
            try to debug the project).

Summary of Changes for ARM Compiler 4.0 Build 1028 (01-12-2010)
---------------------------------------------------------------------------

- MTWX39436 Error: internal compiler error (report to 
            <cw_bug@freescale.com>) 
            while executing in file 'InterferenceGraph.c' 
            line: 415(compiling 'NitroMain' in 'main.cpp') main.cpp line 13

- MTWX39503 When code is generated at optimizations level 3+ it appears
            that a register is being used without being initialized to a 
            value.

See ARM_Compiler_Notes.txt for previous changes to the ARM Compiler.

---------------------------------------------------------------------------
FIXES IN FORMER RELEASE - CodeWarrior for Nintendo DSi 1.2 Patch 1
---------------------------------------------------------------------------

Summary of Changes for ARM Compiler 4.0 Build 1027 (10-02-2009)
---------------------------------------------------------------

- MTWX37938 The shift code is missing from the optimized code.

See ARM_Compiler_Notes.txt for previous changes to the ARM Compiler.

Summary of Changes for ARM Linker 2.0 Build 99 (10-12-2009)
--------------------------------------------------------------

- MTWX30713 New linker feature, Linker Command File keyword 'FORCE_OBJECT'

See ARM_Linker_Notes.txt for previous changes to the ARM Linker.

---------------------------------------------------------------------------
FIXES IN FORMER RELEASE - CodeWarrior for Nintendo DSi 1.2
---------------------------------------------------------------------------

- MTWX32746 Add a direction for checking the "Connection Settings" in 
            the error message when CodeWarrior can not connect to 
            Nitro/TWL hardware.
			
- MTWX32925 Debugger indicates wrong information about virtual inherited 
            class in the variables pane.
			
- MTWX33193 IDE freezes when "debugger kill" or "debugger restart" is 
            done showing the memory window.

- MTWX35434 Project file became corrupted when each target has file with 
            same name and file is removed.
			
- MTWX35841 Deleted "Enable External Card-TWL" from TWL menu.

- MTWX35201 Supported a stop factor "Stop by BKPT instruction".

- MTWX37640 Setting hardware breakpoint on any line causes CW to display a 
            Message Box "Watchpoint at address ?" when program stops in 
            TwlMain or at a software breakpoint.
			
- MTWX33653 Debugger fails to return from sleep.

- MTWX33253 Added NAND application debugging feature.

- MTWX35845 Added new Debugging features, "AC adapter connection status" 
            and "remaining battery charge".

- MTWX32745 Added a function to run a HYBRID application in NITRO mode 
            forcibly when using IS-TWL-DEBUGGER.
			
- MTWX35199 Supported Host IO functions.

- MTWX32796 Debugger can not continue debugging because the code may be 
            changed to the software break code (E7FDDEFE).

- MTWX37601 The value of DW_OP_const4u from DW_AT_data_member_location 
            expression is read by Symbolics in a wrong endianess when 
            DW_AT_data_member_location expression cannot evaluate at 
            compiler time.
			
- MTWX31311 The output strings by OS_Printf() or OS_TPrintf() may be 
            broken when a large number of strings are output continuously.

- MTWX33403 An IDE issue involving "synchronize modification dates" and 
            "Source relative includes" (an unmodified file gets marked 
            dirty). 

- MTWX30362 When using the memory view and stepping, sometimes the view 
            will refresh and position itself to an incorrect address. To 
            restore the previous position, click in the "Display" field 
            and press Enter. 

- MTWX33184 Removed "Export project as GNU makefile" feature.

- MTWX28573 IDE with non-text-based project setting does not show 
            relevant error message while opening text-based .mcp file

- MTWX33185 IDE returns error code "0x80029c4a" when using 
            setTWLsrcTree.exe.

- MTWX33220 IDE crashes when text-based project including sub-project 
            is opened.

- MTWX34828 Registered OLE when "CW for DSi" is installed.

- MTWX36767 Adding a breakpoint to a source file via the command window 
            causes an unhandled exception. Appears only to occur when 
            setting by filename and line number. (i.e. by location or 
            function works)

- MTWX31996 Added support for the "Ltdoverlay" on IDE.

- MTWX35834 Responded to the new option in TwlSDK 5.2 that enables to 
            specify uncompressed overlay.
			
- MTWX33425 Shows an error message if a new overlay is created under 
            "@LTDMAIN".

- MTWX36492 Deleted CW_NITROSDK_ROOT and NITROSDK_ROOT.

- MTWX33017 Added remaining TwlSDK 5.0 Nitro Examples

- MTWX33019 Added TwlSDK 5.0 Examples that were missing 
            (107 projects total)

- MTWX35335 The default setting of "Labels must end with ':'" option in 
            the stationery is wrong.

- MTWX30429 In overlay TwlSDK demo of CW project, overlay_1, overlay_2 
            and overlay_3 are in the same address. 

- MTWX36784 Demo project "explorer" in Examples for TwlSDK 5.2 does not 
            run as expected.

- MTWX36787 Link error occurs in some Examples for TwlSDK 5.2.

- MTWX36837 Added correct ReadMe.txt in the examples for TwlSDK 5.2.

- MTWX36855 Some Examples for TwlSDK 5.2 do not build.

- MTWX36862 Some Examples for TwlSDK 5.2 do not output log info.

- MTWX17096 Message stating that the target needs to be rebuilt is shown 
            in ARM Assembler panel even though no modifications have 
            been made.


Summary of Changes for ARM Compiler 4.0 Build 1026 (09-09-2009)
---------------------------------------------------------------

- MTWX33387 Weak symbol is not overwritten with strong symbol.

- MTWX21275 mwldarm.exe shows wrong version number if it was called 
            without full path name

- MTWX21276 mwasmarm.exe shows wrong version number if it was called 
            without full path name

- MTWX29063 The compiler could not correctly detect a class as 
            being a POD class (new MSL C++ libraries required; 
            specifically, msl_utility).

- MTWX34240 Default argument parsing was incorrect.

- MTWX34710 Stack overflow occurs when use swscanf(). (Requires new MSL 
            C libraries; specifically, wscanf.c).

- MTWX33606 The Metrowerks C/C++ for ARM compiler generates wrong 
            information about virtual inherited class.

- MTWX36344 Request to add MSL libraries that "_MSL_OS_TIME_SUPPORT" is 
            disabled. Note that a sibling directory, 
            ARM_EABI_Support_DS2.0 is created. This directory contains 
            MSL_C for the DS2.0 release (no 'time()' support).

- MTWX20432 mwldarm -help message of -force_active looks incorrect

See ARM_Compiler_Notes.txt for previous changes to the ARM Compiler.

------------------------------------------------------------------------
FIXES IN FORMER RELEASE - CodeWarrior for Nintendo DSi 1.1
Build Tools Patch 3
------------------------------------------------------------------------

All fixes in Patch 3 are for ARM Compiler 4.0 Build 1025 (08-04-2009).
See ARM_Compiler_Notes.txt for changes.

------------------------------------------------------------------------
FIXES IN FORMER RELEASE - CodeWarrior for Nintendo DSi 1.1
Build Tools Patch 2
------------------------------------------------------------------------
 
- MTWX34394  Request to add new stationery for TwlSDK 5.2.

- MTWX35465  Support for TwlSDK 5.2. - Requests to change the name of the
             SSP library that is registered in IDE.  This change will 
             require that all stationeries and examples to be updated.
			 
- MTWX33024  Need to add new stationery and examples for TwlSDK 5.1.

- MTWX33018  Port Nitro CW samples to Example\TWL

------------------------------------------------------------------------
FIXES IN FORMER RELEASE - CodeWarrior for Nintendo DSi 1.1
Build Tools Patch 1
------------------------------------------------------------------------

- MTWX33208  Setting data of TWL Makerom Postlinker is changed if import 
             the project from XML file.

- MTWX32643  The default setting of the "Address" in the "TWL LCF 
             Prelinker" panel is wrong.

- MTWX32789  The setting of the "ISO C++ Template Parser" option in the 
             stationery may have to be changed. 

- MTWX33569  Request to set ON to the default value of "Generate Segment 
             Veneers".

- MTWX33024  Need to add new stationery and examples for TwlSDK 5.1. 
             (Partially fixed. Examples have not been updated.)

See ChangeHistory.txt for previous changes to CodeWarrior for Nintendo DS 
and Nintendo DSi.

===========================================================================
Helpful Tips
===========================================================================

- When working with two (or more) different versions of CW be cautious when
  using Global Settings. If a new setting in panel X was added to the newer
  version of CW, this will cause settings in panel X in the older CW to be
  reset to default values. This will happen every time one opens older CW 
  after using the newer one. This can be avoided by using Local Settings. 
  To use Local Settings either choose that option during installation or 
  copy preference settings files into "..\bin\IDE.exe" directly (see next 
  tip for more details).

- Multiple Preferences/Workspaces - Normally, the preference settings for
  CodeWarrior installations are maintained globally here: 
  C:\Documents and Settings\(user name)\Local Settings\
    Application Data\Metrowerks

  It is recommended that the two files below, be copied into the same 
  directory as "..\bin\IDE.exe" for all CodeWarrior installations:
	1. CodeWarrior IDE 5.9 Prefs...(IDE settings)
  	2. default-5.9.0.cww...........(default work space)

  This will allow you to associate each version of the CodeWarrior tools 
  with its own settings.

===========================================================================
Restrictions
===========================================================================

- Unavailable features
  Some features described in the IDE User's Guide are not available in 
  this product. The following list of features are not available or are 
  not supported:

  * Creating a new project from a makefile (Chapter 3 of the IDE User's 
    Guide)
  * Creating a console application (Chapter 8 of the IDE User's Guide)
  * Flash Programmer (Chapter 23 of the IDE User's Guide)
  * Hardware Diagnostics tools (Chapter 23 of the IDE User's Guide)
  * Logic Analyzer (Chapter 23 of the IDE User's Guide)

- Source Tree creation 
  If during the installation of CodeWarrior, you specify a folder that 
  does not exist for an environment variable, then the source tree 
  creation will fail. This sometimes occurs when a user does not install 
  the SDKs and IS tools prior to installing CodeWarrior. It is 
  recommended that you first install the platform SDK and IS tools 
  before installing CodeWarrior. 

- Limitation of the Expression Window
  When debugging variables of the same name across multiple scopes, 
  the expressions window sometimes does not correctly reflect all values 
  of the variables in each scope. 

- The environment variable, CW_MULTICORE_FOCUS_ONLY=TRUE, should not be 
  changed or removed. When debugging more than one device, it specifies 
  that the multicore menu applies only to the device whose debug session 
  is currently in focus.

- Debugger cannot step into FS_StartOverlay()
  You can set a breakpoint within the FS_StartOverlay() function but not 
  on line 508. Debugger cannot stop on breakpoint set on line 508 in 
  FS_StartOverlay().

- Debugging the Nintendo DSi's EL relocatable modules
  To properly debug EL relocatable modules, it is necessary to build these 
  modules with the partial linking function of the linker (-partial 
  option). Building relocatable modules with the static library 
  (-library option) will not allow the debugger to properly debug the file.

  There are two ways to allow the debugger to load the symbolic 
  information for the EL relocatable modules and allow source level 
  debugging to be available when the elf file is dragged and dropped 
  into the IDE. Ensure that the partially linked files containing 
  symbolic information are in either:
    * the same directory as the .tlf file
    * the search path for the project created by the drag and drop action

- Nintendo DSi's Watchpoint Limitations
  When a watchpoint is hit, the debugger may stop one or two instructions 
  after the watchpoint hit occurred. This is due to a restriction in the 
  hardware. 

  When two watchpoints are set, the watchpoint dialog will display the 
  message,"Watchpoint at address ?". Because of the hardware restriction, 
  it is not possible for the debugger to know which watchpoint has been 
  hit.
  
- FIO/SIO functions. The IS-TWL-DEBUGGER supports functions for FIO 
  (File I/O communications) and SIO (Stream I/O communications). 
  CodeWarrior for DSi 1.2 and later supports FIO functions, but not SIO 
  functions.
  
- Breakpoint on OS_RebootSystem() Limitation
  After stopping on a breakpoint at OS_RebootSystem() consequent step may 
  result in debugger not stopping at this same breakpoint after reboot.

===========================================================================
Known Issues
===========================================================================

- FB6033    If you open a source file that includes a character code that 
            the IDE cannot convert into the Shift-JIS, such as wave dash 
            U+301C, the result in the editor will be garbled.

- When installing under Windows Vista, the installer creates environment 
  variables that point to the SDK directories. Sometimes the installer 
  does not create the environment variable correctly. You can see and 
  modify the environmental variables in the CodeWarrior Source Trees 
  settings panel.

  To see if the environmental variables have been defined correctly:
  1. Open the CodeWarrior IDE
  2. Select Edit > Preferences, then select Source Trees (listed under
     General) 
  3. Make sure that TWLSDK_ROOT and CW_TWLSDK_ROOT are defined to point 
     to the root of your SDK installations and IS_TWL_DEBUGGER_DIR and 
     IS_NITRO_DIR, are defined to point to the IS_TWL_DEBUGGER and 
     IS-NITRO-Debugger installation directories.

     If the installer did not define the TWL paths correctly, do the 
     following:
         a. Type TWLSDK_ROOT in Source Tree Information section's Name 
            field
         b. Select Absolute Path in the Type field
         c. Press Choose to browse to and select root directory of TWL SDK
         d. Click Add button
         e. Repeat steps a through d to add IS_TWL_DEBUGGER_DIR and 
            CW_TWLSDK_ROOT
         f. Click Apply button; Click OK button to close panel

- Make sure the path to the Ensata emulator is valid in this file:
  {CW}\bin\plugins\support\Nitro\IS\est_cw_debugger.ini
  Otherwise, when you try to debug, you will get an error message stating 
  that you should update the file. If you close the IDE after seeing this 
  alert, IDE may crash.

- .bin files in a directory with Japanese characters are not loading
  correctly.

- Remote Connections in some cases may not show up. If this occurs, edit 
  the file and remove the "global" remote connection.

- If you use the Nintendo DS system's Profiling feature to display 
  profiling data for your project, you may notice that a Trace menu item
  becomes available on the Data menu. The Trace window can be displayed by 
  selecting it, but it will not display meaningful data since the Trace 
  feature is not implemented at this time.

- MTWX20292 The pragma thumb on|off must be described outside of the 
  function to which it is intended to be applied. 

Given a section of code similar to the following code example.
====================
  #include <nitro.h>
  void NitroMain ()
  {
  #pragma thumb on 
      int x = 0 ;
      asm {
        nop
        nop
        nop
        nop      // the error occurs in this line.
      }
      x = 1 ;
  #pragma thumb off
      OS_Printf("x = %d\n",x);
      OS_Terminate();
  }
====================

Placing a the pragma inside the function will result in a internal 
compiler error. This is a known issue. To workaround this issue, 
describe the pragma outside of the function.

====================
#include <nitro.h>
#pragma thumb on
  void NitroMain ()
{ 
      int x = 0 ;
      asm {
        nop
        nop
        nop
        nop      // the error occurs in this line.
      }
      x = 1 ;
 
      OS_Printf("x = %d\n",x);
      OS_Terminate();
  }
#pragma thumb off
====================


