port to stm32f103
everything is workable