JumpStart C++ for Cortex ("V9") Readme c:\iccv9cortex\readmeARMCTXCG.txt For documentation, please see https://imagecraft.com/documentation/jumpstart-c-documentation Get news and updates https://imagecraft.com/get-news-and-updates 9.12.06 2020/04/06 IDE - Under some rare conditions, the build options would be corrupted causing a build to fail. 9.12.05 2020/03/20 JDB Debugger - Fixed a minor display problem 9.12.04 2019/11/04 CodeBlocks IDE - Streamlined linker .ld file handling: if there is a -T in the linker flag, that .ld file will be used. Otherwise, if there is a .ld file in the project file list and located in the Setup\\ directory, then that file will be used. Otherwise, the IDE emits an error message. JSAPI - Added libjsapi-stm32f4-fpu.a and libjsapi-stm32f7-fpu.a for M4 and M7 projects that are built with hardware FPU and SoftABI. There is no IDE checkbox for the option and you must modify the linker libs box to reference these files. 9.12.03 2019/07/26 CodeBlocks IDE - Minor fixes and enhancements JSAPI - Now the libraries are built with -O2 for significant code size reduction. JSAPI Templates - Set L0xx template to use a min stack size of 0x100 instead of 0x800 as some L0xx devices only have 0x800 bytes of SRAM. REXIS - Fixed paths to VendorSDK in examples (c:\iccv9cortex\examples\REXIS) that use the Vendor SDK. 9.12.02 2019/06/16 CodeBlocks IDE - Fixed bugs with changing compiler build options for one target incorrectly affected the other targets. - Watch window was not displaying uint8_t variables correctly. JSAPI - Added EnableIRQ(), DisableIRQ(), GetIRQn() to JSAPI_TIMER and JSAPI_EXTI classes. They use the NVIC_ functions to enable/disable IRQ without the users to rediscovering what the IRQ number is for the object. - Added CTX_SysTick_IRQn etc. for the generic ARM Cortex-M interrupt IRQn. Their values are the same for all Cortex-M MCU (between -1 to -15) but are defined in device specific header file (due to C not allowing enum enumerations to be extended). Using these values in jsapi.h allow generic code to be written without referencing device specific header file. JSAPI Templates - Fixed minor issues with Release targets 9.12.01 2019/05/28 JSAPI New Project Wizards - Added "weak" default JSAPI interrupt handlers so that if the user does not actually use certain modules (e.g. JSAPI_USART), no code will be dragged in. CodeBlocks IDE - Fix a freezing issue when the user clicks on the Cancel button with the Build Options dialog 9.12.00 2019/05/27 IDE - Fixed "New Project" on Start page - Minor look and feel improvements in Build / Debug options - Device entries for all popular Cortex-M MCUs added with data from the CMSIS Device Packs. See \McuMasterList.txt (also on the web, see link to documentation URL above) ADT Advanced Debug Toolbar - Support for most popular Cortex-M MCUs added with data from the CMSIS Device Packs. See \McuMasterList.txt QFPlib support - QFPlib is a compact FP package for M0 and M3 - QFPlib is licensed under GPL, alternative licensing possible from author - See Help file for detail JSAPI - Added JSAPI_GPIO::Read(int pinno) and JSAPI_GPIO::Wrte(int pin_no, unsigned val). The read/write value is normalized to 1 or 0 9.11.00 2019/04/19 JSAPI - Added initial release of JSAPI for STM32L0xx - STM32F3xx = Fixed SetSystemClock function = Fixed SPI problems = Added hsi_nodiv2 param to SetSystemClock function - STM32F4XX/STM32F7XX = Fixed MCO1 and MCO2 enum - Fixed table size for ISR timers - General code cleanup and bug fixes 9.10.01 2019/04/15 IDE - Fixed a bug with "New->Project JSAPI project" 9.10.00 2019/04/12 IDE - Various enhancements and fixes to Build Options handling CubeMX Importer - Fixed Middleware import issues with paths V8 Importer - Added {IMAGECRAFT_DIR}\include\CMSIS\ to the include path (for core_cmX.h etc.) - Added code to emit .prj file JSAPI and REXIS libs - Strip the debug symbols from the .a files to avoid debugger issues JSAPI - Added comments re: wait states for STM32F3xx, F4xx, F7xx jsapi.h - Added wait state parameter to STM32F0xx JSAPI_CLOCK::SetSystemClock function - ALPHA version of STM32L0xx JSAPI available. Please email support@imagecraft.com if interested Component Versions: IDBE -> 9.01.20190407 (new) ADT -> 9.0.5 wsImport -> 9.01.20190408 (new) 9.09.02 2019/03/14 CubeMX Importers - Additional fix for FPU import options Component Versions: IDBE -> 9.01.20190224 ADT -> 9.0.5 wsImport -> 9.01.20190313 (new) 9.09.01 2019/02/25 JSAPI - Added JSAPI_USART::MakeUSART(..., int fc); for backward compatibility with ancient version of V8 JSAPI V8/CubeMX Importers: - Importers were not handling FPU hardware options correctly JDB - Added ucrtbased.dll as it is required in some Windows install Component Versions: IDBE -> 9.01.20190224 (new) ADT -> 9.0.5 wsImport -> 9.01.20190218 (new) 9.09.00 2019/02/11 Vendor SDK - Added header and source files for all major Cortex MCU vendors. The files are located in \VendorSDK\\\inc \VendorSDK\\\src \VendorSDK\\\CMSIS\inc \VendorSDK\\\CMSIS\src See the User Guide for details IDE - A handful of minor UI usability enhancements GCC - Updated to 2018 Q4 release with the Eclipse "2019Q4" objcopy patch https://bugs.launchpad.net/gcc-arm-embedded/+bug/1810274 Device List - V6.42a Reduced the installing time significantly by using zip files for GCC and other components Component Versions: IDBE -> 9.01.20190211 (new) ADT -> 9.0.5 wsImport -> 9.01.20190107 9.08.01 2019/01/25 IDE - Project->Properties "Add Target" now renamed to "Clone" to better reflected its functions - Minor usability fix in iFlash Component Versions: IDBE -> 9.01.20190124 (new) ADT -> 9.0.5 wsImport -> 9.01.20190107 9.08.00 2019/01/23 IDE - Added "Project->Rename project..." for renaming a project. Note: this also changes the output file name to match. - Debug/Download Options was not saving the settings correctly. - Help button on the Build Options was not bringing up the correct Help file - Remove "File->Save project as..." as it is unintuitive, and proper function is provided by "File->Clone project..." - "Add Target" in Project Properties now clones another target, which is more intuitive than core CB behaviors. - File Importer path issues fixed. - Debugger issues fixed. Help - V1.10 of the User Guide Component Versions: IDBE -> 9.01.20181210 (new) ADT -> 9.0.5 wsImport -> 9.01.20190107 (new) 9.07.02 2018/12/12 IDE - Checking for updates was broken due to use of https:// instead of http:// 9.07.01 2018/12/11 IDE - Simplified File->"Save Project as Archive..." - Minor fixes with Build Target copying and renaming. - Normalized/Relative Path is now the default for new projects ST-LINK GDB Server - Updated to "Dec 2018" release from ST Component Versions: IDBE -> 9.01.20181120 ADT -> 9.0.5 wsImport -> 9.01.20181121 (new) 9.07.00 2018/11/21 REXIS RTOS - 1.0 release - See https://imagecraft.com/jumpstart-iot/ for details. - To test/evaluate REXIS, open c:\iccv9cortex\examples\REXIS\STM32F411\rexis_examples.workspace IDE - Stopped "Check for Updates" to warn about download file already exists as they are all named iccv9cortex_demo.exe ST-LINK, JDB, iFlash - Updated to Jan 2018 GDB server release with flash programming speed improvement. Component Versions: IDBE -> 9.01.20181120 (new) ADT -> 9.0.5 wsImport -> 9.01.20181119 (new) 9.06.00 2018/11/15 IDE - Added various floating point (FP) options to the Device Target tab of the Build Options. See Help file for info. Component Versions: IDBE -> 9.01.20180928 ADT -> 9.0.5 wsImport -> 9.01.20181025 (new) 9.05.00 2018/10/04 IDE and JDB Debugger - Added Semihosting support. This redirects printf calls when the program is under debugger control to the ADT's semihosting output window. See help file for detail. IDE - Enabled support for USB licensing dongle. Once the driver is installed, the IDE will recognize the dongle license automatically whenever it is plugged in. NOTE: Win8/Win10 users may need to install the driver using the "unsigned driver install hack" (do a web search). Component Versions: IDBE -> 9.01.20180928 ADT -> 9.0.5 wsImport -> 9.01.20180912 9.04.04 2018/09/17 IDE - Minor fixes to the project importers and project cloner 9.04.03 2018/09/03 IDE - Changing the properties to hexadecimal in Watch window of "char array" objects did not change the radix. - Add "File->Clone Project" to clone a project. This is the recommended way of cloning a working project when developing a new project. 9.04.02 2018/08/07 IDE - Fixed a display problem with memory settings in "Build Options->Target" 9.04.01 2018/07/31 JSAPI - Fixed bug in JSAPI_UART::SetIntrMode() interrupt driven I/O. Examples - Started to add example programs under c:\iccv9cortex\examples\ JDB Debugger - Fixed a bug where an out of scope array variable that came back into scope did not have the [+] expand action icon. 9.04.00 2018/07/09 Added command to report sizes of the ELF file output. New projects created will have the new command added. For existing projects, invoke "Project->Build options->Build target..." and add "cmd /c $(TARGET_COMPILER_DIR)\bin\arm-none-eabi-size -A -x ${TARGET_OUTPUT_DIR}${TARGET_OUTPUT_BASENAME}.elf | $(IMAGECRAFT_DIR)\bin\elfsize" as a single line to the last line in the "Commands after build" section. A sample output in the Build Log status window looks like this: ELF file output size Code size: 19428 bytes starting at 0x08000000 SRAM data: 2060 bytes starting at 0x20000000 Heap and Stack: 6148 bytes starting at 0x2000080C IDE - "Add files to project" with include files now include options not to continuously ask to "add path to project options" - DoxyBlock is now installed by default 9.03.01 2018/06/20 IDE - Minor enhancements: == Compiler version is now written to the .v2.prj file == Fixed the spelling of ${TARGET_NAME} etc. in the Add Tools dialog box 9.03.00 2018/06/07 Added proper help to the IDE "Help->ImageCraft Help" 9.02.02 2018/05/01 JDB Debugger - Fixed a bug with users trying to set too many breakpoints. (Number of breakpoints limited by the MCU's hardware breakpoint support). CubeMX Import - Fixed a bug where the linker .ld file was not properly integrated with the build options. CodeBlocks IDE - Fixed a bug where "Remove ALL" in breakpoints window had no effect. 9.02.01 2018/04/20 JDB Debugger - Fixed a bug where JDB would not start if the toolchain is installed in a path with spaces. 9.02.00 2018/04/09 CodeBlocks IDE - Under some conditions, if you tried to edit source files while the debugger was running, CB might crash after you exit the debugger. 9.01.00 2018/03/30 JSAPI - Support for STM32F7XX released. - Doxygen'ed documents V1.10 uploaded to the website. iFlash-Cortex - Initial release JDB and iFlash-Cortex now uses the ST GDB-Server for the ST-LINK pod, and OpenOCD is no longer used. This provides much faster performance. Startup Files - Added conditional call to __libc_init_array for C++ global constructor invocations. IDE - Added debug/download selection for Wireless Black Magic Probe. 9.00.02 2018/03/14 Fixed crashing in initial startup under some conditions 9.00.00 2018/03/08 Initial Release.