Frank: I am not an expert on the stm32 but I think I can answer some of the questions here. I did not look at the links you posted so maybe more information is in there so I apologize for that. I do not think there is any particular rhyme nor reason as to which timers are used and defined. I took a quick look at the stm code and it does appear that the timers you mentioned could be used; they just need to be defined. I seem to recall that not all MCU variants implement all the various timers so that is the first place I would look to make sure.
As for the crash, it has been a long time since I looked at the lora code. Did you dump the contents of TxTimeoutTimer? Is the bsp_timer pointer set to NULL in that struct? I guess I am wondering if the crash is caused by the timer struct that gets passed into hal_timer_stop or that the timer is not initialized properly. Finally, my recollection of the multiple hal_timer_init() calls is that the timer can be stopped and started to save power. This is called by lora_enter_low_power() and low_exit_low_power(). You could see if turning off low power mode temporarily fixes the issue (simply hack the code to do nothing in the low power functions). In any event, you should keep the call to hal_timer_init in the stm periph code since the timer should be initialized by the creation code. I realize the above might not help all that much but I think once you determine what is causing the crash (bad parameter to underlying timer not initialized correctly) you should be able to determine root cause. If you have further issues let me know and I can see if I can help more. Will
