Update libopeninv submodule to latest (jsphuebner 51a9e58)#239
Conversation
|
Hardware update: flashed a build containing these changes onto a VCU — 100 kbps (Baud100) CAN init works, and a Nissan Leaf inverter runs correctly (exercises the cast |
|
Further hardware validation: SDO param save now confirmed — changed a parameter, saved over SDO, rebooted, and the value stuck. So the CAN-RX-ISR |
b2db312 to
07b6139
Compare
|
The ISR context for ProcessSDO wasn't fully intended, just a logical consequence. It should be fine for short-running handlers. Anything long-running should be deferred to main loop. |
07b6139 to
c6b1621
Compare
|
Thanks for the feedback — addressed both: ISR context / long-running handlers: good point, and looking closer our
|
c6b1621 to
1288efe
Compare
|
Updated: jsphuebner/libopeninv#56 is merged, so I've moved the pin forward to |
|
You can also drop SdoCommands::SetCanMap(cm); as that is done within CanSdo |
Bump the libopeninv submodule to current jsphuebner tip (51a9e58 — adds Baud100 / 33.3k, the SDO refactor, and the Send-overload fix) and adapt the VCU: - CanSdo: drop the GetPendingUserspaceSdo() main-loop poll. The new libopeninv ProcessSDO routes user-space SDO objects (serial 0x5000 / command 0x5002) to SdoCommands from HandleRx, so plain CanSdo suffices. No Send() call-site changes needed: libopeninv#56 (in 51a9e58) removed the ambiguous 2-arg Send overload, so Send(id, u32buf, len) resolves cleanly without casts. clang-format note: brings i3LIM.cpp / leafbms.cpp / utils.cpp into line with the repo's pinned pre-commit hook (v20.1.8, --all-files), which flags pre-existing whitespace on every PR. Whitespace only, no functional change. Builds clean for the STM32F1 target.
1288efe to
73db875
Compare
|
Good catch — done (also dropped the now-orphaned |
|
Sorry any pushes should go to vehicle testing as per https://github.com/damienmaguire/Stm32-vcu/blob/master/CONTRIBUTING.md |
|
Re-targeted to |
Summary
Bumps the
libopeninvsubmodule from the currently-pinned3a9c0594to the current jsphuebner tip51a9e58, and adapts the VCU. Hardware-validated (see Testing).What the bump brings
libopeninv commits since
3a9c0594include:Baud100) CAN bit timingsCanSdo::ProcessSDO→SdoCommandsVCU changes in this PR
CanSdo— drop theGetPendingUserspaceSdo()main-loop poll. The newProcessSDOalready routes user-space SDO objects (serial0x5000/ command0x5002) toSdoCommandsfromHandleRx, so plainCanSdosuffices.parm_save) runs in CAN-RX interrupt context — that's libopeninv's defaultProcessSDObehaviour, not VCU code. Confirmed working on hardware (param save persists across reboot).Send()call-site changes — an earlier revision cast lengths touint8_tto dodge an overload ambiguity; canhardware: remove ambiguous 2-arg Send overload (lets callers drop uint8_t casts) jsphuebner/libopeninv#56 (now in51a9e58) removed the ambiguous overload, so the casts are gone andSend(id, u32buf, len)resolves cleanly.clang-format
Brings
i3LIM.cpp/leafbms.cpp/utils.cppinto line with the repo's pinned pre-commit hook (v20.1.8,--all-files), which flags pre-existing whitespace on every PR. Whitespace only, no functional change.Testing
make).