Base on HAL or high level SDK when porting to a new MCU?

I am trying to port klipper to ESP32 series MCU, but I found it is too difficult to develop on its HAL code, for exmaple, setting serial interrupt handler has to invoke functions in uart_hal.h, interrupt_controller_hal.h and implicit rom function.

Developing on its IDF SDK would be easier but maybe introduce many overheads, so my question is which should I choose?

According to previous comments on similar questions:

  • Less external dependencies are better
  • Re-use of existing code is preferred

See also following discussions: