![]() Anyway, I eventually got back into project mode, and decided it was time to tidy this all up. Last summer I started trying to put this all together, but I got busy with other things, and more particularly, I ditched the ST Standard Peripheral Lib and started actively working on libopencm3. None of the code was common, and the STM32 code was some of my earliest steps in that world. I meant to post this a while ago, but oh well :) A long time ago I made a basic driver for AVR, then I hacked it up a bit to make it run on the STM32L discovery board. Now if only there was a little bit of direction and documentation from central leaders and we could really sail! There’s a bunch of people who seem keen to try and clean up some of the accumulated cruft of ten years of grad projects being dumped into a repository somewhere. Contiki OS’s now a github project, and getting actual pulls, rather than just being hidden inside a Swedish University. It’s like the Contiki itself really, some really neat cutting edge science, with sharks and hot burning sun and no water nor a soul in sight to ask for help.įortunately, there does appear to be a few birds in the sky, hinting at land. These other people currently have a pretty raw deal. ![]() ![]() Then there’s people who are looking around for some modern networking stacks to use on a device of their own. There’s the CS research types, using hardware the previous grad student used, with the magic incantations from the previous researcher, working on really interesting science, and Contiki OS is the base. Back to the two different sorts of threads on the mailing list and it starts making more sense again. It starts to make a bit more sense when you realise that it all started out as an operating system for a commodore 64, but that doesn’t really excuse it per se. This is all in the same tree, along with support for ~20 platforms with ~6-7 different architectures. Two different webservers and a webbrowser. A rather large and complex java modelling framework. (I’m serious, the current tree includes a graphical calculator app and a vnc server) Three different RDC algorithms. A windowing toolkit, because why wouldn’t I want to VNC to my battery powered wireless sensor node and click on things. TCP and UDP for both ipv4 and v6, with all of it configurable via an undocumented mix of makefile variables and C preprocessor defines. It’s an OS that’s an incubator for other projects. Stepping out again, it starts to feel like Contiki OS isn’t really an OS project that you can use as is. You can apply some “fixes” to make them compile, but they’re clearly not the way the makefiles and the project were intended to be, and no-one who might know is Oh yeah, that’s right, did I mention that? There’s examples that don’t compile. Then you’ve got posts about simple things that still aren’t fixed like examples simply not even compiling. You’ve got some very advanced topics being discussed about packet loss modelling and distance calculation methods and tweaking the latest draft of CoAP implementation. So, what’s the status of Contiki then? The mailing list gives an interesting picture. They were presumably only introduced at all as the existing timer code (etimer/ctimer) are based on co-operative multi tasking, and RDC algorithms need relatively hard timing to do the radio strobing. Think of them as rdc_timer and it all makes a lot more sense. ![]() So, yeah, you don’t need to implement them at all. rtimers only actually support a single timer, so you can’t really actually use them in your own apps, you’re really just providing them for the exclusive use of the radio duty cycling (RDC) code. Turned out the docs referred to an API 5 years out of date. The docs had lead me to believe that I just needed to implement “rtimers” and it would all start working. I want to use the 6LoWPAN implementation, the RPL implementation, the TCP (v4 and v6) implementations.Īnd here things unravel very quickly. Now, I’m at the point where I was hoping to be, starting to try and use the networking stacks in Contiki OS. It was more painful than I expected, there were some unexpected things, but generally, nothing too complicated. I got the (very) basic things working with my port of Contiki OS to my stm32l discovery and stm32vl discovery boards.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |