[riot-devel] Comments from IRC

Hauke Petersen hauke.petersen at fu-berlin.de
Mon Oct 13 10:33:28 CEST 2014


sad to hear...

On 11.10.2014 19:28, Hinnerk van Bruinehsen wrote:
> 2014-10-11 15:45:28	corecode	my input is: stuff is not tested
I think we need to differentiate here, some platform code is indeed not 
sufficiently tested (yet). Maybe we can include some information about 
maturity of platforms in the Wiki?
> 2014-10-11 15:45:43	corecode	people seem to create APIs without applications that actually need them
I guess this is a hen-and-egg problem, you don't get people to use stuff 
if the APIs they need are missing. But I also think, that most of our 
interfaces are designed quite well and should fit most applications. But 
this needs of course to be discussed continuously to be improved!
> 2014-10-11 15:55:06	@N8Fear_	you said you also found some bugs: would you care to share what exactly?
> 2014-10-11 15:58:44	corecode	use of dINT/eINT or disableIRQ/enableIRQ instead of restoreIRQ
This is a difficult topic, there are some situations where you 
explicitly have to use 'enableIRQ' instead of 'restoreIRQ'. I think 
there are also open PRs to this issue already.
> 2014-10-11 15:59:34	corecode	the nrf timer code does not seem to be right/untested
true. It's very young code so I wouldn't be surprised. There is one 
known bug with the vtimer.
> 2014-10-11 16:00:04	corecode	why do boards define soc peripherals, e.g. timers
because they have an (passive) influence on the pin layout. The timers 
you choose for example for hwtimer and for PWM are coupled, and this has 
an impact of the pins you use for PWM. So the rationale is to make 
everything about peripherals configurable in a central point for each board.
> 2014-10-11 16:00:57	corecode	vtimer assumes 4096 seconds is a valid hwtimer value
no idea, anyone?
> 2014-10-11 16:02:19	corecode	why does some code use both hwtimer and vtimer?
some of the usages are for legacy reasons. Most of the usages are 
however following a straight forward paradim: 'user space' application 
code should use the vtimer, device drivers can use the hwtimer if they 
have strict real-time requirements.
> 2014-10-11 16:02:32	corecode	what's the deal with if (!inISR()){ dINT();}
legacy code. There is an open task to finally remove these in favor of 
enableIRQ and disableIRQ.
> 2014-10-11 16:02:39	corecode	etc.etc.
> 2014-10-11 16:02:52	corecode	and that's just after one day of looking at the source
> 2014-10-11 16:03:02	corecode	why is there immense copy+pasteness happening?
> 2014-10-11 16:03:17	corecode	hwtimer arch is copied all over the place
For a good reason. There are some boards, that use more then one 
peripheral timer for the hwtimer. By having a per-CPU hwtimer_arch 
implementation each CPU is completely independent and can handle this as 
needed. Of course there is some code-duplication, but I think its a 
small price to pay for gaining the decoupling of CPU implementations.
> 2014-10-11 16:03:59	corecode	it mostly looks like an effort to "support" many platforms
correct. This is one of the more challenging aspects of RIOT.

I hope I could clarify some points and I look forward to a good discussion!


More information about the devel mailing list