[ragel-users] Best practice: using ragel for bit-based state machines on microcontroller?
Adrian Thurston
thurston at complang.org
Fri May 15 03:10:23 UTC 2009
Ah, you can process at the bit level. See attached code. You'll probably
want to scrutinize the generated and compiled code to see if it's good
enough for your needs. One thing to note about using the getchar
directive is that the expression can be evaluated more than once per
value of p and if the compiler doesn't optimize that duplicate work away
then your code won't be optimal.
By the way, I'm not sure if I just figured this out now, or if somebody
told me about this technique a while back and I forgot. (Bob maybe?)
-Adrian
Jan Sporbeck wrote:
> Hello there!
>
> I'd like to use ragel to design the state machine for a microcontroller
> project (avr atmega8535) written in C.
>
> I think I understand how to use it for streams of char, int, etc. But
> what's the best practice to use for bit based decisions?
>
> I could use union..struct to pack all bits in one datatype and process
> that. But I doubt that'll yield a performant implementation.
>
> I read messages on this list that ragel is used for uC projects, but no
> details how.
>
> So any hints or example code to get me started is appreciated.
>
> Thanks in advance,
> /Jan.
>
>
> _______________________________________________
> ragel-users mailing list
> ragel-users at complang.org
> http://www.complang.org/mailman/listinfo/ragel-users
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: tmp.rl
URL: <http://www.colm.net/pipermail/ragel-users/attachments/20090514/9f53a039/attachment-0001.ksh>
More information about the ragel-users
mailing list