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.cand updated13348-HXM02-BOBCAT.c
M16
- Added project files, mapping headers,
.cmd,.err,.symscripts. - Updated
13349-HXM16-BOBCAT.cto remove unused defaults.
Shared
- Introduced
dash,ecm,ecuCAN definitions and stats headers. - Snapshot source:
HLS-SRC-20190107.zip,20190112.zip
A53E-BOBCAT (PIC33E)
- Added support for:
CONTROL_MASK_CANIDdigital 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.susingDECLARE_FILTER.
TELELHD2
- Introduced
parse_function_requirements-simple.cfor function-level validation. - Added new error log file.
♻️ Refactors
- Cleaned up
state_timer.hbitfields 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.hfor 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_txreqassignment inhls_pwm.c
🔁 Reset Handling via longjmp (PIC33)
- Implemented
longjmp_pendingandUSER_CPU_RESETmacros. - Added
longjmp.handlongjmp()functionality instdlib. - Enabled CPU reset via CAN.
- Updated
show_config_page()to returnWORD.
🧰 Build System and Versioning
- Updated versions across multiple modules to
1.19.01.1201,1.19.01.2901, etc. - Synchronized:
Makefile-genesis.propertiesconfigurations.xml.map,.workspace,.nbprojectfiles
📁 Source Snapshots
HLS-SRC-20190107.zipHLS-SRC-20190110.zipHLS-SRC-20190112.zipHLS-SRC-20190122.zipHLS-SRC-20190124.zipHLS-SRC-20190125.zipHLS-SRC-20190125;1.zipHLS-SRC-20190126.zipHLS-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_MASKandANALOG_SCALEfilters hints at a scalable CAN-based sensor abstraction model. - Modularization of build files reflects alignment with project-specific compiler/linker profiles.