xiaoxiang781216 edited a comment on issue #353: multiple definition of `up_mdelay' URL: https://github.com/apache/incubator-nuttx/issues/353#issuecomment-590082027 > > Not a whole architecture, different chipset in the same architecture can select the different approach because each chipset has own Make.defs and can include/exclude up_delay.c as needed, but the same chipset must share the same decision. > > Isn't that just an abritrary limitation? Why should implementation on any architecture have this option? Why limit it to just certain, pre-determined architectures? So you want to add an option to let user select? 1.Use up_rtc_*, up_timer_* and up_alarm_* in arch/ or 2.Use up_rtc_*, up_timer_* and up_alarm_* in drivers/timers/ There isn't difference outside the implementatin, the user get the same functionality with either selection. Actually, up_timer_/up_rtc_/up_alarm_ API is duplicated with oneshot_operations_s/rtc_ops_s/timer_ops_s and make the chipset developer write many duplication without any benefit. The best solution is: 1.Remove up_timer_, up_alarm_, up_rtc from nuttx/arch.h 2.Modify the code under sched/ to call oneshot_operations_s/rtc_ops_s/timer_ops_s instead of up_timer_, up_alarm_, up_rtc. 3.Chipset developer just need implement oneshot_operations_s/rtc_ops_s/timer_ops_s for their hardware. Basically, this approach move the code from drivers/timers/arch_* to sched/.
---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services