This installation of MotoHawk should contain the following: --MotoHawk | +--Bin Executable utilities used by MotoHawk | +--Blocks Blockset library. Everything in this directory is added to the MATLAB path. | +--Controllers Contains the archives and header files for Component Control Core | +--Documentation README (this file) and other installed documentation | +--GlobalDefinitions Contains common header files | +--MotoCoder The collection of code generation tools used to interface with Component Control Core | +--ControlCoreClassic Archives and header files for Control Core Classic (5xx-based modules) | +--Toolchains Archives for interfacing with the RTW API. After opening MATLAB, you should see something like: ------------------------------------------- Initializing MotoHawk... For: MATLAB 7.6 to 7.10 Version: 2010b_beta5 Installed in: C:\Program Files\Woodward\MotoHawk Ready. ------------------------------------------- >> - Type "motohawk_project('NewProject')" at the MATLAB command prompt to create a new template project, containing an example application. - Simply press CTRL-B to build the project. - Two files will be generated, an .SRZ and a .DLL file, which will be installed into your C:\ECUFiles\Programs and C:\ECUFiles\TDBDLL directories, respectively. - Type "help motohawk" to get more help on command-line scripts. Please visit our website at http://mcs.woodward.com for more information about the product, hardware documentation, known bugs, feature requests, and more! Version History: 2010b_sp0 Type: External Dependencies: -MotoTune version 8.13.7.120 or greater -MotoServer Runtime version 8.13.7.120 or greater -MotoCoder 0.11.5 Migration Notes: -See previous migration notes if upgrading from older versions. MotoHawk New Features: artf6381 : 2010b: Expose 14 Volt ADC to MotoHawk MotoHawk Bug Fixes: artf6549 : 2010b : Add popup message to NSIS installation to show required dependencies artf6384 : 2010b: Correct eTPU_ParameterFrame_Ofs_Get() artf6503 : 2010b: Correct eTPU PSP Link operation artf6551 : 2010b - ControlCoreClassic - Add MY10 P128L704 support artf6550 : 2010b - ControlCoreClassic - Remove 8bit Write verify in Prosak artf6289 : 2010b: Add filtered VR option to CCM1001 artf6555 : 2010b: Increase stack reserve in MotoCoderTransform.exe due to increased stack demand on Win64 platform artf6350 : 2010b: motohawk_component_lib.tlc should use sSetOutputPortOptimOpts, not ssSetOutputPortReusable 2010b_beta5 Type: External Dependencies: -MotoTune version 8.13.7.120 or greater -MotoServer Runtime version 8.13.7.120 or greater -MotoCoder 0.11.4 Migration Notes: -This version and newer of MotoHawk will require version 1.0.4 (or newer) of the MotoHawk Custom Security block. -When using GCC on 5554 targets, use at least 4136 bytes of heap. -If using GCC, this MotoHawk version requires GCC PowerPC EABI Version 4.4.0 SP1 and GCC PowerPC EABI SPE Version 4.4.0 SP1, available on the customer download site under Optional Files. Uninstall the old versions of this software before installing the new versions. -Starting with this release, MotoHawk requires Microsoft .NET Framework v2.0 sp1 and v3.0. To obtain both, install v3.5 sp1 available at http://www.microsoft.com/downloads/en/details.aspx?FamilyId=333325fd-ae52-4e35-b531-508d977d32a6&displaylang=en MotoHawk New Features: artf5775 : Add Freescale MPC5xxx DSP library support to ComponentControlCore artf5961 : Support eTPU on MPC5566 platforms running at a System Frequency of 126MHz artf6100 : Add pulse inhibit feature to the eTPU PSP primitive artf6177 : Install PSP module descriptor attribute that will skip pad creation on MPC5xxx cores artf6203 : eTPU PSP primitive to support more than 16 pulses artf6212 : MPC55xx : Add newlib stubs to support the use of printf with GCC artf6236 : Add alignment includes in GlobalDefinitions artf6239 : Support 60M2 crank, X+1 cam encoder on MPC5xx targets MotoHawk Bug Fixes: artf6080 : motohawk_gen_pcode.m must handle spaces artf6118 : MC33810 - Implement support for MaxDwell artf6178 : Add Angle Trigger Dispatcher based upon PSP to MotoCoder artf6185 : MPC55xx - Support CAN Error diagnostics artf6197 : Correct MotoCoder Mid TDC Operation artf6210 : Change AN32 and AN33 to have 0-5 V reference on Visteon 112 pin modules artf6211 : Tasking Kernel : Fix initialisation of sync objects artf6257 : Reserve Universal Encoder Primitive in eTPU Mask Definition artf6271 : Add Encoder Interface support to the DE-ECU-5534-046-1002 artf6275 : TargetDef - PCM128 MY10 has no H2 and H3 2010b_beta4 Type: External Dependencies: -MotoTune version 8.13.7.120 or greater -MotoServer Runtime version 8.13.7.120 or greater -MotoCoder 0.11.3 Migration Notes: -This version and newer of MotoHawk will require version 1.0.4 (or newer) of the MotoHawk Custom Security block. -When using GCC on 5554 targets, use at least 4136 bytes of heap. -If using GCC, this MotoHawk version requires GCC PowerPC EABI Version 4.4.0 SP1 and GCC PowerPC EABI SPE Version 4.4.0 SP1, available on the customer download site under Optional Files. Uninstall the old versions of this software before installing the new versions. MotoHawk New Features: artf5652 : Remove debug symbols for 'release' builds artf5892 : Update Security archives for BootSecurity and DefaultSecurity to include MPC5566 Support artf5936 : Add Global Enable State to the OBD Fault Manager in MotoCoder artf5942 : Add RTW libraries for MPC5566 CPU target artf5954 : Add ModuleSupport archive for Axiom0404 MPC5566 EVB artf5955 : Create eTPU BasicEngine mask for 20k eTPU code space artf5959 : Support Axiom-0404 MPC5566EVB as a MotoCoder target artf6063 : TPU - Replace duplicate code in MaskConfiguration.xml with macros artf6098 : Upgrade version of Saxon bundled with MotoHawk MotoHawk Bug Fixes: artf5607 : Update rtwoption callback methods to use R14 names artf5703 : Remove motohawk_gen_datasheet from MotoHawk artf5776 : Fix Axiom MPC5554 Dev Board Target artf5830 : Rename all references to ShiftDD to ShiftSS and vice-versa artf5857 : Change Access Method used in OBD Fault Manager artf5865 : Correct Simulation operation with the Fault Iterator block artf5887 : Add support for MPC5566 processor based archives in SharedComponents artf5901 : Fix warning for CCPMaster Builds on i386-gcc artf5941 : Set Optimisation to -Os (Optimise for Size) for Processor MPC55xx using GCC artf6010 : Code Generation Error in BasicOut.xsl MotoCoder_DiscreteOutput_UpdateOnChange_Set() artf6013 : MotoCoder - Fix the size of the M1 Flash sector in various MPC555x CPU descriptors artf6020 : S12XE: Remove PinForce on late start match artf6049 : Verify calibration in NV emulated flash has changed before writing artf6050 : Make component GUID in gcc-win64-pe unique artf6053 : Remove improper calls to DataStoreReference for the CCP Slave Seed/Key blocks artf6099 : Create a version of Transform.exe which is tied to MotoHawk license artf6105 : Ensure that the exception vectors (IVORx) do not cross a 16 bit address boundary when using GCC artf6130 : Enhance MPC5xxx EMIOS PWM driver to handle Freescale errata artf6153 : Suppress CodeWarrior warning on missing DWARF debug info in archives artf6230 : Support MotoZip path that includes spaces in Component_Build.xsl 2010b_beta3 Type: External Dependencies: -MotoTune version 8.13.7.120 or greater -MotoServer Runtime version 8.13.7.120 or greater -MotoCoder 0.11.2 Migration Notes: -This version and newer of MotoHawk will require version 1.0.4 (or newer) of the MotoHawk Custom Security block. -When using GCC on 5554 targets, use at least 4136 bytes of heap. -If using GCC, this MotoHawk version requires GCC PowerPC EABI Version 4.4.0 SP1 and GCC PowerPC EABI SPE Version 4.4.0 SP1, available on the customer download site under Optional Files. Uninstall the old versions of this software before installing the new versions. MotoHawk New Features: artf3727 : Implement 24 with 1 tooth retarded crankencoder on ControlCoreClassic artf5479 : Classic - Encoder 60-2 crank and a X+1 CAM artf5528 : Add motohawk_mexcleanhere function artf5538 : Add GCC win64 cross compiler to MotoHawk Installer artf5544 : Adjust EasyLink timing parameters for new revision of 112 pin hardware artf5571 : Add Timed Peak/Hold Behavior to MPC55xx artf5572 : Create MotoCoder templates to support TimedPeakHold and DiscretePeakHold that work with an MPC55xx core artf5582 : Add support of P Code and Help M file generation in Bolt On blocksets artf5595 : "motohawk_template_model.mdl" upgrade to MATLAB 7.5/R2007b artf5666 : Classic - Encoder 8+1 artf5668 : Add In Use Performance General Counter and Monitor Counters to MotoCoder MotoHawk Bug Fixes: artf4540 : Fix Injector Current Select mask and html help artf5118 : TargetDef - Add PCM128 MY10 details to help artf5465 : Classic - s4HardStopAngularDuration should be 0 when Start==Stop artf5476 : Ensure MATLAB integration is removed on uninstallation of MotoHawk artf5483 : Encoder interface in ECU555-48-0708 for 36-2 XPlus1 should be CNK_DG_CAM_DG artf5491 : Update X+1 CAM MPC5xx specific information artf5492 : Implement AR_1158 workaround to ClassicControlCore artf5493 : Correct the PSP pulse mode used in Transient Injection artf5498 : Describe what the minimum duration signal on Injector Sequence Block does artf5510 : Alter Enable Logic on Make-up pulse re-enable to protect against a missing pulse artf5519 : Have VISTA Knock Error if unique TDC Angles are not provided artf5532 : Fix storage class for 64 bit compatibility in motohawk_sfun_data_def and motohawk_sfun_data_reference artf5547 : Implement Output Compare eTPU Primitive artf5548 : Support the Peak/Hold behavior in MotoHawk artf5552 : Extend Help to describe Transient Injection artf5553 : Fix warning in motohawk_mex_util_lib.c during 64 bit debug builds with GCC artf5560 : Classic - N34 encoder can be treated as having no missing teeth artf5564 : Remove duplicate (but harmless) code in motohawk_dout_lib.tlc artf5570 : Classic - Create Mask TPU_N12_T_MUX and Remove RPMVector from all TPU masks artf5576 : TPU - Use macros to alias CalcPeriodRatio and CheckToothMtch artf5577 : Support Independant Peak Timing Accessors in ControlCoreClassic artf5578 : Ensure ERI tables are always linked to the final image artf5581 : MPC5xx modules when compiled by GCC links ERI Request tables in the wrong section artf5606 : Correct MuxPSP TLC generated prototypes to use const pointers artf5610 : Correct injector sequence's assumptions that MC resource is 'INJ' artf5623 : S12XE: Reschedule Start pulse when it occurs in same tooth as Stop artf5649 : MATLAB-specific #defines need to be moved to MotoHawk from the S12 MotoCoder build template artf5656 : Transient - Clip max duration to primary pulse hardstops artf5661 : Remove Quadrature PhaseZ support from eTPU capable modules artf5669 : Remove motohawk_reg_struct from MotoHawk artf5689 : Current Output block - Improve help artf5691 : ECM128: Make GCC memory map consisent with GHS artf5714 : Transient - Set transient timing to zero when full primary duration is being delivered artf5715 : S12XE: Transient - On back to back pulses, update timings before proximity test artf5738 : Zero TPU Parameter RAM in GCC artf5758 : Mark the MPC55xx GCC linker section BootMailBox_bss as NOLOAD to supress initialised data artf5759 : Cancel all pending interrupts as part of Reboot artf5789 : Make TLE7368 re-entrant to prevent possible false watchdog artf5810 : Remove polled watchdog refresh calls from MPC55xx flash erase/write artf5819 : Remove incorrect packing around S_DiagnosticsCreateAttributes in DeviceDrivers/Diagnostics_Behavior_API.h artf5826 : Change Access Method used in Fault Manager 2010b_beta2 Type: External Dependencies: -MotoTune version 8.13.7.120 or greater -MotoServer Runtime version 8.13.7.120 or greater -MotoCoder 0.11.1 Migration Notes: -This version and newer of MotoHawk will require version 1.0.4 (or newer) of the MotoHawk Custom Security block. -When using GCC on 5554 targets, use at least 4136 bytes of heap. -If using GCC, this MotoHawk version requires GCC PowerPC EABI Version 4.4.0 SP1 and GCC PowerPC EABI SPE Version 4.4.0 SP1, available on the customer download site under Optional Files. Uninstall the old versions of this software before installing the new versions. MotoHawk New Features: -artf1516 : Change Digital Output block to use Name interface -artf4165 : CC - EncoderEmulator - Remove support -artf4797 : TargetDef - Place link in TargetDef help that points to module crossreference -artf4887 : Update MH module images -artf5071 : Classic - Allow scheduling of PSP close to stop if long pulse -artf5107 : Install back-to-back pulse scheduling capability into the eTPU -artf5127 : Convert motohawk_mexall/one/here to use Microsoft SDK compiler/cross compiler rather than MATLAB7/LCC -artf5132 : TargetDef - Add DocumentationBuild to MH release process -artf5150 : Make motohawk_ert_rtw_wrap_make_cmd_hook use a new M script motohawk_matlab_platform() to determine correct path to gmake -artf5152 : Update motohawk_gcc_XXX_directory to check in wow6432 node on 64 bit OS hosts -artf5157 : Make motohawk_version_selector enumerate MATLAB 64 bit editions separately -artf5189 : Apply work-around for encoder definition block crashing MATLAB R2010a -artf5216 : Remove J1850 blocks and supporting code -artf5224 : Allow the extensions file mechanism to use xpath expressions which are not limited by deep-equal comparisons -artf5239 : PCM128 MY10 - Set eDriverMode for EST9-12 to be LowSide -artf5334 : OBD Fault Manger : Add Permanent State -artf5356 : Encoder - 12Shift1 Advanced 720Deg on Classic Targets -artf5425 : Add Function to Plot the Distribution of Blocks within a Model -artf5435 : Optimise motohawkrc/motohawk_directory.m to use motohawk_hklm_Software_value.m -artf5436 : Update NANT binaries 0.86.9.woodward. Update matching MotoParser.exe/MotoParserXML.exe -artf5463 : DE-ECU DV: Add Module support for DV PROD and DEV modules -artf5482 : DE-ECU DV: Add module descriptor -artf5504 : Add Custom Field updates to the MotoCoder OBD Fault Manager Service MotoHawk Bug Fixes: -artf4569 : TPU - Improve library build speed by only including necessary files -artf4945 : OBD Fault Manager : Increment Pending X and Y counts when Drive Cycle Ends -artf5029 : Fix MotoCoder MultiplePSP to to work with "PSP End Trigger" and "Injector Pulse Complete Trigger" MH Blocks -artf5070 : MH - 2010b - Remove Encoder Emulator blocks -artf5142 : Update motohawkrc/motohawk_directory.m to check in wow6432 node on 64 bit OS hosts -artf5159 : TargetDef - Fix incorrect module data -artf5186 : Correct versions of MATLAB supported in installer -artf5193 : Add update lockout to eTPU PSP's predictive start on update -artf5197 : OBD Fault Manager : Drive Cycle should be a trigger -artf5199 : Always issue "link" event in CDPeak eTPU code -artf5200 : TargetDef - Filter input files to Documentation.build and add ReleaseStatus to valid ModuleDescriptors -artf5201 : Fix IVOR0, IVOR1 and IVOR2 for the MPC55xx cores -artf5209 : Add "ERROR" to terminating messages in PSPOutput_Common.xsl -artf5210 : Fix enable race condition in motohawk_sfun_injector_sequence.tlc -artf5220 : OBDFaultManager and FaultManager need to have different Data Store Names -artf5233 : Sign installer and version selector with the Woodward publisher key -artf5257 : Don't run version selector interactively in autobuild -artf5358 : Correct motohawk_sfun_injector_sequence.tlc to handle a single cylinder -artf5410 : TargetDef - Set title of CrossReference to 'Module Cross Reference' -artf5411 : MotoCoder Classic Builds - Prevent EstConvert from running if it does not exist -artf5426 : Set MPC5534's FLASH_BIUCR register correctly -artf5427 : Correct the application of the MPC5534's MMU settings -artf5432 : Alter MotoHawk.build to use the new task attribute "successcode" -artf5437 : Sign PowerPC GCC installers with the Woodward Digital Certificate -artf5447 : Update installer to use win32-pe SP1 -artf5448 : Ensure that win32-pe uninstallation cleans up registry when done. -artf5453 : Configure the XBAR for MPC55xx Cores -artf5454 : Classic - Move woodward.css as it gets deleted by Doxygen -artf5466 : Expand AddCustomPostBuildScriptCode TLC to allow fully formed extensions -artf5485 : DocumentationBuilder - ensure target xhtml is produced for all modules when showall=true -artf5486 : Correct TCR2Comp value used by eTPU PSP -artf5487 : Clean up eTPU Global Usage -artf5503 : Add a "Get All Valid Values" option for the motohawk_enum class in MotoHawk -artf5516 : Fix warning "PRJ0052 : Referenced assembly ..." when building MEX dll's with Microsoft compiler -artf5563 : Update Database.build to use gcc -shared instead of dlltool -artf5598 : Modify GCC start-up code to handle sections that are not word sized -artf5624 : Add 64bit licensing proxy stub to MotoHawk installer -artf5625 : Move MotoHawk Version Selector registry cleanup to the correct uninstallation section 2010b_beta1 Type: External Dependencies: -MotoTune version 8.13.7.120 or greater -MotoServer Runtime version 8.13.7.120 or greater -MotoCoder 0.11.0 Migration Notes: -This version and newer of MotoHawk will require version 1.0.4 (or newer) of the MotoHawk Custom Security block. -When using GCC on 5554 targets, use at least 4136 bytes of heap. -If using GCC, this MotoHawk version requires GCC PowerPC EABI Version 4.4.0 SP1 and GCC PowerPC EABI SPE Version 4.4.0 SP1, available on the customer download site under Optional Files. Uninstall the old versions of this software before installing the new versions. MotoHawk New Features: -artf4567 : Update ClickwrapLicense.txt to reflect Woodward -artf4786 : TargetDef - Create base module descriptors for Classic targets -artf4788 : TargetDef - Create build system to create help for target selection -artf4789 : TargetDef - Add Alias information to all Module Descriptors -artf5120 : Amend "ratio" treatment of frequency based closure detect on the MPC55xx MotoHawk Bug Fixes: -artf4151 : Alter Chip Select Timings for Parallel EEPROM on PCM128 ControlCoreClassic -artf4618 : Remove unnecessary eTPU mask builds from the build scripts -artf4889 : Quadrature - eTPU - LastDirn_Z needs to be initialised -artf4914 : Amend RefreshUnusedChanInterface() to consider if channel is capable -artf4977 : S12 Family: MemoryAccess APIs to support FAR addressing Read and Write -artf5119 : MusPSP - Remove reference in help to motohawk_cc_documentation -artf5144 : PIM-5554-060-0801-xD set ReleaseStatus to Nightly -artf5146 : Update NANT to nant-0.86.8.woodward -artf5160 : Restore removal of licensing mex source files regression from SVN14659 to SVN14994 motohawk_release.m -artf5163 : Install MotoHawk 2010b licensing -artf5167 : Correct DualPSP trigger code to correct the occurence of build errors -artf5172 : DGInWithOverride_API.h: extern S_DGInOverride_Defn_Encoder before it is referenced 2010a_beta6 Type: External Dependencies: -MotoTune version 8.13.7.120 or greater -MotoServer Runtime version 8.13.7.120 or greater -MotoCoder 0.10.5 Migration Notes: -This version and newer of MotoHawk will require version 1.0.4 (or newer) of the MotoHawk Custom Security block. -When using GCC on 5554 targets, use at least 4136 bytes of heap. -If using GCC, this MotoHawk version requires GCC PowerPC EABI Version 4.4.0 SP1 and GCC PowerPC EABI SPE Version 4.4.0 SP1, available on the customer download site under Optional Files. Uninstall the old versions of this software before installing the new versions. MotoHawk New Features: -artf4709 : Make motohawkrc aware of Side By Side Install Locations -artf4759 : Add DIN1 through DIN11 MPC5534 pad configurations to DE-ECU -artf4767 : Help - XPlus1 CAM, clarify phase and exclusion zone -artf4778 : Implement re-try function in Switch Mode Driver -artf4810 : Add acceptance bounds to the CDPeak eTPU primitive -artf4829 : Ensure .NET assemblies can exist side-by-side -artf4831 : Use MATLAB R2007b for prepare_release -artf4852 : Simplify Archive destination in motohawk_release -artf4907 : Add Alternate Closure Detection Method using Switching Period to MPC55xx -artf4952 : Create the MotoHawk Active Version Selector tool -artf4965 : Create the Legacy (re)Integration Tool -artf4967 : 2010a: Add support for MATLAB 2010a -artf4979 : Add DualPSP Support to MotoCoder -artf4993 : Implement "Apply" and "Quit" buttons in MotoHawk Version Selector -artf5007 : Release the DE-ECU-5534-046-1001 module as ReleaseRestricted -artf5018 : Update motohawk_version_selector.exe due to motohawkrc being altered for MATLAB 2010a support -artf5027 : Upgrade licensing to 8.13.7.100 MotoHawk Bug Fixes: -artf4708 : Motocoder\TDB\Database.build needs default handler -artf4745 : Install the eTPU Filter Configuration used by the DE-ECU into the Module Descriptor -artf4753 : Install digital filter functionality into DE-ECU frequency inputs -artf4768 : MotoCoder should error if application requested module resources are not present in the module descriptor -artf4776 : Install "do nothing" Output Fault Status support on the DE-ECU -artf4780 : Add new BootInterface.h enumerations and protocol enumeration -artf4795 : ModuleDescriptor - Ensure S12 Targets Manufacturer = Continental -artf4796 : Extend MH_Help1.css -artf4801 : CC - EncoderSynthesizer, set DG4 TPU channel to C_TPUCH10 - PCM128 -artf4808 : Declare Component NonVolatileDefault and Component NonVolatileWork structures in unique sections -artf4811 : Delete BasicOut FaultStatus template -artf4814 : CCP Slave structure declarations multiply defined -artf4830 : Prevent build failure if MotoTune is not installed -artf4837 : Quadrature - Rectify incorrect Posn and RevCount error report -artf4838 : 2010a - Quadrature Decoder eTPU Primitive - Initialize all HiRate flags -artf4908 : H2 Status Line Incorrect for ECM-5554-112--0902 modules -artf4916 : MPC5xx GCC: use ALIGN(4) directive rather than ". + ALIGN(4)" at section start -artf4917 : MPC55xx GCC linker file: refactor ramcals/romcals output sections -artf4924 : S12 NonVolatile data stores in components do not properly restore to factory defaults -artf4933 : motohawk_license_verification.vcproj has wrong dependency -artf4935 : Add task to NANT -artf4948 : CC - Set Encoder MinRatio = 0 for Plus1 encoders with <= 6 teeth per rev -artf4949 : Remove hardcoded current transform from ActiveCompByInflectDetectWithPeak.xsl -artf4953 : MotoHawk Active Version Selector Tool needs online help -artf4958 : Update the MotoHawk Mux PSP Help -artf4976 : S12XE: NV FormatID to be sourced from NEAR address -artf4989 : Ensure MotoHawk Version Selector validates MATLAB installs -artf4990 : Change to Woodward branding in TDB template files -artf4996 : motohawk_sfun_data_fixednv_mgr_gui does not assign result -artf5002 : Update MotoParser/MotoParserXML to use Woodward Branding in generated files -artf5003 : Complete HELP documentation content for MotoHawk Version Selector -artf5004 : Fix MotoHawk_lib.mdl to be compatible with MATLAB R2010a -artf5005 : Integrate updated binary for MotoConvert which fixes GCC section parsing issue -artf5008 : Update motohawk_internet_enable.m to use new registry locations -artf5021 : Fix DualPSP to work with "PSP End Trigger" and "Injector Pulse Complete Trigger" MH Blocks -artf5025 : motoHawk_version_requirements block needs to call motohawk_mlstr2vector with a different format -artf5028 : Remove unused InstallShield related assets -artf5031 : Add exit(x) to MATLAB script in MotoHawk.build -artf5037 : motohawkrc: Allow motohawk_compare_matlab_versions to exist as m-script or p-code -artf5038 : NSIS MotoHawk Installer misses XtremeToolkitPro.msm dependency -artf5040 : Cannot detect Component version number incompatibility -artf5041 : Change DE-ECU ReleaseStatus to ReleasedRestricted -artf5044 : Clean files left in the location given by motohawk_persistent_directory upon uninstallation -artf5052 : Ensure MATLAB integration is removed when motohawk_version_selector is uninstalled -artf5062 : S12XE: Move CC_STACK to coincide with HB's requested boot object location -artf5068 : Make naming of MotoHawk Version Selector consistent -artf5072 : Amend MotoHawk Help to indicate CAM input not usable by other behaviors when an Encoder Block exists -artf5083 : Make MATLAB versions list in ascending release order in motohawk_version_selector -artf5141 : Avoid close/open system calls from dialog callbacks which crash MATLAB R2010a -artf5149 : Correct DualPSP trigger code to correct the occurrence of build errors -artf5122 : DGInWithOverride_API.h: extern S_DGInOverride_Defn_Encoder before it is referenced -artf5161 : Internal 2010a_beta5 Type: External Dependencies: -MotoTune version 8.13.7.87 or greater -MotoServer Runtime version 8.13.7.87 or greater -MotoCoder 0.10.4 Migration Notes: -This version and newer of MotoHawk will require version 1.0.4 (or newer) of the MotoHawk Custom Security block. -When using GCC on 5554 targets, use at least 4136 bytes of heap. -If using GCC, this MotoHawk version requires GCC PowerPC EABI Version 4.4.0 SP1 and GCC PowerPC EABI SPE Version 4.4.0 SP1, available on the customer download site under Optional Files. Uninstall the old versions of this software before installing the new versions. MotoHawk New Features: -artf4529 : Add 48-2 Encoder range to DE-Pump module -artf4554 : Add SD1 DE-ECU Module Descriptor to MotoHawk -artf4555 : Create ModuleSupport Archives for DE-ECU -artf4560 : Update copyright notice in MotoHawk_Lib.mdl -artf4596 : Aesthetic Clean-up eTPU Machine Control Masks -artf4600 : Add support for the 25LC320 Serial EE in Device Drivers -artf4616 : Add MPC5534 to RTW archives -artf4617 : Add MPC5534 builds to hardware independent archives -artf4620 : MPC55xxFlash: Add MPC5534 support -artf4628 : Reduce the usage of xsl:import as this creates a performance bottleneck -artf4635 : Remove identity transform from VarDecs_Common.xsl -artf4652 : Add NSIS based MotoHawk Installation build scripts -artf4677 : CC - Add Encoder 36-2 with X+1CAM -artf4680 : Add MPC5534 builds to Nightly build MotoHawk Bug Fixes: -artf4017 : Remove references to MotoTron in other customer visible files -artf4028 : Classic into MotoCoder Step 3 : Move Build -artf4551 : Use of 'ISO_C' option causes generation error -artf4556 : Reserve Major HW version number for the DE-ECU family -artf4572 : Alter enum text for PCM0902 HWMaj as this also includes 0904 and CCM10xx -artf4573 : WIN32HOST_HWMAJ missing from E_MotoTronModuleHwMaj -artf4581 : Allow any non-programming CAN channels to be closed before KeySuite programming initiation -artf4582 : S12(X): Allow transmission buffers to empty before closing MSCAN modules in MSCAN_Close() -artf4585 : Remove Simulation memory leak in motohawk_sfun_fault_action.c -artf4589 : Correct "times" reported by Switch Mode Driver -artf4591 : Add MPC5534 Support to MPC55xx Family -artf4599 : Create Discrete Hold Power Supply -artf4605 : S12X: Make Default RPAGE dependent on RAM mapping -artf4609 : Add DE Pump (PWM12) of the S1 DE-ECU to the Module Descriptor -artf4612 : S12(X): All Wire-Or'd MSCAN channels not included in uAllowConnectOnCANMask -artf4629 : OBD Fault Manager Phase 2 - New content - Fault Actions, Fault Activity -artf4636 : S12(X): Close all open MSCAN modules at user application open -artf4648 : Fix Custom Security related issues after Control Core Classic build moved to MotoCoder -artf4650 : S12(X): Requested transient pulses shall update immediately -artf4678 : MH - Add Encoder 36-2 with X+1CAM -artf4683 : S12(X): Timer_FreeRunningCounter_Get32Bits() called after Timer is closed -artf4688 : 2010a: Remove "static" keyword from Frequency Input Notification function in Classic -artf4690 : motohawk_check_build_licenses needs new entries for "never_licensed_modules" -artf4694 : Add Happy Light as Discrete Output to DE-ECU S1 Module Descriptor -artf4698 : FUELP should be disabled in hardware when ESTOP is asserted on the Visteon 112 pin modules -artf4726 : MOTOCODER_DIR must be defined in the .bat file for Classic Builds. -artf4739 : Set eTPU Digital Filter Register field ETPU_TBCR::TCRCF to reset value -artf4740 : CC - Enable additional MototronProtocol Libs & remove build warning -artf4748 : GHS paths are too long in Classic Control Core builds -artf4750 : TPU - Add missing TPU_N12_XPLUS1CAM source files -artf4762 : Formatting of Tpu archive needed for MPC5xx builds can be improved -artf4869 : revert artf4582 : S12(X): Allow transmission buffers to empty before closing MSCAN modules in MSCAN_Close() 2010a_beta4 Type: External Dependencies: -MotoTune version 8.13.7.87 or greater -MotoServer Runtime version 8.13.7.87 or greater -MotoCoder 0.10.3 Migration Notes: -This version and newer of MotoHawk will require version 1.0.4 (or newer) of the MotoHawk Custom Security block. -When using GCC on 5554 targets, use at least 4136 bytes of heap. -If using GCC, this MotoHawk version requires GCC PowerPC EABI Version 4.4.0 SP1 and GCC PowerPC EABI SPE Version 4.4.0 SP1, available on the customer download site under Optional Files. Uninstall the old versions of this software before installing the new versions. MotoHawk New Features: -artf4161 : Rebuild RTW libraries to version 1.17 -artf4398 : Relocate the PPCLib directory to MotoCoder -artf4400 : Implement MC Interface for Active Compensation of PSP via Inflection Detection -artf4420 : Delete the motohawk_ppc_lib.m script -artf4421 : Move and rename the test compilation file -artf4446 : Add 48-2 Encoder range to ECM5554 (ECM112) Modules -artf4448 : Clear MC33810 Open Primary Fault when both non-faulty and previously observed -artf4462 : Install noise rejection algorithm into eTPU Closure Detect with Peak primitive -artf4475 : ControlCoreClassic changed locations, so Release scripts need to change -artf4480 : Allow transient behavior on banked injection sequences -artf4523 : ECM70-1002: Accurately describe delivered SPI clock frequencies -artf4536 : Implement Switch Mode Driver eTPU Primitive -artf4557 : Don't copy builds to aasharedrive MotoHawk Bug Fixes: -artf3331 : MPC5554 builds with GCC need to specify -mfloat-gprs -artf4163 : TPU - Replace NMAKE build -artf4335 : MotoCoder DataStore transform can create a VarDec with an unsupported Type -artf4407 : MC33810: Implement channel fault status buffering -artf4417 : TPU - Retify incorrect function code entries in TPUuCode.c -artf4418 : TPU - Rectify mask version information -artf4430 : Correct VarDec access level which can be generated incorrectly in some cases -artf4438 : Add the Target Definition block to the MATLAB/MotoHawk integrated help -artf4441 : S12(X): Set Phase Block implementation inconsistent with help text -artf4442 : S12(X): Prevent PSP time-duration stop event update during CAM sync -artf4466 : MC33810: Unnecessary rounding of SPI settings yield undesired SPI performance -artf4468 : OBD Fault Manager Phase 2 - MotoCoder changes - Update existing blocks with MIL Request, Previously Active and Emission-Related -artf4471 : TPU - Add relative path for motocoder.dir -artf4472 : TPU - Prevent TPUMasks.build being called by ControlCoreClassic.build -artf4477 : 2010a b4: Sort analog periodic elements based on node -artf4479 : NCV7513: Unnecessary rounding of SPI settings yield undesired SPI performance -artf4497 : S12(X) - FM25CL64: Unnecessary rounding of SPI settings yield undesired SPI performance -artf4513 : TPU - EncSynthesizer - Initialise Synthesized tooth to 2x TCR2 in DoubleRate mode -artf4514 : CC - EncSynth - OutputInvert should consider inversions due to hardware -artf4535 : Rectify relative paths in build files following PPCLib move (artf4398) -artf4539 : Install support in MC for the Switched Mode Driver that will be used by the DECU -artf4545 : Prevent XML message in build output 2010a_beta3 Type: External Dependencies: -MotoTune version 8.13.7.87 or greater -MotoServer Runtime version 8.13.7.87 or greater -MotoCoder 0.10.2 Migration Notes: -This version and newer of MotoHawk will require version 1.0.4 (or newer) of the MotoHawk Custom Security block. -When using GCC on 5554 targets, use at least 4136 bytes of heap. -If using GCC, this MotoHawk version requires GCC PowerPC EABI Version 4.4.0 SP1 and GCC PowerPC EABI SPE Version 4.4.0 SP1, available on the customer download site under Optional Files. Uninstall the old versions of this software before installing the new versions. MotoHawk New Features: -artf4013 : Upgrade MotoHawk installer to use win32-pe 4.4.0 -artf4075 : Bedrock: Allow Drive EST outputs as MC33810 PSP's -artf4114 : S12(X): Utilize nomi InputCapture to detect open load conditions on MC33810 ESTOutputs -artf4115 : Add Start-of-Event Function Pointer to PSP GenAPI Object -artf4128 : S12(X): Enable frequency inputs on PORTJ -artf4129 : ECM70: Enable FrequencyIn on CAM module pin -artf4158 : CC - Hostcode interface for EncoderSynthesizer -artf4162 : MH - Add EncoderSynthesizer (artf3998) support -artf4164 : TPU - Support EncoderSyntheSizer on 60-2 Dual NoCAM encoder -artf4202 : ECM70: Enable FrequencyIn on CNK module pin -artf4203 : ECM70: Allow Peridioc Vector Sampling on AN6 -artf4205 : ECM70: Change CPUType of EST OneShot's to 'CPU' -artf4207 : ECM70: Increase CPU FreqIn HandlerPriority to minimize latency -artf4215 : S12(X): Use OuputCompare to generate pseudo RPM events -artf4243 : S12(X): Enable S_InputCaptureMethods_CPU::pfnSetCondition -artf4247 : SmartFire: Enable AN2 and AN6 as Periodic Analog Vector Elements -artf4257 : Release ECM70-1002 as 'StandardModule' -artf4259 : Reintegrate BootSecurity project into SVN trunk -artf4260 : Ensure BootSecurity archives are excluded from MotoHawk release -artf4274 : ECM70: Enable FrequencyIn on CNKDG module pin -artf4301 : Add Minimum expected Frequency attribute to FreqIn Defn Mask -artf4326 : Change the CCP Slave protocol handler to default to IDLE triggered -artf4332 : Add Inflection Detect Behavior with Peak Control to the MPC55xx API -artf4387 : MH - Add Support for 36+1 with 12+1 cam on MPC5xx targets -artf4390 : Add installer support for 2010a to support ML 2007b -artf4396 : S12(X): Disable MC33810 Open Primary Load Diagnostics by Default MotoHawk Bug Fixes: -artf4021 : S12(X): Allow 720 fueling on primary injection pulse when fully synchonized -artf4039 : Amend Synchronized PWM Child Help to allude to some limitations -artf4065 : Implement EncoderSynthesizer TPU Primitive (-artf3998) on MPC5xx, Hyundai60 Mask -artf4069 : Add Phase 1 OBD Fault Manager to MotoCoder -artf4100 : S12(X): PORTT-based tachometer outputs do not work. -artf4118 : XML vardecs in ClassicControlCore top level build file should not be built on a "clean" target -artf4152 : motohawk_send_data script should not report statistics in MATLAB 6.5.1 -artf4160 : Upgrade WindowsPC and Component-i386 to use win32-pe 4.4.0 -artf4172 : Fix WindowsPC PROD target build error -artf4183 : Column Vector Data Stores should be initialized properly -artf4191 : Fix PCM128 Var Cam operation on DG4M -artf4192 : Add Closure Detect with Peak Control eTPU primitives to ControlCore -artf4195 : motohawk_data_lib.tlc references functions which no longer exist -artf4197 : Unexpected ModuleCapability reported in MotoTune. -artf4236 : Code generation of CCP on S12X modules is incorrect. -artf4237 : Zero initialized volatile structures are not placed in Volatile_BSS_T -artf4245 : XGATE: Utilities file does not handle multiple OneShot nodes -artf4246 : XGATE: Freq Inputs may not take custom Name -artf4267 : Nissan Kohki - Rectify incorrect constants -artf4268 : Fix operation of calibrated number of cylinders in ProSAK -artf4269 : Prevent WatchDog with the While Iterator Simulink block in conjunction with the Fault Iterator -artf4270 : Eliminate update time memory leaks in utilDeleteFault and motohawk_sfun_fault_mgr S-Function -artf4276 : Add vardec help message to ControlCoreClassic.build -artf4285 : CCP Block fails to build when the instance name is not "CCP1" -artf4293 : motohawk_sfun_nv_status.tlc needs to use the proper Data Store to report the NV status -artf4313 : Correct MotoHawk MPC5xx Frequency Input N trigger TLC to remove build error -artf4333 : OBD FM Phase 1 Changes - Drive Cycle, Add Fault Properties -artf4352 : S12(X): Pseudo Encoder does not fully desynchronize -artf4386 : CC - Add Support for 36+1 with 12+1 cam on MPC5xx targets -artf4392 : CC - Fix TPUuCode Build file for GCC builds -artf4393 : CCP Slave: Support new option for "Command Processor Busy" response when writing to slow memory -artf4394 : CCP Slave: Simplify the complexity of calculating CRCs over memory by ensuring operation within IDLE -artf4397 : CC - Fix static declaration in Resource_Encoder.c -artf4402 : CC - Initialize MPWM CNTR register on powerup -artf4406 : TPU - Add FreqAvg.uc to TPU_MASK_N34_P1 -artf4419 : CCP Slave: Bug in checksum calculation for MotoCoder builds 2010a_beta2 Type: External Dependencies: -MotoTune version 8.13.7.87 or greater -MotoServer Runtime version 8.13.7.87 or greater -MotoCoder 0.10.0 Migration Notes: -This version and newer of MotoHawk will require version 1.0.4 (or newer) of the MotoHawk Custom Security block. -When using GCC on 5554 targets, use at least 4136 bytes of heap. -If using GCC, this MotoHawk version requires GCC PowerPC EABI Version 4.4.0 SP1 and GCC PowerPC EABI SPE Version 4.4.0 SP1, available on the customer download site under Optional Files. Uninstall the old versions of this software before installing the new versions. MotoHawk New Features: -artf3836 : Bedrock: Allow XGATE to use calibration RAM -artf3914 : ECM70-1002: Only save calibrations for DEV MotoHawk builds -artf3932 : Classic into MotoCoder Step 1 : Move Data Stores -artf3937 : Classic into MotoCoder Step 2 : Move Vardecs -artf3981 : Allow module descriptor to override selected module capability -artf3982 : S12XE: Enable MPU to protect calibration RAM for PROD units -artf3983 : Optimize eTPU Encoder Wait For High Rate Complete -artf3985 : ECM70: Create common include files for module descriptors -artf3990 : S12(X): Uitilize missing teeth to schedule PSP events -artf3991 : Reserve PCM128 MY10 Hardware Minors -artf4023 : Make sectioning macros common accross module families -artf4031 : Enhance MotoCoder Data Vardecs to handle Bit Fields -artf4063 : Classic into MotoCoder : Move Time-Tracking functions -artf4120 : Alter eTPU PSP Primitive and associated host code to allow subsequent extension -artf4124 : Move atomic types into separate target/compiler specific header files -artf4139 : Extend eTPU PSP Primitive to allow it to signal other eTPU channels on pulse events MotoHawk Bug Fixes: -artf2320 : CCC MPC55xx - Add comment that S_CPU_SPISendMessage is redundant and could be removed -artf3815 : Fix typo in motohawk_dotnet_object error message -artf3950 : CC - ECM48_0703 Add to MH missing supported behaviours -artf3968 : Expose MotoParserXML access in Nant -artf3971 : Encoder Generic: Support PatternSpecific Parameter. -artf3995 : Optimize Detect Tooth Interrupt with eTPU Encoder Primitives -artf4001 : Upgrade win32-pe to 4_4_0 -artf4034 : Inline shifting logic in Analog Input driver on 5xx modules -artf4038 : Prevent Child PWM recreation in Classic ControlCore targeted TLC -artf4040 : FixedNonVolatile can be in an inconsistent order -artf4168 : Timer_FreeRunningCounter_GetDeltaUpdateReference_us function in Classic Module Family has incorrect reference -artf4169 : make_release.js script needs to include new Classic Module Families -artf4170 : MH 2010a B2 should support ML76-79 -artf4175 : Knock definition block build error -artf4177 : Fixed NonVolatile has a couple bugs in 2010a Beta 2 RC-B -artf4208 : Upgrade MH installer to handle GCC 4.4.0 merge module -artf4223 : Rebuild GCC 4.4.0 MSM w/o SVN folders 2010a_beta1 Type: External Dependencies: -MotoTune version 8.13.7.87 or greater -MotoServer Runtime version 8.13.7.87 or greater -MotoCoder 0.10.0 Migration Notes: -This version and newer of MotoHawk will require version 1.0.4 (or newer) of the MotoHawk Custom Security block. -When using GCC on 5554 targets, use at least 4136 bytes of heap. -If using GCC, this MotoHawk version requires GCC PowerPC EABI Version 4.4.0 SP1 and GCC PowerPC EABI SPE Version 4.4.0 SP1, available on the customer download site under Optional Files. Uninstall the old versions of this software before installing the new versions. MotoHawk New Features: -artf3742 : Add 12-bit Resolution and Scaling for DPF -artf3752 : Implement delay before attempt encoder Synchronization in MotoCoder and on MPC555x Targets -artf3853 : Alter N12 eTPU primitive to handle 60M4 and 3x20M2 style encoders -artf3919 : Remove References to MotoTron in TLC and Matlab scripts -artf3957 : Switch MotoHawk to use 2010a license MotoHawk Bug Fixes: -artf3899 : Integrate common license merge module with MotoHawk -artf3929 : Add fno-strict-aliasing to KeySuiteServer and BootMailBox builds for 55xx -artf3930 : CC - Fix erroneous Short diagnostic -artf3933 : Remove duplicate vardec for OSStatus in Classic ControlCore -artf3936 : Remove extra "end" from motohawk_assert -artf3940 : CC - Rectify scheduler table for 6P1 and EVO9 2X encoders -artf3947 : HCS12: "No Action" ECT channel action caused pin state change -artf3958 : Remove #warnings from KeySuiteServer -artf3961 : Some ClassicControlCore Vardecs are unusable -artf3963 : CC - EST Short - Rectify race condition in status capture -artf3969 : Correct 60 Minus 4 / 6+1 Cam MotoHawk Help -artf3978 : Alter FillDestinationFPRegisterWithDoubleValue() to correct exception on GHS4.2.1 build -artf3980 : Remove divide by zero in MotoHawk sample project 2009b_beta4 Type: External Dependencies: -MotoTune version 8.13.7.87 or greater -MotoServer Runtime version 8.13.7.87 or greater -MotoCoder 0.9.3 Migration Notes: -This version and newer of MotoHawk will require version 1.0.4 (or newer) of the MotoHawk Custom Security block. -When using GCC on 5554 targets, use at least 4136 bytes of heap. -If using GCC, this MotoHawk version requires GCC PowerPC EABI Version 4.4.0 SP1 and GCC PowerPC EABI SPE Version 4.4.0 SP1, available on the customer download site under Optional Files. Uninstall the old versions of this software before installing the new versions. MotoHawk New Features: -artf3349 : S12(X): Allow AppCompatabilityArr data to be specified by the module descriptor -artf3350 : S12(X): EE divisor relevant only for S12 modules -artf3677 : Add 36-1 CAM only pattern for KvT to S12 Modules -artf3728 : Implement 60M4 crank encoder in ControlCoreClassic -artf3729 : Implement 6+1 retarded cam encoder in ControlCoreClassic -artf3775 : Implement PMM_N34 TPU Primitive defined by doc3261 -artf3809 : S12X: Allow module descriptor to specify XGATE routine memory type -artf3810 : Create EP100-only module descriptor -artf3818 : S12X: Implement XGATE Execution Performance Metrics -artf3822 : S12: support 720 degree encoder patterns -artf3827 : support crank_dg as encoder input -artf3902 : S12(X): TimerISR node shall be included via ComponentControlCore_Objects MotoHawk Bug Fixes: -artf2808 : Order of [[Component]]_ConstantWork sections is inconsistent for GCC -artf2930 : Add 36x - 4-Stroke - Single-Tooth CAM to MotoCoder/PCM09 -artf3633 : Add 36-1 CAM only pattern for KvT to 55xx Modules -artf3715 : Move CC Classic build into MH scripts -artf3740 : Prevent MC33800 faults from being cleared and cached in the "clear" state -artf3772 : ControlCoreClassic: Update CAN baud rates -artf3776 : Fix warning for MPC5554 builds that include GenericEncoderInput_NMinusX_API.h -artf3780 : S12(X) - Prevent TCTL12 corruption -artf3782 : Fault Manager bit packing needs to change from 32 bit to 8 bit -artf3786 : CC - GCC Rebuild iif the target in the dep (.d) file doesn't match -artf3788 : Update motohawk_check_can to reference maximum correctly in warning message -artf3790 : S12(X)-Update tooth shall be serviced before edge delivery -artf3797 : CC - Reduce minimum rpm threshold of 6+1 encoder to below 76rpm -artf3799 : Add help for HBridge block -artf3804 : MotoCoder Encoder transform produces incorrect code when tooth angles are non-integral -artf3806 : Fix GCC inline assembly for timer access on ControlCoreClassic -artf3812 : Update 0902/0904 module image -artf3814 : TPU - Rectify, some encoders use unsafe comparison of OverFlow count -artf3817 : Fix Motohawk Application Monitor Help -artf3823 : Generic_Encoder: support odd number of missing teeth -artf3824 : Remove RevsPerCycle from module descriptors -artf3825 : S12: Ensure crank interface options are valid -artf3826 : Encoder_Generic: claim cpupin -artf3829 : Ccp Master: Support MTA Number in SET_MTA CCP command -artf3830 : Add Internal RAM Write Access to the MemWriteSynch handler of ControlCoreClassic -artf3831 : CC - EVO9 rectify incorrect calls to TPU SelfModifyToothRatio -artf3838 : Fix PROSAK QSPI by altering the order of PORTQS SPI idle states writes -artf3845 : S12X: Fix Spurious clear of pending XGATE-sourced CPU interrupt -artf3848 : Add help for OneShot Pulse Complete Trigger -artf3854 : Create help for MotoHawk PSP End Trigger -artf3855 : Create help file for MotoHawk Analog Output -artf3856 : Create help for fixed point conversion blocks -artf3885 : MotoHawk help should list Banked as an option for Injector Sequence block -artf3892 : S12X: Non-IOMerge ISR Nodes Shall Contribute to XGATE Stack Sizing -artf3893 : S12(X): Timer ISR shall include desired handler priority -artf3897 : Remove MotoTron references and replace with Woodward in Simulink model files -artf3898 : Tri-state 0904 half bridges when disabled via PWM block -artf3900 : Correct Multiple PSP Block Graphic to display correct units -artf3901 : Fault downsample does not simulate correctly. -artf3904 : Create help for Vista Knock Blocks -artf3905 : Vista Encoder On State Trigger is not properly passed the status parameter -artf3906 : Level shift Encoder OnError trigger for MPC55xx targets -artf3909 : Handle "Crank Teeth from CAM Edge to Crank Tooth 0" MotoHawk Encoder Attribute in Encoder.xsl -artf3910 : MotoHawk installation location should reflect Woodward -artf3913 : Get Last Encoder error indeterminate for MotoCoder targets -artf3915 : Update help to new template -artf3928 : GCC build warning tidy up for Component Control Core 5xx and S12 2009b_beta3 Type: External Dependencies: -MotoTune version 8.13.7.87 or greater -MotoServer Runtime version 8.13.7.87 or greater -MotoCoder 0.9.2 Migration Notes: -This version and newer of MotoHawk will require version 1.0.4 (or newer) of the MotoHawk Custom Security block. -When using GCC on 5554 targets, use at least 4136 bytes of heap. -If using GCC, this MotoHawk version requires GCC PowerPC EABI Version 4.4.0 SP1 and GCC PowerPC EABI SPE Version 4.4.0 SP1, available on the customer download site under Optional Files. Uninstall the old versions of this software before installing the new versions. MotoHawk New Features: -artf3639 : S12(X): Enable NX Crank Encoder, No CAM with full PSP support -artf3703 : S12(X): romcals should be located in paged FLASH -artf3717 : Add CCP Master support for the CCP MOVE command -artf3722 : Implement delay before attempt encoder Synchronization on ClassicControlCore -artf3739 : Support CodeWarrior for S12(x) > V4.6 in NANT -artf3753 : CC - Add HiRes OneShot on LSDs of HBridge on GCM-563-048-0801/0802 MotoHawk Bug Fixes: -artf1689 : MH Calibration Block generates code even if resulting signal is terminated -artf3218 : FixedNonVolatileEEStatus missing GCC section macro -artf3298 : MH - Update pseudo encoder help text -artf3612 : MotoHawk generated ASAP2 file for CCP enabled targets does not indicate all optional commands -artf3629 : add protection in motohawk_can2xml script for the Moto Experssion evaluator -artf3669 : Enhance MotoHawk Encoder Help - part #2 -artf3671 : CC - Add TPU_MASK_N12_WINSYNC_VCAM to list in RefreshEncoderConst() -artf3672 : Make CrankEncoder_Generic data model more concise -artf3673 : ECM-0S12-024-0503 CrankEncoder behavior not exposed properly in MotoHawk -artf3684 : Allow S12 SerialEE BSS parameters to be not initialized by the SRZ -artf3686 : Remove camless 6X and 12X encoders from MotoHawk -artf3687 : Remove [[Application]].ini generation during S12 Builds -artf3689 : Add links in motohawk_blocks.html -artf3690 : ADCAngleVectorStoppedTrigger.html has wrong title -artf3693 : S12 targets should pass an InitializedRAM parameter to MotoConvert for FactoryDefaults of NonVolatile parameters -artf3694 : Level shift Encoder State trigger for MPC55xx targets -artf3696 : Fix NANT to correctly enumerate toolchains on x64 platforms -artf3698 : ComponentControlCore_Services_CCPMaster.xsl only partially supports the DNLOAD_6 command in Pass Through interface -artf3700 : ClassicControlCore - Handle Floating Point Zero Div Zero -artf3701 : MH - Not all VarCAM patterns appear on CAL enum -artf3702 : Add resource parameters to Serial blocks help files -artf3704 : Update target definition block help with margins etc. -artf3705 : Fault manager help points to wrong image. -artf3708 : 555 modules do not report the correct maximum available flash in the GreenHills build statistics -artf3714 : Make CC Classic build conditional -artf3716 : Fix Application runtime crash on GCM-0565-024-0602-Fxx with GCC 4.4.0 build. -artf3718 : Allocate uninitialized EE in ControlCoreClassic to the correct section -artf3720 : Fix heap pointer calc in sbrk.c for GCC builds of ComponentControlCore Processor -artf3725 : CC - Fix FreqAvg TPU primitive ID for TPU_C (select masks) -artf3726 : CC - Restore debug info in archives for non release builds -artf3731 : Capture ControlCoreClassic optimization options discovered in artf3699 -artf3732 : Modify the heap size validation for classic targets in the toolchain sfun -artf3738 : VarCam creation on CAM to error when VarCam not selected in Encoder Definition -artf3743 : Update MotoConvert Binary to 9.0.0.7 -artf3751 : MH - Remove HBridge resources from HCM48_0563-801 -artf3764 : Fix MotoConvert symbol parsing for GCC toolchains -artf3768 : ControlCoreClassic: ensure SPI_MSMethods is defined for ECM build -artf3784 : Uninstaller deletes mnfeature.exe 2009b_beta2 Type: External Dependencies: -MotoTune version 8.13.7.87 or greater -MotoServer Runtime version 8.13.7.87 or greater -MotoCoder 0.9.1 Migration Notes: -This version and newer of MotoHawk will require version 1.0.4 (or newer) of the MotoHawk Custom Security block. MotoHawk New Features: -artf3276 : Fault Definition block uses an extra stack variable -artf3346 : Add prototype module descriptor for M120 -artf3368 : MH - ProEFI - SCIONTC 36-2 4M1 CAM VVT -artf3407 : Enable MotoHawk classic 5xx targets to build from GCC -artf3423 : S12(X): Implement vardec to view micro censorship state -artf3425 : Update Default Security Archives for "powerpc-eabispe" -artf3426 : Update RTW archives for "powerpc-eabispe" -artf3432 : Deprecate the use of motohawk_copy_ppc_lib -artf3446 : Add RTW archives for MATLAB R2009b (7.9) -artf3447 : Add version 7.9 as option for motohawk_prepare_rtw_archives -artf3452 : CC - Extend FreeStore.c to use macros or function for GCC support -artf3476 : CC - Set packing to byte explicitly in MototronProtocol -artf3485 : Install PWM and Halfmoon Variable Cam Phaser support on MPC5xx MIOS inputs -artf3487 : Remove ancient warning from AngleEvent.c in ControlCoreClassic -artf3488 : Update MotoHawk Build script for 2009b Beta 2 -artf3501 : Move ControlCoreClassic TPU archives into it's own Archives folder -artf3502 : XGATE - Allow interrupt disable -artf3525 : Make build.bat location agnostic for MotoHawk Classic builds -artf3531 : CC - Deprecate the use of the "protected" serial eeprom area -artf3539 : CC - Deprecate AIM module from build -artf3567 : MH - Deprecate motohawk_cc_documentation -artf3577 : Add support for Fixed Non-Volatile (EEPROM) variables for GCC in 5xx Classic targets -artf3598 : S12: allow class 1 interrupts to switch stacks, block nesting -artf3610 : Install Encoder Emulator Functionality on PCM128 -artf3628 : Add 36-1 CAM only pattern for KvT to 5xx Modules -artf3630 : Enable N-Minus-X Encoder on HCS12 -artf3634 : Enable High Res One Shot on INJ outputs for PCM128 -artf3646 : CC - Remove GCC symbols on release mode MotoHawk Bug Fixes: -artf1801 : Create version 1.0.4 of MotoHawk Custom Security block -artf3367 : CC - ProEFI - SCIONTC 36-2 4M1 CAM VVT -artf3384 : S12(X): Improve the performance of PWM_SetFreqDC() -artf3408 : Use powerpc-eabispe for GCC Toolchain on MPC555x MotoCoder targets -artf3431 : Deprecate the use of the EEProm variable g_u2CAMDelay by ClassicControlCore targets -artf3442 : Fix max duration handling of Dual PSP Start/Stop Control on Classic ControlCore targets -artf3444 : Output needs to be initialized in all cases in motohawk_sfun_fixedpoint_mult.c -artf3450 : MC: Make "Assert" overloaded io:invert-macro function backward compatible -artf3451 : CC - Rectify packing in FrameworkError.h -artf3454 : CC - GetFileLengthWithHandleFFS should return 0xFFFFFFFF if IS_FILE_SYSTEM_POSSIBLE == FALSE -artf3455 : CC - Set default error within functions -artf3456 : CC - Rectify use of asignment instead of compare in CreateResourceBEHAVIOUR_ANALOG_TRIGGER() -artf3457 : CC - ADC Tables should be declared a const -artf3458 : CC - BgndTask remove GCC warning - missing sint4 return -artf3459 : CC - Fix mismatch prototype for DestroyStandardEncoderHW() -artf3460 : CC - FIHW_TPUISR, bNotifyIssued should be explicitly set -artf3461 : CC - Declare g_u1ECM48ESTDisablePinArr as const -artf3462 : CC - List in VersionControlCoreSDK.c all artf related to BASSO_VALIDATION_REMOVE -artf3464 : CC - TransCount declare tables in flash instead of RAM -artf3465 : CC - GCC requires access registers using volatile -artf3466 : CC - Allow GHS 4.2.1 builds in ControlCoreClassic -artf3467 : CC - Make QueryAllocationSize back into a function -artf3468 : CC - Update GCC crt0.s to clear extended sections -artf3469 : CC - g_TaskSyncObjArr in TaskKernel_Sync needs proper section attribute -artf3470 : CC - Boot interface needs pragma pack(1) -artf3473 : Fix typo in motohawk_check_gcc_armce_pe.m -artf3477 : CC - Fire48 Set pfSetDirectionPin to PWM_Dridge_NoSetDirectionPin -artf3478 : CC - Ensure SeqStdOS_BuzzProtect can cope with pulses in any order -artf3484 : MotoCoder NANT builds should specify buildfile on command line -artf3486 : Fix build warning in UnhandledISR.c in ControlCoreClassic using GreenHills 4.2.1 -artf3489 : Fix warning in seqnc_os.c introduced in artf3343 for GCC builds of ControlCoreClassic -artf3492 : CC - FgndTimeTask and FgndAngle task remove ggc warning - missing sint4 return -artf3493 : CC - Declare g_ECM48SwPullupInfoArr as const -artf3494 : CC - TaskKernel_CPU.c externs are in wrong section -artf3495 : Fix GHS Warning for unused static prototype SetH3DirectionPin on non PCM128 builds -artf3497 : Automate ControlCoreClassic VersionControlCoreSDK release version text -artf3504 : S12X PSP - Allow angle edge to schedule regardless of edge interrupt state -artf3506 : Selection of the default toolchain should factor in GCC and the "None" selection in the toolchain block -artf3507 : Make Core Coherency Threadsafe on the XGATE -artf3509 : Generic Encoder runtime data shall be core coherent -artf3511 : S12X - PSP edge scheduling may not be nested -artf3516 : Fix build warnings with GCC on ucFS sources in ControlCoreClassic -artf3517 : CC- Fix warning for pointless comparison -artf3518 : CC - Update Nant build files to look for motoparser in MOTOCODER_DIR/Bin by default -artf3520 : CC - Rectify footers in TPU_N12_WinSyncCAM....ftr -artf3522 : Fix link warning on ControlCoreClassic GCC build: cannot find entry symbol Entry -artf3526 : Fix documentation build (with Doxygen) for ControlCoreClassic -artf3527 : CC - Rectify packing in TPUuCodeError.h and usbSpecification.h -artf3528 : CC - Update use of __SECTION_ -artf3529 : CC - Add return to main() -artf3533 : CC - Fix unused variable warning for certain build configurations in MixedOutDriver.c -artf3537 : Delete \Documentation\ControlCoreSDK Release X.0 report_files -artf3540 : MH - Deprecate AIM Module -artf3546 : Fix errors in the MotoHawk Injector Sequence block -artf3552 : Automatically change the CAM pattern parameter '3 teeth - half wide' to '6 teeth - half wide' -artf3566 : MH - Update MuxPSP help -artf3572 : Repair the FormatID calculation when MotoCoder components are not present -artf3578 : Remove unintentional zeroing out of non-initialised variables for Fixed NonVolatile objects with GCC on MotoCoder MPC5554 based targets -artf3580 : Fix Control Core Classic Serial EE MemReadSync endless recursion with GCC -artf3592 : FormatID vardec needs to always initialize at startup (non-MotoCoder targets only) -artf3601 : Avoid using the CAST operation in the CAN Send Messages block -artf3602 : Add help text for the Queue Name parameter in the ADC Periodic Vector block -artf3603 : Remove stack unwind information from GCC PowerPC builds -artf3604 : MH - Encoder list [ECM-0563-048-0806] missing encoders -artf3606 : CC - Remove "BASSO_VALIDATION_REMOVE" from all remaining ControlCoreClassic build files -artf3614 : TPU - WinSyncVarCAM Rectify TimeBetweenEdges reading -artf3619 : DataStoreVardec Enumeration XML need to use the proper format -artf3623 : MH - Make VarCAM resources save in model -artf3625 : Clear Fault block does not adjust for the "Fault Source" option -artf3635 : CC - Add pragma pack(1) to tpu parameter ram struct layouts -artf3636 : MH - motohawk_encoder_types.txt is missing encoders -artf3638 : LinkerDefinition_(DEV/PROD).xml is generated incorrect -artf3641 : MH - Enhanced OneShot PCM128 EST9-16 remove -artf3659 : Enhance MotoHawk Encoder Help - part #1 2009b_beta1 Type: External Dependencies: -MotoTune version 8.13.7.87 or greater -MotoServer Runtime version 8.13.7.87 or greater -MotoCoder 0.9.0 Migration Notes: -ControlCore 52_0 MotoHawk New Features: -artf2708 : Add Update-time Error Checking to the ADC Periodic Vector blocks -artf3189 : Create MotoHawk 2009b Licensing -artf3210 : Move Component-S12 and Component-S12XE To Released -artf3222 : Add GHS build.exe task to NANT -artf3280 : Round up MC33810 max duration to nearest integer -artf3308 : TPU - Create WinSyncVarCAM primitive -artf3343 : Install PSP support on ECM48 LSO10 and LSO11 -artf3364 : Make ClassicControlCore sources buildable by GHS and GCC -artf3365 : CC - ProEFI - Toyota/IS300 36-2 3X CAM VVT -artf3369 : CC - Build ControlCoreSDK_52_0 -artf3383 : Implement InputCapture Get Block for MotoCoder targets -artf3387 : Re-Enable the fixed/adaptive arming configuration for PCM128 Encoders -artf3388 : Expose the Fixed/Adaptive arming threshold configuration for VR encoders -artf3390 : MC: Implement Assertion state for DigIn behaviors -artf3404 : Remove all customer security archives from SVN -artf3411 : Modify the Module Descriptor(MD) for TrueClean -artf3415 : CC - ProEFI Create "12X – 2 Stroke – Single Tooth CAM Sync" MotoHawk Bug Fixes: -artf3015 : MotoCoder Components on S12 CAL modules: Calibrations -artf3027 : Update to version 1.0.10 of the .NET license libraries -artf3145 : TPU - NissanZ allow selectable edge for cam pulse width measurement -artf3146 : Create the MotoHawk_Deprecated_lib and add legacy Quadrature -artf3147 : S12(X): Apply MSCAN errata patch only for S12 in ControlCore -artf3175 : TPU - Remove pspstrik.uc from Mask builds -artf3176 : TPU - FreqAvg.uc - Ensure write of LAST_T_MSB/LSB is coherent -artf3183 : TPU - Save one instruction in VarCAM.uc -artf3184 : TPU - NissanZ delay pseudo halfmoon -artf3190 : motohawk_clean_builds does not do anything unless "use_prompt" is set -artf3195 : CAN Read Message Block has unexpected Data Type assignments -artf3198 : Install "Ignore X Edges on Start-up" in TPU N12 Encoder Primitive -artf3201 : CAN Send Messages block outputs a build warning with GCC and S12 when payload mask is 255 -artf3208 : Compiler option missing during S12 Component build -artf3212 : CC - MotoQDEC.c rectify operator precedence -artf3215 : Optimize Pseudo Encoder Primitive in MPC5xx TPU Mask -artf3216 : TPU - Correct Primitive list for TPU_MASK_NX_CAM2X on TPU_C -artf3220 : TPU - Add FreqIn.uc to EVO9 VarCam TPU Mask -artf3225 : S12: Support user defined CAN settings -artf3241 : Expose "Ignore X Teeth Before Attempting Synchronization" attribute to MotoHawk -artf3254 : MC: Input capture block unable to trigger on both edges -artf3257 : DataStoreExists does not give the correct answer for MotoCoder targets -artf3258 : Add ADC Periodic Vector Documentation -artf3261 : Set ECT new timer before new action -artf3266 : Install Injector Complete Trigger support when the motohawk_sfun_injector block is used -artf3288 : Install Injector Complete Trigger support when the motohawk_sfun_dual_psp block is used -artf3289 : ESTs created as Injector style sequence outputs shall use Push Pull Driver mode -artf3311 : Default ToolChain selection should be more intelligent -artf3328 : Analog Input and Digital Input Creation Status needs to return the GetErrorCode() macro rather than raw NativeError_S type -artf3332 : Correct Cam Edge Polarity in ControlCore Classic -artf3333 : Utilize the Cam Edge Polarity Supplied by Host in Hyundai60 Cam TPU Primitive -artf3336 : Force the Component unpack operation to check for MH/ML version differences -artf3344 : Add ClassicControlCore sources to MotoHawk Tree -artf3345 : Add a "Ref" macro in the Component Data Store build for matrix references -artf3354 : Fix Dual PSP Start/Stop Control on Classic ControlCore targets -artf3361 : S12: Configure PEAR for GPIO -artf3366 : MH - ProEFI - Toyota/IS300 36-2 3X CAM VVT -artf3374 : Allow LSO1_IMON to be polled as a traditonal analog on Bedrock ECU -artf3376 : Add Nissan-Kohki Encoder to ControlCoreClassic -artf3378 : Add ADC Angle Vector Stopped Trigger Block Help -artf3380 : S12(X): Allow CPU InputCapture on PORTT -artf3381 : Add mechanism to get custom application descriptor Application level elements -artf3382 : S12(X): Implement InputCapture GetState method -artf3393 : ProEFI - NissanZ add crank links to non-sync VarCAM channels -artf3397 : Remove stateflow seed&key example from MotoHawk CCP Slave -artf3399 : VarDecs_MotoTuneDLL.xsl file needs to transform "char" into "TXTCHAR" -artf3403 : motohawk_vardec_lib assumes incorrect default offset value -artf3405 : Fix NANT task warning behavior -artf3409 : Fix TPU build file from commit in Artifact artf3376 : Add Nissan-Kohki Encoder to ControlCoreClassic -artf3410 : Fix ControlCoreClassic Framework.build on CCNet -artf3429 : Update readme boilerplate -artf3433 : CC - Remove vardec for CamDelay from PPCLib\ControlCore\API\Framework_MultiTask_Vardecs.c -artf3453 : Make "Assert" overloaded io:invert-macro function backward compatible -artf3472 : Create new version of motohawk_gettokendata, which is a dependency on .NET Licensing 2009a sp0.1 MotoHawk Bug Fixes: -artf3398 : VarDecs_MotoTuneDLL.xsl file needs to transform "char" into "TXTCHAR" 2009a Type: External Dependencies: -MotoTune version 8.13.6.73 or greater -MotoServer Runtime version 8.13.6.73 or greater -MotoCoder 0.8.4 Migration Notes: -ControlCore 50_0 Known Issues: -artf3353 : Dual PSP on Classic ControlCore targets does not work in Start/Stop mode MotoHawk New Features: -artf2509 : Add - Verify Help files for New MotoHawk blocks (ADC Vector) -artf3279 : 2009a SP0: Round up MC33810 max duration to nearest integer MotoHawk Bug Fixes: -artf2200 : Change docs to reflect resource name types are strings -artf3047 : Implement dataless frequency input triggerin MotoCoder -artf3120 : XGATE: Analog Periodic Vector interrupts CPU without MH trigger present -artf3138 : Documentation - Update TDCOffset to indicate module differences -artf3226 : S12: Support user defined CAN settings -artf3260 : Set ECT new timer before new action -artf3267 : Install Injector Complete Trigger support when the motohawk_sfun_injector block is used -artf3316 : S12: Configure PEAR for GPIO -artf3322 : Analog Input and Digital Input Creation Status need to return the GetErrorCode() macro rather than raw NativeError_S type 2009a_beta4 Type: External Dependencies: -MotoTune version 8.13.6.73 or greater -MotoServer Runtime version 8.13.6.73 or greater -MotoCoder 0.8.3 Migration Notes: -ControlCore 50_0 MotoHawk New Features: -artf2643 : S12(X): Add PIT-based OutputCompare -artf2762 : Bedrock: Change GPIO tacho to PIT-based -artf3071 : Allow external property to set MOTOCODER_DIR used in build for TPU on 5xx -artf3077 : Suppress warning when creating a new GCC archive -artf3078 : Add Quadrature Decoder support to EngineBasic eTPU Mask -artf3149 : Add mechanism to get custom io definitions from motohawk_io MotoHawk Bug Fixes: -artf2217 : MPC5554 applications built by GCC do not update PeakHeapBytesUsed -artf2546 : Allow aliasing of initialised RAM for Merging/Programming on S12 -artf2722 : Create an auto-build helper script for checking the MotoHawk license -artf2927 : SECM0502 Hbridge: Pass Maximum Frequency to each PWM Resource -artf2934 : TLE6209: Fix chopper-off-time enumerations -artf3061 : Default TLE6209 and NCV7513 settings match requested from Conti -artf3079 : S12(X): Install ECT Input Capture Interrupt Nesting Support -artf3080 : Modify FreqIn_Common.xsl to optionally execute without a level shift -artf3087 : Implement support for overrun status in the Frequency input notification -artf3090 : Add motohawk_tex to the Fixed Point Prelookup block to fix name formatting -artf3093 : S12X: Minimize unused XGATE stack footprint -artf3095 : S12XE: Minimize heap required for FLASH routines -artf3099 : Remove SS_OPTION_WORKS_WITH_CODE_REUSE from Probes -artf3100 : S12(X): Encoder error not thrown upon false zero speed event -artf3102 : Correct Frequency Definition operation when some outputs are connected to Terminators -artf3107 : S12: Extremely large calibration corrupts 'DEV' user application -artf3109 : Remove Task_StackMetrics_Refresh from application idle loop on MotoCoder targets -artf3110 : Remove Timer_Watchdog_Refresh from common Task Execute function on MotoCoder targets -artf3111 : Data Store definition must create column vectors properly in MotoCoder -artf3118 : Accessing Structure Data Stores with Matrix fields by Reference causes build errors in Legacy CC -artf3135 : S12X: CPU copy of 32-bit free running counter subject to race condition -artf3138 : Documentation - Update TDCOffset to indicate module differences -artf3140 : Bedrock: Make encoder interrupts top XGATE interrupts -artf3144 : DataInitializer function must use the parameter dimensions and not the output signal dimensions -artf3158 : Integrate fix for ASAP2 generator failing on Measurement Bitfields -artf3159 : Discrepancy in Quadrature Encoder Ready Interface -artf3161 : "Fault Action Assigned To Fault" does not report the correct value if more than 5 fault actions are present -artf3165 : Enable Watchdog -artf3166 : Documentation updates 2009a_beta3 Type: External Dependencies: -MotoTune version 8.13.6.73 or greater -MotoServer Runtime version 8.13.6.73 or greater -MotoCoder 0.8.2 Migration Notes: -ControlCore 50_0 MotoHawk New Features: -artf2859 : Install MotoCoder Support for the "Trigger After N Pulses" Frequency Input Mode -artf2891 : Install Interrupt Support on MPC555x Frequency Inputs -artf2954 : Install Input Capture support on S12 ECT Inputs -artf2969 : Implement Frequency version of the FF_74HC74 DeviceDriver via in Input Capture -artf2983 : Add the Generation of Data-Driven Text Files to MotoCoder -artf3011 : S12(X): Allow app extension to disable MC33810 ON Open Load Fault Detection MotoHawk Bug Fixes: -artf2707 : Remove duplicate copy of calibrations from FLASH -artf2843 : Update KeySuiteCommon.h to reflect legacy enum claims -artf2870 : Create Freq In "Trigger After N Pulse" Set block in MotoHawk -artf2873 : Variable X-Tooth PWM CAM Help is incorrect -artf2885 : Handcoded MotoCoder: Several XML build-related files are generated into the calling directory -artf2886 : Handcoded MotoCoder: Application descriptor is required to be in the build directory for S12 targets -artf2890 : Support GetKWPVersion from hardboot -artf2955 : Integrate new ASAP2 binaries and transform -artf2960 : 2009a Handcoded MotoCoder: Build statistic parsed files use Application/Build/Directory in their path -artf2972 : Updated MotoConvert Executable -artf2975 : Add Selectable App Pointer versions for S12 Code Generation -artf2981 : S12(X): ECT_PSP_Create uses CPU object as processor indicator -artf2986 : Updated NANT binaries -artf3005 : Repair fixed point math blocks for S12 MotoCoder -artf3008 : 2009a : References to Matrix data causes module reset with ECM 090x modules -artf3018 : Correct template match scope on Fixed point Math Service -artf3019 : Update MotoConvert Binary -artf3031 : Make FF_74HC74D period recovery thread safe -artf3036 : Have "Provide Trigger after N Pulses" emulate Classic implementation -artf3037 : Correct race condition in FF_74HC74 device driver's zero frequency detection -artf3040 : Reverse changes in artf3005 -artf3049 : 2009a b3 - S12: ControlCore Flash routines fail due to invalid PPAGE value -artf3054 : S12X: ADCPeriodicVector enable state must be coherent -artf3083 : Add Virtual Probe data stores to the global MotoHawk data store list in MotoCode 2009a_beta2 Type: External Dependencies: -MotoTune version 8.13.6.73 or greater -MotoServer Runtime version 8.13.6.73 or greater -MotoCoder 0.7.5 Migration Notes: -ControlCore 48_0 MotoHawk New Features: -artf2629 : S12(X):Add ECT OutputCompare -artf2630 : S12(X): Add SW_TRIG_SINGLE_SCAN analog queue mode -artf2632 : CCC: Add ADCPeriodicVector DD -artf2633 : Add MH support for ADCPeriodicVector -artf2634 : Enable ADCPeriodic Vector for DPF SmartFire module -artf2635 : CCC: Add VolatileWork pragma -artf2649 : Support WindowsPC target -artf2650 : Add i386 component target and include in RTW libraries -artf2653 : Add i386 to the security archive builds -artf2685 : Update NANT binaries -artf2691 : Create NANT build file for Rijndael Encryption library -artf2692 : Create NANT build files for S12 HardBoot code -artf2711 : S12 (X): Add HiResOneShot behavior -artf2743 : Add new capability value for use with ETK -artf2749 : Create SECM0502 module descriptor. -artf2754 : S12(X): Add batch building for Hardboot MotoHawk Bug Fixes: -artf1700 : 2008b: ECM-0S12-024-0503/0804 modules not properly configured for FrequencyInput DG on CNK -artf1911 : Frequency Input Causes build error on S12 targets -artf2473 : Fix GCC/PowerPC toolchain installer for x64 platforms -artf2498 : On S12(X) make PWM use TIM module -artf2617 : Add CacheDelay node for MC33810 and NCV7513 in module config xml file -artf2622 : Add support for custom rt_nonfinite.c file generation -artf2637 : Unexpected nightly build module descriptor in release -artf2638 : Add Custom security for OH4.0 -artf2647 : Correct and Enhance DualPSP Block Help -artf2654 : NANT binaries Update -artf2674 : Assure motohawk_prepare_release is performed with sfunction DLLs -artf2681 : Remove K_OHMS limitation of Max Volts needing to be larger than max current -artf2706 : Create MPC5554-ghs and MPC5554-gcc targets in PIM module support build files -artf2709 : Remove MOTOGCC_WIN32PE_INSTALLDIR from the win32-pe msm/exe Installer -artf2728 : Change motohawk_check_gcc_armce to use correct directory -artf2730 : NCV7513: Shorted load causes all faults to be triggered -artf2731 : Move H-Bridge block code to tlc function update. -artf2745 : ECM5554-112 DEV modules are lacking Calibrations when compiled by GCC -artf2750 : 2009a: Add check for valid byte in pack/unpack blocks -artf2751 : 2009a: DSP message rx buffer max size should be 50 -artf2761 : S12(X): Allow AD00 to be used in analog bootstrap criteria -artf2776 : S12 (X): Support "short" OutputCompare durations -artf2827 : Correct Failure of Disable to stick in Child PWMs on the eTPU -artf2831 : Bedrock: Set MC33810 maximum dwell current to 12A -artf2833 : S12 (X): Correct handling of negative PWM duty cycle to spec -artf2841 : Make processor compiler defn tolerant of _CRT_SECURE_NO_DEPRECATE -artf2842 : Update vcproj build files for selected libraries -artf2850 : DFREQ2 and HiResOneShot on LSO4 use same resource -artf2860 : Create a new motohawk_gettokendata which does not use MotoServer COM interface -artf2861 : Remove TIM from S12/S12X builds -artf2863 : Add CC00 data flash section to all S12X builds -artf2864 : S12(X): ADCVector enable port acts as rising edge trigger port -artf2866 : S12X: Use HW Semaphores for coherency protection -artf2867 : S12X: Pend the XGATE only on HW semaphore wait -artf2868 : S12X: Applicaiton PSP timings shall be ensured coherent -artf2881 : Remove FakeCAN.xsl from ComponentControlCore CodeTemplates -artf2888 : S12(X): Allow for ADCVector queues greater than 256 in length 2009a_beta1 Type: External Dependencies: -MotoTune version 8.13.6.73 or greater -MotoServer Runtime version 8.13.6.73 or greater -MotoCoder 0.7.5 Migration Notes: -ControlCore 48_0 - Power Inverter Module (PIM60). The PIM-5554-060-0801-xD target does not build correctly due to a missing archive file in the installer. To use the PIM60 target, please contact Woodward MCS Support (mcssupport@woodward.com) for additional information. MotoHawk New Features: -artf1661 : S12X: Enable Transient Injection -artf2047 : Create Common Module Descriptor for PIM Hardware PIM-5554-060-0801-xD / xD-1 -artf2049 : Create DeviceDriver for MAX6753 with D-Latch Enable -artf2061 : Create AU6803 Resolver IC DeviceDriver -artf2066 : Integrate .NET licensing library V1.0.6 -artf2071 : Make all register access on 555x targets volatile -artf2083 : S12(X): Enable input capture application triggers on MC33810 diagnostic outputs -artf2087 : Migrate build scripts to utilize latest generation of MotoConvert -artf2091 : GCC linker script not properly aligning .CC_IRQ_vectors -artf2092 : Make List File Generation Optional with MotoCoder Targets built with NANT -artf2102 : MotoCoder Components - Step 4: NonVolatile Data Stores -artf2111 : Add 32 bit fixed point blocks -artf2129 : Create support for CCM 1001 -artf2133 : Create new hardware majors for CCM1001 -artf2141 : Separate AC Machine Parameters into base and error term -artf2142 : Separate PMSM Machine Parameters into Base and Error and Split LLs into Lq and Ld -artf2145 : Get ToothPeriodInNativeTimer accessor for EncoderGenAPI -artf2154 : PIM Current Regulator Gains to be function tunable -artf2165 : Fault Status/Action Blocks create extra global RAM -artf2176 : Frequency Input Trigger block still present in deprecated location, Trigger Blocks subsystem -artf2184 : Install mechanism to allow MPC55xx Registers to be read by MotoTune -artf2186 : Add method that polls for overrun in an analogue queue -artf2191 : GCC: MPC555x link file generation for Calibration and NonVolatile operation -artf2195 : motohawk_send_data does not report the toolchain used during the build -artf2225 : NANT support for determining library paths in GCC build files -artf2230 : Change MotoHawk dependency on MotoDevelopmentTools to reference MotoCoder/Bin -artf2232 : Build and integrate ControlCore_49_0 into MotoHawk -artf2236 : Add MotoParser.exe to MotoCoder/Bin directory -artf2252 : Security Archive Generation for GCC 4.3.2 -artf2253 : Integrate new ASAP2 Generator executable -artf2256 : RTW Archive Generation for GCC 4.3.2 -artf2269 : motohawk_gcc_[win32_pe/m6812]_directory should be refactored -artf2287 : Add the Maximum Frequency Parameter to the PWM block -artf2316 : Change MotoHawk Component Builds to use Nant -artf2336 : Install MPC55xx ModuleSupport function to configure the Engineering Clock -artf2357 : Expose the Resolver Position Feedback to MotoHawk -artf2378 : Add Quadrature Encoder Ready Interface -artf2379 : Install method to recover the state that has been assigned to a digital output -artf2385 : Add G_FLT_PIN to PIM-5554-060-0801-xD-1 -artf2390 : Change ShortFaultTimer to 120 usec on MC33800 Discrete Outputs - 2009a -artf2400 : Change win32-pe to a merge module -artf2402 : MATLAB 2009a requires RTW archives -artf2406 : Installer must enable the MATLAB 2009a check box -artf2418 : Add GCC Toolchain node to 112 pin module descriptors -artf2421 : Remove unnecessary files from IO and DataStorage -artf2427 : Alter Machine Control sources to account for new inductance scaling -artf2429 : S12(X): Allow HSHS Duration to update after update tooth -artf2435 : S12(X): Add Oneshot complete triggers -artf2489 : Create a new module descriptor for TrueClean Module S12(X) -artf2490 : Oscillator Clock Frequency 20Mhz TrueClean S12(X) -artf2492 : HWMajor, HWMinor for TrueClean S12(X) -artf2521 : Security Archive Generation for GCC 4.3.3 -artf2524 : RTW Archive Generation for GCC 4.3.3 -artf2526 : Compensate Resolver originated Speed and Position values for Resolver Poles -artf2544 : Utilize resolver ready status to initialize the quadrature on start-up -artf2551 : Implement eTPU PWM Primitive that supports the Parent/Child relationship -artf2553 : Update the module name of the W8237-1299 to 8237-1299 -artf2569 : Remove MPC5553-112-0901 module descriptors -artf2582 : Deprecate GCC 4.3.2 -artf2583 : Modify Device Driver of PCM0904/CCM H-Bridge to perform synchronized braking -artf2592 : Expose the VISTA.DAC2 output on 1751-6456/1751-6457 modules -artf2593 : Create new HBridgeOutput behavior/block in MotoHawk -artf2613 : Implement "StandardModules" feature of licensing -artf2641 : Release the TrueClean S12X module as ReleaseRestricted MotoHawk Bug Fixes: -artf1428 : Legacy 5xx builds fail with floating point type set to disabled -artf1937 : MH - Use DURATION_CTRL_HARDSTOP for all modes in the DualPSP block -artf1946 : MC - Error if GHS 3.6 build selected as unsupported -artf1947 : PCM128 CCC - Code has no CRC block so Hardboot fails to jump to it -artf2054 : Add other CAN baud rates for 55xx modules -artf2058 : Add TLC list "setup_script" entries to application descriptor in MotoCoder builds -artf2063 : remove motohawk_sfun_custom_security.dll from SVN -artf2067 : GCC RTW generation broken -artf2069 : Ensure NCV7513 Fault Status Get method has a return value -artf2072 : 55xx eQADC infinite loop -artf2073 : eMIOS RTC not operating at correct frequency -artf2074 : 64 bit Timebase access not correct under GCC -artf2075 : Compiler data alignment on 55xx with GCC -artf2076 : Linker error on eTPUuCode_TimeBase_OpenAsEncoderAt10MHz with GCC -artf2077 : NonVolatileWork.MotoHawkModelSecondsInUse bad with GCC -artf2080 : 2009a: Current Measurement block not generating a valid C name -artf2084 : GCC asm macros clobber registers -artf2097 : S12(X): ControlCore unable to discern PWM bank -artf2100 : 2009a: Component Directories need to be initialized better -artf2101 : S12(X): PSP start edge overwritten by stop edge during encoder acceleration -artf2107 : MotoCoder Components - Enumerations aren't created properly -artf2109 : MotoCoder Components - Data Store References do not Build -artf2114 : Int32 prelookup not working when a breakpoint has a large step -artf2116 : Application model with component fails to build -artf2119 : PCM128 - Remove 0702 MinVersion -artf2130 : 2009a: PCM128 - (MH) Undo PCM128_0702 ExtRam new archive -artf2131 : 2009a: Build and Integrate Legacy ControlCore_49_0 -artf2138 : Utilize static page buffer on Serial EE Writes -artf2140 : MPC5xx CCC - Module fails to boot into app unless started by debugger -artf2144 : MATLAB 7.7 build error -artf2147 : Build error when generating RTW archives -artf2150 : motohawk_sfun_quad_encoder causes a build error when built for MotoCoder Targets -artf2159 : Build warning in CRC calculation (S12 only) -artf2161 : Correct PIM Current Regulator Kp Gain conversion -artf2162 : S12(X): Tooth Period incorrect on first tooth after crank sync -artf2173 : 2009a: DataInitializer needs to handle column vector -artf2174 : S12(X): Encoder degree members have implied gain of 16 -artf2177 : Documentation typo motohawk_abs_time mask help -artf2185 : ADCAngleVector must gracefully handle ADC Overrun -artf2194 : 2009a beta 1: Add pfnEncoderStateChangeHandler member to S_TachoMethods_CPU in 55xx stream -artf2202 : Change GCC build options for MPC55xx targets -artf2203 : Check in updated MotoElfParser -artf2204 : Move EST Diagnostics to ADC1 -artf2205 : Correct ADCAngleVector conversion time attribute -artf2208 : Correct PIM ADC conversion time attribute -artf2218 : Support fixed nonvolatile operation on GCC builds -artf2228 : Remove rounding in Encoder Degrees Per Teeth Setting -artf2231 : CC - Correct VarCAM initialisation for PX and HalfMoon -artf2233 : motohawk_check_gcc_powerpc-eabi fails with gcc 4.3.2 -artf2238 : ComponentControlCore_Services_CRC.xsl declares sError, but doesn't use it -artf2243 : MotoCoder_CAN.c returns several warnings during GCC builds -artf2245 : MotoCoder_Datastore.c creates a warning when building with GCC -artf2247 : Build error with addition of the ParameterInitializer function -artf2249 : motohawk_gcc_powerpc_eabi_directory returns the wrong directory after upgrading to 4.3.2 -artf2250 : motohawk_sfun_read_can_raw assigns msg_valid even when it isn't used -artf2254 : Add __GNUC__ support to all pragma section header files -artf2258 : CNK_Encoder_LastTooth not used anymore -artf2259 : Initialize two stack variables in Encoder.xsl to prevent GCC warnings -artf2260 : QADC_Create function has an unused local variable -artf2261 : Correct GCC warnings issued when using the INSTANTIATE_MuxVRDGInOverride_Encoder macro -artf2262 : Correct GCC warnings in VISTA.xls generated source code -artf2264 : Application Monitor creates an unused variable -artf2265 : MC3388x.xsl calls the wrong constructor -artf2268 : Implement ADCAngleVector stopped notification -artf2270 : Correct GCC warning related to the prototype of the CNK_EncoderOnPeriodicTooth function -artf2273 : Nant build of MotoHawk Application doesn't select correct compiler -artf2278 : Calling MotoTune DLL NANT build file escapes quote with backslash on path -artf2282 : Enable GCC within ModuleSupport_ExternalSRAM.c (MCM/MCM_CV paths) -artf2291 : Add Build Statistics to GCC builds -artf2294 : S12(X): Programming Failure may cause module to permanently remain in hardboot code -artf2295 : Component Builds fail with 1D Prelookup and Tables in some cases -artf2297 : Surpress freescale-chc12 message about new dependency file during a Nant build -artf2300 : Integrate updated version of Frescale compiler Nant Task -artf2303 : Make MotoParserXML.exe statically linked -artf2305 : Define S_SPI_SendMessage in MPC5xx\API -artf2306 : MPC5xx CCC - OS changes for PCM128 to allow reboot and programming -artf2307 : Build and integrate ControlCore_50_0 into MotoHawk -artf2310 : NANT for GHS does not calculate deps for inf files correctly -artf2312 : Add Fixed NonVolatile Vardec Support in MotoCoder -artf2346 : Account for left truncated data return in the AU6802N1 Resolver IC -artf2348 : Components - Vector Input and Output ports return a build error in MATLAB 7.5 -artf2353 : Remove variable name from Fixed NonVolatile section names -artf2368 : NANT ignores return code -artf2369 : MotoConvert does not populate all InitRAM sections on GCC builds -artf2370 : motohawk_injector: Warning displayed when Transient and Min Duration Port set to "Static" -artf2375 : Checkin new MotoTron.Elf.Parser.dll with GCC elf correction -artf2376 : Illegal S-Record generated by MotoConvert for S12 -artf2383 : Add KEY REV 14 for all S12 variant target builds -artf2384 : Update motocoder to select KEY REV 14 for custom timeout in all S12 target variants -artf2386 : CCPMaster fails for target Win32Host-gcc -artf2387 : KeySuiteServer.build contains a freescale compile in a gcc build target -artf2391 : Dual PSP Min Duration not set to Zero -artf2397 : MotoHawk FaultManager : If uint16 is selected for the data type, warnings are displayed -artf2398 : MATLAB 2009a uses a different assembly for XPath parsing -artf2403 : S12(X): Reduce GPIO Refresh Execution Time -artf2404 : Remove the "obsolete rtw_info_hook file" message at the beginning of the build in MotoHawk Installers that do not support 6.5.1 -artf2405 : Add documenation for the UNLICENSED option in motohawk_mex_template.c -artf2408 : S12(X): HB v4.5 Sets PORT_PT6 low -artf2409 : motohawk_sfun_convert_fault_T does not output the proper expression when passing a function call boundary -artf2411 : Fault Manager with fewer than 32 faults displays a warning when built with GCC -artf2415 : motohawk_sfun_ain and motohawk_sfun_pwm returns a build warning when building with GCC in some cases -artf2433 : S12(X): Allow MC33810 max dwell rounding to be configurable -artf2438 : 2009a Correct motohawk_encoder_types.txt Settings for 24-1 Encoder -artf2461 : S12(X): Newly added DigitalOut pfGetState() macro param missing for XGATE build -artf2472 : Correct BasicOut Build Warning identified by artf2458 -artf2476 : Fault Actions specified in the Fault Definition block cause build failures when using MotoCoder targets -artf2479 : RTW archives do not extract if user does not have write permissions in Toolchains directory -artf2482 : 2009a MH Clear bootmailbox for 5xx targets -artf2493 : Implement log and ln functions in MotoCoder -artf2495 : Add MotoHawk End of Pulse Trigger blocks -artf2496 : MotoCoder changes to implement generic PWM for S12(X) -artf2499 : MotoHawk Support for numeric Module Descriptors -artf2511 : Discard MSBit in Resolver AU6802N1 SPI Data Read -artf2513 : Correct setting of the high rate step for Quadrature Decoders operating in HighRate mode -artf2515 : _TXBuffer_IsFree should check for existence of Tx Queue -artf2516 : CCC 5xx builds fail with multiple CAN KeySuite Connections -artf2520 : MotoHawk Help Update - Template for new Woodward Logo (MH2009a) -artf2525 : RTW build script does not halt on build failure -artf2527 : MotoHawk is generating invalid uNumEventsInArray in Legacy Scheduler when repeat triggers are present -artf2530 : S12X: Ensure access to ECT registers are core coherent -artf2535 : Enable Watchdog on Peiker Modules -artf2539 : S12(X): CRC Services does not handle far addresses properly -artf2543 : Update CAN.xsl to ensure that there is only one CAN transmitter when WIRE_OR is selected -artf2545 : Provide default setting for the rate of execution of the High Rate QD Speed Calculation -artf2548 : Build Fails when multiple CAN resources exist but no TX queue -artf2558 : Build error occurs when specifying a boolean vector/matrix as a field in a structure -artf2564 : Dead Code Elimination in GCC -artf2571 : Unsupported resource behavior error messages return structure fields and not the module names -artf2574 : Component Descriptor needs to have the correct location for the RTW archives -artf2581 : NANT and Motoconvert Fixes -artf2588 : Correct GCC uninstallation -artf2589 : Correct Theta_m DAC Operation -artf2594 : motohawk_gcc_win32_pe_directory selects inccorect default -artf2596 : Order of FixedNonVolatile and NonVolatile sections is inconsistent for GCC -artf2598 : Digital Output block generates a build error during the first build of a model -artf2599 : Warning in rtwtypes.h when building for MATLAB 2009a -artf2601 : Prevent Voltage Saturation on PIM Controller when Current Regulator Gains are zero -artf2612 : Change the release build procedure to only build archives for released modules 2008b_beta5 Type: External Dependencies: -MotoTune version 8.13.6.73 or greater -MotoServer Runtime version 8.13.6.73 or greater -MotoCoder 0.7.5 Migration Notes: -ControlCore 48_0 MotoHawk New Features: -artf1676 : Make List File Generation Optional with MotoCoder Targets -artf1771 : MotoCoder Components - Step 3: Faults and Fault Actions -artf1840 : S12(X): Move COP Creation into ControlCore -artf1841 : S12(X): Allow COP to purposely timeout upon failed powerdown -artf1842 : Bedrock: Enable Watchdog -artf1882 : S12(X) CCC: Deprecate MotoFuse build file support -artf1892 : Release Legacy ControlCore_48_0 -artf1901 : Support Fault Details for TLE6209 -artf1935 : S12(X): IRQ_ISRVector_Exectute() uses inefficient data access -artf1943 : Add 32-2 - 2 stroke Encoder to 090x modules -artf1985 : PCM128 - ExtRAM (CC) adjust AppCompatibilityArr -artf1968 : (MPC55xx) Expose Interrupt CPU Performance Metrics -artf1974 : Report only Actual Idle CPU = (Actual Idle CPU = ControlCoreIdleCPU + IdleTaskCPU.) -artf1993 : MotoCoder Components - Enable Build Password -artf2037 : Add Half Moon and Single Tooth CAM on 112 36-2 -artf2051 : Add H bridge support to PIM-5554-0801-xD -artf2064 : Integrate .NET licensing library V1.0.6 MotoHawk Bug Fixes: -artf1580 : Integrate MATLAB 2008b into the MotoHawk Installer -artf1800 : Correct GCC warnings on MPC55xx processor archive -artf1837 : S12(X): Sequence outputs may stall asserted during zero speed timeout duration -artf1838 : S12(X): Physical Tooth Detection Observed Before Encoder Creation -artf1870 : ADCAngleVector targeting a PROD module references nonexistent memory -artf1887 : Allow MotoCoder to generate code without compiler present -artf1891 : PCM128 requires ControlCore changes to properly support External RAM -artf1905 : Fault Details on NCV7513 chip -artf1910 : CC - Size SPI EE correctly -artf1925 : S12(X): PSP's fail to properly handle immeadate power-up CAM sync -artf1927 : CCP Master Passthrough can send GET_DAQ_SIZE incorrectly -artf1929 : S12(X): Close XGATE upon IO_Close() -artf1936 : CC - EVO8/9 Encoder requires larger SchedGap -artf1939 : User-task based application code shall not execute post module shutdown -artf1942 : GCC asm macros clobber registers -artf1953 : motohawk_sfun_fault_action_assigned Block creates a TLC code gen error when input port is unconnected -artf1958 : MotoCoder Quadrature Encoder Build Error -artf1960 : In cylinder pressure sampling task shall use internal RAM for its stack -artf1962 : ADCAngleVector should use mc:trigger, when possible -artf1963 : motohawk_crc_directory returns an error in MATLAB 7.0 when p-coded. -artf1965 : Legacy S12: .\.\MotoCoder_ModuleSupport_Reset.c(41): INFORMATION C3604: Static 'ModuleSupport_Reset_CallEntryVector' was not referenced -artf1966 : Add ADC Angle Vector support to AN24-AN29 on PCM0902 Modules -artf1967 : Dual PSP - Has no MinDuration setting, defaults 1.5ms -artf1969 : Apply correct PCM090x External RAM wait state setting -artf1980 : ProEFI - NissanZ VarCAM triggerblock does not trigger -artf1984 : PCM128 - (MH) Adjust/Create linker files to cope with ExtRam -artf1995 : S12(X): Memory Access Function Fail on last section address -artf1996 : motohawk_sfun_fault_action_assigned Block disconnects its input port on first update -artf1998 : Apply correct PIM External RAM wait state setting -artf2041 : Correct PIM's Module Support Archive build files to include external RAM -artf2042 : VarCAM Trigger does not work -artf2053 : Behavior Naming for Current Measurement and/or Fault Status not unique -artf2132 : MATLAB 7.7 Build Error 2008b_beta4 Type: External Dependencies: -MotoTune version 8.13.6.73 or greater -MotoServer Runtime version 8.13.6.73 or greater -MotoCoder 0.7.4 Migration Notes: -ControlCore 47_0 New MotoHawk Features: -artf1687 Add block to disable DSP on HFM module -artf1447 Peiker custom bootloader support for HFM -artf1778 Toolchain Specification Change for DefaultSecurity -artf1784 Security Archive Generation -artf1788 2008b CC Changes to include 36-2 no CAM Encoder -artf1787 2008b MH Changes to include 36-2 no CAM Encoder -artf1671 MotoCoder Components - Step 1: MPC5554 + Build + Periodic Triggers -artf1688 MotoCoder Components - Step 2: Basic Data Stores -artf1783 NANT support in Component Control Core -artf1677 2008b: Remove "motohawk_latest_version" -artf1823 Allow diary in motohawk_make_rtw to be disabled -artf1749 Add a flush method to the Queue ADC processor behavior -artf1782 Add method to recover Theta from a Quadrature Decoder -artf1672 Add support for Trigger Definition Block on S12's -artf1766 Add Theta_m encoder offset -artf1747 Allow MC Task definition to specify an external RAM stack location -artf1714 Build Stats for Metrowerks builds -artf1757 Create MotoHawk blocks for the ADCAngleVector behavior -artf1713 Develop MC syntax that will allow MotoHawk to specify the creation of a private user task -artf1727 Implement IEEG triggered ADC (ADCAngleVector) device driver -artf1728 Implement MC Interface for Handcoded ADCAngleVector -artf1719 Insert "priority" space between the available pre-defined MotoHawk Tasks -artf1712 Install method to recover multiple ADC results from a single function execution -artf1721 NANT build file for 55xx Device Drivers -artf1723 NANT build files for 55xx Processor archive -artf1733 S12(X): Enable End Of Injection Triggers -artf1648 Support callbacks within the IEEG MC template MotoHawk Bug Fixes: -artf1802 Move Component-MPC5554 To Released -artf1861 Remove Build directories in MotoCoder release script -artf1792 S12(X): Provide core data coherency for tooth period -artf1791 S12(X): Remove gap reporting in tooth period. -artf1658 2008b: Build Time warning generated by CAN Send Messages block when out of range constant blocks used -artf1659 2008b: Error found when creating Calibrations in MotoCoder with Non standard gains and offsets -artf1796 Change PWM block so multiple NONE resource can be selected -artf1738 GCC support in 55xx Processor Archive -artf1630 KeySuite Error when CAN interface present, but no MotoTune selected in MotoHawk -artf1774 PCM0904 ModuleSupport Build Files -artf1726 Port Tasking kernel fixes related to waiting while Idle -artf1669 SerialLink Rx Queue uses incorrect size -artf1755 Tenneco(S12X) EE Switch to Internal EE from Serial -artf1786 Add 36-2 - 4 stroke - No CAM Encoder to 090x modules -artf1785 Add 60-2 - 2 stroke - No Cam Encoder to 090x modules -artf1739 Correct eQADC_Queue_Conversion_Result_WithTimestamp_Get warnings -artf1694 Module definition block confuses Legacy and MotoCoder targets -artf1776 MotoCoderComponents Step 1 and 2 break RTW builds -artf1781 motohawk_check_gcc_win32_pe uses incorrect argument for gcc_dir -artf1632 Serial Issues w/ 11 EZLink blocks that are contained in a 100ms trigger -artf1751 Type/const change in eTPU function eTPUProc_TPUMaskDefn_GetPtrWithTPUChannel -artf1674 "Release" 0904 module -artf1793 Build and integrate ControlCore_47_0 into MotoHawk -artf1779 Build fails when Angle/Duration PSP sequences are used -artf1770 Build warning when SwIDTxt is 13 characters long -artf1775 CCPMaster - Review None Steve Basso Integrated -artf1819 GCC 55xx builds fail with an error in Motocoder_IO.c -artf1822 Improve alignment for build Metroworks stats -artf1767 MotoCoder generation of Database.c does not handle quotes in help text -artf1795 MotoHawk Trigger Definition Help needs updating -artf1326 PowerPC NativeSizes should be moved into the processor XML file -artf1750 Remove .build files in MotoCoder release script -artf1660 S12(X): SCI callbacks should execute outside of a critical section -artf1777 S12 CPU_Vectors.xsl fails when more than 1 toolchain is listed in the module descriptor -artf1720 Warnings detected by GCC in DeviceDrivers build on 555x targets 2008b_beta3 Type: External Dependencies: -MotoTune version 8.13.3.565 or greater -MotoServer Runtime version 8.13.3.565 or greater -MotoCoder 0.7.3 Migration Notes: -ControlCore 46_0 New MotoHawk Features -artf1625 ProEFI MH Encoders for EVO9/NissanZ -artf1607 Build Legacy ControlCore_44 -artf1599 Add IO support for BTN7930-based h-bridges -artf1651 Release ECM-S12X-070-1001 module -artf1174 ProEFI TPU Encoders for EVO9/NissanZ - Orbital -artf1558 Quadrature Support from CCM on PCM09 -artf1553 Create ControlCore interface for External Encoder Generator -artf1554 Create MC to interface to the External Encoder Generator behavior -artf1552 Encoder Signal Generation eTPU Primitive -artf1566 Remove reference to tool related includes for eTPU source code builds MotoHawk Bug Fixes: -artf1613 2008b: FixedNonVolatileRestoreOnFirstStartup Calibration does not restore defaults (5xx) -artf1602 ProEFI - NissanZ encoder improve robustness -artf1582 Prevent access to eTPU by QD if QD fails create -artf1603 Add additional Discrete Outputs -artf1639 Optimize S12 SCI ISR for speed -artf1606 SCI idles incorrectly on S12 -artf1605 SCI queue sizes calculated incorrectly -artf1604 Decrease SPI receive response time. -artf1641 S12(X): GPIO-based Tachometer pulses are based off of electrical reference -artf1631 S12(X): Apply sensory offset to angular events -artf1617 2008b: Frequency Input on CNK doesn't work -artf1644 Correct channel assigned to DG7 in PIM module descriptor -artf1597 Correct eTPU math handling of the Zerotime filter constant -artf1646 Install H-Bridge support for PIM 2008b_beta2 Type: External Dependencies: -MotoTune version 8.13.3.565 or greater -MotoServer Runtime version 8.13.3.565 or greater -MotoCoder 0.7.2 Migration Notes: -ControlCore 43_0 New MotoHawk Features: -artf1394 Add optimization to motohawk_sfun_unpack block with terminated signals -artf1439 MATLAB 2008b S-Function warnings -artf1485 Add support for DV PCM0904 hardware -artf1572 2008b: Update to .NET 1.0.5 licensing libraries -artf1296 S12(X) does not support encoder fault MotoHawk blocks -artf1196 S12(X): Remove DOS Command Line Length Restriction From Batch Files -artf1422 S12(X): Remove software protection against using incorrect encoder -artf1538 Create MH Blocks for basic IEEG functionality -artf1496 Interpolative Encoder Edge Generator (Host CPU) -artf1471 MC interface for IEEG behavior -artf1470 Interpolative Encoder Edge Generator (eTPU) MotoHawk Bug Fixes: -artf1571 Allow MotoCoder the ability to validate protocol based on communication resource -artf1561 S12X: EEPROM_Close() stalls if g_u32StarvationTimer_us is linked into emulated EEPROM -artf1408 Correct Frequency Gitter -artf1576 PIM Slip calculation must correctly handle a negative commanded Iqse -artf1568 Keysuite server fails to report "Protocol Unavailable" -artf1564 Allow a Zoom Region to be specified for a PWM DAC -artf1563 Multiply the Phase PWMs of PIM's PWM generation by a further 2 -artf1541 AVL Change Request - fix EST polarity flipping -artf1512 55xx PWM eTPU primitive does not immeadately apply a non-zero frequency -artf1501 S12X:Deadlock occurs during simultaneous timer overflow and Coherency pend -artf1548 2008b: IO Fault Status prints out messages when using 5xx targets -artf1522 Swap the order of PSP Timing update versus condition update -artf1547 2008b: CAN Block Pace Interval can be specified as a negative number -artf1490 2008b: PROSAK Knock Definition block requires the presence of a Knock Results Block -artf1542 2008b: Correct ASAP2 file CAN Baudrate indication -artf1500 2008b: Fault Actions fail update when declared in another component -artf1511 Prelookup Reference block code generation prevents new calibration from a programming file -artf1491 Allow MOTOHAWK_EXTRA_DIR to contain multiple paths -artf1478 MotoZip operates incorrectly on Windows 64 Bit OS -artf1472 ECM70 Module Descriptor - CAN2 -artf1575 Omega_m not refreshed if Lam_dre falls below Lam_dre_min 2008b_beta1 Type: External Dependencies: -MotoTune version 8.13.3.565 or greater -MotoServer Runtime version 8.13.3.565 or greater -MotoCoder 0.7.1 Migration Notes: -This is the first official release of the 2008b branch. It also uses some terminology that is related to our new bug/feature tracking software. Each "artf" is an artifact that is used to track a bug/feature. -artf1440 Add support for Serial on MotoCoder targets -This also includes an interface change to the Serial I/O blocks -ControlCore 42_0 New MotoHawk Features: -artf1394 Add optimization to motohawk_sfun_unpack block with terminated signals -artf1368 MotoHawk support for Maintenance Free dongles -artf1264 Add Fault Accessor to Detemine if Action is Assigned. -artf1355 ProEFI TPU Encoders for Viper (MH) -artf1270 Add Encoder to MH - 36M1_CoyoteCAM for AVL -artf1420 Adjust PIM IGBT TurnON and TurnOff values -artf1389 Optimize RAM usage in S12 Flash Routines -artf1455 Install PWMOutput Behavior on PIM IGBTs -artf1291 Changes to Injector Diagnostics - Add DualPSP Block -artf1352 Create Current Measurement MotoHawk block -artf1195 S12(X): Enable Manual CAM Phasing MotoHawk Bug Fixes: -artf1341 2008b: Builds fail for 5xx modules if only 3.6 compiler is installed -artf1294 Enforce limit of 8 MuxPSP channels in MH - 2008b -artf1350 MuxPSP ESTs permanently high at zero eng speed (MH) -artf1189 SECM async EEPROM writes not being serviced. -artf1330 2008b: O2 Sensor Vista Driver does not handle all possible values -artf1358 2008b: Label for PWM Peak Time is incorrect -artf1374 2008b: Zero values entered in Prosak Knock Results block results in build error -artf1395 2008b : Glitch with Current Feedback (MH) -artf1321 makerelease.js does not release Controllers/SharedComponents/Utilities/CRC -There was a missing archive that was caused by an error in the release script -artf1348 2008b: Make motohawk_setup_rtw use set_param appropriately -artf1412 Module descriptors need a field to optionally denote license feature(s) -artf1428 Legacy 5xx builds fail with floating point type set to disabled -artf1386 motohawk_add_dir doesn't create multiple directories properly 2008a_beta6 Type: External Dependencies: -MotoTune version 8.13.3.565 or greater -MotoServer Runtime version 8.13.3.565 or greater -MotoCoder 0.6.5 Migration Notes: -This release is the first release that contains licensed content. A dongle will be required when performing builds from this release forward. -This will be the final release before 2008a Service Pack 0 will be released. -ControlCore 39 -New Targets available: ECM-0563-048-0704 ECM-0563-048-0705 ECM-0563-048-0806 -Target Name changes: GCU563-48-CCM -> GCM-0563-048-0801 GCU563-48-SIM -> GCM-0563-048-0802 GCU563-48-TVM -> HCM-0563-048-0801 -The GCM-0S12-024-0401 and ECM-0S12-024-0503 modules now use the advanced build engine. This upgrade requires Metrowerks 4.6+. If there are questions, contact MotoTron support at support@mototron.com -CCP Slave blockset is now integrated with the release New MotoHawk Features: -MotoHawk installer - Prompt that warns the user that previous installed version will be removed -Added the ability for the motohawk_sfun_prelookup_reference block to export an ordarr which allows the prelookup reference instance to be properly viewed in MotoTune. -Optimization - Only process the signal in a CAN Receive Message block if it is connected to a real signal. If the signal is terminated, remove all processing of the data. -Optimization - Remove the range check on an input signal value if the physical limits are within the message definition's minimum and maximum for that signal. -MotoHawk installer - Show the user how much space is on their hard drive during the install process. -Add STOP as a Frequency Input and Digital Input to the 555 48 modules -Remove PWMADC from the HCM modules. It is only present on the GCM 563 modules. -Improve the ability to detect if a specific compiler is installed with the compilers such as Metrowerks 4.6 and GreenHills 4.2.1 -Change OneShot interface: Add a "cancel" port that will terminate a pulse before it's scheduled completion when the value is "true". -OneShot and HiResOneShot behaviors added to ECM-555x-112-090x and the ECM-0S12-024-0804 targets -Employ a zero sample time on the digital input block when interfacing to the legacy ControlCore to remove a lag between a digital input's state changing and that state being reported. MotoHawk Bug Fixes: -MotoHawk installer - Due to file format differences, fix a bug that corrupted the matlabrc file during installation with newer versions of MATLAB. -PROSAK Knock fixes to the cylinder enumeration and alter the sensor select to be based upon the firing order array. -Fixed a bug with the calibration "inherit data type" when using the advanced build engine -Allow lookup tables to have a boolean data type -Fix a bug where the index ports on the data storage read and write blocks were not defaulting to a proper data type. Now they default to 'uint32' if not specified otherwise. -Fix a bug where the component version check was not factoring in whether motocoder_directory had spaces in it. -Fix a bug with the Multiple PSP API that was causing an error when a calibration was connected directly to the input port -Fix default value of the injector diagnostics. The previous default value caused false positived during startup under some conditions. -Fix some build bugs with the 5xx modules and MATLAB 2008a -Bug 468 -Bug 432 -Bug 467 2008a_beta5 Type: External Dependencies: -MotoTune version 8.13.3.565 or greater -MotoServer Runtime version 8.13.3.565 or greater -MotoCoder 0.6.4 Migration Notes: -The name of the ECM-0S12-024-0703-C module is now the ECM-0S12-024-0804. The 0703 name was used during development, but 0804 part number will be used for production so the name change was necessary. New MotoHawk Features: -Fixed Non Volatile Data Stores now work with 5xx modules. -Included the 3.6 GHS compiler toolchain with the MotoHawk Build Engine which is used to generate the RTW archives. This reduces the size of the installation, allows easier integration of newer versions of MATLAB, and will fix some build errors that some users have experienced with newer versions of MATLAB MotoHawk Bug Fixes: -Fixed a bug when using calibrateable IO on the 5xx modules (Digital Outputs and PWMs only) where each resource selected had to be unique. Now, the same resource can be selected when using calibrateable IO. This was introduced in Beta 4. -Fixed a bug where the mapping of the resource name in the vardec did not match properly. This was introduced during the recent optimization of the resources (Beta 3). -Bug 463 -VISTA Knock IIR Coefficient Block was not handling negative numbers properly. 2008a_beta4 Type: External Dependencies: -MotoTune version 8.13.3.565 or greater -MotoServer Runtime version 8.13.3.565 or greater -MotoCoder 0.6.3 Migration Notes: -Rx Queue size is now specified in the CAN Definition block -Target Definition block now contains all of the correct stacks for modules using the MotoHawk build engine. The additional stacks include: ApplicationInterruptTask and ShutDownTask. It also removes the ForeGround Angle which is no longer required. New MotoHawk Features: -MATLAB 2008a (7.6) is now supported -Initial release of MotoHawk Input Capture Behavior. -Reduced the amount of global memory allocated for module I/O blocks when the module is built utilzing the MotoHawk build engine. -MotoHawk CAN slots are now sorted to a best fit of the hardware on S12 based modules which are built utilizing the MotoHawk build engine. -Added support for communication with DSP via SPI Slave device -Add Quadrature Resources to HCM-0563-048-0801 (TVM), HCM-0563-048-0802, HCM-0563-048-0803 -Application Monitor is now supported with modules that use the MotoHawk build engine. Note that due to some interface differences, a new block is now required for these modules. An update error will occur if the incorrect application monitor is chosen. -Starvation Timer block is now available. The starvation timer sets the amount of time between executions of the idle trigger before the module will reset. This is a safety device designed to protect against infinite loops in the application. MotoHawk Bug Fixes: -Fixed a bug in 5xx components which required at least one NonVolatile variable to exist in the model before compiling successfully. -Bug 457 -Bug 460 -Fixed descending unsigned integer interpolation tables. The interpolation code generation was incorrect. -Fixed a warning that occurred when syncing a cal on modules not using the MotoHawk Build Engine. This was due to a missing space in a vardec definition. 2008a_beta3 Type: External Dependencies: -MotoTune version 8.13.3.565 or greater -MotoServer Runtime version 8.13.3.565 or greater -MotoCoder 0.6.1 Migration Notes: -dT now has a fixed point representation. uint32 data type with units of micro seconds. -Removed legacy modules: SMUX, HFM. The HFM uses the new MotoHawk Build Engine now instead of the classic. -Security Block upgraded to v1.03. This is necessary if using the new Motohawk Build Engine and S12(X) modules. For non-S12 modules, previous versions of the block function properly. -R14 (MATLAB 7.0+) configuration set management was changed. This will allow users to add their own settings and MotoHawk build scripts will not overwrite them. It also creates a separate configuration set per processor type, so user custom build settings will need to be applied to the S12 and PPC configuration settings separately. -"motohawk_allow_motocoder" is no longer required when using the new Motohawk Build Engine. All users will be able to see an expanded list of modules that were not previously available. Note that users must have the proper compilers installed to build an SRZ/DLL for these modules. -Documentation updates New MotoHawk Features: -Async NonVolatile writes are now supported. This allows modules without controlled shutdown to write their data and explicitly control when certain areas of the NonVolatile are written. This behavior is only supported on a few modules. -Exposed heap metric to the new MotoHawk Build Engine users via the block in the System Debug category in the MotoHawk Library -Added CAN Bus Error Status block support for S12 modules that use the new MotoHawk Build Engine (SECM0703 and HFM modules) -Angle-Duration mode on Sequential Spark Sequences now supported with new MotoHawk Build Engine modules (090x) -Dramatic decrease in the amount of memory used by MATLAB and the new MotoHawk Build Engine. This will result in faster initial updates plus less system RAM consumed. -Added a "ToolChain Definition" block that allows the user to customize the toolchain used to build their application. This is an optional block. If it isn't added to a model, the application will build with the default toolchain. -Added the "Multiple PSP" block that allows a user to customize a configurable number of pulses that are synchronous to the specified encoder. This block is useful for Diesel Engine control applications, but other uses are possible. Currently, it is only supported on 090x modules, but more will be added in the future. MotoHawk Bug Fixes: -Relative Overrides offset now inherits it's data type from the input signal. -The Index variable is now set to read-only when using the new Motohawk Build Engine. -Fixed a memory leak in the MotoHawk resource blocks. This would only occur when a block was set to be non-calibrateable. There should be an improvement in performance now, especially over the course of an entire day of updating and building. -uCHI stack can now be set to 512 bytes. The limit used to be 1024. -Fixed a build error when selecting the optional "creation status" output on Analog Input and Digital Input blocks -Fixed a build error when creating data stores (and when probing some Simulink signals) that were 1 x X. This was only applicable when using the new MotoHawk Build Engine -New modules using the MotoHawk build engine can now specify an encoder with a single cylinder -Fixed a bug in component builds introduced in 2008a Beta 1. The failure prevented the dll from being created. -Fixed a size issue with the resource creation vardecs -Bug 455 -Bug 451 -Bug 452 -Bug 444 -Bug 349 2008a_beta2 Type: External This release is identical to 2008a_beta1 except that Control Core 36 is bundled with this release. Control Core 36 fixes an issue with LSOx or HSOx channels on the GCM-0563-048-080x and HCM-0563-048-080x modules which were configured for PWM Output with a frequence less than 123 Hz. Previously, between 35% and 65% duty cycle, the waveform was inverted from the expected waveform. This issue has been present in the Control Core version bundled with MotoHawk since MotoHawk 0.8.4 Beta 9 was released on July 18, 2007. 2008a_beta1 Type: External Dependencies: -MotoTune version 8.13.2.296 or greater -MotoServer Runtime version 8.13.2.296 or greater -MotoCoder 0.5.0 Migration Notes: -New Data Type: Until the last version, the "reference" data type could have names for both structure instances and normal data stores. However, this created a potential name conflict. To rectify this, a new data type was created called "struct_reference", so now struct instances have to be referenced by a "struct_reference" type. Due to this new type, all existing "reference" types must upgrade to use "struct_reference" in their respective models. Applications that do not use structures can ignore this new enhancement. -The Foreground Stack setting in the Target Definition is now applicable on the HCS12 modules -Data Store code generation was moved to the new MotoHawk Build Engine (only for applicable targets such as 090x modules) -Control 34 -MotoDevelopmentTools : Some bugs were found with the previous Development Tools related to the new MotoHawk build engine and users with many vardecs in their model. New MotoHawk Features: -New Encoders : 6plus1, 12plus1 -Default data type for Digital Out block set to boolean. This removes the update error when block is disconnected. MotoHawk Bug Fixes: -CAN slots were not generating properly for HCS12 modules. This is now working correctly. -Bug 428 -Bug 435 -Bug 438 -Bug 402 0.8.4_beta13 Type: External Dependencies: -MotoTune version 8.13.2.296 or greater -MotoServer Runtime version 8.13.2.296 or greater -MotoCoder 0.4.1 Migration Notes: -This is a minor update to add an encoder pattern New MotoHawk Features: -Bug 413: 3 * 12 minus 2 Variable 6 tooth Cam pattern added MotoHawk Bug Fixes: -Updated the installer to include the proper motohawkrc.m. This will enable the "My Documents" feature in Beta 12. 0.8.4_beta12 Type: External Dependencies: -MotoTune version 8.13.2.296 or greater -MotoServer Runtime version 8.13.2.296 or greater -MotoCoder 0.4.1 Migration Notes: -Add name parameter to the Digital Input blocks -ControlCore 32 New MotoHawk Features: -MATLAB 2007b (7.5) is now supported -MotoHawk now has an optional My Documents folder that can be used to include user libraries and scripts(My Documents/MotoHawk). Optionally, the MOTOHAWK_EXTRA_DIR environmental variable can be used to specify a different directory. -The fixed point divide, multiply, and scale blocks are now S-Functions. This enhances the efficiency of the code generation. -24 minus 2 encoder added for MotoCoder targets -Added a Frequency Input Read Raw block (16 and 32 bit versions) -Added CNK to the frequency input dropdown list for ECM555-80 MotoHawk Bug Fixes: -Quadrature Block responds to the "Use Modulus Counts" checkbox -HCM 0803 has a list of resources for Quadrature -Bug 411 -Fixed a bug in the motohawk_can2xml.m script that was introduced during 084 Beta 9 -Fixed a build bug in the 5XX Injector Sequence block when output diagnostics enabled -5XX Transient Injection issue -Bug 417: Frequency Inputs on the PCM128 returning non-zero if no frequency is present on the pin New MotoCoder Features: -Allow more than one application configuration file. -Add the attribute to digital inputs that are implemented via VISTA ADC resources Modify the Digital Input code generation so that it handles a missing or bad attribute -Removed definition of PasswordTxt, as this needs to be managed at the application level. -Add support for the FrequencyInput behavior on the CNK and CAM inputs of PCM112(PCM09). -Correct digital input operation on the CNK resource of the PCM112(PCM09) modules. MotoCoder Bug Fixes: -Changed the CAN_Create call from startup to IOCreate(). This allows the Application's startup trigger to be capable of transmitting a CAN message 0.8.4_beta11 Type: External Dependencies: -MotoTune version 8.13.2.296 or greater -MotoServer Runtime version 8.13.2.296 or greater Migration Notes: -This is a minor revision with a single fix. New Features: Bug Fixes: -12x Single Tooth Encoder name was fixed such that it appears in the encoder definition drop down list 0.8.4_beta10 Type: External Dependencies: -MotoTune version 8.13.2.296 or greater -MotoServer Runtime version 8.13.2.296 or greater Migration Notes: -There are many significant changes in this release of MotoHawk. -MotoCoder is now bundled with MotoHawk. This new software set, in conjuction with MotoHawk, supports the PCM090X module family. The PCM090X modules are available for beta testers. -New attributes added to the following blocks: -Analog Input : This block now has a Name attribute that is used to uniquely identify that resource. The name can apply to the sensor or the actuator that is controlled. The only rule is that it must be unique. -Analog Input Read/Reference : This block now references the Analog Input block by using the name attribute -Hi Resolution Modulated One Shot Definition/Set: This block was given a Name attribute similar to the Analog Input -Hi Resolution Modulated One Shot Status : This block was added to report the status of the One Shot block and have it execute independent of the definition/set block. The underlying functionality of this block changed as well. A cancel port was added and the behavior of the trigger port changed as well. See the block help text for details. -Injector Current Select : This block was given a resource list and a name attribute. Currently, only the PCM128 has a valid resource for this behavior. -Frequency Input : This block now contains a Name attribute -Frequency Input Read : This block now references the frequency input block by using the name attribute -Frequency Input Trigger : This block is different from the old frequency input trigger block. It now contains a Name attribute that links the trigger to the original frequency input -Structure functionality has been reworked for better update and build times. To enable this improvement, each structure block must be more independent which means that more explicit information must be specified per block. -Structure read/write blocks now require complete specification of the original structure name. This new feature will force some effort on the part of application developers as they upgrade their structure applications. The following command will find all structure reads and writes in a model. >> blks = find_system(model, 'LookUnderMasks', 'all', 'RegExp', 'on', 'FollowLinks', 'on', 'source', '^Lookup By Name in Structure') The application designer can open the blocks and edit the structure name by hand with the "open_system" command. >> open_system(blks{1}) >> open_system(blks{2}) >> ... -The notion of a container is now explicitly specified with the data definition block, previously the container was specified with the structure vardec block indirectly. Now that the container is explicit, it allows explicit ordering in the enumeration array via the container's data field. This field must be a cell array of strings where each string is an instance name. The instance name must exist in a structure instance for the update to complete. -The container also specifies the type of storage. The structure instances, when linked to a given container, are then placed into that type of storage. -Structure instances behave the same as in previous versions. There is improved error checking on the data types and sizes. -Module name change : ECU555-48 is now ECU555-48-0403 -Control Core 28 New Features: -RTC : This block was located in the ISDL library, but is now supported in the MotoHawk library. They can be found in the Extra Development Blocks. -J1850 : A new blockset is available, but no released modules currently support this behavior. There is a module in development that supports J1850. Bug Fixes: -Bug 360 Pack/Unpack blocks -Zero Duration applied when mechanical duration is input to the injector sequence block -Bug 401 Data type on Spark Sequence block -Bug 399 Evaluate format string in print string block -Bug 312 Print string block ports are dynamically sized -motohawk_getcals works with ERI15 now -Bug 396 - Add Minimum Duration on all PSP blocks -Bug 373 - New 5XX modules : ECU555-48-0706, ECU555-48-0707, ECU555-48-0708, ECU555-48-0709 -Bug 405 - MotoTune .dll does not build on VISTA 0.8.4_beta9 Type: External Dependencies: -MotoTune version 8.13.2.296 or greater -MotoServer Runtime version 8.13.2.296 or greater Migration Notes: -In 084 Beta 8 and before, the CAN resource list was the same when switching between modules despite differing resource availability. The CAN blocks have been updated to have a dynamic resource dropdown list that adapts to the module that is selected, similar to the other resource blocks (AnalogInput, DigitalInput, etc.). The CAN bus now has a name that is used throughout the application. There is automatic upgrade logic to make the transition seamless when moving to Beta 9. -GCU565-24 is now GCM-0565-024-0602-Fxx -Control Core 27 New Features: -MotoCoder: Pullup strength for Cam and Crank are now published in the Application Descriptor -MotoCoder: Custom CAN baud rate settings are now available -MotoCoder: Removed unnecessary file processing in the .tmf file for MotoCoder -MotoCoder: Fixed NonVolatile supports vectors -Quadrature Blocks are now in the Advanced Digital I/O Category These new blocks have several new features: 1. Multiple decoders on a single module 2. Modulus count rollovers for high speed motor control 3. Synchronization input 4. Resynchronization of counts from the model Currently, this is only supported on the PCM128 In upcoming versions, the resource dropdown lists for other modules will be populated. -Improved MotoHawk documentation -6X with No CAM added to Encoder Definition -6X with Halfmoon CAM added to Encoder Definition -6X with Single Tooth CAM added to Encoder Definition -12X with No CAM added to Encoder Definition -12X with Halfmoon CAM added to Encoder Definition -12X with Single Tooth CAM added to Encoder Definition Bug Fixes: -Bug 392 - Add BKUP_BATT to GCM-0565-024-0602-Fxx resource list 0.8.4_beta8 Type: External Dependencies: -MotoTune version 8.13.2.296 or greater -MotoServer Runtime version 8.13.2.296 or greater Migration Notes: -This is a minor version update. New Features: -60 minus 2 with Duramax CAM added to Encoder Definition -32 minus 2 with Variable PWM CAM added to Encoder Definition Bug Fixes: -None 0.8.4_beta7 Type: External Dependencies: -MotoTune version 8.13.2.296 or greater is required for this release -MotoServer Runtime version 8.13.2.296 or greater is required for this release Migration Notes: -Control Core 24 -Security Blocks have changed. All current models with a security block must be upgraded to the new version. This applies to both MotoCoder and 5XX modules. -motohawk_vardecs.m is now motohawk_vardecs_legacy.m. This change was made for migration to MotoCoder. New Features: -MotoCoder: VISTA Knock blocks are available -MotoCoder: Pushed the logic for determining whether a pulse is possible into MotoCoder. MotoHawk now calls the function -MotoCoder: Added KeyOffTimer block -MotoCoder: Added Push Pull Feedback blocks -MotoCoder: Added Fixed NonVolatile Logical Storage to Data Definition blocks. This is NOT supported in 5XX or S12. -MotoCoder: Added a new parameter called "Crank Aligned with Cam" to the Encoder Definition block. This is not valid for 5XX. -Added a new port for enabling/disabling just the transient pulse when performing transient injection. Note: The primary pulse must be enabled for the transient pulse to be active. -Force Module Reset block added -3X with Hyundai 4X Cam added -"Capability" property added to the ModuleConfig block -Improved automatic migration from PWM Frequency Mode to Minimum Frequency Bug Fixes: -MotoCoder: Fixed code generation bug with the spark and fuel sequences. This does NOT affect 5XX and S12. -MotoCoder: Fixed Constant Current block such that code does not generate when "None" is selected -MotoCoder: The fuel and spark blocks update NumCylinder number of resources instead of MaxCylinder during a block execution -MotoCoder: Improved the efficiency of the Send CAN Messages block -Injection Complete trigger code generation error was fixed. -Bug 311 -Bug 365 -Bug 378 -Bug 379 0.8.4_beta6 Type: External Dependencies: -MotoTune version 8.12.1.227 or greater is required for this release -MotoServer Runtime version 8.12.1.227 or greater is required for this release Migration Notes: -PWM blocks now use minimum frequency instead of frequency mode. An automatic upgrade path was installed to insure that current models do not break because of this upgrade. Essentially, "Low" frequency mode is equal to 2 Hz, "Medium" is equal to 7 Hz, and "High" is equal to 31 Hz. -Due to the simulation bug fixed below, background triggers that exist in other subsystems must have the "This trigger is inside another triggered subsystem" checkbox checked New Features: -VDO Gauge Library added : The library will appear in the Simulink browser -Random Number Block : Generates a 32 bit random number generated by Control Core -MotoCoder: Fuel and spark enabling algorithm improved for smoother starts -MotoCoder: Build statistics Bug Fixes: -Fixed a simulation bug with the Background triggers. These blocks were always inheriting their trigger rate from their parent block. -The 24 minus 1 with No Cam encoder pointed to the incorrect archive. This bug was only present on the PCM128 module. 0.8.4_beta5 Type: Internal Dependencies: -MotoTune version 8.12.1.227 or greater is required for this release -MotoServer Runtime version 8.12.1.227 or greater is required for this release Migration Notes: -This is a second internal release to further the development of MotoCoder. New Features: -MotoCoder: Tachometer and VDOGauge behaviors can be used on the same pin -MotoCoder: Transient Fueling and EOI triggers added -MotoCoder: City IDs are now adjustable at runtime -MotoCoder: Added image for PCM0901-DV Bug Fixes: -Bug 364 0.8.4_beta4 Type: Internal Dependencies: -MotoTune version 8.12.1.227 or greater is required for this release -MotoServer Runtime version 8.12.1.227 or greater is required for this release Migration Notes: -(None) New Features: - MotoCoder: VISTA Knock, VDO Gauge Service, and Fault Status are now supported. - The resource cache was updated to consume less RAM in MATLAB Bug Fixes: -Fixed a simulation bug in the PreLookup block. -Fixed a code generation bug in the Injector Pulse block when a "None" resource was selected 0.8.4_beta3 Dependencies: -MotoTune version 8.12.1.227 or greater is required for this release -MotoServer Runtime version 8.12.1.227 or greater is required for this release Migration Notes: -There is a new option on the Injector Driver and Injector Sequence blocks. It optionally enables the Make-up EOI port when using the transient fueling behavior. In previous versions, this port was not enabled in the code generation for the block. The default behavior still uses the static Min EOI parameter in the block. New Features: -PWMADC resource is now available on the PWM block (specific to CCM modules) -MuxPSP block : This block produces a parameterized number of Position Synchronous Pulses which can be used for diesel injection. It is located in the Advanced Digital I/O category in MotoHawk_lib. Bug Fixes: -Bug 346, 357, 359 0.8.4_beta2 Dependencies: -MotoTune version 8.12.1.227 or greater is required for this release -MotoServer Runtime version 8.12.1.227 or greater is required for this release Migration Notes: -!!!!IMPORTANT!!!!: Once a module is programmed with the MotoTools required for this beta release, then that module can no longer be programmed with previous versions of MotoTools (8.11.x.x). This is due to increased security content in the latest version of MotoTools. -beta1 was an internal release for testing purposes. beta2 fixes some problems that were encountered in beta1. New Features: -Added support for installation of MATLAB R2007a (#354) Bug Fixes: -motohawk_dumpdll.exe was upgraded to work with the new dll format in ERI15 0.8.4_beta1 Dependencies: -MotoTune version 8.12.1.227 or greater is required for this release -MotoServer Runtime version 8.12.1.227 or greater is required for this release Migration Notes: -!!!!IMPORTANT!!!!: Once a module is programmed with the MotoTools required for this beta release, then that module can no longer be programmed with previous versions of MotoTools (8.11.x.x). This is due to increased security content in the latest version of MotoTools. -PCM128 stack allocation was changed to on-chip RAM, so run time performance will be improved -The CAN blocks marked as deprecated in 082 and 083 have been removed from the library. New Features: -More MotoCoder support -Improved Module Config support - See Extra Development blocks for the new options -Improved structure update and build times -CC 23 which includes increasing the vardec limit beyond 1785 -Optional port on Adapt table block that exposes the actual adapted value -32 minus 2 - Variable CAM encoder added to the Encoder block -Fault Action Status block which allows for distributed fault action handling -Fuel Injector diagnostics on Injector Driver block -Muxed spark on EST 14 now supported Bug Fixes: -All 083_spX bugs -Bug 351, 341, 345 0.8.3 Migration Notes: -None New Features: -None Bug Fixes: -Bug 324 & 326 0.8.3_beta18 Migration Notes: -Quick release to fix corrupted archive in beta 17 -This release is the first release candidate for 0.8.3. New Features: - None Bug Fixes: -Bug 323 & 321 0.8.3_beta17 Migration Notes: -Quick release to fix encoder bug New Features: - None Bug Fixes: -Bug 318 & 319 0.8.3_beta16 Migration Notes: -The drop down list on the Variable CAM block changed. Verify that the setting in the block matches your application. -Update times were improved by increasing the efficiency of several scripts -Upgraded to CC20 Status of known issues from beta15: -Fuel injector diagnostics are working intermittently at this time. There is an investigation regarding the cause. This fix will be available in b16. -This is a module specific behavior. This was detected on the PCM128 0501 and 0503 modules. -Fuel injectors miss pulses when driven with a fuel injection time greater than 97% of the encoder revolution time -Until a proper fix can be made in Control Core, the application designer must be aware and prevent commanding fuel pulses that are longer than the revolution time. New Features: - New TPU Mask (36 plus 1) Bug Fixes: -This version contains a few bug fixes (see mcs.woodward.com for details). -The "Hardware Implementation" parameter is updated properly now. 0.8.3_beta15 Migration Notes: -This version contains several bug fixes (see mcs.woodward.com for details). This release will be the final intermediate release before non-beta 0.8.3. There are a few issues that are not resolved: -IMPORTANT: See bug fixes below before upgrading Known issues: -Fuel injector diagnostics are working intermittently at this time. There is an investigation regarding the cause. This fix will be available in b16. -Fuel injectors miss pulses when driven with a fuel injection time greater than 97% of the encoder revolution time New Features: - S12 modules (SECM 0502, 0503, Peiker) were added. - Upgraded to ControlCore_19_0 Bug Fixes: - Spark resynchronization occurs after a crank synchronization fault. This prevents missed pulses. - Proper enable order for spark to avoid missing pulses at startup for wasted and muxed spark output - The raw value of the Crank Sync and Cam Sync Polarity enumeration was changed to match the actual behavior. In previous versions, a Rising Edge selection in the mask actually meant Falling Edge and vice versa. This has been fixed, but it will affect existing calibrations. 0.8.3_beta14 Migration Notes: -This is a minor version change. New Features: Bug Fixes: - A bug was fixed with the inherited sample time setting on the dT block and more recent versions of MATLAB (7.1+) - Some minor changes to the S12 build files. 0.8.3_beta13 Migration Notes: -This is a minor version change. The ISDL bug fix and the ChallengeX training is the reason for this release. New Features: Bug Fixes: - A bug was fixed when using the ISDL module (GCU565-24) - A minor bug was fixed with the build directory setting in motohawk_build_info when a blank blank target directory was specified in the target definition block 0.8.3_beta12 Migration Notes: - MotoHawk is currently being extended to handle new targets using MotoCoder New Features: Bug Fixes: - A few bugs were fixed when using ECU563-48-0701, due to its introduction and name change in 0.8.3_beta11. 0.8.3_beta11 Migration Notes: - ECU563-48-0701 is now supported as a module target - ECU563-48i has been changed to ECU563-48-0703 - ECU563-48m has been changed to ECU563-48-0702 - Upgraded to ControlCore_16_0 New Features: - It is now possible to read the fault names as a vector. A table of fault names is stored in the module FLASH if the Fault Name block is used, but is optimized away if never used. - A Fault Iterator block allows loops through sets of faults, such as All Faults, only the Active Faults, only Suspected, and so on. Using this block and the new Fault Name block, it is possible to create subsystems that transmit the names of active faults onto the CAN bus, for example. Bug Fixes: - Fixed a bug in the CAN blocks that would cause integer scaling to produce inappropriately rounded fixed-point values. - ControlCore_16_0 fixes an issue related to late enabling of spark sequences. 0.8.3_beta10 Migration Notes: - Fixed an issue with using CAN in ControlCore_14_0. The CAN fault trigger occurs much too quickly, and overflows the interrupt queue in the OS. This will be fixed in the next OS release, but a fix in MotoHawk prevents this callback from being generated unless you use the CAN Fault Trigger block. We recommend avoiding this new block until the next ControlCore release. New Features: - NonVolatile data storage now works in components - The NonVolatileFormatID is now brought back into the model after a build, and is printed at the end. It can also be queried by using motohawk_build_stats or motohawk_print_stats. Note that the message next to the NonVolatileFormatID is a user-friendly sentence that is unique for each ID. - Added a separate Foreground Angle Stack margin to the Application Monitor, which is only used if the Foreground Angle Stack size is non-zero. Bug Fixes: - Fixed the Prelookup Reference and Interpolation Reference blocks when used in component builds. - Fixed a bug in motohawk_latest_version that would occasionally print garbage. It now checks the version for validity before returning a value. - Removed a name clash that would occur between some VarDec names, Data Store names, and Simulink block names. The namespace has been cleaned up so that identifiers generated by RTW will never clash with MotoHawk or ControlCore built-in names. 0.8.3_beta9 Migration Notes: - Moved to ControlCore_14_0 - Moved to ERI table 0 revision 9, for enhanced MotoTune capability. New Features: - Batch mode for Spark Sequences is now supported. This mode maps the pulses onto half as many resources as the Standard mode. The first n/2 cylinders get the first pulse, and the second n/2 cylinders go with the next n/2 cylinders. This still allows independent control of each pulse timing and enable. This is only available when an even number of cylinders is used in the Encoder Definition block. - A new CAN Fault Status block is available in the CAN blocks. This can be used to determine whether the CAN channel is currently on bus and functioning properly. An error will be reported if the bus is disconnected, shorted, improperly terminated, the baud rate is incorrect, or if bit error rates are causing failures. (It is equivalent to the little yellow LED in CANKing). - MotoTune will now produce an error if the wrong type of .SRZ file is programmed into a module. This error is produced before any programming is started, so there is no need to use a boot key to continue. Bug Fixes: - Using the Trigger Definition block would cause the module to crash after programming in 0.8.3_beta8. This is now fixed. - LSD5 and LSD6 on the GCU563-TVM module were crossed internally, causing errors on startup. These are now fixed. 0.8.3_beta8 Migration Notes: - motohawk_project now creates an m-script instead of an m-function for MODEL_setup.m The name is the same, and most migration will be seamless, however this now allows the creation of workspace variables by simply using assignment statements in the file, or by calling other m-scripts. Using a function did not allow this, because functions get their own unique workspace. - DataStores and VarDecs that start with '_' are no longer legal. These would not interplay with MATLAB, because MATLAB struct field names cannot start with '_'. Since MotoHawk uses MATLAB structs to represent VarDecs and DataStores, this error checking is now done in the blocks before the damage can occur. - Components now display their image using a proper aspect ratio, which may change the look of some component instances. (Hopefully for the better). New Features: - It is now possible to declare and use structures using the Data Definition block and Data Read / Data Write accessors. References to structures are also allowed, which opens up several new options for structure-based programming in Simulink. VarDecs are not yet fully supported for these, but are coming soon. - There is a new Encoder Set Phase block, which allows the half-cycle of the engine state to be explicitly set on a system with no CAM. When the crank encoder synchronizes, the state remains in "Crank Sync - CAM Unknown", until this block is used to explicitly set the phase. The phase may be left with the current correct synchronization, or flipped by 360 degrees. - There is a new Encoder State Trigger block, which will allow changes in encoder synchronization to call into the model. Using the Encoder State block in the triggered subsystem will allow the new state to be determined. - A new method for defining and using enumerations is available in MotoHawk, via the motohawk_enum class. This allows statements to be placed into a model setup file such as: >> EngineState = motohawk_enum('Stall=1,Crank=2,Run=3'); Using the value for Stall is as easy as putting "EngineState.Stall" into a constant or calibration. The enumeration field of all Calibration, Probes, Overrides, and Data Stores can accept a motohawk_enum, by simply typing "EngineState" into the field. Type "help motohawk_enum" for more information. - The name of the underlying component S-Function has changed, and a component version has been added. Bug Fixes: - Components have been much more thoroughly tested, and several bug fixes have been found and fixed. These include: CAN slots, VarDec enums, filenames with spaces, pathnames to .mhc files using ../file notation, and several other minor issues. - MPRD is now available as a discrete output on the GCU563-48-HLA/MII/TVM modules. - The Encoder Fault Trigger had a code-generation order dependency, which is now fixed. - Component builds had an include-file order dependency that is now fixed. - motohawk_mex_template.c was fixed for function triggers. 0.8.3_beta7 New Features: - Customized security has been added. Please contact MotoTron for more information about how to use custom security dongles in production. Bug Fixes: - Fixed a problem in the CAN message descriptor, when using non-double values for start_bit and bit_length. The behavior for certain math operations was different between MATLAB R13 and R14. - Fixed a bug in the PWM block, when using the Enable input. It would not update the status after creation. - Using the HSD outputs as digital outputs in the FIRE48 modules would not work. They have been removed from the digital output list until their operation has been confirmed. - The MPRD output was missing from the HLA, MII, and TVM modules. They are now available as digital outputs. 0.8.3_beta6 Migration Notes: - Moved to ControlCore_13_0. This fixes a few bugs, including some related to the TPU, and adds support for the new FIRE48 modules. - Upgraded the installation of MotoDevelopment included with MotoHawk. (MotoDevToolsCommon.msm) This new version no longer shares any components with MotoServerRuntime or MotoTune, so that the two can vary more independently. Installing this version of MotoHawk may break an older version of MotoDevelopment that is also installed on a user machine. It is recommended that users either completely uninstall MotoDevelopment or upgrade to the latest version. Most MotoHawk users do not use MotoDevelopment, and so will not be affected by this at all. - To program the latest modules, the newest version of MotoTune and MotoServerRuntime are required. They are available for download on the mcs.woodward.com website. New Features: - There are 5 new modules available in the Target Definition block. They are all 48-pin modules based around the MPC563, with no engine-encoder support. - GCU563-48-CCM - GCU563-48-SIM - GCU563-48-HLA - GCU563-48-MII - GCU563-48-TVM 0.8.3_beta5 Bug Fixes: - Despite the claim for 0.8.3_beta4, 0.8.3_beta5 fixes a few bugs releated to R2006a, and now it is supported by the installer. - The PWM block had a bug in 0.8.3_beta4, and this is now fixed. 0.8.3_beta4 Migration Notes: - Moved to ControlCore_12_0. This fixes a few bugs related to I/O ports on various modules. - NonVolatile memory now defaults to being restored from factory defaults on first startup after reprogramming, unless a NonVolatile Definition block is included to specify otherwise. New Features: - MATLAB 7.2 (R2006a) is now supported by the installer. - A new NonVolatile Definition block is available in the Data Storage Blocks. This allows the behavior of NonVolatile data after reprogramming to be configured from the model. Data may either be maintained from the previous program, or it may be forced to use the values in the new .srz. If no such block is included in the program, it will load from factory defaults, using the values from the .srz after reprogramming, even if the NonVolatile structure is seen as identical. Bug Fixes: - The Send CAN Messages block did not use the correct data type and min/max values for multi-page messages. Instead, they used the values from the first page. This is now fixed. - The diagnostics for LSO10 and LSO11, when using a Parent/Child PWM behavior are now functional. - Digital inputs DG3 and DG4 are now functional on the ECU565-128 module. 0.8.3_beta3 Migration Notes: - The Send CAN Messages and Read CAN Message blocks now check the minimum and maximum values for fields, to determine whether they are valid for the size and data type of the field. They will clip these values into range, and provide warnings when a bad minimum or maximum value is seen. - Any source files in the MotoHawk release are now made read-only. New Features: - A new Extra Development block called motohawk_module_config provides the module serial number or module model number as an 8-byte string vector. Bug Fixes: - When using uploaded calibrations, the Encoder Definition block would gain the uploaded TDC angles by 16, making them out of range. The error message when this would occur was also incorrect, and would not display the correct out-of-range angle value. Both of these related issues have been fixed. - motohawk_expr2str has been upgraded to handle strings with newlines and ' characters. This would sometimes cause problems when building components. - The Transient behavior on the Injector Sequence block was not working correctly, after the addition of the injector complete trigger in 0.8.2_beta9. This is now fixed, and works with or without the injector complete trigger in a model. 0.8.3_beta2 Migration Notes: - The Prelookup Reference and Interpolation Reference blocks now require a full Data Store name, instead of the prelookup or interpolation name without the IdxArr, Tbl, or Map suffixes. For example, a Prelookup Reference that previously referenced "RPM10", should now reference "RPM10IdxArr". This was necessary in order to augment the blocks, so that they could reference any data, not just data defined by their own kind. - The fault mode enumeration has been changed to start from zero. This will not affect models, but will affect old MODEL_load_cals.m files in the project directory. Delete the load_cals file and clear the workspace to prevent bad modes from being "overlayed" onto fault blocks. Use motohawk_push_cals to modify the model before deleting the file, if desired. - The "Persistent" fault mode has been changed to "Sticky - Persistent", and some other new modes are now available. Any blocks that used "Persistent" will fall back to "Enabled", and will require remodification. New Features: - The Prelookup Reference and Interpolation Reference block may now operate on any data definition, as long as it is a 1-D vector or 2-D matrix as appropriate. - A new fault mode called "Enabled - Persistent" is available, which is identical to the existing Enabled mode, but keeps all data across a power cycle, including X/Y counts. - EST diagnostics now output the actual dwell time for each cylinder. Bug Fixes: - 0.8.3_beta1 moved to a new map file structure, and the parsing of this file was changed. Older models would produce errors on the Target Definition block if a _Build directory still existed. This has been fixed, and the speed of updates for the Target Definition block has been significantly improved, by caching the statistics in the model, rather than parsing the file every CTRL-D. - The Adapt Table block had a bug in its dimension sizes when adapting a 1-D vector. It would limit the adaption to the first two entries, because it used the number of rows, instead of the number of columns. - The Specification Reference annotation block no longer produces printouts to the command window. - The function motohawk_vardecs now works correctly across component boundaries. - The EST diagnostics have been fixed. The open and short outputs were internally mapped incorrectly. 0.8.3_beta1 Migration Notes: - The PWM and DigitalInput blocks have an option for Outputs Diagnostics. The numbering scheme for these outputs has changed from 0=Indeterminate, 1=Fault, 2=OK to the following: 0=OK, 1=Fault, 2=Indeterminate. This makes the output of these blocks compatible with the new 'indeterminate' setting of the fault blocks. - The Spark Sequence block now outputs diagnostics for open and short conditions, and these follow the new numbering scheme for indeterminate faults. - The PWM duty cycle and phase offset truly range from -4096 to 4096, not 4095 as previously documented. No behavior has changed. This is just a documentation note. - MotoHawk 0.8.3 uses ControlCore_10_0, which uses a new technique for handling stack and heap memory. Every attempt has been made to keep this hidden from users. - The memory summary at the end of each build now shows more information about the sections of memory used. - The Timer Config group in MotoTune, showing PITCBaseRate, FgndRTIBaseMultiple and other timer VarDecs, has been removed, and a new block is available called the Trigger Definition Block. This block allows these values to be set in the model itself, and allows calibration VarDecs for these values to be configured at the model level. This allows models to contain their own rate configuration, and will prevent users from needing to calibrate these rates after every build. New Features: = Faults: - The Fault Definition block now allows the suspected input status to be optional. The Fault Set block, combined with a Fault Definition block without the suspected input status, is identical to the Fault Definition with the Fault Set. This is analagous to a Probe being equivalent to a Data Definition and Data Write block. - The Fault Definition and Fault Set blocks allow optional X/Y updating. When checked, the block will advance the X/Y state machine every "Downsample Count" times the block executes. When unchecked, the suspected status will be set, but the X/Y states will not advance. The default is to have "Update X/Y" checked, with a "Downsample Count" of 1, which was the existing behavior. - A new Fault Update block is available, which allows manual triggering of the X/Y state machine update. This mechanism is equivalent to checking "Update X/Y" in either the Fault Definition or Fault Set blocks. - There is a new Fault Properties block, which allows the current value of Mode, X, Y, X-Limit, and Y-Limit to be accessed from Simulink. - There is a new Mode available in the Fault Definition, called "Save Occurred". This is equivalent to the Enabled mode, except that the Occurred status is maintained across a power-cycle. Any Active faults at the time of shutdown will become Occurred on restart. - The Fault Definition and Fault Set blocks now allow values other than true or false for the suspected status, whenever the option is checked on the block. This allows an 'indeterminate' value (any value other than 0 or 1) to be input. When such an indeterminate value is input for the suspected status, the suspected status is not modified, and when "Update X/Y" is checked, the X/Y state machine is not advanced. = VarDecs: - The name length limit has been relaxed from 28 characters to 255 characters. - The row and column headers of a vector or matrix may be explicitly set, using the same syntax as enumeration names. This allows custom display of the strings above and to the left of non-scalar values in MotoTune. - Vectors can now be displayed as either a Wide Row (the default) or a Tall Column. - Enumerations are now displayed as strings on the Calibration block, instead of their numeric value. = I/O: - The Spark Sequence block now outputs EST diagnostics, allowing Open and Short conditions to be caught. These outputs are often indeterminate, and the output values are 0,1,2, which allow direct connection to the fault blocks when the 'Indeterminate' option is selected. - The DigitalInput block now supports a selection for pullup/pulldown resistor. This option is only valid on modules that have hardware support for this. = CAN: - The CAN Definition block now natively supports all common CAN baud rates, up to 1000 kbps. The custom option is still available, but is no longer necessary for most users. = Workflow: - A new script 'motohawk_load_cals' is now available, which wraps the common sequence of motohawk_upload_cals, updating the model, motohawk_push_cals, and cleanup of the intermediate _load_cals.m file and _cals workspace struct. This is much more intuitive for training and keeps the process simple. - A new block in Extra Development Blocks called 'motohawk_version_requirements' allows models and libraries to specify which version(s) of MATLAB and MotoHawk they are designed to be used and saved in. If these requirements are not met, an error is produced at update-time and also just before a save. This will prevent the model file from even being saved in the wrong version. Bug Fixes: - The Send CAN Messages block now correctly handles integer math for Scale and Offset in the ID fields. - The Fault Action Conditions have been fixed. Combinations other than simply Active and Occurred did not work correctly in previous versions. - The Fault Clear block now works correctly. Faults with some modes selected did not operate correctly. - Bit VarDecs, such as the CodeCoverage indicators, no longer take up space in the VarDec table, which is still limited to 1785 user entries. 0.8.2 Migration Notes: - The PWM output block will emit several warnings, claiming that the parameters 'text_resource_slave' and 'use_slave'. These will only occur once at model load, and once saved, will not occur again. The PWM output slave mechanism has been superceded by the parent/child mechanism. - There is a new synchronized PWM child block that references a parent PWM output, and outputs a PWM with a phase offset relative to the parent, and an independent duty cycle. - The "Display Variable Event" blocks in the Extra Development Blocks have been changed to fire the event on the falling edge rather than the rising edge of the variable from MotoTune. This means that a user must set and then clear an enum, rather than simply set an enum. This affects the StoreNV and RestoreNVFactoryDefaults enumerations in the Main Power Relay block. The reason for the change is to avoid a MotoTune glitch that fires the event on reconnect after loss of connection. - The Application Monitor has been disabled by default, rather than enabled, if the Application Monitor definition block is not included in a model. The functionality is still inserted, and so can be enabled via calibration, but will not cause the application to stop if it is not expected. This requires an act of comission rather than omission in order to get the application monitor functionality. If this behavior is desired at build-time, simply include the Application Monitor block in the model, and select Enabled as the default behavior. - When upgrading MotoHawk, you will probably lose MotoServer ports. Open MotoServer (the little sattelite dish), and add CAN port PCM-1 at access level 4. - motohawk_get_param_ws has been improved to throw an error when the named parameter does not exist, instead of failing silently. This may affect scripts that use this function. - Using MPC5xx_Rel_8_0, a controlled release of ControlCore. The directory structure of ControlCore has changed, along with several archive filenames and directory names. MotoHawk has been modified to match the new changes. - There is a new set of CAN blocks. These are very powerful, and much effort has been made to make them general and reusable across projects for CAN device library development. These new blocks encapsulate the behavior of the old CAN Tx/Rx blocks, plus the pack/unpack specification, transmit rate scheduling including multi-page documents, and fault detection for loss of receipt of a periodic message. It also generates an optimized H/W and S/W receive dispatcher for the specific set of IDs and Masks that are needed by each receive "slot". The hardware buffers have been totally abstracted away, which is what makes these blocks highly recommended for future development, so that conflicts do no occur between individual library components at the H/W buffer level. - The old CAN blocks will continue to operate for several more versions of MotoHawk, and even interoperate to some degree with the new blocks. All new projects, however should use the new blocks, and interoperation between the two styles will remain an undocumented, unsupported feature. Older models should be unaffected unless any new blocks are used. - The GCU565-80 target (TVM) has been upgraded in ControlCore to use the current feedback and pullup/pulldown values for the latest modules from Motorola. - motohawk_upload_cals and motohawk_push_cals have been given an overhaul and are much more robust and complete. motohawk_upload_cals still creates an m-file called MODEL_load_cals.m, which creates a workspace struct called MODEL_cals, but it performs this using an m-function instead of an m-script. The generated workspace struct now contains much more information about what has been loaded, and not just the calibrated values. All of the blocks that contain calibrations now use this new struct instead of simply the raw values. The blocks maintain backward compatability to older MODEL_load_cals.m scripts, so this change will not affect current users, but newer MODEL_load_cals.m scripts will not be usable with older versions. The underlying executable behind motohawk_upload_cals has been changed from cal2m.exe to motohawk_getcals.m, which has been completely rewritten, and is much more robust. - motohawk_upload_cals and motohawk_push_cals now handle the fault blocks, like any other calibration. New Features: - There is a new Display System Debug Variables block in the System Debug Blocks, which allows the automatically-created VarDecs in the System | Debug section of a display to be hidden or included, as selected. - The Fault Manager block has a new parameter which allows the type of X/Y counts to be changed to data types larger than uint8. Note that this causes much more RAM and FLASH to be used when a large number of faults exist in the model. - The Fault Definition block has a new checkbox that allows the input for the suspected status to be optionally input. By default it is checked. When checked, the Fault Definition block is equivalent to having both a Fault Definition with the suspected input disabled, and using a Fault Set block to set the suspected status. This allows a single definition with several sets in enabled subsystems, for example. - There is a new Encoder Fault Trigger block that provides a hook into Simulink whenever an encoder synchronization fault occurs. Counters or timestamps may be executed in the subsystem attached to this trigger. The Encoder Fault Status block may also be used in the executed subsystem, to get the value of the fault that caused the trigger. - There is a new Variable CAM Trigger block that provides a hook into Simulink whenever a variable-cam edge occurs. Counters or timestamps may be executed in the subsystem attached to this trigger. - Some of the input blocks, such as Analog Inputs and DigitalInputs, now output an optional creation status value, which is equal to zero when the resource creates successfully. All other values have meaning which are available via an enumeration: motohawk_error_enum. More I/O blocks will be enhanced with this feature in future releases. - The Prelookup, Interpolation1D, Interpolation2D, Table1D, and Table2D blocks now support vectorization, which means that multiple lookups can be performed on the same piece of data. MotoTune will only use the first value of the vector when showing the red MotoBall and displaying information in the bottom-right corner of the interpolation or prelookup window. A future version of MotoTune may support multiple lookups to be displayed. - There are new Prelookup Reference, Interpolation1D Reference, and Interpolation2D Reference blocks, which allow the operation of a prelookup or interpolation to be performed on data defined in a separate block. Currently, the mechanism is limited to using data from an identically typed block, so a Prelookup Reference block can only reference data from a Prelookup block defined elsewhere, not any arbitrary data. The same is true for interpolations. This is due to the MotoTune VarDec mechanism, which cannot handle display of a table without an associated index array. A future version of MotoTune may relax this constraint, and MotoHawk will be updated to also allow such operations. These new reference operations also support vectorization, just as the original blocks have been upgraded. - The Prelookup, Interpolation1D, Interpolation2D, Table1D, and Table2D blocks have been modified to display the size of the underlying table instead of simply indicating (1-D) or (2-D). - The Frequency In block now has the ability to update after an adjustable number of pulses have been received. An array of frequency (and optionally duty cycle) data is kept for each pulse received, but the array is only updated after a certain number of pulses has been received. - motohawk.info stats now queue on the local machine if unconnected. All queued stats, including the current build, are sent at the end of each build. If successful, they are removed from the queue. - Added a fault clear block that will allow you to clear a single fault. This is especially important for persistent faults (see next entry). - Added a "Persistent" option to faults that will hold a fault's state across a power cycle. - Added Display Variables to the Fault group that will show which faults are currently causing a fault action to be active. The display variables will show up under the | Action Reasons group. - Added 4X Encoder at CAM speed as an option on the Encoder Definition Block. - Added a command line function, motohawk_gen_datasheet, that will create a PDF summary of your model in subdirectory of you project. The PDF will contain screenshots of all of the subsystems for which you have a title block and the the title block parameter 'Include in Pretty Print' is checked. The document will also contain lists of calibrations, probes, and displays. This is a very initial release of the datasheet generator so expect some bugs. - Added a Code Coverage Manager block to the Extra Development Blocks palete. This block allows you to globally control the generation of Code Coverage instrumentation code. You can disable all code coverage code, generate only for DEV builds, or generate all of the time. - Added a Code Coverage block to the Extra Development Blocks palette. This block can be dropped into any conditionally executed subsystem and will generate a MotoTune display variable that will display the model path of the block until the subsystem has been execute. This is a handy mechanism to do code coverage analysis during your V&V efforts. Basically, if a Code Coverage display variable is showing its path, then that subsystem has not been executed at anytime since power up. Good V&V practices will have you make sure that all paths have exectued without issue prior to release of a production application. - Added a block to read multiple fault statuses. - Added reports to the Documentation subdirecty detailing changes to Control Core, the underlying OS. These reports are generated from the Control Core issue tracking system and document the changes made to a particular revision of Control Core. - Added 24-2, 2 stroke, non-redundant encoder pattern. - Added additional help text describing the encoder states to the 'Encoder State' block. The new states are useful when using the 'redundant on cam' version of 24-2. - Added a new block to the annotations library to capture references to external documents. Also, a helper function, motohawk_get_spec_references, that will allow you to create a specification cross reference has been added. - Added an "Injector Pulse Complete Trigger" block to the Encoder palette. This block provides a trigger upon completion of a fuel injection sequence for the selected resource. An "EST pulse compete" block will be added in the future. - Installer has been updated to install MotoHawk in Matlab 7.1 (aka SP3). - Added a setting to the Encoder Definition block for the secondary encoder TDC electrical to mechanical offset angle. Also a block to access the offset during runtime has been added. - Added a reference voltage choice for analog inputs. This is only valid on 563 based modules (currently the 48i and the 48m). Choosing the 2.7V reference for other modules will result in a "Hardware Not Supported" error. The 2.7V reference is useful for increasing the accuracy of low voltage signals such as the O2 sensors. - Added a "Test" column to the Fault Manager screen in MotoTune to force a fault to be set even if its logic is not set. This allows testing of any attached actions without needing to force the conditions of the fault. There is no RAM cost with putting this test field in the calibration memory. - Added checkbox "Label Wires With Field Names" to CAN blocks "Read CAN Message" and "Send CAN Messages" which, when checked, propagates the CAN message's field names to the connected wires (and one block beyond, if the immediately upstream/downstream block has exactly one input and one output). - Encoder Changes: = Added a setting on the encoder definition block for the cam synchronization polarity. There is also a calibaration value for this polarity. = Added a setting to adjust the pull-up values for both the cam and crank sensor inputs. This only applies to the 48m and 48i modules and is ignored on all other modules. There is also a calibration value for these settings. = Added a setting to make allow a redundant channel to read the encoder position. If the pattern needs only one channel, then the other channel can read the position via a rednundant sensor. - The Frequency In block now allows you to read the duty cycle of the signal along with the frequency. - The PWM block now supports a new feature called a "Slave Resource with Phase Offset", which allows two output pins to driven using a single PWM block. The two outputs share the same duty cycle and frequency, but they have an adjustable phase between them. - The EST resources are now available as PWM outputs. - There is a new block called 'motohawk_vardec_report' in the MotoHawk Annotations library. This block displays all of the VarDecs below a given location in the model, defaulting to 'gcs', the current system. This is helpful for determining and documenting the look of the calibration and displays from MotoTune. - The Main Power Relay block now declares a boolean Data Store called MPRD_KeepAlive, which, when set continues to keep the MPRD output and the processor enabled. This is useful for extending the standard Main Power Relay algorithm, which simply follows the state of ECUP, so that key-dowm shutdown logic can be implemented without breaking the library link to the Main Power Relay block. The default value of MPRD_KeepAlive is false, so this change will not affect the behavior of older models. - Added the date and time to the top of the build log. Bug Fixes: - When the Test popup is used in the Fault Manager, this selection overrides all Fault Get/Set operations. Previous versions would allow a Fault Set block to clear the suspected status bit momentarily. - The scaling applied by the new CAN blocks has been modified to use a multiply operation instead of a divide when the absolute value of the scale factor is less than one. This allows integer signals to be used even when a unit scale of less than one is used (meaning fractional signal values). - H1, H2, H3 resources have been removed as options from the Discrete Out block for the ECU565-128, to match the underlying ControlCore functionality. - Improve the alphabetic sort algorithm for generation of MotoTune variables to reduce build times. - An issue was identified where an injector might fire prior to engine rotation occuring. Code is now generated to disable the injectors whenever the encoder instant RPM is below 10 RPM. - The Frequency In Trigger is now properly supported by Control Core. Control Core will manage the interrupt so that floating point is now possible within the trigger. - Fixed an issue with the Injector Pulse Complete block where a variable was not being found at link time. - Fixed an issue with the fault action reason mechanism that was improperly accessing an array. - Fixed an issue with the Fault Manager when the calibration was stored in EEPROM. The EEPROM image is being managed by the main NonVolatile system which will properly handle a change in the fault manager and load the values from flash after programming. - When multiple CAN messages are sent via the same block, if idinherit was set and idcontent was present on the first message, the port labels into the block would be wrong. Only one set of idcontent ports should be present in this case, and this is now fixed. - Fixed an issue with the new CAN transmit blocks that was failing to allocate a transmit buffer if the protocol was not installed. - Choosing "None" for multiple outputs caused a code generation time error incorrectly. The logic has been changed to allow multiple outputs to be assigned to the RES_NONE resource without error. - The PROD+DEV build option was not correctly relinking for the PROD version of the build. The build.bat script now deletes all of the linker files causing the relink to happen correctly. - The Instant RPM accessor block was incorrectly mapped to the average RPM function. This has been fixed. - In 0.8.2 Beta 9, the redundant encoder setting is invalid except for the 24-2 2 stroke pattern. The encoder definition block has been changed to only show the redundant variation as a seperate pattern in the encoder list. - Fixed bug where bus specified in mask of "Read CAN Message" was ignored and, if the ".channel" field of the message struct was undefined, caused block initialization to fail. (Note: terms/fields "bus" and "channel" will be clarified in the final 0.8.2 release: "bus" is the LOGICAL signal (e.g. CAN_P, CAN_H, CAN_S) and "channel" is the HARDWARE on which it travels (e.g. CAN_1, CAN_2).) - In 0.8.2, the PWM Injector behavior had a tlc bug that was preventing code generation. This has been fixed in 0.8.2, beta 7. - In 0.8.1, setting more than one I/O block to the (None) resource would produce an update-time error. This has been fixed, and better error reporting has been added between blocks when resource conflicts do occur. - motohawk_push_cals has been improved to prevent pushing empty values. This is a common occurrence when calling the script before the model has been updated. - motohawk_push_cals would not work under MATLAB 6.5 because it used a built-in m-function called strtrim that was only available in MATLAB 7.0 and up. This is fixed. - motohawk_push_cals did not upgrade Data Store Definitions which had their MotoTune window set to Calibration. This is fixed. - Unconnected index_T and reference_T signals would cause build-time errors because the "ground" or zero value could not be determined. This has been fixed by declaring the zero value to RTW before use. - The PWM block was separated into two executions in 0.8.1, using both mdlUpdate and mdlOutputs. A bug in the S-Function would cause the execution to be incorrectly ordered unless both the "Output Fault Status" and "Output Current" checkboxes were checked. This is fixed. - Fixed yet another bug related to the optimization of reusable automatic variables, which is apparent only in R14 versions, which caused certain blocks with separated mdlUpdate and mdlOutputs to be incorrectly ordered. Fixed this by adding a mdlUpdate function to the corresponding simulation S-Function, which is apparently used by RTW in R14 to determine if a variable should remain in scope for that bit of code, or if it can be overwritten by a new calculation. - Added more error checking to the new CAN blocks, and fixed several cosmetic display issues on the block, due to TeX syntax conflicting with message property names. - The MotoTune Min and Max settings were limited to the range -1000000.0 to 1000000.0. This limit has been increased to -99999999999999999.0 to 99999999999999999.0. - The FrequencyIn Trigger block has been modified to inhibit interrupts at startup until the first tick. This may resolve a problem seen which would cause the module to hang on startup if a high-frequency input was present during initialization. - A problem with the serial port was introduced in MotoHawk version 0.8.1_beta3, and was fixed in 0.8.2_beta6. 0.8.2_beta6 contains ControlCore_Rev_5_0. - A simulation memory leak was found in the the Probe block, which would cause MATLAB simulation times to bog down over time. This only affected simulation, and has now been fixed. 0.8.1 Migration Notes: - The name for the PWM 8X encoder type was changed to say "CAM Only", instead of "No CAM". This selection will need to be made again in older models that used this encoder type on opening the older model. - The name of the calibration created by the Encoder Definition block for TDC angles has been changed from "EncoderFiringAngles" to "EncoderTDCAngles", because future injector and spark sequences may define their own firing angles. The name was changed to help avoid confusion. - The data type of the Output Current for PWM blocks has changed to int16 from uint16. Most modules do not support this behavior anyway, so it may only affect a few users at present. - Several of the I/O blocks now display the data type and units on each port. The text in the I/O blocks has been left or right justified to account for this. Some blocks may still need resizing to display correctly. - A new MotoTune is now available and is required to use the GCU565-80 module. - New error checking has been added at build time to ensure that tables are driven by prelookups of the same size. Older models may need to be fixed in order to successfully build. This could cause very strange errors at runtime if not fixed. - Setting "(None)" as the resource for an I/O block is now considered legal. This basically allows models that are designed for one module but ported to another to be easily configured, without modifying blocks. This configuration can even be done programmatically in a parent mask or an m-file. An error was produced in previous versions, unless the pin was calibratable. - Some of the I/O blocks may give a warning on opening about an invalid mask parameter for 'code_resource'. This is expected and will only happen on first load. After saving the model, it should go away. New Features: - Added the ability to move the fault manager calibration to serial EEPROM. - The fault list calibration is now sorted, for better display in MotoTune. - Improved motohawk_block_image to adjust sizes of blocks with pictures to better snap to the Simulink drawing grid. - Added a Modulated, High-Resolution 1-Shot behavior block that will generate a one shot with two pulse periods each having different PWM values. This block can be used to create a software-based peak-and-hold feature. - Added MotoTron Special Products Library as a container for very specialized functions. - Added Data Logging block to the MotoTron Special Products Library. The logger will log data to serial EEPROM. This logger is not intended as a supported general-purpose feature, and is subject to change as this feature is improved. - A new setting is available in the Target Definition block for the floating-point behavior during code-generation. The native data type of Simulink is 'double', which was set to be a 32-bit float in previous versions. The Floating Point Type setting now allows a 'double' to be declared as a double-precision 64-bit value. The default value is still to be a 32-bit float (same as a single), because of the significant RAM savings. - A new 'Build Directory' parameter is available in the Target Definition block, which allows the location of a build to be explicitly set for the model. If empty (the default), the current directory will be used, which was the old behavior. - Added some IO support for HCS12 - The CAN Definition Block now checks for multiple instances for the same bus, and will produce an error at update time. - When the MotoTune Protocol is enabled on the CAN definition block, the mask for Buffer 15 is greyed out, and will be set to FFFFFFFF. - When the MotoTune Protocol is enabled, a calibration called CityID_CAN_x (where x is the bus number) is made available in the "System | System Config | Communication Config" group. This calibration is now setup under the hood to be a NonVolatile Data Store with data type uint8, which can be read and written at runtime, using the standard Data Store Read and Write blocks. The CityID will not actually change until the next key up. - The Encoder Definition block now adds EncoderSyncEdge as a calibration. - The Frequency In block now has calibratable parameters for the FrequencyIn setup. A separate group string is provided for these parameters, different from the group used for pin selection. - The CAN CityID is now available as NonVolatile data store, called CityID_CAN_x, where x is the bus number. - Added "custom" data structure to DataStore mechanism, enabling the addition of a custom structure to the NonVolatile section, and the shadowing mechanism. - Added initial support for the new GCU565-80 module, also known as the TVM. - Added initial support for the new GCU565-24 module, also known as the ISDL. - Added initial support for the new ECU563-48i and ECU563-48m modules. - Made significant improvements to the code-generation build time. This has a more noticeable effect on large models with many probes, calibrations, and other data stores. - Prelookup index arrays may now be either be monotonically increasing or decreasing. Previous versions required monotonically increasing values. Interpolations will be performed as always, but may now line up with prelookup values in the other direction, starting at the opposite end. - Prelookup block now exposes Min and Max values to limit calibration range in MotoTune. - Added the ability to merge NonVolatile calibrations with an .srz file. A new calibration is also available under "System | NonVolatile Storage | NonVolatile Storage Config" called NonVolatileRestoreOnStartup. By default this flag is set to "Load saved application values on next startup". However, when merging a calibration into a new .srz, this calibration may be set to "Load factory defaults on next startup". If this flag is not set, then the factory defaults of the .srz are indeed modified, but on startup, the module will perform its typical operation of checking the EEPROM contents for validity, and will use the EEPROM values over the stored factory defaults if the structure is legal and the CRC checksum matches. - Added a Restore NonVolatile Data Store from Factory Default, which can be used to restore a single named Data Store from the original factory default value stored in FLASH. This block resembles the Restore All NonVolatile Data from Factory Defaults block, but is selective by name, and does not change the NonVolatileStatus. - The Main Power Relay block now contains code to programmatically set the MPRD pin output to (None) if the target module does not support this output pin, such as the ISDL. The rest of the block behavior of the block is unchanged. - A new script called motohawk_push_cals is available, and traverses the model, pushing calibrations from the MODEL_load_cals.m file or any other workspace source into the calibration blocks that depend on the values. The script is smart enough to trace upwards through masked subsystems, if a simple expression is put into a reusable library block for the calibration value, such as "PGain" into the calibration called "IdleAir_PGain" inside of a PID block. The script will find that one of the parent masked subsystems actually owns the value, and will modify that mask parameter instead of modifying the value of the calibration contained inside of the library block. Bug Fixes: - LSO9 on the 128 module has been fixed. - The STARTUP_EVENT now works properly. A bug in the application monitor prevented it from running in version 0.8.0. Also, when used inside another triggered subsystem, the "Runs even when disabled" option is disabled for the STARTUP_EVENT, because it always runs on startup, as though the disabled checkbox were selected. In version 0.8.0, if the "Runs even when disabled" checkbox was not set, but it was used in another triggered subsystem, the event would never occur. This was due to a similar problem as the application monitor on startup issue. Subsystems do not become enabled until after the STARTUP_EVENT in the generated RTW code. The solution is to make the STARTUP_EVENT a special case, which always runs, regardless of the enable/disable status of its parent subsystem. - Fixed a condition where a trigger would cause a segmentation vilation during build if the "Use in an enabled subsystem" option was chosen. - Fixed a condition with Calibrations and Probes where names are unique only by capitilzation that caused a MATLAB crash. - Fixed errors given by Interpolations, Prelookups, Calibrations, Probes, and Data Stores, so that errors only in capitalization produce corresponding error messages. - Added the model include files to the IOCallbacks.c generated file so that access to the work variables is available. - Fixed the Application Monitor block, so that individual settings for the default Foreground, Background, Idle, and Interrupt stack margins are parameters, just like the calibrations. - Fixed the 24-minus-1, 2-Stroke pattern to be a 360-degree pattern instead of 720. It would not work in 0.8.0. - If (None) is selected for a resource in the pin-calibration, then the error in "System | Debug | Resources" will show "Resource not Created". No OS error or FrameworkGlueErrors will be reported. - Added the "Include In Pretty Print" checkbox in the Title Block GUI, which was available before the annotations GUI was added. - Fixed a problem in the fault manager due to sorting the fault and action names. The sort had been performed at the wrong time during the build and could cause very strange behavior because some blocks used a pre-sorted index, and some used a post-sorted index. Now all blocks use a post-sorted index. - Migrated to new Framework build, fixing some TPU problems behind the new Hi-Resolution One-Shot block. - Fixed the CAN_CityID calibration so that the max value is not 1, but 255. - The Target Definition block now requires that the stack sizes be multiples of 8 bytes instead of 4. This fixes some bugs that have been observed at link time. 0.8.0 Migration Notes: - The Framework has been upgraded to Phase3, which is a new ControlCore software release. - Several of the CPUTime probes under the System group have changed. Most notably, there is no more RTI display. Instead there are FgndTime and FgndAngle displays. The FgndTime display encompasses the old RTI counter. - The "Stack Size" parameter of the Target Definition Block has been replaced by "Foreground Stack Size", "Background Stack Size", "Idle Stack Size", and "Interrupt Stack Size". The Phase3 Framework uses different stacks for each independent thread, rather than a single stack. Each one of these needs to be managed independently, and display variables are available under "System | Status | OS" to show the usage of each. When migrating an older model, check the parameters in the Target Definition Block and resize the stacks as appropriate. - The "Debug" group has been moved to "System | Debug | Resources", and there are many other new features in the "System | Debug" group - There is a new Application Monitor calibration group under "System | Debug", which configures runtime monitoring of the stack size, heap size, CPU usage, and OS errors. When any of these margins are violated, the application is stopped, and several new display variables under the "System | Debug" group are now available to help debug the problem. This should improve debugging of watchdog resets and other hard to find problems without the aid of a debugger. It will also catch many of these problems before they reset the module, making it possible to connect with MotoTune to get visibility into the problem and reprogram without a boot key. - There is a new blockset called System Debug Blocks, currently containing an Application Monitor definition block to configure the Application Monitor described above. - As a build is started, the model name is sampled and then used throughout the build process, which should help avoid the DLL/SRZ build version mismatch problem. Also, the model is saved after a successful build, which will guarantee that the build version is saved for future use. - The CAMDelay calibration is now placed wherever the group string indicates in the Encoder Definition block. Even though this variable is owned by the Framework, because it must be available very early on startup for the TPU, the VarDec was deleted from the Framework and recreated in the block, so that the group can be adjusted from MotoHawk. - The Target Definition Block has had its look upgraded. You may need to make this block larger in an older model in order to get the full effect. Simulink will complain on opening an older model about a missing parameter 'usage_stats', but it should go away after saving the model. - The Adapt Table block now references the underlying table data instead of the block name, which is usually the name of the output probe. For example, the name in the adaptive volumetric efficiency blocks should change from 'VolEff' to 'VolEffMap'. An update-time error will occur if this is not fixed. - The motohawk_annotations_lib has been overhauled, and older annotations will be displayed in the text editor as pure LaTeX strings. The editor provides nice plain-text and newline capability, as well as the ability to parse eval strings, so older annotations could be easily improved. New Features: - There is a new set of blocks called MotoHawk Annotations which are now available from the library browser in Simulink. These block have a GUI text editor which allows easy documentation of models in a more attractive way. - Several new encoder types are available. Most notable is the 8X PWM 720-degree pattern, which uses just one pin (Cam or Crank) and rotates through its cycle once per 720 degrees of the engine cycle. The pattern has 8 teeth, with 1 tooth narrower than the rest, indicating TDC of cylinder 1. - The Trigger blocks now contain an extra checkbox when the "Use inside another triggered subsystem" checkbox is selected, called "Run even when containing subsystem is disabled." This allows embedded triggers to selectively either inherit the enable/disable status of the containing subsystem, or continue to run even while the parent is disabled. Note that this feature will not yet simulate, but makeup events will occur upon reenabling of the parent subsystem, so that the correct number of events will be correctly simulated. - The MotoHawk Trigger block has a new parameter called 'Priority Order', which lets the order of independently triggered subsystems on the same event be explicitly sorted. For priorities that are set the same for a given event, then the order is simply implementation-dependent, as it was before this feature was added. - Under the "System | Debug" group, there is an ApplicationStatus display variable that indicates the current runtime status of the application. If any of the new safety margins in the Application Monitor are violated, the application is put into the Stop mode, and certain blocks will execute special code to put the module into a safe state. A variable called ApplicationStopReason will display the reason for the stop. - The ApplicationStatus can be manually set to Run, Pause, or Stop. While in Stop or Pause, the application events do not run, but the connection to MotoTune will still be available to view the state of the module. The only difference between Stop and Pause is that special code is executed on the transition to Stop, which causes actuators to be put into a safe state (high-Z or off), and the Pseudo Encoder is stopped. Note that display variables will hold their state, so that the problem can be diagnosed as best as possible. This means that even though the RPM of the engine stops, for example, the RPM display variable will show the RPM at the time the application was stopped, and not zero. - New debug pause counters are available under the "System | Debug" group for each trigger event in the application. From MotoTune you can set the number of executions to perform before transitioning to the Pause state. This allows single-stepping or multi-stepping of the module to debug state problems online. Setting a counter to -1 means to run forever, which is the default. - A CRC is now created to check the NonVolatile memory when loading from EEPROM to RAM. If an error occurs, the factory defaults will be reloaded. A new block called "motohawk_nv_status" in the Data Storage section allows the model to act on the status of the NonVolatile read and write. Note that a Display variable called NonVolatileStatus is always available in MotoTune under "System | NonVolatile Storage" - The Magic Number used to identify the NonVolatile structure was a time-date stamp in previous versions of MotoHawk. Now it is generated by computing a CRC on the names, data types, data structures, and sizes of the entries in the NonVolatile memory. The order of Data Stores is sorted by name, type, and data structure, to preserve sequence across builds, and due to block reordering during code-generation. This means that loading an iterative build with adapted values already in the module will continue to use the adapted values from the previous software, as long as no changes have been made to the contents of the NonVolatile data. Factory defaults can be forced to be reloaded using the RestoreNVFactoryDefaults variable in MotoTune. - The underlying Data Storage mechanism and Probes and Calibration blocks have been simplified and merged into a single mechanism. This means that the Calibration block behaves identically to a Data Storage Definition block with a single Data Read block, and the Probe block behaves like a Data Storage Definition block with a single Data Write. It is illegal to write to the data definition created by a Probe, but writing to a volatile Display variable is legal. - A new option is available on the Calibration block, allowing calibrations to be stored in the Serial EEPROM memory, instead of the default Parallel EEPROM (which is FLASH on a PROD unit). This makes creating adjustable calibrations even on a PROD device more elegant in the Simulink diagram. These are labeled "Calibraton NV" and "Display NV". Note that variables marked as "Display NV" will not save in a .cal file and will not be uploaded using motohawk_upload_cals, like traditional Display variables, but they will keep their values across a power cycle (a sticky Display variable). - The Calibration, Probes, Data Read, and Data Write blocks have been upgraded, so that the generated TLC code for vectors and matrices is more efficient. A technique called loop rolling is now fully implemented in these blocks, reducing both RAM and CPU usage for large vectors. It also more gracefully handles the fact that MotoTune expects matrices in X/Y format, while Simulink expects data to be stored in Row/Column format. Accesses to calibrations are inlined, so that the ubiquitous extern followed by a move to an automatic variable is no longer used. All calibrations, displays, tables, maps, and data stores are now completely moved into structs, so that the global namespace is not corrupted. - A new block has been added to the Data Storage section which converts from a reference_T type to a uint32. This is generally not recommended in practice, but can be useful in debugging pointers to memory. - There is a new block in the motohawk_smartcraft_lib that allows the default ProjectID and ProductID to be set from the model, so that the values will be setup correctly by default. There is only one popup, which sets both ProjectID and ProductID, because they must be changed as a group anyway. - Added a function called motohawk_create_guid, which calls to motohawk_create_guid.exe in the MotoHawk Bin directory and returns a globally unique identifier as a string. This can be used to mark blocks or models for scripting and tracking. - Added a program into the MotoHawk\Bin directory called motohawk_dumpdll. This can read a MotoTune DLL and dump its contents as a text file, XML file, or m-script. - There are several new version and information strings that are placed into FLASH during a build. These include GUIDs for the model, build, and token, and version strings for MATLAB. - A time counter VarDec has been added to the NonVolatile struct, which keeps track of total uptime, called MotoHawkModelSecondsInUse. - A script called motohawk_latest_version is available, which queries the mcs.woodward.com website and returns the latest MotoHawk version in the same format as returned by motohawk_verison. Bug Fixes: - motohawkrc.m has been updated so that on startup any existing MotoHawk directories on the path are removed before adding MotoHawk to the path. This should avoid any inconsistencies if path2rc is used. - The STARTUP_EVENT in the trigger block would crash during simulation unless the checkbox for "Allow placement in triggered subsystem" was checked. This is now fixed and will simulate at any level. - The Spark Sequence and Injector Sequence blocks would not create the last pin resource if injector or coil per pin was selected. This is now fixed. - A project started with motohawk_project did not correctly eval uploaded calibrations at update time. This is now fixed, but older projects will not automatically be fixed, because motohawk_project is only a template used as a starting point. See the file MODEL_setup.m in a new project to see the difference. - When a large amount of NonVolatile was stored in previous versions, the watchdog would reset the processor because the EEPROM write took too long. The new framework version fixes this problem. Additionally, only modified values are now written back to EEPROM from RAM, so the time to write is significantly reduced on average. - RTW has a bug in R14 that doesn't always generate the elapsedTime information in an enabled subsystem. This is fixed in MATLAB R14 (SP2). The Delta Time block therefore uses the same strategy as R13 in R14, but uses the improved strategy in R14 (SP2). - The SmartCraft data request and control request callbacks are functional again. 0.7.5 Bug Fixes: - Several users have discovered a potential bug in RTW that was revealed in MotoHawk version 0.7.2. The result was empty generated code in an enabled subsystem. The issue appears to be resolved in MATLAB 7.0.4 (R14 SP2). When using a version of MATLAB older than this version, some optimization using the RTW asynchronous library has been turned off, so that MotoHawk models should never encounter this bug. 0.7.4 Migration Notes: - MotoHawk now installs MotoDevelopment version 8.9 as part of its installation (upgraded from 8.7 in previous versions). It is recommended that users upgrade to MotoServerRuntime_8_9_2_1 and MotoTune_8_9_3_7. MotoHawk_0_7_4 has been successfully tested alongside MotoServerRuntime_8_7_2_0 and MotoTune_8_7_3_6 as well, but to reduce the probability of errors, and to aid dianosis, it is best to keep all of the MotoSuite tools synchronized on a user machine. - The MotoServer ports have been changed on a MotoHawk install to include COM1 (Serial) and PCM-1 (CAN). This makes MotoHawk and MotoTune work together better out-of-the-box. This is done by including edits to the Windows registry in the MotoHawk installer. - The Min/Max settings for the ECUP_Threshold calibration, generated by the Main Power Relay block, have been set to 0 to 1023, which is the valid range for an Analog Input. - The ECU555-48 target now supports 8K of serial EEPROM. Most versions of this module have 8K, but there are some older versions (not included in MotoHawk kits) which still only have 4K of serial EEPROM. If your project uses one of these older modules, it is up to the developer to be aware and manage this resource. - Several blocks in the motohawk_annotations_lib have been upgraded with new parameters, notably the Title Block. On opening an older model, several warnings about "Warning: MotoHawk Title Block block (mask) does not have a parameter named 'im'." may appear, but they should only occur the first time the model is opened. - The outputs of the CAN Receive block now hold their values when no message is received, rather than being cleared. This gives probes that are directly attached a more expected behavior. Bug Fixes: - Fixed a bug that would cause the Startup Trigger to not occur in R14 in simulation. There was no impact to code-generation. The simulation behavior is now fixed. - When motohawk_upload_cals runs and creates a MODEL_load_cals.m file for the first time, an error was produced. The script now rehashes the MATLAB path after creating the file and before attempting to execute the script. - Fixed a bug that would cause pins FUEL 1-4 to not save in a PWM block in a Simulink model across a close and reopen. - MATLAB 7.0.4 (R14 SP2) installs in C:\Program Files\MATLAB704 by default, instead of C:\MATLAB704, like previous versions of MATLAB. The script that creates the build stats at the end of a build could not handle a MATLAB installation directory with a space in it. This is now fixed. - Depending on the design, a block with VarDecs will be optimized out at build time, such as when an enabled subsystem is controlled by a constant equal to false. If this happens, the surrounding code will be stripped from the generated code. The VarDecs should also be stripped from the build. This is now fixed and will prevent a build-time error during VarDec parsing. New Features: - There is a new m-function called motohawk_project, which creates a template project directory with an example model using a recommended architecture. Many of the common m-scripts that have been found to be helpful for most MotoHawk projects, such as MATLAB path setup and automatic calibration are included in this initial project. Type "help motohawk_project" for more information. - Added installation hooks for MATLAB R14 (SP2), which has not yet been thoroughly tested. This is provided for users to test MotoHawk with the latest version of MATLAB/Simulink. - If the current MATLAB directory is in the MotoHawk installation area, it will not allow the build to continue. - In the model_probe_eval block (new in 0.7.3), the default name was changed to be the name of the current subsystem. This demonstrates the power of the block, and is very often what is desired by such a probe. - There is a new trigger block called the Subsystem Trigger, which provides explicit function-call hooks for the built-in Initialize, Enable, and Disable subsystem functions, which are part of the underlying design of S-Functions and RTW code generation. These hooks allow explicit cleanup or startup code to be performed on state transitions, for example. 0.7.3 Migration Notes: - The Main Power Relay block now contains code for saving and restoring non-volatile memory. This was sometimes added to projects independently, and the Display variable names will clash with these older projects. Simply remove the save and restore logic from the main model, because the Main Power Relay block now handles this. - After pressing ^B, the model will be updated (like ^D) before building. This should eliminate some errors that are only checked at update time. Also, this should eliminate the occasional problem where the SRZ and DLL versions do not match (sometimes they are off by one). Models that previously built but did not update will now need to be fixed in order to update as well as build. - Removed the Custom TLC Code block from the Extra Development Blocks section. It did not work correctly, and nobody has been using it. The correct way to create custom TLC code is to write an S-Function with an associated TLC file, as per the MathWorks documentation. New Features: - The Main Power Relay block now creates a Display variable to cause a processor reboot. This allows a user to perform the same operation as a power-cycle entirely from MotoTune. - There is a new Encoder Fault Status block under the Encoder Blocks section. This block will provide information about encoder synchronization faults, if they occur. - The Injector Sequence block now supports open/short diagnostics, via Transition Count and Transition Time outputs. If the Transition Count is zero, there is an open circuit. If the Transition Count is non-zero, but the Transition Time is too short, there is likely a short circuit across the injector output pin. - A checkbox labeled "Overwrite Values from Uploaded Calibration" has been added to all blocks that take a Default Value for a calibration from MotoTune. When motohawk_upload_cals is called, it normally creates a workspace struct called MODEL_cals and an m-script called MODEL_load_cals, which cause all calibrations to be overwritten by the current values from the ECU. To prevent this behavior for certain blocks, uncheck the checkbox. This might, for example, be the case for data that is not simply a value, but is an expression, generated from an m-script. - The arguments to the motohawk_upload_cals function have been modified to allow multiple models and multiple modules on the bus. The old behavior can still be obtained, but will require extra arguments. Type 'help motohawk_upload_cals' for more information. - The Fixed-Point calibration blocks now also pick up data from the struct created by motohawk_upload_cals, which was added for non-fixed-point blocks in 0.7.2. - The Simulink model name used for a build is now stored in a VarDec called MotoHawkModelName, under "System | Version". - There is a new motohawk_model_probe_eval block in the Extra Development Blocks section. It is functionally equivalent to the older motohawk_model_probe block, but has an eval string for the probe name, and allows the MotoTune group to be parameterized. - There are new Display Variable Event blocks in the Extra Development Blocks section. These create popup Display variables that when set cause an event call. The variable automatically clears, and the blocks output either a function-call or a boolean signal which will be true for one tick. This is a similar idiom to the "Clear All Faults" MotoTune Display variable in the Fault Manager. - Added an Injector Current Select block that selects between 3A peak and 1A hold or 6A peak and 2A hold on the ECU565-128 module. Bug Fixes: - In 0.7.0, the name of the build directory changed to "model_Build", but the Target Definition Block was not updated with this change to be able to present the Build Stats. This is fixed, and the Build Stats display correctly again. - Turned off a compiler warning about a "poinless comparison with 0" for unsigned integers. There are some places where this cannot be avoided in code generation, and the compiler will optimize these conditions. There should be no warning to the MotoHawk user. - Fixed a bug in the PWM Injector output block, which prevented the duty cycle and frequency from updating after initialization when the output pin is calibratable. - Fixed an enumeration string bug in the Data Store Definition block, where using an enum starting with digits would cause a build-time RTW error. This was fixed by passing the enumeration string down to RTW using a different RTW S-Function call. 0.7.2 Migration Notes: - The script 'motohawk_upload_cals' has been changed to create a struct called MODEL_cals, where MODEL is the name of the current model. The struct contains a value for each calibration, table, map, prelookup, and pin calibration in the model. This is similar to the previous behavior, but does not clutter the workspace. Also, two such structs can coexist, using different names for different models. This allows more than one model to be open at the same time. - The calibration, table, interpolation, and prelookup blocks have been changed to automatically lookup a value from the struct defined above, using the name of the current model as the name of the struct, and the name of the calibration, table, or prelookup as the entry in the struct. Whatever values were placed into the block become default values in case the struct does not exist, but if the struct does exist, the struct wins. This makes creating calibrations that can be modified in MotoTune and put back into the model very simple. No rigorous naming conventions are necessary. Also, reusable library blocks such as a PID containing calibrations, do not need to have the values for every possible calibration accessible via the overlying mask. Nor do the expressions placed into such masks need to have strict naming conventions. - The upload calibration features have been added for the encoder definition as well, when selected to be calibratable. New Features: - Added an option to the EST block to input a Max Duration in microseconds. This will prevent coils from burning out if the RPM goes to zero and never reaches its stop angle. The input is an option, because there is some additional CPU overhead for this feature if it is unneeded. - Added DEV+PROD option on the Target Definition Block, to build two .srz files and one .dll. Each of these files will contain the same code and use the same .dll, but one will be built for a development module, and one for a production module. This would be the recommended way to build models that are going into production. It is still possible to select just one of these options, such as only DEV, which is still the default, so that the extra disk space and link time isn't spent during iterative development. - The Delta Time block now makes use of the elapsed time feature of R14, saving RAM, FLASH, and computation time. - Added LittleEngine example to the Examples directory. This example model illustrates how to construct a very simple controller for a 4-stroke, 4-cylinder EFI gasoline engine. It simply uses a MAF sensor to determine airflow, converts this to APC (air per cylinder), and uses APC and RPM as inputs to tables for Spark Advance, Spark Energy, End of Injection Angle, and Injection Duration. - Added new Fixed-Point blocks for communication with MotoTune. These blocks have a B-Scale parameter that is used to determine the Gain/Offset/Exponent so that the calibrator sees the values in engineering units, even though the Simulink signal physically contains fixed-point integer values. The B-Scale is displayed on every Fixed Point block, and there is a passive B-Scale label block, so that the B-Scaling operations are displayed clearly on the diagram. - A fixed_point_example.mdl file was added to the Examples directory, indicating similar operations using Fixed-Point and Floating-Point. The blocks simulate side by side and display similar results, and when built on a module, the same values are seen in MotoTune. Bug Fixes: - When using a trigger inside of a triggered subsystem, no code would be produced in R14. This is now fixed, and the triggers have been updated to use asynchronous timers for absolute and elapsed time, which is a new feature of R14. - Added a fix for a rare code-generation problem using prelookups and interpolations, where an error about a "MotoHawk interpolation block must be driven by a prelookup block" would be incorrectly produced. - The PWM and PWM Injector blocks caused errors during update time because of the name, if the Frequency Mode parameters was set to anything but Low. The S-function was reading the wrong parameter for VarDec name clash checking. This was fixed, and shouldn't affect the code-generation at all. - Fixed the Data Definition block when a reference type is selected for the data definition type. Previously, the display would show ??? - Fixed a bug in the Data Store Read/Write blocks, when reading an entire data structure at once, if the provided row/column or vector size was a bad parameter. An S-Function crash would occur, but will now produce a clean error message. - Fixed a code-generation error in the the Data Store Read and Write blocks, when using a dynamic reference to read or write an entire vector or matrix, without the null-reference check. Extra curly scope braces were required in this case, and would cause a compilation error. 0.7.1 Migration Notes: - The SmartCraft Data Request and Control Request blocks have been split into three blocks per callback, instead of just two. The first block is the trigger, the second is the data provided by the callback to the application, and the final is the result or return value of the callback. This is required due to an issue in R14, where blocks that provide asynchronous triggers cannot also output data. - All trigger blocks now contain the parameter 'Allow placement inisde of a triggered subsystem', not just the main MotoHawk Trigger block. This includes the CAN Rx Trigger block, the Frequency In Trigger, and the new SmartCraft callback triggers. Bug Fixes: - When MATLAB starts up, a warning was produced saying "MATLAB and MotoHawk are not installed on the same drive". This was caused if the drive letter differed by case, like 'C:' and 'c:', or if '/' was used instead of '\' as a directory separator. These cases are now fixed. - If a custom pin name is provided, the debug VarDec will use the custom name, and it could result in a name that is too long. This is now fixed by truncating the debug variable name, and providing a UID to uniquify the variable, when it results in a long name. - Because the Wide-O2 Sensor is also a PWM behavior, the resources for this behavior must be pre-allocated from the heap like a normal PWM. This was not taken into account in 0.7.0, and is now fixed. New Features: - The CAMDelay calibration is now available when the Encoder definition block is dragged into a model. Unfortunately, the group is not adjustable, because MotoHawk does not yet have direct access to modify calibrations in the Framework. A future release will allow this and other Framework calibrations to be more easily set from MotoHawk. 0.7.0 Migration Notes: - The Target Definition Block now provides a different default SRZ and DLL name. A build version is added to the end of the model filename, and this version autoincrements after every successful build. The build version can be explicitly set using the command 'motohawk_build_version'. If the old behavior is desired without the build version suffix, modify the explicit SRZ and DLL names to be the function 'bdroot'. - Error checking has been provided at update-time for I/O pin assignments. These errors may prevent older models from updating, but these errors are real and would have caused build-time or run-time errors. - In previous versions of MotoHawk, it was legal to use multiple input resources referencing the same resource, such as multiple Analog Input blocks to read ECUP. This functionality is no longer supported, but new I/O 'read reference' blocks are available, which allow reading from a resource without defining the resource. One of the input resource blocks must be a definition block, and the others simply access that block. This feature was added primarily because MotoHawk now supports calibratable pin assignments. Older models may not update correctly. Please make changes to the model as necessary. - The Fault Definition block now has eval text fields for the Fault Actions that it references, rather than popups. The popup technique had a bug which would prevent any selections from being valid when the model is closed and reopened. This has been an issue for quite some time, so it is expected that nobody has been using these fields directly in their models. As older models are opened using this version of MotoHawk, some errors may occur due to this change complaining about the parameter 'action1'. Simply update several times through these errors, and then save when the model updates successfully. - Better case checking has been added to avoid errors in the build or in MotoTune. Faults, VarDecs, and DataStores must have truly matching case names, or be truly unique. For example, it is not legal to define a DataStore as 'abc' and read it as 'ABC', because names must match exactly. It is also not legal to define one probe called 'def' and another called 'deF', since names must be truly unique, including case. This may break some eariler models, but they should be fixed anyway to avoid possible bugs in code generation or in MotoTune. - The Tachometer output block has been removed because it was never implemented. It will be readded when it is fully working. - Better error checking has been added to the Data Storage read and write blocks. When a dynamic reference is used to perform accesses, errors will stop a simulation if an index is out of bounds, or if an unexpected null reference is encountered. This may break older models that ignored these errors. New Features: - MotoHawk has been successfully tested under MATLAB 7.0.1 (R14.1) and the installer will now allow integration with this version of MATLAB. - New help is available for MotoHawk via the command: "help motohawk". This is a root help file for many of the available command-line functions and scripts to make development easier. Typing "help " will give more detailed help for many of the built-in scripts, and more of this will be added in future releases. - A new help system has been setup for blockset documentation and other documentation related to using MotoHawk. The help system is integrated with MATLAB, and should be available on the MATLAB help browser like all other built-in MATLAB toolboxes. Each block has a link to a corresponding HTML file in the MotoHawk Documentation directory. This help system will be expanded in the future. - All of the I/O blocks now support calibratable pin assignments, which allows setup of the pin resource via a calibration in MotoTune. Changing the pin in MotoTune takes effect at the next power cycle of the module. - One of the options for pin resource selection is now "(None)", which does not create the resource. This is useful if the design is capable of more features than there are pins available. Selecting a proper subset of resources would then be done at calibration time instead of build time. - A Wide-Range O2 Sensor block has been added to the Analog I/O blocks, which provides access to the ASIC onboard the ECU565-128 module. - The PWM and PWM Injector blocks now support for reading the module's current feedback circuits. Not all modules support this feature on all pins, and there is no support to prevent invalid settings (yet). In addition, these blocks can output a fault status, which can be used to diagnose disconnected drive circuits. Similar outputs will be coming to injector and spark blocks in a future release. Bug Fixes: - In 0.6.6, the .m files were converted to .p files, eliminating any help that was available for those functions. The help has been restored by including .m files containing only the help for the commands, while the actual code is encrypted in a .p file of the same name. - The SmartCraft DataRequest and ControlRequest blocks have been fixed. The outputs from these blocks did not correctly propagate to the triggered subsystem. - Fixed a code-generation order problem in RTW caused by triggers embedded inside other triggered subsystem which are triggered via Goto/From blocks. The RTW error was related to "CurrentTID". - Fixed the fault marquee, where "(None)" would show up in the list of faults. "(None)" should only be displayed if there truly are no faults. - Fixed a bug in the DataStorage blocks, where the 'reference' data type is used in a data definition. If a non-null default value for the reference was used, the pointer could be invalid. This is now fixed and tested. Notes: - The development environment for MotoHawk has been modified to have two separate copies of MotoHawk: a development version and a release version. The installer contains the release version. The development version is used for making changes to the source code. This does not affect users, but is inluded in the README to mark the major environment change. 0.6.6 Migration Notes: - The Main Power Relay block in MotoHawk_lib has been changed to contain a MotoHawk Trigger for the BACKGROUND_BASE_PERIODIC task. This allows the block to be placed anywhere in the model, like most other 'definition' blocks. - All .m files in the installation are now replaced with encrypted, precompiled .p files. This change should not change the behavior, but does mean that the source code for MotoHawk scripts will be hidden from users. - All .c files for S-Function MEX DLLs are also removed from the installation, for added security. New Features: - A new block under Analog I/O called PWM Injector allows driving of low-impedance injectors using a PWM, without defining an encoder. - The probes generated under the Debug group are now enumerated text strings, rather than large numbers, which should make debugging resource creation errors significantly easier. Bug Fixes: - The installer has been updated to more robustly handle uninstallation, and to handle installation over a previous version. 0.6.5 Migration Notes: - VarDec and Data Defintion names must now be unique including case. Now VarDecs with names 'calibration' and 'Calibration' will clash and give a uniqueness error. MotoTune does not allow names with only a difference in case, so this check prevents a runtime error in MotoTune. Older models may need to be upgraded in order to update. Bug Fixes: - The SmartCraft Control Request block would not build, and would give and error claiming that a Control Request block must exist in the model, even when one existed. This is fixed. - The WorkspaceVariable block in the annotations library has some extra logic to convert variable names to TeX, so variables with underscores won't display as subscript. - Instead of having multiple project_id entries in the TDB tables, unused tables use their revision number as the dummy VarDec. This prevents multiple project_id entries from appearing in the Engine Config calibration. - The Frequency In Trigger block would not update, complaining about a parameter 'resource_list'. This is fixed. - There was a bug using enumerations in the Data Definition Block. It is fixed. New Features: - A new "Fixed Point Blocks" group is added to the MotoHawk library. This library contains blocks to do arithmetic using B-scaling. There is no connection to the Simulink Fixed-Point Blockset. - A new block 'motohawk_replicate' is available in the Extra Development Blocks. This block copies its input to its output, replicating as necessary to fit the new size. This lets a scalar become a vector, or one vector to become another. - The Calibration, Probe, Absolute Override, and Data Definition blocks now support a View As Text popup option. This allows vectors or scalars of uint8 to be viewed in MotoTune as a string. 0.6.4 Migration Notes: - The Pretty-Printer is still being worked on, and was removed from the MotoHawk distribution. It will be added back when it is stable, documented, and its interface is more defined. Bug Fixes: - When no CAN definition blocks are in the model, extra code is generated so that the MotoTune protocol may accessed via both CAN interfaces. There was a bug in the generated code, which included adding code fot the HCS12, when the target is PPC. This bug is fixed. - ESTConvert and MotoConvert are now explicitly executed from the build.bat file instead of being called by a 'postexec' option to GHS. If any errors occur while these programs run, their output will appear on the screen and in the log. New Features: - The serial definition block now installs an error handler, which increments debug counters for each type of error. These are available under the Debug group in MotoTune. 0.6.3 Migration Notes: - The motohawk_event_call block has renamed its 'event' parameter to 'trigger', which may break an existing model that uses this block. Most models do not use this block, except for the Main Power Relay block in the Extra Development Blocks section of the MotoHawk library. The Main Power Relay block has already been updated. The renaming was necessary so that the motohawk_setup_triggers function would work on that block in addition to the motohawk_trigger block. This function sets up the list differently depending on the target, which is different for the HCS12 and MPC5xx. New Features: - Table and Interpolation blocks now have Min Value and Max Value parameters. - More HCS12 implementation. A successful build has been performed. - The Main Power Relay block now has a Data Storage Definition block inside, which exposes a variable called MPRD both as a VarDec probe and which can be read using a Data Storage Read block, to determine if the relay is being driven on. This is useful for disabling sensor range faults while the relay is off. - MotoParser has been upgraded and no longer pops up a progress bar during the build while parsing for VarDecs. - Added a 'Startup Calibration' option for the calibration block behavior. This is a calibration, which is output as a signal only at power up. Any blocks that are connected to it will only execute once. This prepares the way for some blocks to provide startup signals instead of parameters, so that MotoHawk blocks can configure themselves at startup, depending on a calculation or calibration at run-time, instead of only at build-time. Bug Fixes: - Cleared the default values for explicit links to other blocks in the Table 2D, to be like all of the other lookup table and interpolation blocks. - When uninitialized table variables are entered into the Table or Interpolation blocks, the display will now indicate '(Bad Table)' instead of generating a warning and showing ???. - cal2m.exe now releases its conection with MotoServer after running. motohawk_upload_cals uses this executable to create a calfile. - The 'rehash' command is now called after MATLAB starts up, which should update the path and make any new MotoHawk commands or libraries visible. This is now needed because MotoHawk is installed outside of the MATLAB toolbox. - In 0.6.0, the prelookup and interpolation code was placed into separate reusable functions, to reduce code space. The generated declaration and definition of the prelookup did not declare a return type, but the compiler defaulted to 'int'. This caused a compiler problem in CodeWarrior, and was fixed. - The Adapt Table block had its row/col indices reversed relative to the stored data. - The magic number for NonVolatile data was incorrectly generated, and was zero every time. 0.6.2 Migration Notes: - You may see a warning saying that the parameter 'proc' is undefined from the Target Definition block. This should only occur once as your model first updates. New Features: - Added support under the hood for MotoHawk HCS12 and compiler-independence. This work is still in progress, and will not be available for some time. Set 'motohawk_allow_hcs12 = 1' in the root workspace for developer access: .Put all #pragma statements into a separate TLC library. .Added target-dependent popups for the Trigger block, similar to the I/O resource blocks. .Setup global TLC variables identifying the processor and toolchain. .Added code in several I/O resource blocks to handle different processor libraries. .Broke up Lib directory into PPCLib and HCS12Lib, containing ControlCore libraries for each processor. .Added the notion of a processor family, which now contains "PPC" and "HCS12", which is different from the processor type, which may be "MPC555", "MPC565", and "HCS12". Bug Fixes: - In 0.6.1, the Target Definition block would not open when double-clicked. This is fixed. - The option on the Trigger block for 'Allow placement inside another triggered subsystem' would cause an infinite loop in simulation when checked on a non-periodic subsystem. The behavior when checked on a non-periodic subsystem is now correct, and should be checked even when the trigger is non-periodic, e.g. on TDC. - The CAN Rx trigger correctly handles being placed in a triggered subsystem in R14. - Data Store Read/Write blocks did not allow overwriting of their output ports, which would disallow connections to merge blocks. This is fixed. 0.6.1 Migration Notes: - The CAN Rx block previously had a parameter called 'mask', which was conflicting with the built-in parameter 'Mask', which identifies whether the block has a mask in Simulink. The parameter name has been changed to 'mask_type'. Almost all designs use the default mask_type anyway (Full-bit Comparison), so this shouldn't be a problem as designs are upgraded to 0.6.1. New Features: - This version of MotoHawk has successfully been used to build using R14. An engine application has been used to test this, and it runs as expected. Much effort was spent to make MotoHawk and models that depend on MotoHawk independent of the MATLAB version. Therefore, models built with R13 should work without modification under R14. - A new library motohawk_smartcraft_lib, which contains blocks to interface with the MotoTron protocol callbacks. These functions allow control and data request packets to be accessed in a transport-layer-independent manner. Only one of each of these blocks may exist in a given model. - Added a Fault Clear block, which when triggered, clears all faults, just as if the user had selected 'Clear All Faults' from MotoTune. - The CAN definition block is no longer required if it is only being used for a connection to MotoTune. This gives the user the expected behavior when no information about CAN is given in the model. It also reduces the canonical MotoHawk model to a single Target Definition block. If no CAN connection is actually desired, explicitly setup a CAN definition block with no buffers and the MotoTune Protocol disabled. - motohawk_setup_rtw now gracefully handles model configuration for MATLAB R14. A new mechanism called Configuration Sets are used to setup RTW and simulation parameters. - A high-resolution timer is now available from ControlCore and is exposed via the Absolute Time block, for use in models that respond to real-time events and require the current time. The time is available as a floating-point double in secnods, which always rises but loses precision as the value grows (it's floating point!). It's also available as a fixed-point uint32 in microseconds, but it will rollover to zero after about 71 minutes. - The Delta Time block makes use of the high-resolution timer, as well as the RTW notion of absolute time. Time is now accurate to one millisecond throughout the model. Prior to this release, it only had 5ms accuracy. - Each version of MATLAB now has a different RTW library in the MotoHawk release, one of which is copied to the build directory, depending on the version of MATLAB used to generate the code. Bug Fixes: - In MATLAB 6.5 and earlier versions, the documented external Windows .dll interface doesn't seem to work. Therefore, the 'motohawk_short_path' function, which calls a win32 dll fails. This was fixed by creating a command-line program called shortpth.exe in the \Bin directory, and calling it from 'motohawk_short_path'. - motohawkrc.m, motohawk_directory, and motohawk_short_path were all modified, so that the MotoHawk path is always derived using short path names, without spaces. This removed compatability problems with RTW in MATLAB 6.5 and earlier, which did not include custom .tlc files with quotes, and therefore failed when the .tlc files were located on a path with spaces in it. - If motohawkrc.m is called a second time, and MotoHawk is already installed, it simply reports the installation status, without reinitializing the path. - Fixed the installer, to be more robust to existing versions. However, it is always good practice to uninstall an old version of MotoHawk before installing a new one. - The Target Definition block no longer calls motohawk_setup_rtw at update time. Instead, motohawk_setup_rtw is called when the block is added to the model, when the model loads, and before the model is saved. This is needed because Configuration Sets in R14 cannot be changed at update time. - The include directories passed in via Simulink are now ignored in the template makefile. Instead, as changed in 0.6.0, the appropriate header files are copied into the build directory so that the build can be performed on another machine without MATLAB or MotoHawk installed. - In R14, RTW generates a file called rtwtypes.h, which contains typedefs for each native Simulink data type, such as uint8_T. Previous versions of RTW allowed the real_T and time_T types to be parameterized via a #define, but for some reason, this was removed in MATLAB 7. In order to preserve this very valuable feature, the generated file is deleted, and a known good copy is used from the MotoHawk R14 RTW library. - To support R14, the setup_build.bat file now adds rt_nonfinite.c to the .bld file if it exists in the current directory. RTW does not allow adding this file via the TLC function LibAddToModelSources. 0.6.0 Migration Notes: - The new MotoHawk installer will install any components that are needed, so there is no requirement that MotoDevelopment, MotoServerRuntime, or MotoTune be installed in addition to MotoHawk. However, this and future versions of MotoHawk will require MotoSuite components with version 8.7 or greater, which are now available on TestTrack as a Product Release. Therefore, if you currently have any older versions of these components installed on your machine, please uninstall them before installing MotoHawk, and reinstall only any new components that are needed. Normally for MotoHawk developers, this would only be MotoTune. MotoDevelopment is no longer explicitly needed as a separate install. Those parts of MotoDevelopment that are needed are installed along with MotoHawk. - The deprecated blocks have been removed from the library. These blocks will no longer be supported. - New features have been added for error checking to each I/O block. When opening an older diagram, several warnings may be printed, but these should only appear once. This is normal, and no data should be lost. - The Override blocks no longer provides a probe for the value on its incoming wire. This VarDec used to appear as "VarDecName_in" in MotoTune. If this behavior is still desired, you must explicitly add a probe to view the input value. New Features: - Moved to a new installation procedure, which uses a standard Windows InstallShield .exe and guides the user through the process. It automatically does the setup with MATLAB and handles versioning between different MATLAB / MotoHawk combinations. - Changed the build environment so that everything needed for a build is brought in the build directory prior to performing any processing. The processing, such as VarDec parsing, compiling, linking, and creating the executable .srz are performed by a script called "build.bat" which is created at code generation time. Invoking this batch file is the last action in the build process. This allows a developer without a MotoHawk or MATLAB installation to perform a rebuild of generated source code. This is an ongoing project and will improve over the next few versions. - If the Green Hills Compiler is not installed correctly or the license is not correct, MotoHawk builds will continue to generate code and build scripts, rather than stopping without generating at all. The generated build directory can then be moved to another machine with Green Hills installed, and the build can proceed there, by running "build.bat". - Added support for enumerated types to the Probe, Calibration, Override, and DataStorage blocks. A cell array or struct defining the enumerated type names and values can be entered into the block and provides textual names in MotoTune. - When the target is changed via the Target Definition block, if any I/O resources become invalid, an error will be generated by the corresponding I/O block, giving the user an opportunity to select a new resource. Setting the variable 'motohawk_allow_all_resources" to 1 will force the resource lists to contain all possible resources for all targets, even though runtime create errors may occur. - Added a checkbox in the Trigger Block, which will allow placement of periodic triggers inside of other triggered subsystems. The blocks will attempt to simulate as best as possible, but will be synchronized to their calling trigger, but will function as expected on the actual target. This was not allowed at all in previous versions, and Simulink would complain. - Some basic support for Matlab R14 has been added. More will be coming in future releases. Matlab R14 is not yet fully supported, but this work is in development. - Common table prelookup and interpolation code is now generated into reused functions, one per data type that is used in the model. This was done to save some code space. There was an improvement of about 5-10% in the generated code size. Bug Fixes: - Fixed the Encoder Definition block, which would occasionally show one value on its mask, but build with a different value. This is now fixed. - Attempting to build a model while the current directory is in the current MotoHawk installation directory will produce an error, even if MotoHawk is installed outside of the Matlab toolbox. - I/O blocks no longer depend on the MaskType field to setup the enumerated list of resources. This allows more user-friendly MaskType strings to be used at the top of masks. - The serial EEPROM size in the linker file is now modified depending on the target, even if they use the same processor. (ECU555-48 and ECU555-80 have different EPROM sizes). The report at the end of the build also shows available space depending on this value. - The Knock Definition block now checks for the recommended ModClkF setting, which is used to make ProSAK calibrations based on time and frequency identical between modules. - Because of the code-generation order, the Adapt Table block would sometimes fail to find the index variable for the associated table. This has been fixed by placing common code into a motohawk_table_lib.tlc file, and declaring all tables in a different order. 0.5.7 New Features: - Added a function motohawk_show_vardecs, which will provide a formatted list of VarDecs in a model or under a subsystem. The listing will be sorted the same way MotoTune sorts VarDecs, so that the user can quickly review the calibration interface from MotoTune without requiring a total rebuild. Bug Fixes: - Fixed the calibration of Constant data storage, including data defined using DataStorage Definition blocks, and Tables. Some of this data was incorrectly placed in the wrong memory section, and couldn't be calibrated on a DEV ECU. - Improved the performance of the Injector block, by only making API calls when values change. Typically, the enable input and the peak time change more rarely than 5ms, and these calls are expensive in CPU time, so this enhancement typically gains 4-5% of the CPU time, if the block is placed in the 5ms RTI task. - Fixed motohawk_build_version, which would autoincrement from 19 to 110, instead of to 20. - When non-finite values (inf or -inf) are used in a delta-time block for the initial value, if no other blocks use non-finite values, an error would be produced. (rtInf not defined) This is now fixed, by declaring to RTW that a non-finite value may be needed by this block. 0.5.6 New Features: - There is a new function 'motohawk_build_version' that can be called from the command line or inserted into evaluated block parameters. This version is autoincremented when a build is successfully completed, and it will be saved as a parameter of the root model. Typing 'help motohawk_build_version' will give more information on its usage. - The Title Block in the motohawk_annotations_lib now uses the motohawk_build_version as its version string. Bug Fixes: - The Adapt Table block was missing from the MotoHawk_lib.mdl file. Now it is there. There is also an adapt.mdl demonstration model in the Examples directory, which should give an idea of how to use the Adapt Table block. - After adding adaptive tables and the 'Constant' storage selection in Data Storage definition block, the location of constant tables and data was placed in the constant area, not the calibration area. MotoTune would give a message saying that the variable is not modifiable (similar to the message when trying to calibrate a PROD module). This is now fixed, by placing Constant storage in the calibration space. - In the Calibration block, selecting 'Inherit via backpropagation' for the data type would also inherit the dimensions of the signal. This is not the same behavior as the built-in Simulink Constant block. The block was fixed so that selecting this option will only set the data type and not the dimensions. The dimensions always follow the size of the 'Initial Value' data field. 0.5.5x Bug Fixes: - In 0.5.4, there was a claim that a Knock Gain block was added. The claim was a bug. This bug has now been fixed. 0.5.5x contains the Knock Gain block. 0.5.5 New Features: - Added motohawk_annotations_lib.mdl, and motohawk_pretty_print.m. These blocks and scripts are the initial versions of a set of attractive annotations to help document models. More will be added in later releases. The pretty printer will create a Microsoft Word document that contains most of the useful information about a model, including select pages of the graphical Simulink model, tables for the calibrations and variables, and management information such as to-do lists. - Added a new Fuel Injector block, that supercedes the old Injector Sequence Out block. This new block is capable of driving Peak & Hold Low-Impedance injectors, and can generated transient make-up pulses for each cylinder. 0.5.4 New Features: - Added an Adapt Table block, that takes a value to be added to a 1-D or 2-D table, and adds it 'around' the currently looked-up position. If the table is near a point, the entire value is added to that point, but if the table position is between two or four points, then the value is distributed to the neighboring points, by either adding half of the value to two points, or one quarter of the value to four points. - Added CityID and MotoTune Group String to the CAN definition block. The entered CityID is the default value at build time, but it is also available via a calibration, placed at the location defined by Group string. - Added the ability to attach a VarDec to DataStorage definitions. The DataStorage Definition block now has most of the parameters available to a Calibration block, and allows design patterns such as single-definition / multiple-use for calibratable constants used throughout the design, and the ability to use MotoTune to adjust large tables accessed using DataStorage blocks (such as a custom CAN protocol). It also allows MotoTune and the design to both write to a single value, such as allowing the user to set a variable to 1, and then letting the software clear it to zero when finished. - Reversed the ordering of DataStorage blocks under the hood, so that all data is stored in X/Y format, rather than Row/Col. Simulink natively uses Row/Col, but MotoTune and the table blocks use X/Y. This prepares the way for adaptive tables. - Added a parameter 'Storage and Accessibility' on the Tables and Interpolation blocks. This locates the table data in one of the DataStorage sections, and adaptive tables can now be implemented by using DataStorage Read and Write blocks to access the data by name or by reference. - Added a Knock Gain block, that allows dynamic selection of the gain in the ProSAK device to 1X or 2X. The Knock Definition block now has a default gain, that will be used until the gain is adjusted via the Knock Gain block. The calibration from MotoTune has been removed, but similar behavior can be obtained by connecting a Calibration block to the Knock Gain block. 0.5.3 Bug Fixes: - Fixed "???" on encoder definition blocks at model load - Displayed value on Calibration block uses the Gain, Offset, and Exponent values, so that the value on the block matches the value in MotoTune. The 'Initial Value' is still the raw value before Gain, Offset, and Exponent. New Features: - Explicitly counts the number resources used of each behavior, and pre-allocates heap space. This gives a significant overall gain in terms of memory usage. - Added 'DEV' or 'PROD' printout to beginning of build, and is included in the log. - Added new Encoder TDC Offset block to adjust mechanical vs. electrical TDC at runtime. - Interim Engineering release to test Knock Block functionallity. See example in in examples\knock1.mdl - Framework updated to allow automatic CANKING authentication with DTS systems. - Added PROSAK filter coefficient block for nice looking calibration, improved calibration look for knock cylinder firing order. - Added 36-1 with 1 tooth CAM option to encoder. - Added MotoTron Security Functions for smartcraft compatibility. To authenticate Smartcraft, after programming, set Product ID calibration to '9872 MC'. Product ID secret decoder ring: Mercury Outboard = 9871 MO Mercury Racing = 5320 MR MerCruiser = 9872 MC Kohler Genset = 6411 KG Whipple Industries = 7600 WI Hyundai Demo = 7601 HD EdelBrock = 3488 EB Buell Firebolt = 6477 BF - Corrected filter cofficient scaling for negative numbers. Corrected sensor select per PROSAK Errata. - Added 'Read Prosak registers' block. - Corrected MKIKS setting to fix compile error. Added MKIKSEnable and TDC1_Offset calibrations. - Added Calibrations to Knock Definition Block. Added Firing order to Knock Results Block. - Added annotations_lib.mdl and OS_Title.jpg to examples folder. (This is temporary). - annotations_lib.mdl in /Examples updated with new title block for models. 0.5.2 Bug Fixes: - Fixed an issue in the Framework with TPU_N masks. They are now enabled and do not report OS errors at runtime. - Fixed a memory leak in the Interpolation 1-D block. The VarDec for the output was not being properly deleted from the error-checking list. - Fixed a build issue that would cause dllwrap.exe to fail when generating the TDBDLL. The generated error indicated that 'ld' could not be found. Passing an extra flag to dllwrap.exe solved the problem. Builds have been tested both with and without MotoDevelopment installed, and both with and without an external gcc tool (like the compiler with Cygwin). MotoDevelopment is no longer required for MotoHawk installation. - Upgraded the demo and other example models to work correctly with 0.5.x. 0.5.1 Migration Notes: - The resolution of the PWM block has been changed. Rather than taking an int16 ranging from -100 to 100, the block now takes an int16 ranging from -4096 to 4095. This is the native resolution of the PWM peripheral, and allows finer control of the duty cycle. To migrate from an older design, multiply the duty cycle entering the block by 40.95. - The encoder definition block has been changed. Please reopen the block and reselect the appropriate settings. The block now dynamically filters invalid settings from the popup lists, and reduces the choices to only those valid for the selected target. Most of the options have disappeared, and are now selected from a single popup list. Bug Fixes: - PROD builds for PCM128 now link correctly. The calibration space for PROD builds was set to the wrong memory address. New Features: - Added a MotoTune Group option to the Main Power Relay block, which allows the generated VarDecs to be placed anywhere in the MotoTune group tree. - Added a Shutdown Power block, which turns off the internal power supply on the ECU565-128. On other targets, this block does nothing, since power is controlled with MPRD. - Added the Shutdown Power block to the Main Power Relay block, so that similar behavior will be obtained on the ECU565-128 target. This change does not affect other targets. 0.5.0 Migration Notes: - The new Framework uses more heap memory, and less global memory. This improves total memory usage by only using RAM for resources that are actually used. Check the PeakHeapBytesUsed variable in MotoTune, to make sure that enough RAM has been allocated to the heap, in the Target Definition block. - The options on the 'Storage Class' parameter of the 'Data Storage Definition' block have changed. Volatile and NonVolatile are now Volatile (Display) and NonVolatile (Display), to distinguish it from NonVolatile (Calibration) and other future types. - The naming conventions for the generated VarDecs for tables and prelookups have been changed. See the help under each block to see how they have changed. Functionally, there is no difference, but new 'Input Name' and 'Output Name' parameters are available, which allow user-defined VarDecs to be connected to the input or output of tables. The supplied names must be the name of a probe, calibration, or table block in the model. Leaving the name blank (which is the default), will result in similar behavior as before, using a generated name with a suffix. Currently there is no error checking at Simulink update time for ensuring that the 'Input Name' and 'Output Name' parameters are valid. These will be caught at build time. (Update time checking TBD). Bug Fixes: - Check for invalid S-Function parameters before use in Fault Definition block. - The Target Definition block checks that a multiple of 2048 has been entered into the Heap Size. - Calibration block now complains when an infinite value is used as the default value, and the output signal is an integer. - Fixed data type of read-index for Data Store Read bock. It is now dynamically typed, like the Data Store Write, rather than being forced to a double. - Fixed read/write entire data structure at once behavior for matrices. Previously, some additional bytes were read at the beginning of the matrix. - Sorts the order of Data Storage variables in the generated structs, so that memory is packed with as few holes as possible. This should also fix any alignment bugs that were related to NonVolatile variables. - When no raw ControlCore OS events are defined in the model, but user-defined events (specifically, STARTUP_EVENT and SHUTDOWN_EVENT) are present, a compiler error would be generated. This is now fixed. - When a Calibration block directly drives a Merge block, it is not legal to optimize the RAM usage for the calibration, to share any already-allocated space. Previously, connecting a Calibration to a Merge would cause the Merge block to output the value from MotoTune, even if the subsystem in which the Calibration resided wasn't enabled. This is now fixed by creating a copy of the variable which may be modified by MotoTune, and which is only used when the enabled subsystem runs. If only a Data-Conversion block is between the Calibration and the Merge block, this fix will not work. - Delta Time now correctly handles being placed into an enabled subsystem. When the states of the subsystem are to be reset (as indicated in the Enable block), the output falls back to its Initial Value. If the states are to be held, it will 'catch up' and output the time since the block last executed. - Fixed a bug in the display of hierarchical checkboxes, like in the Calibration block, where the 'Show Additional Parameters' checkbox controls the visibility of 'Show MotoTune Group', which in turns controls the visibility of 'MotoTune Group String'. - Calibration block can now handle bad data from the mask, and will defer error checking until update time. This lets you type in variables that don't yet exist. - Fixed motohawk_vardec_path to accept block names with '/' in them. Previously, a strange empty group name would appear in MotoTune if a block or subsystem name contained '/'. - When using Transfer Upgrade in MotoTune, an error would occur, saying that the DLL could not be found. The error was misleading, and was related to the building of the DLL. This is now fixed. - Moved size and data type checking of table interpolations and prelookups to update time, rather than when the dialog box is closed. This allows parameters to be placed into the fields that don't yet exist. They will be checked when the diagram updates. New Features: - Support for ECU565-128. The MPC565 target can now be built. - Upgraded to new version of the Framework, which supports 555 and 565, and changes some of the RAM allocation. See migration notes above. - Code is generated to declare to the Framework which resources are in use, so that it can optimize its RAM allocation. - motohawk_make_rtw now returns two values: [success, err]. err contains any error messages that were produced during the build. These messages are also displayed to the console. - Delta Time block now takes two parameters: Sample Time, and Initial Value. When a Sample Time of -1 is entered, the block behaves as before, which computes the delta time by storing the absolute time and returning the difference, taking care of large-number rollover. The Initial Value is output the first time, in this case. When a positive constant value is entered for the Sample Time, the block simply outputs that value, without adding any extra RAM or code to compute the difference. The data type of the output follows that of the Sample Time, when positive, and a double when dynamically computing. - A new "Same DT" block is added the the Extra Development Blocks. This performs a very similar action to the native Simulink block in the Fixed-Point blockset. However, this block runs with inherited sample time, and can be placed in function-call subsystems. It can also accept inputs of differing dimensions, and does better error checking on bad parameter values. It enforces the rule that every block connected to it must have the same data type. There is no code-gen or simulation overhead. - Memory summary report now supports memory maps for both MPC555 and MPC565. - RAM usage in summary report is now separated between OS and App. - A new "index_T to double" block is supplied under the Lookup Tables. - Explicit Input Name, and Output Name are now available for Tables. When supplied with an empty string, table blocks generate a VarDec with a generated name. When an explicit name is given, these blocks use another VarDec, usually another Probe, Calibration, Table, or DataStorage block. This allows user-defined names, groups, access levels, and so on, to be supplied for the inputs and outputs of a table or prelookup, but to still associate them together, so that MotoTune can provide its table calibration features. 0.4.5 Bug Fixes: - Fixed an S-function setting in the Fault Definition block that made the Suspected status occasionally point to bad memory. All blocks should use the ssSetInputPortRequiredContiguous setting to 1. - Fixed another include dependency, which caused build errors when generating to separate functions. - Allow inf and -inf in VarDec and DataStorage blocks. Previously, a compiler error would result because Simulink doesn't treat these as constants. All FLASH variables, such as those defined by VarDecs and DataStorage blocks, require const definitions. Added #defines for rtInf and rtMinusInf in the files generated by these blocks. 0.4.4 Bug Fixes: - Changed the include order of Application.h. Moved some application-wide typedefs up above some includes. This fixed a build error. - Fixed a memory leak problem, caused by Simulink S-Function callback order. Now gracefully handles multiple calls to mdlInitializeSizes, and avoids double-allocation of memory. Also gracefully handles deletion of duplicates, without crashing MATLAB. The FaultManagement and DataStorage blocks are both affected by this fix. It is strongly recommended to upgrade from 0.4.3 to 0.4.4, to obtain this fix. - In the CAN definition block, there was a warning that printed "errTxt", intstead of the contents of that variable. This warning occurs when the MotoTune protocol is enabled, and Buffer 0 is correctly set to Transmit, but the size is less than 16 messages. This is just a warning. - Fixed a bug in the build log. When an error occurred because of license issues, the log was not stopped. 0.4.3 Migration Notes: - The 'MotoHawk Controls Library' has been removed from the MotoHawk distribution, because this functionality will be part of a larger product known as the 'MotoHawk Engine Control Toolbox'. If any existing models used this library, the links will now be broken. Please copy the old 'motohawk_controls_lib.mdl' file from your old MotoHawk release (under toolbox/MotoHawk/Blocks/ControlLibrary) into your project directory or some other location outside of the MotoHawk toolbox directory. This library will not be supported in the future. Bug Fixes: - Added code to reshape the pack/unpack specification values, so that either a row vector or a column vector may be used in the specification file. Previously, only a column vector (;-separated) would work correctly. - A better check for the GreenHills license is performed at the beginning of the build. Users with node-locked licenses should not have any more problems. Also, if a dongle is inserted, but the license file is incorrectly setup, the new check will catch this. New Features: - A build log is generated, called .log, into the current directory. This is useful when sending bug reports or analyzing warnings and errors. - Added a Fault Management blockset, which allows the definition of Faults and Actions, with an interface in MotoTune. - A fault is a block with a single boolean input, and has three independent states: Suspected, Active, and Occurred. A fault is considered Suspected when the input to the fault block is true. A fault is Active once it has been Suspected for X out of Y counts, specified in the mask, or via calibration. It stops being Active, once it is not-Suspected for Y counts. A fault is Occurred once it stops being Active, and will remain Occurred until cleared from MotoTune. Note that faults are not NonVolatile, so they will always reset on power-up. In addition, a fault may be set as Sticky, which means that the fault will remain Active, even after Y counts of not-Suspected input. This implies that it will never become Occurred. The blockset has been designed with memory efficiency in mind, so each fault uses only three bits of RAM (one for each independent state), plus two bytes for the X and Y counts. - An action is a block with a single boolean output. Any fault may be routed to any action, as set via the fault mask, or via calibration. An action condition specifies whether the Suspected, Active, Occurred, or some combination of these states should activate the action. - As an example, consider the following application. A 'check engine' light should come on if the Manifold Pressure or Temperature sensor is out of range, and the engine power should be limited to 50% if the Manifold Pressure is out of range. This application has two actions: CheckEngineLight and LimitPower50, and two faults: ManifoldTempRange and ManifoldPressRange. The outputs of the action blocks should cause the described feature, such as turning on a digital output or limiting a power calculation. The inputs of the fault blocks should be the result of a comparison operation on a signal value. - In MotoTune, several new display VarDecs are defined when the Fault Manager block exists in the model, which show the current Suspected, Active, and Occurred faults, and which allow faults to be cleared. A list of faults also appears in the calibration, along with an interface to route faults to actions. 0.4.2 Bug Fixes: - Added error checking for VarDec names (probes, cals, tables) to ensure that they use valid C identifiers. The names entered into the mask are directly used in the code, so this check must be performed. This was prompted because of some subtle build-time errors. - An order dependency between the DataStorage definition block and the table prelookup/interpolation blocks could generate code that used index_T before its type definition. This is fixed, by placing all custom MotoHawk type definitions into Application.h, and then including this file from all other locations. This simplifies the generated code, and ensures correct ordering. - Whenever a boolean data type was used in a DataStorage read or write block, a message of "Invalid data type ID (-10)" would appear at update time. The same would also appear from the DataStorage definition block when building the model. This problem is fixed. 0.4.1 Migration Notes: - The NonVolatile and MemStore blocks are now deprecated, and will not function properly from this version forward. The functionality for these blocks is now superseded by the new DataStorage blocks. Replace each NonVolatile definition with a corresponding DataStorage definition block, and select the NonVolatile storage class. Then use the new read/write blocks to access the defined data. - The "strange" target names available in the Target Definition block are now replaced by the names that are available via our marketing literature. When updating an older model, you will get a warning from this block. Make sure to reselect the correct target name. The default is ECU555-80, which is appropriate for most users anyway. - The Target Definition block now allows full specification of the SRZ and DLL output filenames. The _0001 default suffix has been removed, so users may choose any naming scheme appropriate. The default is still to use the model name, but if a custom target name had been chosen, re-enter a user-specified SRZ and DLL name. Bug Fixes: - All create_error probes available under the Debug tag have been shortened, to avoid running into the maximum VarDec name limit of 29 characters. New Features: - A new DataStorage library is provided, which allows functionality similar to the built-in Simulink Data Store blocks. However, this blockset allows read/write by vector index, or matrix row/col indices, to facilitate data dictionaries. - A new data type: reference_T is provided, which may be output from the DataStorage definition block. This allows true dynamic pointer manipulation, so that read/write operations may be applied to a reference input signal. The DataStorage blocks may even be declared to contain reference types, so that composite data structures can be manipulated (e.g. an array of references to matrices of references to different-sized vectors). - The intention is that Lookup Tables will also be available via the new DataStorage mechanism, so that adaptive tables can be implemented. This is not yet supported. - The target definition block used to setup the solver to use fixed-step simulation, so that the model could be generated. This makes doing plant/controller simulation difficult, if the target definition block exists somewhere in the model. This 'feature' of the target definition block has been removed. Future designs will require the model to be manually set to 'FixedStepDiscrete' prior to building. The target definition block still sets up other RTW parameters, so only the simulation setting is manual. 0.4.0 Migration Notes: - New VarDec blocks have been provided, and the old ones are deprecated. A script has been provided to replace the old blocks with the new type. It is called 'motohawk_upgrade_vardecs', and takes a 'sys' parameter, which specifies the root of the model. Since this is a dangerous operation, it is recommended that you save a backup of the original model before performing this procedure. This script will parameterize library links in the model, so be sure to propagate changes back to your library when finished. Note that not some parameter settings require a manual replacement. The script displays which blocks are correctly replaced, and which ones need user attention. Bug Fixes: - The Data, Len, ID, and RTR outputs of the CAN Rx block are only intended to be valid when the Msg Received event is triggered. These fields are now zeroed out when unused. Also, any unused bytes in the Data output are set to zero, when the Len output is less than 8. - PWM pins driven by the TPU have been fixed. - The ESC pin is now correctly driven in the reverse direction. New Features: - The Calibration, Probe, Overrides, Tables, Prelookups, and Interpolation blocks have been redesigned. The old blocks in the VarDecs library are deprecated, meaning that users should not used them for new designs. They are still in the library so that existing designs can work without modification. - Several more parameters are provided, which allow customization of the calibration interface, such as Help Text, Units, Gain, Offset, Exponent, and Decimal Precision. All Gain, Offset, and Exponent computation is performed on the PC, and uses no module resources. This allows fixed-point math to be performed in the module, but to provide a clean interface to the calibrator. - The MotoTune Group may be explicitly set, by providing a path separated by the '|' (bar) character. If the group is not set (which is the default), the Simulink block path is used, which is the same as the old behavior. - All string parameters for the new blocks are evaluated Matlab expressions, meaning that literal strings must be surrounded in single-quotes, e.g. 'name'. - The new blocks are more attractive. The table and interpolation blocks now display a picture of the underlying table on the block, and the probes, calibrations, and overrides are trimmed down to show a minimum of text. 0.3.9 Bug Fixes: - VarDec Override blocks actually use the 'Specify Min/Max Values' mask checkbox parameter to parameterize the new value that can be overridden. Previously, this parameter was ignored, and the min/max values were always applied. - Framework modified to allow as many PWM initializations as the number of resources. Upgraded to Framework 0.09. - TDC1 event dispatch now works correctly. Previously, TDC1 events were dispatched to the TDC event, causing an extra TDC event, and no TDC1 events. - User events are now filtered from the call to create the application scheduler. This removes Framework errors on startup. No functionality is changed. - O2A and O2B AnalogInput resources now available in MPC555. - AINJ1-6 now save correctly. The bug occurred because these same resources are called FINJ7-12 in PCMRace. New Features: - Debug create messages available in MotoTune for all used Framework resources. Previously, some messages were available, but they were not entirely consistent. This should improve debugging. 0.3.8 Bug Fixes: - Long machine names caused a failed check for the GHS dongle at the start of a build. The output of the GHS dongle driver is different when the machine name is longer than 15 characters, and the check script considered this a dongle failure. - Default heap size increased to 4K. New users should not run into heap issues. New Features: - Main Power Relay block now posts a Shutdown event two ticks prior to shutting off the relay, and saves NV variables one tick prior. In recent versions, both of these operations were performed on the same tick, and in the opposite order. This prevented NV variables from being modified prior to the save in the Shutdown event. 0.3.7 Migration Notes: - Table lookup blocks may lose their parameter values when these blocks are updated. Double-check these fields. Bug Fixes: - Produce error and halt build when more than one CAN Rx block references a given bus and buffer. - Pack and Unpack blocks had an off-by-one width error for little- endian fields. Fixed and tested. - VarDecs using the Calibration EE section were not correctly placed into this memory section, and would not retain their values on a DEV target. Fixed and tested. - MotoHawk 2-D Table Lookup blocks used X/Y index ports, while native Simulink lookup blocks used Row/Column notation. This made the behavior backwards relative to the native blocks. This version changes all code in MotoHawk to use Row/Column notation and ports, and the behavior is tested to be identical to the native Simulink blocks. MotoTune displays Rows on the Y-axis and Columns on the X-axis, as expected. X/Y notation is now only used in MotoTune. - When the model name is longer than 13 characters, an error is produced. In this case, the user must either change the model name or enter a different Target Name into the Target Definition Block (see below). New Features: - Target Name and Target Version are now parameters on the Target Definition Block. Target Name allows the final target executable .srz and .dll name to be different from the model name. Target Version is appended to the .srz name, and is placed into a read-only text VarDec to read from MotoTune. By default, these parameters are blank, which means that the model name will still be used as the Target Name and 0001 will be used as the Target Version. - MotoHawkVersionTxt is available as a read-only VarDec from MotoTune, so that the version of MotoHawk used to build the application can be known at a glance. 0.3.6 Migration Notes: - Upgrade to MotoDevelopment_8_62_3_9.exe - Upgrade to MotoServerRuntime_8_62_1_4.exe - Upgrade to MotoTune_8_62_3_2.exe Bug Fixes: - Fixed the pack and unpack blocks. There were several bugs in the old ones. These new ones are much better tested, and they work under a wider variety of cases. Unpack used to simulate, but had an inconsistency with code-gen. Pack didn't simulate at all. Now they both simulate, and are consistent with the generated code. The pack and unpack are also tested to be consistent with each other, both in code-gen and simulation. - Fixed ESTOP resource bug New Features: - Implemented Serial Definition, TX, and RX blocks. Now you can read and write characters to the RS-485 port. - Added more CAN help, and added error checking to test for bad cases. There is now some error-checking code that should catch all of the problems that Nick ran into with the CAN blocks. It will give errors or warnings as appropriate at code-gen time. The Help button on the CAN Definition block brings up a page that describes the issues. 0.3.5 - Allow multiple instances of an input resource. - Checks that all input resources use the same behavior. - Do not allow multiple instances of an output resource. - Fixed pack block. 0.3.4 - Upgraded to newer Framework codebase. - Added model checking at build-time, to check for duplicate use of pin resources. - Added early check for Green Hills dongle, and gives meaningful error message if dongle is not present. - Fixed a bug in vectorized function triggers. Previously only the first trigger of a vector would be triggered in simulation. Code generation is unchanged. - Removed duplicate use of MPRD block in demo. This was found because of the model checking feature! 0.3.3 - VarDec Calibration blocks: - Show Additional Parameters checkbox - Output Data Type pulldown menu - Min/Max settings 0.3.2 - Fixed I/O settings for several blocks. Note that several settings have been renamed, so using this library with older models will require manually resetting the pin resource for I/O blocks. Many such problems were resolved in this release, and it is strongly recommended to upgrade models for this reason. - Added several new hooks for custom code integration, including the Read Global Expression block, which allows access to arbitrary inline expressions linked to custom code. - Fixed CAN transmit buffer issue. Previously, if no CAN Tx blocks existed in the model, the MotoTune protocol would not initialize properly. 0.3.0 - Lookup tables, 1-D and 2-D, direct and with prelookup - Added table support to demo, fixed some bugs - CAN programming now works - Fixed several BEC integration bugs 0.2.1 - Basic Engine Control functionality, in very basic form. However, an engine has been run using this code. - Modified demo application to use Talon form. - VarDec Calibration block changed to behave more like Simulink constant block. - Custom TLC library added, to include external source code, header files, libraries, and directories.