Release Note: CalmSHINE16Plus V2.05 Release History Title Keywords Abstract CalmSHINE16Plus V2.05 Release Note CalmSHINE16Plus , SecuCalm, CalmRISC16 This document is the release note of CalmSHINE16Plus System LSI Division, Semiconductor Business Copyright © 2014 Samsung Electronics Co, Ltd. All Rights Reserved. Though every care has been taken to ensure the accuracy of this document, Samsung Electronics Co, Ltd. cannot accept responsibility for any errors or omissions or for any loss occasioned to any person, whether legal or natural, from acting, or refraining from action, as a result of the information contained herein. Information in this document is subject to change at any time without obligation to notify any person of such changes. Samsung Electronics Co, Ltd. may have patents or patent pending applications, trademarks copyrights or other intellectual property rights covering subject matter in this document. The furnishing of this document does not give the recipient or reader any license to these patents, trademarks copyrights or other intellectual property rights. No part of this document may be communicated, distributed, reproduced or transmitted in any form or by any means, electronic or mechanical or otherwise, for any purpose, without the prior written permission of Samsung Electronics Co, Ltd. The document is subject to revision without further notice. All brand names and product names mentioned in this document are trademarks or registered trademarks of their respective owners. Contact Address :: Samsung Electronics Co., Ltd. San#24 Nongseo-Ri, Giheung_Eup, Yongin_City, Gyeonggi-do, Korea 449-711 Home Page: http://www.samsung.com/calmsdk Contact us : [email protected] S/W Solution Development Team, SOC Development department, System LSI Division, Semiconductor Business Samsung Electronics Co., Ltd. Contact Address (Technical Support for CalmSHINE16 IDE & Emulators) Tel: (82)-(031)-278-0461 Contact us : [email protected] II Property of Samsung Electronics Co., Ltd. System LSI Division, Semiconductor Business Revision History Date Jul 21, 2009 Jul 22, 2009 Jul 24, 2009 Oct 1,2009 Dec 9, 2009 Jan 28, 2010 May 6, 2010 Jul 27,2010 Nov 29, 2010 Sep 02, 2011 Jan 04, 2012 Aug 01, 2012 May 21, 2014 Oct 6, 2014 Version Author CalmSupport CalmSupport CalmSupport CalmSupport CalmSupport CalmSupport CalmSupport CalmSupport CalmSupport CalmSupport CalmSupport CalmSupport CalmSupport CalmSupport Amendment Create Add compiler part Add compiler part V2.0 Update History V2.01 Update History V2.01a Update History V2.02 Update History Compiler,,Assembler,Linker part added V2.03 Update History V2.04beta Update History V2.04beta a Update History V2.04 Update History V2.05 Update History Language Patch Property of Samsung Electronics Co., Ltd. III System LSI Division, Semiconductor Business Contents 1 2 3 How to get this package ...........................................................................................................1 Release History ......................................................................................................................1 What’s New ...........................................................................................................................3 3.1 CalmSHINE16Plus v2.05 ...................................................................................................... 3 3.1.1 Build Tools are updated ................................................................................................ 3 3.1.2 Disassembly by Address Order ........................................................................................ 3 3.1.3 A DPJ file is created even though there is no *.elf file. .......................................................... 4 3.1.4 UTF-8 Format file Display. ............................................................................................ 5 3.1.5 More multi-byte characters can be displayed. ..................................................................... 5 3.1.6 Device related files are included in the Install Package. ........................................................ 5 3.1.7 Special Area Erase Option ............................................................................................. 5 3.1.8 Command Line Build Option ........................................................................................... 6 3.2 CalmSHINE16Plus v2.04 ...................................................................................................... 8 3.2.1 Build Tools are updated ................................................................................................ 8 3.2.2 Printf outputs characters at once .................................................................................... 8 3.2.3 DVM supports the Memory Limitation. .............................................................................. 8 3.2.4 Simple Timer Setting is supported in SecuCalm ................................................................... 8 3.2.5 Cursor History function is added ..................................................................................... 8 3.2.6 Address Field is added to Watch / Variable window. ............................................................. 9 3.2.7 Build tool options settings are printed on each window. ........................................................ 9 4 Matters that Require Attention ................................................................................................. 10 4.1 CalmSHINE16PlusV2 v2.05 UTF-8 .......................................................................................... 10 4.2 CalmSHINE16PlusV2 v2.04: Semihosting function ...................................................................... 10 4.3 New IM500 firmware for SecuCalm ....................................................................................... 10 4.4 CalmSHINE16PlusV2 v2.03: New USB device driver for IM-500....................................................... 10 4.5 Support SecuCalm and CalmRISC16 Devices in One environment ................................................... 10 4.5.1 Project Conversion to SecuCalm ..................................................................................... 10 4.5.2 New Emulator for SecuCalm Smart card Devices ................................................................. 10 4.5.3 When using existed CalmSHINE16Plus CalmRISC16 Project ..................................................... 10 4.6 Change of Step Out operation and Step in operation ................................................................. 11 4.7 When using S3CC40D MCU Devices ........................................................................................ 11 4.8 Support On Chip Timer Feature for SecuCalm Devices ................................................................ 12 5 Revision History after releasing V2.0 version ................................................................................ 13 5.1 GUI ............................................................................................................................. 13 5.2 Language tools ............................................................................................................... 18 5.2.1 Compiler – UCC.exe .................................................................................................... 18 5.2.2 Assembler ................................................................................................................ 23 5.2.3 Linker ..................................................................................................................... 24 5.2.4 Librarian – CalmSDKAr.exe ........................................................................................... 27 5.2.5 Library .................................................................................................................... 27 IV Property of Samsung Electronics Co., Ltd. System LSI Division, Semiconductor Business 1 How to get this package You can download CalmSHINE16Plus V2.05 from the following website. http://www.samsung.com/calmsdk *note) Device file package, you can contact to regional FAE. 2 Release History Each tool version according to Packages Beta Official v2.00 Release Official v2.01 Release Jul 25, 2009 Oct 1, 2009 Dec 11, 2009 Tool Ver GUI& Debugger CalmSHINE16Plusv2.exe V2.0 Beta V2.0 V2.01 Compiler Ucc.exe V1.03 V1.03f V1.03h Assembler for SecuCalm Calmasm16e.exe V1.00k V1.00l V1.00n Assembler for CalmRISC16 CalmSDKAs.exe V1.01a V1.01c V1.00n V1.00s V1.01k V1.01q V1.00d V1.00d V1.02h V1.00d V1.03h V2.02 V2.03 V2.04 May 7, 2010 Nov 29, 2010 Aug 1, 2012 Linker for SecuCalm Linker for CalmRISC16 Librarian Library Calmlink16e.exe V1.00j CalmSDKLd.exe CalmSDKAr.exe Tool Ver GUI& Debugger CalmSHINE16Plusv2.exe V2.02 V2.03 V2.04 Compiler Ucc.exe V1.04a V1.04f V1.05p Assembler for SecuCalm Calmasm16e.exe V1.01a V1.01d Assembler for CalmRISC16 CalmSDKAs.exe V1.02a V1.02a Calmlink16e.exe V1.01 V1.01d V1.01l CalmSDKLd.exe V1.02 V1.02b V1.02c CalmSDKAr.exe V1.00d V1.04a V1.00d V1.04f V1.00d V1.05o Linker for SecuCalm Linker for CalmRISC16 Librarian Library Property of Samsung Electronics Co., Ltd. V1.01f V1.02a 1 System LSI Division, Semiconductor Business Tool Ver V2.05 V2.05 patch Jun 26, 2014 V2.05 Jul 17, 2014 V2.05 GUI& Debugger CalmSHINE16Plusv2.exe Compiler Ucc.exe V1.06h V1.06k Assembler for SecuCalm Calmasm16e.exe V1.01f V1.01f Assembler for CalmRISC16 CalmSDKAs.exe V1.02a V1.02a Linker for SecuCalm Calmlink16e.exe V1.01t V1.01u Linker for CalmRISC16 CalmSDKLd.exe V1.02e V1.02e Librarian Library CalmSDKAr.exe V1.00d V1.05q V1.00d V1.05q 2 Property of Samsung Electronics Co., Ltd. System LSI Division, Semiconductor Business 3 What’s New 3.1 CalmSHINE16Plus v2.05 3.1.1 Build Tools are updated Compiler/ Linker / Library are updated. For more information, refer to 5.2 Language tools part. 3.1.2 Disassembly by Address Order To support disassembly by address order, ‘Assembly line order by address’ option is added to [Option]-[Tools] dialog. [Note – AddressDisassembly mode] - The AddressDisassembly window appear in C/Disassembly mode. - Source_Name.Disassembly is displayed with no address older. - Current PC bar is displayed only in AddressDisassembly window. Property of Samsung Electronics Co., Ltd. 3 System LSI Division, Semiconductor Business 3.1.3 A DPJ file is created even though there is no *.elf file. Regarding [File]-[Hex file debugging Open] function, In the previous version, a dpj file was created only if the *.elf file was set in the dialog. Now, a dpj file is created even though any *.elf file is not set in the dialog. As the previous version, the *.dpj file is created at ‘Stop Debugging’. DPJ file location - if ELF file is set: DPJ file is created in the upper folder of elf file. - if ELF file is not set: DPJ file is created a the folder where the *.hex file is. Recent DPJ file List Recent Open DPJ files will be listed in ‘Recent DPJ Projects. 4 Property of Samsung Electronics Co., Ltd. System LSI Division, Semiconductor Business 3.1.4 UTF-8 Format file Display. CalmSHINE16PlusV2 2.05 can open the UTF-8 Format source file. However, you should caution regarding compile and save the UTF-8 format file. [Caution: Limitation] - Saving UTF-8 File Issue. CalmSHINE16PlusV2 2.05 converts UTF-8 to ANSI format for display. As the result, some character cannot be converted and displayed as '??'. In this state, if you edit source and saving it again, '??' character will be broken. So it is not recommended to save any UTF-8 format file in CalmSHINE16PlusV2. - BOM mark in UTF-8 The compile will fail if 'BOM' mark is located in the beginning of source file even though CalmSHINE16PusV2 display the file. So when you save the source file in the other editor, please save it without 'BOM'. - Compiler does not support UTF-8 Current Calm Compiler does not support UTF-8. For example, any character consists of ‘\(0x5C)’ and others, the build will fail. 3.1.5 More multi-byte characters can be displayed. 3.1.6 Device related files are included in the Install Package. Device related files are included in the install package. - DVM folder: *.dvm files - MON folder: *.mon files and memory16.map file - TargetOS folder: IM500S firmwares and OsFirmware16.map file However, *.h / *.md file is not included. 3.1.7 Special Area Erase Option Special Area Erase option can be set in the DVM file. The default option is ‘Erase TRUE’ Caution: - This option is only available to 80nm SecuCalm devices. (S3CT9xxx and S3FT9Kx devices are not supported) - New firmware is required. // Erase the special area SETFLAG { SPECIAL_AREA_ERASE } // No Erase the special area SETFLAG { SPECIAL_AREA_ERASE } TRUE FALSE Property of Samsung Electronics Co., Ltd. 5 System LSI Division, Semiconductor Business 3.1.8 Command Line Build Option CalmSHINE16PlusV2 2.05 supports arguments to build an image without executing the GUI. Format CalmSHINE16PlusV2.exe <option> <"Project_Name"> Example To Rebuil All, C:\CALMSHINE16PlusV2\Bin> CalmSHINE16PlusV2 -rebuildall "D:\MPrj\Getting_Start.prj" To Make, C:\CALMSHINE16PlusV2\Bin> CalmSHINE16PlusV2 -make "D:\MPrj\Getting_Start.prj" To Create a Build Command File, C:\CALMSHINE16PlusV2\Bin> CalmSHINE16PlusV2 -makefile "D:\MPrj\Getting_Start.prj" 6 Property of Samsung Electronics Co., Ltd. System LSI Division, Semiconductor Business 3.1.9 Source Path Policy is changed [Option]-[Source Path..]-‘Folders Common to All targets’ policy is changed. In case of the previous version, the path was changed to the relative from CalmSHINE16PlusV2 internally. Now, in case of [Option]-[Source Path..]-‘Folders Common to All targets’ 1. Keep the path information as it is registered. - If an absolute path is added, it keeps the absolute path. - If a relative path is added, it keeps the relative path. 2. Relative Path Policy is changed. - If a general project file is opened, it is the relative path from the project file. - If a ‘Hex file debug open’ project with an *.elf, it is the relative path from the elf file. New Policy No Change Property of Samsung Electronics Co., Ltd. 7 System LSI Division, Semiconductor Business 3.2 CalmSHINE16Plus v2.04 3.2.1 Build Tools are updated 3.2.2 Printf outputs characters at once It can prints several character at once in the semihosting output function, for example 'printf()' (The previous version printed only a character at once.) To use it, you should use a new library(v1.05n) which is installed with CalmSHINE16PlusV2 v2.04 . 3.2.3 DVM supports the Memory Limitation. The latest IM-500S firmware supports the memory range limitation setting in the DVM file. To do it, a ‘Physical Memory Area’ block should be used in DVM file. To use the function, new DVM/OS map file/firmware/CalmSHINE16PlusV2 v2.04 are required. 3.2.4 Simple Timer Setting is supported in SecuCalm [Setup]-[ OnChip Timer Start Setup] / [Setup]-[ OnChip Timer End Setup] menus are added. 3.2.5 Cursor History function is added 8 Property of Samsung Electronics Co., Ltd. System LSI Division, Semiconductor Business 3.2.6 Address Field is added to Watch / Variable window. 3.2.7 Build tool options settings are printed on each window. Property of Samsung Electronics Co., Ltd. 9 System LSI Division, Semiconductor Business 4 Matters that Require Attention 4.1 CalmSHINE16PlusV2 v2.05 UTF-8 CalmSHINE16PlusV2 2.05 can open the UTF-8 Format source file. However, you should take care of compiling and saving it. - CalmSHINE16PlusV2 2.05 converts UTF-8 to ansi format for display. As the result, some character cannot be converted and displayed as ‘??’ or ‘ ’. If you edit source and saving it again in CalmSHINE16PlusV2, ‘??’ character will be broken. So it is not recommended to save any UTF-8 format file in CalmSHINE16PlusV2. - The compile will fail if ‘BOM’ mark is located in the beginning of source file. So when you save the source file in the other editor, please save it without ‘BOM’. 4.2 CalmSHINE16PlusV2 v2.04: Semihosting function CalmSHINE16PlusV2 2.04 can prints several character at once in the semihosting output function, for example ‘printf()’ (The previous version printed only a character at once.) To use it, you should use a new library(v1.05o).CalmSHINE16PlusV2 v2.04 4.3 New IM500 firmware for SecuCalm You can get the device file package from regional FAE for selection device in setting of project option or project creation. This pack helps you to automatically allocating device files officially published. 4.4 CalmSHINE16PlusV2 v2.03: New USB device driver for IM-500 We have upgraded the USB driver for IM500 in-circuit emulator. It is included in the install package but the installer does not install the driver automatically. You cannot connect IM500 via USB interface unless you install new USB driver. For more information, refer to ‘Install_New_USB_Driver.rtf’ or ‘CalmSHINE16Plus_Manual_IDE.pdf’ 4.5 Support SecuCalm and CalmRISC16 Devices in One environment 4.5.1 Project Conversion to SecuCalm CalmSHINE16Plus V2.0 additionally supports new 16bit core type “SecuCalm” of Samsung. Please refer “CalmSHINE16Plus_PortingGuide_IDEV2.0.doc” in “\Doc” directory for Project Conversion from old project type. 4.5.2 New Emulator for SecuCalm Smart card Devices IM-500 is new emulator for SecuCalm Smart Card Devices. This emulator support new feature like firmware automatic upgrade. Please refer the install guide (USB driver) and usage about this in “CalmSHINE16Plus_Manual_IDE.pdf” file in \Doc folder. If you want to get the all calmRISC16/SecuCalm Device file Package and IM-500 Emulator Firmware, Please contact regional FAE. 4.5.3 When using existed CalmSHINE16Plus CalmRISC16 Project CalmSHINE16Plus V2.0 directory hierarchy is changed from CalmSHINE16Plus V1.xx. It makes to need some changes options when building of your CalmRISC16 CalmSHINE16Plus project. ***note) CalmSHINE16Plus V2.0 support CalmRISC16 and SecuCalm CalmSHINE16Plus Project type. Not CalmSHINE16 Project. CalmSHINE16 Project can be just loaded for Project Conversion. 10 Property of Samsung Electronics Co., Ltd. System LSI Division, Semiconductor Business 4.5.3.1 Default project (when no option change) When CalmSHINE16Plus V1.xx IDE create project, it use default Device files like startup file(\SFiles) and Devicename.dvm(\Include\mon) file and Devicename.md(\ldscripts) for Device dependent information. When building old project, It occurs linker error because V2.0 IDE expects to find out the linker description (Memory Description - md) file from default directory (\Device\md). When you want to success to build and debug your V1.xx project in V2.0, Please copy the device dependent files from old V1.xx IDE directories to V2.0 IDE directories Then select your device in Project Option page and Rebuild all. - CSP\include\mon\Devicename.mon -> CSPv2\Device\mon\Devicename.mon - CSP\include\mon\Devicename.dvm -> CSPv2\Device\dvm\Devicename.dvm - CSP\ldscripts\Devicename.md -> CSPv2\Device\md\Devicename.md - CSP\Sfile\Cstartupsdk_Devicename.asm -> CSPv2\Startup\Target\Cstartupsdk_Devicename.asm ****note) You can get the device file package from regional FAE for selection device in setting of project option or project creation. This pack helps you to automatically allocate device files officially published. 4.5.3.2 Recommended way to create project The user can set their own device dependent files position by changing options using relative path compared to Project file location. - Project\Linker tab\Advanced category\Memory Description File(MD file) 4.6 Change of Step Out operation and Step in operation V2.0x IDE support “Step Out” menu on Disassembly view, and supports C Standard Library built with debug information. It make available step out operation in disassembly view some cases, but it influences to decrease speed on Loading time at “Start Debugging” and can influence Step speed, because SYMBOL Total Count is increased. And the side effect, when you want to “Step In”, UI can show sometimes the disassembly view if the current line include library function call. It caused by library built with debug information (default standard library optimization level is “Minimize Size(Debug)” in Option/Project/Linker/Advanced/Optimization Level of standard library). So if you select the other standard library optimized level without debug information, then you can get the old style “step in”(not into disassembly view when C source Step In). And for code optimization, some c function use pushreg/popreg(return) library in prolog and epilog, “ ___szPopSaved, __szPopSavedEx_R11R12_to_R1R0, ___szPopSavedEx, ___szPopAllEx”, When the user wants to execute the “Step out”, in this case is needed two times of “step out” operation for reaching library function then execution it. If the user see the “step out” operation make the pc to allocate end line of c function or disassembly view, then please click “step out” one more time. In assembly user source, step operation is the same action with disassembly view. 4.7 When using S3CC40D MCU Devices Please should set “Debugging under low frequency (lower then 2.5MHz) or RWG activation” in Options/Tools Menu when using latest v1.46 - C1600 emulator. And 40D user should set “Extend Segment address record(HEX86)” in Utils Menu. It support “intelhexutil.exe” post build command for 40D user at first one time.(MCU customer requirement). If you don’t need this post build command, please remove this command line from post build project option. S3CC40D user need to do 3.3.3 when using existed CalmSHINE16Plus project and additionally work to do for Environment migration. (Device vendor need to prepare below device file package for user convenience) Property of Samsung Electronics Co., Ltd. 11 System LSI Division, Semiconductor Business - CSP\include\mon\memory16.map -> CSPv2\Device\mon\memory16.map (for utils/Generate ROM data Menu) - CSP\TargetOS\OsFirmware16.map -> CSPv2\Device\TargetOS\OsFirmware16.map (for IM-500) - CSP\TargetOS\*.hex -> CSPv2\Device\TargetOS\*.hex (for IM-500) 4.8 Support On Chip Timer Feature for SecuCalm Devices On Chip Timer feature is supported for SecuCalm Devices. SecuCalm Device has On Chip Timer in Debug Block itself for measurement. There are two kind of clock type in secucalm board, Sampling Frequency and CPU clock. The user must set the jumper in target board by CPU Clock(or BOARD CLK) to show correctly value, when the user selected the CPU Clock in Onchip timer setup dialog. The measuring result view of “Run On Chip Timer” likes below. 12 Property of Samsung Electronics Co., Ltd. System LSI Division, Semiconductor Business 5 Revision History after releasing V2.0 version 5.1 GUI Version V2.05 V2.05 Released date Oct 06, 2014 Jul 17, 2014 - V2.05 Jun 26, 2014 - V2.04 Aug 01, 2012 - Comments (Language Update Only) (Language Update Only) [New] Disassembly by address order is supported. [New] UTF-8 format file can be opened. (Note: compiler does not support UTF-8) [New] More multi byte character can be displayed. [New] DPJ file can be created without an elf file. [New] SecuCalm Device files(.mon,.dvm) are added to the install package. [New] Add a short cut keys - cursor history function. [New] Special Area Erase option can be set in DVM file. [New] Breakpoint can be set in the include file. [New] Add Command Line Build Options. [Spec] Internal Build timeout value is increased to 60seconds. [Spec] [Option]-[Source Path] policy is changed. [Fix] Program was terminated at stepping in case of specific image. [Fix] Program was terminated in ‘Hex file open debug’ if home group is enabled. [Fix] Program was terminated if the mouse cursor was moving during the download process. [Fix] Program was terminated when the user tried to start debugging if an assembly file included a file. [Fix] The program could not stop the execution if stop/idle mode was requested very fast. [Fix] The project was built automatically at start debugging after it was open two times. [Fix] The memory range was not changed if devices is changed devices with mouse wheel in ROM/EEPROM generation. [Fix] The 2nd pointer value in a structure variable was not shown correctly in the watch window if it was chained. [Fix] USB could not be connected if USB was reconnected before the download error message box was closed. [Fix] The source path is not set correctly if the path name is ‘CalmSHINE16PlusV2’+ one or more ‘_’ [etc] Connection/Communication Error messages are changed. [Fix] The modified source in the prebuild stage was not compiled at [Build]-[Make] in v2.04. Property of Samsung Electronics Co., Ltd. 13 System LSI Division, Semiconductor Business May 04, 2012 - V2.04beta b Mar 21, 2012 V2.04beta a - 14 [Spec] nSize of characters are printed at once in semihosting output. To use it, you should use a new library(v1.05o). The previous version printed only a character at once. [Fix] When a user tried to make a library project for CalmRISC, it was made for SecuCalm [Fix] PC was not changed if a user tried to input a value above 0xffff in the Watch Register view. [Fix] There was an Internal Buffer error when trying to change the values in ROM/EEPROM generation view. [Fix] Program was terminated when a user tried to delete NULL path even if there was no registered path in the Project option. [Fix] No error message was displayed even if it was failed to save the modified file [Fix] User input address was not set in On chip Timer sometimes. [Fix] It failed to get the correct variable information because of Was DLL problem. [Fix] Incorrect hex value parsing in ‘SetPC’ function [Fix] Program was terminated if incorrect address range was input in the memory fill [Fix] Connection was failed after a user selected ‘No’ in IM500S firmware update dialog. [Fix] Min/Avg value, in OnChipTimer view, were not correct. [Fix] The changed contents was not applied at ‘build-make’ because the file was not saved in a specific case. [Fix] Options setting display was not updated when Assembler/ Compiler/Linker Advanced option was changed [Fix] An error message was appeared at reloading after changing the Tab size in the Tool option. Property of Samsung Electronics Co., Ltd. System LSI Division, Semiconductor Business Aug 04, 2011 - V2.04beta - [SPEC] The dependency is not updated if ‘Build All’ is failed. [SPEC] Warning message is not shown even if a file line number is over 10000. [Spec] Disable [Debug]-[download data multi file] in non-flash device. [Spec] Function Tree in Go/Run Setup is enlarged a little bit. [New] supports SecuCalm internal Memory size setting. DVM file should be changed, new IM-500S firmware required. [New] Shows Build options in [Option]-[Project] [New] Add ‘Onchip timer Start/End’ for SecuCalm [New] Add ‘Cursor History function’ [New] Add ‘Address column’ in Watch/Variable window [FIX] Build menu was disabled, if user selected non-exist device and then an available device. [Fix]‘Go to Definition’ menu was disabled, if mode is changed from ‘disassembly’ to ‘source’ mode [Fix] ‘Step Out’ could not return from the ‘printf’ if a user stepped in ‘printf’ library. [Fix] Abnormal termination if a special character was written in ‘Address’ field in ‘Go Setup’ [Fix] Abnormal termination if user double-clicked the disabled dialog box in ‘map file link project’ [FIX] Call Stack view was not updated if the debugger failed to find the Next Information. [Fix]CalmSHINE16 was terminated when trying to download *hxd that exceeding the EEPROM range. [Fix] Disable ‘Run MDS Timer’ menu in C3200. [Fix] [Option]-> [Project]-‘Pre-build’ option or command was not updated immediately (make or rebuild twice was required) [Fix] *.elf file in Debug folder was deleted when building in Release mode. [Fix] Step Over in __asm(“stop”); was not correct [Fix] Garbage Cycle value was shown in the status when an emulator was used. [Fix] In case of BSR instruction, the target address was not displayed in disassembly. [FIX] When you select ‘[Debug]-[Start Debugging], if ‘Verify Download’ option is checked, the “Download error at 0x0” message box appears. [Fix] R0, R1 was changed when entering a function in S3FC9Ax with OPENice-C1605 [Fix] Incorrect value was written to ‘r11’ in SecuCalm simulator if ‘mov r10r11,a12’ is executed. [Fix]When executing ‘Make’ after changing ‘dvm’ file in the project option, Rebuild All was executed instead of Make, if the project was created and never saved. Property of Samsung Electronics Co., Ltd. 15 System LSI Division, Semiconductor Business Nov 18, 2010 - V2.03 - May 6, 2010 - V2.02 - 16 [Spec] Save only the compiled file when [Build]-[Compile] [Spec] ‘Save as’ function works just as other window programs. [Spec] IM-500S version is shown as an hex value in ‘Help’-‘About’ [Spec] ‘Restart at Stop Instruction’ is disabled in IM-500S [FIX] Warning message appears when changing SR_T in Register window. [FIX] The value cannot changed in specific case in Variable/Watch window [FIX] The restart address is incorrect if a user stops the program in STOP mode and ‘Restart at Stop Instruction’ option is checked. (CalmRISC16 cored device) [FIX] Device selection error in project option when opening an old project [FIX] ‘Continue Go’ works just as single step after semi-hosting function [FIX] in S3F40D device, SW breakpoint is not removed by mouse click [FIX] in S3F40D device, ‘Download Verify’ error. [FIX] Fail to find address when ‘drag&drop’ a variable from the debug window to a memory window [FIX] IM-500S Firmware version is shown incorrectly in some PC [FIX] The program is terminated when open a NULL file in the project window. [FIX] ‘Option’-‘Tools’-radix option is not applied in Debug mode [FIX] ‘Dup’ instruction was worked incorrectly in Simulator mode [FIX] In specific case, when open a project in other PC, the device is not red correctly if the device folder was set to the user defined location. [FIX] ‘Debug’-‘Verify Image’ function does not work correctly. [NEW] Support the On chip Timer Setup in secucalm Device [NEW] Support MCU S3CC40D Device [NEW] Support Reset signal when start debugging and reloading for clearing system register before downloading [FIX] Build skip issue because of Object file deletion bug [FIX] Breakpoint setting was denied after SMI instructions [FIX] Read stdout pipe error when building [FIX] Changed the Options menu for jtag/internal clock frequency set bug [FIX] Problem Debugging under low frequency or RWG activation [FIX] Problem step some instruction when disassembly view [FIX] MAKE Reflect modification of source in Prebuild stage [UPD] Removed “Disable Autoupdate Header Dependency” menu because it works by default [UPD] remove version string from executables head title and editor background because confusion between Package and UI. (use Help/About CalmSHINE16Plus/Tool info for version report) Property of Samsung Electronics Co., Ltd. System LSI Division, Semiconductor Business Dec 10, 2009 - V2.01 Oct 1, 2009 - - V2.0 - V2.0 Beta Jul 25, 2009 - [NEW] Flash chip erasing by IM500 is supported. (with new IM500 firmware for SecuCalm) [NEW] Verifying flash chip erasing is performed by IM500 (with new IM500 firmware for SecuCalm) [NEW] Upgraded USB driver for IM500 in-circuit emulator [FIX] IDE is sometimes crashed when stepping in disassembly view under OpenICE-C3200 for CalmRISC16 [FIX] The length of a record in the hex file generated by ‘ROM Generation’ is different from the length specified by the user. [FIX] Downloading hex/hxd file for Flash Device with ‘Hex and Hxd download debug’ is unable [FIX] Modifying a header file listed in ‘Project File view’ does not compile a source file that includes the header file when user selected ‘Make’ [FIX] Finding value from Memory Views failed if memory layout specified in .dvm is not sorted by ascending order. [FIX] Modifying value in Registers view was not reflected into the view unless refreshing the view. [FIX] Problems with handling relative path names in ‘Include Path’ of Project Option [FIX] Incorrect pointer value in Watch variables view and Locals view. [NEW] Support SecuCalm Device and CalmRISC16 Device in One environment [NEW] ‘Save options when OK button is pressed’ check boxes in Tool Options and Emulator Options dialog box. The setting options for those dialog boxes are now stored into the Windows Registry when they are closing by selecting OK button. [NEW] Add to display IM-500 Firmware Version on Debugging State [NEW] Enhanced the speed of refreshing Watch variables view and Variables view. [NEW] The tree view of project items in Project options dialog box highlights (Bold character) an item of a source file if it has different option from the project. (“Same as Project Options” check box is not selected) [NEW] Enhanced the speed of retrieving header dependency information with Assembly source Header dependency [NEW] Step out from disassembly view that does not include source code is enabled if it has frame information. [NEW] Added an option to decide if the notification message for IDLE/STOP mode is displayed [NEW] Enhance to generate the many different values result by Verify Image Menu on Outputdir/VerifyImage.txt [NEW] When Simple HW breakpoint setup, UI change condition value to “OR” forcedly [FIX] Many bug fixes in Watch variables view, Variables view, Code/Data memory views, Watch registers view and Disassembly view. [FIX] Many bug fixes in Hardware breakpoint with code area. First Release to limited customer Property of Samsung Electronics Co., Ltd. 17 System LSI Division, Semiconductor Business 5.2 Language tools 5.2.1 Compiler – UCC.exe Version 18 Released date V1.06k Oct 07 2014 V1.06j Oct 01 2014 V1.06i V1.06h Jul 07 2014 May 11 2014 V1.06g May 06 2014 V1.06f Apr 09 2014 V1.06e Mar 04 2014 V1.06d Feb 19 2014 V1.06c Feb 11 2014 V1.06b Aug 05 2013 V1.06a Apr 25 2013 V1.05t Mar 26 2013 V1.05s Jan 31 2013 Comments - [FIX] re-fix of bugfix of CSE optimization from (1.06d-1.06f) versions : there was generation of slow code in some cases on Ospeed. - [NEW] PA-like optimization is implemented in compiler to replace --PA option, which requires 3rd party tool PA.exe. It could be activated with Osize(+PAI). (SecuCalm only) - [NEW] A number of size optimizations is implemented. - [FIX] Refix of ‘Can't allocate register variable (Case #1)’ internal error for more complex expressions. - [FIX] Fix of ‘Can't allocate register variable (Case #1)’ internal error. - [NEW] Optimization of bitshift operations. - [FIX] Fix of ‘duplicate symbol’ error for inline functions. - [FIX] Inline of functions with low level __asm(“…”) inside is re-enabled. - [FIX] General fix of processing of temporal variables in Common Subexpression Elimination (CSE). - [FIX] One more bugfix of Common Subexpression Elimination (CSE) optimization on Ospeed. - [FIX] One more bugfix of Common Subexpression Elimination (CSE) optimization on Ospeed. - [FIX] Optimizing algorithm of estimation of range of function return value (EVR) is fixed for the case of functions with low level __asm(“”) code inside. - [FIX] Inlining algorithm is fixed for the case of inlining of functions with low level __asm(“”) code inside. - [FIX] Bugfix of one of optimizations on Ospeed (Common Subexpression Elimination). - [FIX] Debug information is fixed for variables watch window. - [NEW] New optimization SizeInline is implemented. The code of called functions is inlined whenever it allows to reduce the size of result code. - [NEW] New optimization FRVR is implemented. If the result of called function is obvious (like return 0), then it can be used as a known constant by compiler during the optimizations. - [NEW] New optimization is implemented. Code of assignments of constants into long variables is optimized. - [FIX] Bug with missing instruction like “ldw a13, @[a10 + 2]” was fixed for code with call of function pointer and low level __asm(“”) instruction after it. Property of Samsung Electronics Co., Ltd. System LSI Division, Semiconductor Business V1.05r Dec 20 2012 V1.05q Aug 17 2012 V1.05p V1.05o May 28 2012 May 11 2012 V1.05n Mar 26 2012 V1.05m Mar 14 2012 V1.05l Mar 06 2012 V1.05k Feb 28 2012 - [FIX] Binary code of compiler is builds by newest version of IDE - [FIX] Reduce the amount of memory used by the compiler - [FIX] Fix bug of compilation built-in asm with 'CLD' instruction - [FIX] Fix bug of supporting #pragma section - [FIX] Fix bug that leads to compiler fail in rare cases - [FIX] Fix bug with conversion pointers to functions - [FIX] Fix bug with invalid DWARF generation in case of multi-source codes compilation by one pass - [FIX] Problem with negative constants is fixed for some optimization of constants in code - [FIX] Processing of DelaySlot instructions (e.g. BRAD) in high level assembler is improved - [FIX] Problem with some jumps outside the __asm{} block is fixed - [NEW] (SecuCalm) Syntax of LDB instruction is extended in high level assembler. Any general register is allowed to be index register - [FIX] Fix invalid warning in case of multi-source compilation - [FIX] Optimization of array initialization works more effective - [FIX] Non-zero code will be returned for wrong command line arguments (for example for -LCB instead of -Ospeed(-LCB)). The compilation will be interrupted for wrong parameters - [FIX] (SecuCalm) The effect of operations like “x = 5; y = 32; x <<= y;” is modified from “x is not changed” to “x = 0”. Both variants are possible according to C Standard - [FIX] Optimization of built-in assembler with jumps and labels works correctly - [FIX] Optimization of logical operations works correctly - [FIX] The issue with complex nested function calls in parameters of printf was resolved (printf("%f = %f", X, ((X)*180/(4*atan(1))));) - [FIX] The issue with reordering of arguments of floating point arithmetic operations is resolved. The result of calculation will not be changed after the optimization of expression - [FIX] Bug with optimization of string array initialization is fixed (char strs[4][3] = { {0, 0}, "str", {0, 0} , {0} } ;) - [FIX] new switch +INITLDLLDW is added for size increasing cases of LDL optimization of array initialization - [FIX] LDL optimization of array initialization is switched off by default for –Osize and –Osizedebug optimization sets to prevent increasing of code size - [FIX] The bug with tail initialization of non-aligned arrays is fixed - [FIX] Some optimizations work correctly (for example, EvaluateValueRange) - [FIX] Optimization of addition negative constant works correctly - [FIX] Memory usage is decreased for partial initialization of local arrays (e.g. “int M[200] = {1, 2, 3};”) - [FIX] Memory usage is decreased for dynamic initialization of local arrays (e.g. “int M[] = {x, y, z};”) - [FIX] Memory usage is decreased for mostly zero initialization of local arrays (e.g. “int M[] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 0};”) - [FIX] Optimization of built-in assembler in string-form works correctly - [FIX] Unresolved external of __agg_0 is resolved for -Ospeed optimization - [FIX] The algorithm of generation of CMP_PD instructions is improved - [FIX] The code generation is now invariant to the names of variables - [FIX] The initialization of arrays with zero values is optimized. LDL and LDW instructions will be used whenever it is possible - [FIX] EvaluateValueRange optimization works correctly and efficiently Property of Samsung Electronics Co., Ltd. 19 System LSI Division, Semiconductor Business 20 V1.05j Feb 21 2012 - [FIX] Initialization of all elements of local arrays is fixed (int M[5] = {0, 0};) V1.05i Feb 18 2012 V1.05h Feb 03 2012 V1.05g Jan 16 2012 V1.05f Dec 29 2011 V1.05e Dec 13 2011 V1.05d Nov 25 2011 V1.05с Nov 14 2011 V1.05b Oct 20 2011 - [FIX] Optimization of C source code with blocks and labels works correctly and efficiently - [FIX] EvaluateValueRange optimization works correctly - [FIX] Optimization of built-in assembler and C source code works correctly and efficiently - [FIX] The method of initialization of arrays is optimized. LDL and LDW instructions will be used whenever it is possible - [FIX] The DeleteUnreachableCode optimization works with better performance. It delete unused labels correctly. As a result, source code has better optimization by EvaluateValueRange - [FIX] The EvaluateValueRange optimization works correctly in case of nested loops - [FIX] The DeleteUnreachableCode optimization processing points for debug information correctly (it’s enabled by ‘-g’ command option) - [FIX] The AlgebraicSimplification stage optimize top-level expressions correctly - [FIX] The SimplifyEvaluation and AlgebraicSimplification optimizations works correctly - [FIX] Optimization of built-in assembler and C source code works more efficiently - [FIX] Unknown Internal Error for alone cmp_pd instruction in __asm{cmp_pd;} block is fixed - [FIX] Fix of compilation code with local array initialization for case of constant and variable initializers. Fix of problem with error message “ undefined external symbol ‘___agg_0’ “ - [NEW] Compiler generates more effective code for local array initialization corresponding to it size - [FIX] The CMP_PD will be removed together with target instruction (in case of optimization of target instruction) - [FIX] Compiler will not remove extra consecutive CMP_PD instructions. Assembler will be able to generate error in this case - [FIX] Compiler will not move CMP_PD instructions above the nearby label to prevent the direct jump. Assembler will be able to generate error in this case - [FIX] Float constant initialization by overflow value generates special error - [FIX] Structure with zero-length bitfield has valid size - [NEW] Source code with built-in assembler is optimized by constant propagation optimization - [FIX] Call of function by address of structure member generates valid assembler - [FIX] The compiler at the PreProcessor mode generates more correctly output (without unnecessary spaces, empty lines etc.) - [FIX] Two consequent CMP_PD instructions will not be generated by compiler - [FIX] Direct jumps to CMP_PD will not be generated - [NEW] The instruction CMP_PD will check always the same target instruction (above it) even after code modification during the optimizations - [FIX] Disappearing of instructions preceding CMP_PD is fixed - [NEW] Support of CMP_PD instruction is added to the high level assembler of SecuCalm compiler Property of Samsung Electronics Co., Ltd. System LSI Division, Semiconductor Business V1.05a Sep 05 2011 V1.05_beta01 Aug 11 2011 V1.04l Jul 27 2011 V1.04k Jun 28 2011 V1.04j Jun 17 2011 V1.04i Jun 03 2011 V1.04g_beta May 04 2011 V1.04f Oct 28 2010 V1.04e Sep 29 2010 V1.04d Aug 11 2010 V1.04c July 26 2010 - [FIX] Correct cursor of warning 'Function should return value' - [FIX] Fix bug of invalid static initialization for strings with different type and same spelling - [FIX] Correct rule of rewriting assembler for 'ADD' command with long const - [FIX] Modification of EVR (Evaluate value range) optimization for compilation time speedup - [FIX] Support of ‘switch-case’ construction in EVR (EvaluateValueRange) optimization - [FIX] Correct usage of "Value Range Optimization" after "Algebraic Simplification" optimization - [FIX] Correct optimization of variable values from incoming control flows by EVR (Evaluate value range) optimization - [FIX] Correct comparison of pointer with zero value in EVR (Evaluate value range) optimization - [FIX] Correct processing of optimization flags in the command line - [FIX] Correct processing of expressions with ADD and CAST operations by EVR (Evaluate value range) optimization - [FIX] Support of non-standard concatenation (SOME_FUNC(PARAM) ## _suffix) has been optimized in preprocessor - [FIX] Support of correct format of LDL instruction with auto increment or decrement (LDL R4R5, @[A8+]!, LDL @![A8-], R4R5) has been implemented in built-in high level assembler - [FIX] Correct processing of expression with ‘false’ condition by ECES (Enhancement of conditional expressions simplification) optimization - [FIX] Correct processing of loops by LoopProcessing optimization - [FIX] Concatenation for function-like macro and for identifier, following this macro, has been implemented in preprocessor (SOME_FUNC(PARAM) ## _suffix - [FIX] Correct generation of optimized code for ‘switch’ statement - [FIX] Correct code generation for variable initialization between two ‘for’ loops with the same cycle variable in EVR (Evaluate value range) optimization - [FIX] Correct generation of optimized code for post increment with dereference of pointer (*gp++) by LCB (Low level combining) optimization - [FIX] Appropriate cast operation generated for unsigned char type - [FXI] Bug fix in composition optimization, node with a function call is not moved - [FIX] Option --no_LDL has been supported to avoid generation of LDL instructions in SecuCalm compiler - [FXI] Bug fix in first code generation for secured keyword - [FIX] Updated include file search criteria for files included using brackets (#include <file>). - [FIX] Updated code generation rules for type conversion of 'secured' variables. - [FIX] Enhanced the warning generation part regarding the return statement - [NEW] In SecuCalm, LDL instructions are generated only when –use_LDL option is set. - [FIX] Copy propagation bug fix for intermediate PUSH instruction. - [FIX] Code generation changed for MOV RxRx+1, Ax instruction. Property of Samsung Electronics Co., Ltd. 21 System LSI Division, Semiconductor Business 22 V1.04b Jun 21 2010 V1.04a V1.04 May 4 2010 Apr 23 2010 V1.03n_beta2 Apr 14 2010 V1.03n_beta Apr 12 2010 V1.03n Apr 1 2010 V1.03m_beta3 V1.03m_beta2 V1.03m_beta1 V1.03l Feb 23 2010 Feb 16 2010 Feb 8 2010 Jan 27 2010 V1.03k_beta Jan 22 2010 V1.03j Jan 20 2010 V1.03i Dec 31 2009 V1.03h Dec 10, 2009 V1.03g Nov 19, 2009 - [FIX] Updated variable renaming to set appropriate allocation set for renamed variables. - [FIX] Updated value range optimization to check number of elements in a SET before using it for comparison. - [FIX] Constant reduction not applied for link-time-expression symbols. - [FIX] Included file is closed after its EOF is reached. - [NEW] Addressing of long-type variable has been optimized. - [NEW] Redundant cast from unsigned char to int (AND Rn,#0xFF or CLRH Rn) reduced by combining it with AND Rn,#(0~255) instruction. - [FIX] Separate stack location has been assigned to each volatile variable irrespective of their relation with other variables and live range. - [NEW] Option --no_bit_type can be used to disable the 'bit' type processing. When this option is set, token 'bit' is not recognized as a keyword, user can use it as variable name. - [FIX] Bug fix in AND/OR/XOR short-hand assignment of secured qualified int variables - [FIX] Link-time-expression optimization updated to handle ADD/MUL/AND/OR/XOR operations with more than two operands - [FIX] Optimization of high-level inline assembly with LDB for SecuCalm. CLRH has been removed - [FIX] CalmRISC16's assembly parser has been updated to read constant numbers which are more than 22bit range. - [NEW] Link-time expression optimization implemented. - [FIX] Bug fix in High Level Combining optimization - [FIX] Error generated when dependency file cannot be opened for writing - [FIX] Bug fix in value range optimization - [FIX] Bug fix in value range optimization - [NEW] Size of a variable is generated in the asm file - [NEW] [CalmRISC16]bit type supported for CalmRISC16 compiler - [NEW] Stack reused enabled for stack size optimization - [FIX] Bug fix in CSE, control flow updated with the changes done in first pass of CSE - [FIX] Bug fix in value range optimization when source and destination operands are same - [FIX] Bug fix in algebraic simplification for OR operation - [FIX] Bug fix in CSE, corrected checking of multiple/conditional entry for an expression in a loop. -[FIX] Bug fix in data-flow-analysis for setting the correct value for store byte operation - [FIX] Order of variables not changed due to extern declaration - [FIX] Bug fix in optimization of &= |= operators. - [NEW] Code generation changed for switch() statements in debug optimization mode for better debug-ability. - [NEW][CalmRISC16] 3byte pointer supported in packed structure. Command line option --ptr3 can be used to enable this optimization. - [FIX] No warning generated when secured and non-secured variables are kept under one #pragma section(…) - [FIX] Corrected #pragma warn <on/off> behavior - [FIX] Error removed while converting a constant to function pointer - [FIX] Wrong pointer addition optimization in optimize mode fixed. - [FIX] Error while initializing variables with address of packed structure corrected. - [FIX] Wrong optimization of const object corrected Property of Samsung Electronics Co., Ltd. System LSI Division, Semiconductor Business V1.03f Sep 28, 2009 V1.03e V1.03d Sep 18, 2009 Sep 16, 2009 V1.03c Sep 1, 2009 V1.03b Aug 17, 2009 V1.03a Aug 5, 2009 V1.03 July 24, 2009 - [FIX] Code generation rule changed for LDB instruction - [FIX] [SecuCalm] Comparison problem with the return value from the function has char return type was fixed. - [FIX] [SecuCalm] Debug information for register pair R12.R13 generated - [FIX] Unicode character set supported while generating dependency file - [FIX] Wrong optimization of volatile variables fixed - [FIX] Compiler error removed when invoked with --copm for local array initialization - [FIX] Compiler error removed for pointer to code in local scope - [FIX] Changed definition of 'jmp_buf' from struct to unsigned int in the <setjmp.h>. - [NEW] All data types and any alignment value which is power of 2 supported in __align(num) keyword - [NEW] #pragma function = interrupt_swi_novector (swi_num, exception_base) has been supported to create multiple SWI handlers with same SWI number. - [FIX] Bug fix in volatile variable optimization - [FIX] Bug fix in code generation of switch statement with -bo option - [NEW] For SecuCalm, option --copm has been made default - [NEW] Options --depenC <file> and --depenA <file> implemented for header file dependency generation - First Release 5.2.2 Assembler 5.2.2.1 Assembler for SecuCalm – CalmAsm16e.exe Version V1.01f Released date Dec 9 2011 V1.01e Nov 16 2011 V1.01d V1.01c Sep 29 2010 Aug 9 2010 V1.01b Jul 22 2010 V1.01a May 4 2010 V1.01 V1.00p V1.00o V1.00n V1.00m V1.00l Apr 23 2010 Feb 11 2010 Feb 8 2010 Dec 11, 2009 Oct 19, 2009 Aug 3, 2009 V1.00k Apr 30, 2009 Comments - [FIX] The type of A214E message (“invalid instruction found before CMP_PD”) is changed from warning to error. - [FIX] Generation of error message is implemented for the case of two consecutive CMP_PD instructions. - [FIX] Generation of error message is implemented for the case of direct jump to CMP_PD instructions. - [FIX] No warning “A030W: jump target must be even” generated in case of LinkTimeExpr optimization at the compiler. - [FIX] Appropriate relocation generated for $ operand. - [FIX] Warning generated when CMP_PD is followed by BREAK, BNZD, RETD, JSR, BS, SJSR, return, POP_RET. - [NEW] Error generated for MOV RxRx+1, Ax instruction. - [NEW] Instruction DUP RxRx+1, Ex has been added. - [FIX] Parsing of labels starting with dot (.) inside a macro has been corrected. - Version changed for official release - [FIX] No warning generated for undefined symbols in .set .equ symbols - [NEW] Warning generated on undefined symbols - [FIX] JMP <const> is not converted to BRA <const>. - [FIX] Debug line information corrected for empty functions. - [NEW] Options --depenC <file> and --depenA <file> implemented for header file dependency generation - First Release Property of Samsung Electronics Co., Ltd. 23 System LSI Division, Semiconductor Business 5.2.2.2 Assembler for CalmRISC16 – CalmADKAs.exe Version V1.02a Released date May 4 2010 V1.02 V1.01e V1.01d V1.01c V1.01b V1.01a Apr 23 2010 Feb 11 2010 Feb 8 2010 Oct 19,2009 Oct 7,2009 Aug 20,2009 Comments - [FIX] Parsing of labels starting with dot (.) inside a macro has been corrected. - Version changed for official release - [FIX] No warning generated for undefined symbols in .set .equ symbols. - [NEW] Warning generated on undefined symbols - [FIX] Debug line information corrected for empty functions - [NEW] Directive .3byte <expr> supported. - 5.2.3 Linker 5.2.3.1 24 Linker for SecuCalm – CalmLink16e.exe Version V1.01t V1.01s Released date Apr 10 2014 Oct 30 2013 V1.01r Sep 26 2013 V1.01q Sep 15 2013 V1.01p Sep 5 2013 V1.01o Jul 24 2013 V1.01n Jul 22 2013 V1.01m V1.01l Feb 27 2013 Jan 26 2012 V1.01k Jan 13 2012 V1.01i Dec 5 2011 V1.01h Nov 23 2011 V1.01g Oct 20 2011 V1.01f V1.01e Sep 05 2011 May 26 2011 Comments - [FIX] bugfix of crash in memory gaps optimization. - [FIX] optimization of reusing of memory gaps is improved – entire memory regions can be moved. - [FIX] bug with _at_ keyword is fixed. - [FIX] memory gaps optimization is improved – support of IDATA sections is added. - [NEW] linker optimization is improved – if there are some gaps between memory regions, then the sections are tried to be rearranged between regions in order to fill these gaps. - [FIX] value of --base-addr option can now be directly used in SJSR optimization during the code execution. - [FIX] support of OVERLAY memory regions is implemented in MD file for memory areas with specified FILL value. - [NEW] support of SJSR optimizations (--short-call, --short-call-tab) is implemented in --flashcode mode. - [FIX] feature “Go To Definition” is fixed. - [FIX] Linker generates valid debug information in case of CMP_PD instructions. - [FIX] Linker generates valid value for __EEVAR_SIZE__ symbol. - [FIX] The issue with CMP_PD generation in specific places of code is fixed. - [FIX] Valid information at the Debugging mode for code with CMP_PD instructions. It was bug for linker mode with inserting CMP_PD instructions to random places. - [FIX] Two consequent CMP_PD instructions will not be generated by linker. - [FIX] Bug with sequence of CMP_PD instructions is fixed. There was the following problem: if one CMP_PD instruction is automatically inserted after another CMP_PD instruction, then the operand value of the second instruction can be wrong. - [FIX] Fix invalid base address for SJSRNEW. - [NEW] --callgraph linker option is extended: the stack depth is shown for the functions which are already displayed (they are marked with asterisk(‘*’)). Also the stack depth information was added to call chain for maximum stack depth. Property of Samsung Electronics Co., Ltd. System LSI Division, Semiconductor Business V1.01d V1.01c Aug 9 2010 Aug 6 2010 V1.01b V1.01a Jul 26 2010 May 13 2010 V1.01 Apr 26 2010 V1.00y Apr 8 2010 V1.00x Mar 30 2010 V1.00w V1.00v V1.00u Feb 17 2010 Feb 16 2010 Feb 8 2010 V1.00t Jan 28 2010 V1.00s Dec 11, 2009 V1.00r Nov 18, 2009 V1.00q V1.00p Nov 4, 2009 Oct 16, 2009 - [FIX] Copy functions used in init-table are not allocated in EXPLICIT area. - [NEW] CMP_PD is not inserted after BREAK, BNZD, RETD, JSR, BS, SJSR, return, POP_RET. - [NEW] CMP_PD is inserted at same location for every build - [NEW] 2 word CMP EQ and CMP GE optimized to their 1word form. - [NEW] Only one set of (START, LOAD, SIZE) symbols generated for duplicate sections. - [NEW] Sorted list of internal symbols has been printed in the MAP file - [NEW] Address functions StartOf(), EndOf(), MaxEndOf() can be used to specify start address of a load/execution region in the MD file - [NEW] Directive #copy_function = address [, size] has been supported to specify start address of the copy functions used in the init table. Optional size can be specified. Linker generates error if specified size does not match with the calculated size of the copy functions. - [FIX] Link-time-expression optimization updated to handle ADD/MUL/AND/OR/XOR operations with more than two operands - [NEW] Link-time expression optimization implemented. - [FIX] Crash removed when trying to read AREA_num of previous exec region. - [FIX] Call graph algorithm modified for speed issue. - [New] Size of a variable is printed in the MAP file - [NEW] Command line option --max-stack-depth supported to print only maximum stack depth with corresponding call chain in the CGF file - [NEW] Memory area attribute EXPLICIT supported to avoid allocation of unspecified functions in it. - [NEW] Special directives FILL(size, [buf]) and FILL_EXACT(size, [buf]) supported to insert a fill of specified bytes at a location in a load region. FILL_EXACT generates a warning when specified size is not same as length of the buffer. - [NEW] Stack/heap allocated after relax optimization - [NEW] Duplicate function call chain not printed in the CGF file - [NEW] Command line option --lib-as-source and MD file directive #lib_as_source has been supported to allocate sections in lib files in a normal way. - [FIX] Restored old behavior of heap/stack allocation. Linker now allocates stack of 0x200 bytes first and then heap of 0x500 bytes. - [FIX] Error generated when PM or DM not specified in the MD file. - [NEW] Warning generated calculated maximum stack depth is more than the allocated stack size. - [NEW] By default heap of 500 bytes is allocated and remaining RAM space is used for stack. - [NEW] New command line option --max-heap has been supported, to allocate stack of 500 bytes and remaining RAM space is used for heap. - [FIX] No load image generated for sections with NOINIT flag - [NEW] KEEP(...) supported in the MD file to avoid garbage collection of specified sections - [NEW] SYMBOLS(...) in MD file and command line option --create-symbols supported to generate C usable symbols. - [NEW] Execution region attribute FIXED has been supported to generate same load and execution address when non-zero +offset is used. - [NEW] Option --no-zdata-init has been supported to keep ZDATA sections un-initialized - [NEW] ZDATA sections in EEP area are not initialized when they are placed under NOINIT execution region attribute. - [NEW] In the map file, scope of a symbol (GLOBAL / LOCAL) is printed Property of Samsung Electronics Co., Ltd. 25 System LSI Division, Semiconductor Business V1.00o V1.00n V1.00m V1.00l V1.00k Oct 1, 2009 Sep 15, 2009 Sep 10, 2009 Sep 07, 2009 July 17, 2009 V1.00j July 13, 2009 5.2.3.2 26 - [FIX] Modified compression algorithm. - [NEW] Debug line information removed for sections without any flags. - [FIX] Crash removed while optimizing for SJSR instruction. - [FIX] Appropriate allocation flags set to sections without any flags - [NEW] Multiple base addresses supported for SJSR instruction with #sjsr_base = <addr> and SJSRTARGET method. - [NEW] Special symbol created for .swihandler_xx_yy sections. - First Release Linker for CalmRISC16 – CalmSDKLd.exe Version V1.02e Released date Jul 24 2013 V1.02d V1.02c Feb 27 2013 May 26 2011 V1.02b V1.02a Jul 24 2010 May 26 2010 V1.02 V1.01x Apr 23 2010 Apr 8 2010 V1.01w Mar 30 2010 V1.01v Mar 10 2010 V1.01u V1.01t Feb 17 2010 Feb 16 2010 V1.01s Feb 8 2010 V1.01r Jan 28 2010 V1.01q Dec 11, 2009 V1.01p V1.01o Dec 1, 2009 Nov 18, 2009 Comments - [FIX] support of OVERLAY memory regions is implemented in MD file for memory areas with specified FILL value. - [FIX] feature “Go To Definition” is fixed. - [NEW] --callgraph linker option is extended: the stack depth is shown for the functions which are already displayed (they are marked with asterisk(‘*’)). Also the stack depth information was added to call chain for maximum stack depth. - [NEW] 2 word CMP EQ and CMP GE optimized to their 1word form. - [NEW] Only one set of (START, LOAD, SIZE) symbols generated for duplicate sections. - [NEW] Sorted list of internal symbols has been printed in the MAP file - Version changed for official release - [FIX] Link-time-expression optimization updated to handle ADD/MUL/AND/OR/XOR operations with more than two operands - [NEW] Link-time expression optimization implemented. - [NEW] Address functions (StartOf, EndOf, MaxEndOf) supported for start address of an load/exec region. - [NEW] Command line option --avoid-swi-area has been supported to avoid allocation of unspecified sections in SWI vector area. - [NEW] Debug info of optimized JSR has been changed - [FIX] Speed of call graph algorithm improved. - [NEW] Size of a variable is printed in the MAP file - [NEW] EXPLICT and FILL()/FILL_EXACT() supported - [NEW] Stack/heap allocated after optimization - [NEW] Command line option --max-stack-depth supported to print only maximum stack depth with corresponding call chain in the CGF file - [NEW] Duplicate function call chain not printed in the CGF file - [NEW] Command line option --lib-as-source and MD file directive #lib_as_source has been supported to allocate sections in lib files in a normal way. - [NEW] Command line option -m<name> has been supported to suppress warnings - [FIX] Restored old behavior of heap/stack allocation. Linker now allocates stack of 0x200 bytes first and then heap of 0x500 bytes. - [NEW] Size of CGF file reduced by not printing the repeated call chains - [FIX] Error generated when PM or DM not specified in the MD file. - [NEW] Warning generated calculated maximum stack depth is more than the allocated stack size. - [NEW] By default heap of 500 bytes is allocated and remaining RAM space is used for stack. - [NEW] New command line option --max-heap has been supported, to allocate stack of 500 bytes and remaining RAM space is used for heap. Property of Samsung Electronics Co., Ltd. System LSI Division, Semiconductor Business V1.01n V1.01m Nov 2, 2009 Oct 27, 2009 V1.01l V1.01k V1.01j V1.01i Oct 12, 2009 Sep 15, 2009 Sep 07, 2009 June 29,2009 - [FIX] No load image generated for sections with NOINIT flag - [NEW] KEEP(...) supported in the MD file to avoid garbage collection of specified sections - [NEW] SYMBOLS(...) in MD file and command line option --create-symbols supported to generate C usable symbols. - [NEW] Execution region attribute FIXED has been supported to generate same load and execution address when non-zero +offset is used. - [NEW] Option --no-zdata-init has been supported to keep ZDATA sections un-initialized - [NEW] ZDATA sections in EEP area are not initialized when they are placed under NOINIT execution region attribute. - [NEW] In the map file, scope of a symbol (GLOBAL / LOCAL) is printed - [NEW] Relocation for 3byte pointer supported - [NEW] Debug line information removed for sections without any flags - [FIX] Appropriate allocation flags set to sections without any flags - First Release 5.2.4 Librarian – CalmSDKAr.exe Version V1.00d Released date Dec 19, 2008 Comments - First Release 5.2.5 Library V1.05q Released date Jul 17 2012 V1.05o May 11 2012 V1.05n Apr 23 2012 V1.04f Oct 28 2010 V1.04c Jul 26 2010 V1.04a May 4 2010 V1.04 Apr 23 2010 V1.03n Apr 1 2010 V1.03m_beta3 Feb 24 2010 V1.03l Jan 27, 2010 V1.03h Dec 10, 2009 Nov 18, 2009 Version V1.03g Comments - [SecuCalm] Built using compiler V1.05q and assembler V1.01f - [CalmRISC16] Built using compiler V1.05o and assembler V1.02a - [SecuCalm] Built using compiler V1.05o and assembler V1.01f - [CalmRISC16] Built using compiler V1.05o and assembler V1.02a - [SecuCalm] Built using compiler V1.05n and assembler V1.01f - [CalmRISC16] Built using compiler V1.05n and assembler V1.02a - [SecuCalm] Built using compiler V1.04f and assembler V1.01d - [CalmRISC16] Built using compiler V1.04f and assembler V1.02a - [SecuCalm] Built using compiler V1.04c and assembler V1.01b - [CalmRISC16] Built using compiler V1.04c and assembler V1.02a - [SecuCalm] Built using compiler V1.04a and assembler V1.01a - [CalmRISC16] Built using compiler V1.04a and assembler V1.02a - [SecuCalm] Built using compiler V1.04 and assembler V1.01 - [CalmRISC16] Built using compiler V1.04 and assembler V1.02 - [SecuCalm] Built using compiler V1.03n and assembler V1.00p - [CalmRISC16] Built using compiler V1.03n and assembler V1.01e - [SecuCalm] Built using compiler V1.03m_beta3 and assembler V1.00p - [CalmRISC16] Built using compiler V1.03m_beta3 and assembler V1.01e - [SecuCalm] Built using compiler V1.03l and assembler V1.00n - [CalmRISC16] Built using compiler V1.03l and assembler V1.01c - [SecuCalm] Built using compiler V1.03h and assembler V1.00m - [CalmRISC16] Built using compiler V1.03h and assembler V1.01c - [SecuCalm] Built using compiler V1.03g and assembler V1.00m - [CalmRISC16] Built using compiler V1.03g and assembler V1.01c Property of Samsung Electronics Co., Ltd. 27 System LSI Division, Semiconductor Business 28 V1.03f Sep 28, 2009 V1.03c Sep 8, 2009 V1.03 V1.02h Aug 5, 2009 Jun 29, 2009 - [FIX] Stack overflow check library modified for correct detection of stack overflow - [SecuCalm] Built using compiler V1.03f and assembler V1.00l - [CalmRISC16] Built using compiler V1.03f and assembler V1.01a - [SecuCalm] Built using compiler V1.03c and assembler V1.00l - [CalmRISC16] Built using compiler V1.03c and assembler V1.01a Built using compiler V1.03 and assembler V1.00k Built using compiler V1.02h and assembler V1.00k Property of Samsung Electronics Co., Ltd.