January 2019 — Commit Summary

This month introduced major developments across the BOBCAT platform (A21, A53E, M2, M16), foundational work for reset handling using longjmp in PIC33, and enhancements in CAN filtering and analog scaling. Several build system updates were also made to align with updated compilers and board revisions.

Highlights

  • 🚜 First major implementation of the BOBCAT platform across several targets (M2, M16, A21, A53E).
  • 🔁 Introduction of longjmp-based CPU reset logic for PIC33 devices.
  • 📊 Addition of CAN filters for analog and digital signal scaling.
  • 🧰 Multiple updates to build system configuration and versioning headers.

🆕 Features

BOBCAT Platform Support

A21-BOBCAT3

  • Added CAN, fault message files, and core sources.
  • New file: 17865-HXM02-LHD.c

M2

  • Added config, CAN, state machine, and general source support.
  • Introduced bobcat.c and updated 13348-HXM02-BOBCAT.c

M16

  • Added project files, mapping headers, .cmd, .err, .sym scripts.
  • Updated 13349-HXM16-BOBCAT.c to remove unused defaults.

Shared

  • Introduced dash, ecm, ecu CAN definitions and stats headers.
  • Snapshot source: HLS-SRC-20190107.zip, 20190112.zip

A53E-BOBCAT (PIC33E)

  • Added support for:
  • CONTROL_MASK_CANID digital output control.
  • CAN filters for analog scale messages.
  • Analog input scaling via attenuation masks.
  • Created new headers: board_revisions.h, boardid_a53.h, etc.
  • CAN filters implemented in ecan_def.s using DECLARE_FILTER.

TELELHD2

  • Introduced parse_function_requirements-simple.c for function-level validation.
  • Added new error log file.

♻️ Refactors

  • Cleaned up state_timer.h bitfields for better clarity in the M16-RADIO-115K.
  • Improved formatting in:
  • io.s (A53E)
  • config.c (M16-RADIO-115K)
  • parameters.c (A53E)
  • Re-indented multiple parameter definitions and CANBUF entries for consistency.

🛠️ Fixes

  • Updated switchmap0.h for stabilizer and breaker mappings (M16).
  • Corrected:
  • Bit logic in ecan_def.s (control mask/radio)
  • RS232 FLASH_SIZE for p33EP128GM604
  • CAN buffer offsets for analog scale section
  • Commented out faulty logic: LOGIC_LINKID_txreq assignment in hls_pwm.c

🔁 Reset Handling via longjmp (PIC33)

  • Implemented longjmp_pending and USER_CPU_RESET macros.
  • Added longjmp.h and longjmp() functionality in stdlib.
  • Enabled CPU reset via CAN.
  • Updated show_config_page() to return WORD.

🧰 Build System and Versioning

  • Updated versions across multiple modules to 1.19.01.1201, 1.19.01.2901, etc.
  • Synchronized:
  • Makefile-genesis.properties
  • configurations.xml
  • .map, .workspace, .nbproject files

📁 Source Snapshots

  • HLS-SRC-20190107.zip
  • HLS-SRC-20190110.zip
  • HLS-SRC-20190112.zip
  • HLS-SRC-20190122.zip
  • HLS-SRC-20190124.zip
  • HLS-SRC-20190125.zip
  • HLS-SRC-20190125;1.zip
  • HLS-SRC-20190126.zip
  • HLS-SRC-20190129.zip

🧠 Inferred Architecture Notes

  • The BOBCAT system is being scaled to multiple microcontroller variants (M2, M16, A21, A53E), each with platform-specific CAN behavior.
  • The use of longjmp() for soft CPU reset implies a non-blocking recovery and stateful exception mechanism.
  • Introduction of CONTROL_MASK and ANALOG_SCALE filters hints at a scalable CAN-based sensor abstraction model.
  • Modularization of build files reflects alignment with project-specific compiler/linker profiles.