Custom RMT interrupt handler in the current master.
Posted: Mon Mar 09, 2020 2:53 pm
There seem to have been undocumented changes in the RMT driver implementation.
The documentation states:
1) Call rmt_config() but don't call rmt_driver_install();
2) Call rmt_set_tx_thr_intr_en() to configure the interrupt threshold. <-------- Nullpointer exception
3) Call rmt_isr_register() and supply the custom interrupt routine.
I read the rmt source code and noticed:
The nullpointer exception occurs because if rmt_driver_install is not called the internal p_rmt_obj array is not populated.
How are you supposed to use custom interrupt routine? Also the documentation is very vague about what functions can be called without the driver being installed!
The documentation states:
Ok so the steps to use a custom interrupt handler are:When calling rmt_driver_install() to use the system RMT driver, a default ISR is being installed. In such a case you cannot register a generic ISR handler with rmt_isr_register().
1) Call rmt_config() but don't call rmt_driver_install();
2) Call rmt_set_tx_thr_intr_en() to configure the interrupt threshold. <-------- Nullpointer exception
3) Call rmt_isr_register() and supply the custom interrupt routine.
I read the rmt source code and noticed:
The nullpointer exception occurs because if rmt_driver_install is not called the internal p_rmt_obj array is not populated.
How are you supposed to use custom interrupt routine? Also the documentation is very vague about what functions can be called without the driver being installed!