While not using ASan on-target, our setup allows us to run our application logic on a normal desktop system and thus use normal ASan. We’ve abstracted all hardware access to a API (a HAL, more or less) and never touch any hardware except through this API. Then we’ve implemented the API to NOP some things and implement other things in POSIX, SDL etc. It’s very useful, and besides making debugging application logic a lot easier also makes porting to new processors easy.
A more generalized and open source take on the same idea is Zephyr OS, which looks very interesting. If we hadn’t already been using our current system for many years before I heard of Zephyr, I’d be looking into using it.
While not using ASan on-target, our setup allows us to run our application logic on a normal desktop system and thus use normal ASan. We’ve abstracted all hardware access to a API (a HAL, more or less) and never touch any hardware except through this API. Then we’ve implemented the API to NOP some things and implement other things in POSIX, SDL etc. It’s very useful, and besides making debugging application logic a lot easier also makes porting to new processors easy.
A more generalized and open source take on the same idea is Zephyr OS, which looks very interesting. If we hadn’t already been using our current system for many years before I heard of Zephyr, I’d be looking into using it.