4 ms·
... anything faulty in an embedded world can block the chip. This is why watchdog timers exist. Async does not shut off watchdog. Not sure what your point is.
by junon 3y ago
... anything faulty in an embedded world can block the chip.
This is why watchdog timers exist. Async does not shut off watchdog. Not sure what your point is.
- kevin_thibedeau 3y agoWatchdogs shouldn't be triggered in the normal course of events. They are a last line of defense for exceptional circumstances that will render a device inoperative, not a cure-all for poor system design.
- rcxdude 3y agoSure, but a system where a task has ceased to execute is in pretty much all circumstances a system where the watchdog (or some other assert) should trigger. (the whole toyota case involved them getting raked over the coals because their system did not in fact detect a failed task and do this).
- junon 3y agoI... know. I'm saying that a stalled chip is a stalled chip. I don't know why async would stall your chip randomly unless you had a bug, which would stall the chip anyway.
- jacquesm 3y agoThink of a watchdog timer in the same way you think about that big red handle on a train, 'emergency use only, abuse will be punished'.
- RealityVoid 3y agoYou have a task. You do an infinite loop in the task. The task is now blocking lower prio tasks in the RTOS. If the task is broken, it's broken.
- junon 3y agoI know what a watchdog timer is. I don't see how your point refutes mine. A stall is a stall. Async doesn't change that.
- 0xfedbee 3y agoAs I said, anyone with serious embedded experience will understand my point. People who think triggering watchdog is a normal thing won’t.
- MarkMarine 3y agoYikes, no kidding. Triggering a watchdog is a “stop the dev cycle and everyone figure out what show-stopping bug is lurking in our code” time. I have no desire to use embedded rust async, I use C++ with none of the allocating containers, and honestly it’s more of a C with classes style than modern C++, plus FreeRTOS in my production embedded code. I would happily trade out C++ for the memory safety of rust. I would pick up a lightweight RTOS written in non-async rust if one existed and I could have faith in it, but other than personal projects I can’t advocate for building a hardware project on something like this yet.
- junon 3y agoI never said that, please stop the "no true scotsman" tone. I'm aware of what a watchdog timer is and what its purpose is. My point is that async doesn't introduce stalls unless you have a bug - a bug that could introduce a stall anyway. I don't see how async changes that. I write firmware and operating systems for a living, by the way.