August 2018 — Commit Summary

This document summarizes the development activity during August 2018, focusing on the modular configuration system, parsing logic, platform-specific updates for M16/M2, and various refactors and fixes across shared libraries and PIC codebases.

Highlights

  • 📦 Introduction of a modular configuration system with multiple configuration styles.
  • 🧩 Addition of comprehensive parsing modules for various configuration options.
  • ♻️ Significant refactoring in parsing macros, field size logic, and helper utilities.
  • 🧪 Enhancements and fixes for safety-critical logic, especially in BASIC RRC components.
  • 🛠️ Continuous cleanup of legacy macros and unused structures.

🆕 Features

Modular Configuration System

  • Added config.c implementations for multiple configuration styles:
  • CONFIG_STYLE
  • CONFIG2_STYLE
  • CONFIG_FLASH_STYLE
  • EE_CONFIG_STYLE
  • EE_CONFIG2_STYLE
  • EE_CONFIG3_16_STYLE
  • EE_CONFIG_LITE_STYLE
  • Introduced config_styles.h for centralized style flag definitions.
  • Snapshot source: HLS-SRC-20180824.zip

Configuration Parsing

  • Added a full suite of parsing modules for configuration:
  • parse_OutputMonitor.c, parse_ab_mask.c, parse_axis_polarity.c, parse_breaker_aux.c, parse_breaker_sense.c, etc.
  • Introduced config.c.omit for EE_CONFIG2_16.
  • Added new headers: hls_control_message.h, rom_parameters.h.omit
  • Snapshot source: HLS-SRC-20180824;1.zip

Platform-Specific Builds: BASIC RRC

  • Introduced support for M16 BASIC RRC:
  • Files: 19040-HXM16-BASICRRC.c, .cmd, .pjt.omit
  • Added board revision definitions via board_revisions_m16.h
  • Refactored M2 BASIC RRC to share basicrrc.c include.
  • Snapshot source: HLS-SRC-20180824;2.zip, HLS-SRC-20180827.zip

PIC Library Enhancements

  • Added CCS V5 scratch4 allocation logic to regs_18F4x8x.c
  • Updated version to 1.18.08.2801
  • Snapshot source: HLS-SRC-20180828.zip

♻️ Refactors

Parsing and Display Logic

  • Replaced individual blanking macros with _blank_selection.
  • Unified disp_* functions into shared _disp_*_b helpers.
  • Simplified field size logic for passthrough masks.
  • Removed obsolete or unused macro definitions.
  • Snapshot source: HLS-SRC-20180824;2.zip

M2–M15–M16 Common Code

  • Uncommented show_config_page logic.
  • Commented out:
  • Legacy ADCON0 defines
  • disp_putc macro
  • Unused timer register/bit macros (tmr_*)
  • Updated version_m16.h to reflect 2018 changes.

🛠️ Fixes

  • Corrected pointer handling in unsafeControlInputs for digital interlock (M2).
  • Removed ERRORS flag from RS232 config (ccs_p18.h).
  • Ensured consistent input handling using _selector_getch_WREG in parse_* functions.
  • Adjusted TBLPTR assignment in several parsing functions.
  • Updated jumptable2.c to use CALL with second argument.
  • Fixed parameter types in disp_rom_addr and disp_rom_noaddr.

📁 Source Snapshots

  • HLS-SRC-20180824.zip
  • HLS-SRC-20180824;1.zip
  • HLS-SRC-20180824;2.zip
  • HLS-SRC-20180827.zip
  • HLS-SRC-20180828.zip
  • HLS-SRC-20180828;1.zip

🧠 Inferred Architecture Notes

  • The modular configuration system allows for flexible deployment across various hardware platforms (M2, M16).
  • Parsing modules appear to be generated or templatized, with shared logic for display, masking, and blanking—indicating a scalable configuration backend.
  • The system prioritizes legacy support cleanup while preserving backward compatibility through .omit files.
  • Strong emphasis on memory safety and field alignment (especially with TBLPTR and bitfields).