Hello, I have test QPC which is state machine on my beagleboard and zedboard. This product provides a good method for developing application that are need for Real Time appliction . http://www.state-machine.com/ There is considerable information at this site. I shared several e-mails with Dr. Miro Samek about becoming Yocto compatible. On my Fedora18 there is also a product QSP for debugging. Basic pieces are either qpc_4.5.04.zip & qdkc_pic32-xc32.zip for C or qpcpp_4.5.04.zip & qdkcpp_pic32-xc32.zip for C++. The heart of the process is QM which is a graphical process for developing the the state machine. The are ports for many arch. I have tested on arduino chipKIT 32 MAX beagleboard and just now on the zedboard. This is the is root@zedboard:~/qpc/examples/posix/gnu/dpp/dbg# ./dpp Dining Philosopher Problem example QEP 4.5.04 QF 4.5.04 Press p to pause/un-pause Press ESC to quit... Philosopher 0 is thinking Philosopher 1 is thinking Philosopher 2 is thinking Philosopher 3 is thinking Philosopher 4 is thinking Philosopher 4 is hungry Philosopher 4 is eating Philosopher 0 is hungry Philosopher 2 is hungry Philosopher 2 is eating Philosopher 1 is hungry Philosopher 3 is hungry Philosopher 4 is thinking Philosopher 0 is eating Philosopher 2 is thinking Philosopher 3 is eating Philosopher 4 is hungry Philosopher 3 is thinking Philosopher 0 is thinking
This is an example of QSP on Fedora18 x86_64 [vidal@ws009 spy]$ ./dpp Dining Philosopher Problem example QEP 4.5.04 QF 4.5.04 Press p to pause/un-pause Press ESC to quit... -T 4 -O 4 -F 4 -S 2 -E 4 -Q 4 -P 4 -B 4 -C 4 ********** QS_RESET ********** QS_RESET Obj Dic: 0000000008054592->&l_clock_tick Usr Dic: 00000046 ->PHILO_STAT Obj Dic: 0000000008058540->l_smlPoolSto Obj Dic: 0000000008058460->l_tableQueueSto Obj Dic: 0000000008058480->l_philoQueueSto[0] Obj Dic: 0000000008058494->l_philoQueueSto[1] Obj Dic: 00000000080584A8->l_philoQueueSto[2] Obj Dic: 00000000080584BC->l_philoQueueSto[3] Obj Dic: 00000000080584D0->l_philoQueueSto[4] Obj Dic: 00000000080585C0->&l_philo[0] Obj Dic: 0000000008058618->&l_philo[0].timeEvt Obj Dic: 000000000805862C->&l_philo[1] Obj Dic: 0000000008058684->&l_philo[1].timeEvt Obj Dic: 0000000008058698->&l_philo[2] Obj Dic: 00000000080586F0->&l_philo[2].timeEvt Obj Dic: 0000000008058704->&l_philo[3] Obj Dic: 000000000805875C->&l_philo[3].timeEvt Obj Dic: 0000000008058770->&l_philo[4] Obj Dic: 00000000080587C8->&l_philo[4].timeEvt Fun Dic: 000000000804983E->&Philo_initial Fun Dic: 0000000008049E13->&Philo_thinking Fun Dic: 0000000008049F03->&Philo_hungry Fun Dic: 000000000804A01A->&Philo_eating Sig Dic: 00000009,Obj=00000000080585C0 ->HUNGRY_SIG Sig Dic: 0000000A,Obj=00000000080585C0 ->TIMEOUT_SIG Q_INIT : Obj=l_philo[0] Source=0805119C Target=Philo_thinking Q_ENTRY: Obj=l_philo[0] State=Philo_thinking 0000000000 ==>Init: Obj=l_philo[0] New=Philo_thinking Sig Dic: 00000009,Obj=000000000805862C ->HUNGRY_SIG Sig Dic: 0000000A,Obj=000000000805862C ->TIMEOUT_SIG Q_INIT : Obj=l_philo[1] Source=0805119C Target=Philo_thinking Q_ENTRY: Obj=l_philo[1] State=Philo_thinking 0000000000 ==>Init: Obj=l_philo[1] New=Philo_thinking Sig Dic: 00000009,Obj=0000000008058698 ->HUNGRY_SIG Sig Dic: 0000000A,Obj=0000000008058698 ->TIMEOUT_SIG Q_INIT : Obj=l_philo[2] Source=0805119C Target=Philo_thinking Q_ENTRY: Obj=l_philo[2] State=Philo_thinking 0000000000 ==>Init: Obj=l_philo[2] New=Philo_thinking Sig Dic: 00000009,Obj=0000000008058704 ->HUNGRY_SIG Sig Dic: 0000000A,Obj=0000000008058704 ->TIMEOUT_SIG Q_INIT : Obj=l_philo[3] Source=0805119C Target=Philo_thinking Q_ENTRY: Obj=l_philo[3] State=Philo_thinking 0000000000 ==>Init: Obj=l_philo[3] New=Philo_thinking Sig Dic: 00000009,Obj=0000000008058770 ->HUNGRY_SIG Sig Dic: 0000000A,Obj=0000000008058770 ->TIMEOUT_SIG Q_INIT : Obj=l_philo[4] Source=0805119C Target=Philo_thinking Q_ENTRY: Obj=l_philo[4] State=Philo_thinking 0000000000 ==>Init: Obj=l_philo[4] New=Philo_thinking Obj Dic: 00000000080587E0->&l_table Fun Dic: 000000000805119C->&QHsm_top Fun Dic: 000000000804A19C->&Table_initial Fun Dic: 000000000804A5D8->&Table_serving Sig Dic: 00000005,Obj=0000000000000000 ->DONE_SIG Sig Dic: 00000004,Obj=0000000000000000 ->EAT_SIG Sig Dic: 00000006,Obj=0000000000000000 ->PAUSE_SIG Sig Dic: 00000007,Obj=0000000000000000 ->TERMINATE_SIG Sig Dic: 00000009,Obj=00000000080587E0 ->HUNGRY_SIG Philosopher 0 is thinking Philosopher 1 is thinking Philosopher 2 is thinking Philosopher 3 is thinking Philosopher 4 is thinking 0000000000 PHILO_STAT: 0 thinking 0000000000 PHILO_STAT: 1 thinking 0000000000 PHILO_STAT: 2 thinking 0000000000 PHILO_STAT: 3 thinking 0000000000 PHILO_STAT: 4 thinking Q_INIT : Obj=l_table Source=QHsm_top Target=Table_serving Q_ENTRY: Obj=l_table State=Table_serving 0000000000 ==>Init: Obj=l_table New=Table_serving Philosopher 4 is hungry Philosopher 4 is eating 0000000000 Disp==>: Obj=l_philo[4] Sig=TIMEOUT_SIG Active=Philo_thinking Q_ENTRY: Obj=l_philo[4] State=Philo_hungry 0000000000 ==>Tran: Obj=l_philo[4] Sig=TIMEOUT_SIG Source=Philo_thinking New=Philo_hungry 0000000000 Disp==>: Obj=l_table Sig=HUNGRY_SIG Active=Table_serving 0000000000 PHILO_STAT: 4 hungry 0000000000 Disp==>: Obj=l_philo[4] Sig=EAT_SIG Active=Philo_hungry Q_ENTRY: Obj=l_philo[4] State=Philo_eating 0000000000 ==>Tran: Obj=l_philo[4] Sig=EAT_SIG Source=Philo_hungry New=Philo_eating 0000000000 Disp==>: Obj=l_philo[3] Sig=EAT_SIG Active=Philo_thinking 0000000000 Intern : Obj=l_philo[3] Sig=EAT_SIG Source=Philo_thinking 0000000000 Disp==>: Obj=l_philo[2] Sig=EAT_SIG Active=Philo_thinking 0000000000 Intern : Obj=l_philo[2] Sig=EAT_SIG Source=Philo_thinking 0000000000 Disp==>: Obj=l_philo[1] Sig=EAT_SIG Active=Philo_thinking 0000000000 Intern : Obj=l_philo[1] Sig=EAT_SIG Source=Philo_thinking 0000000000 Disp==>: Obj=l_philo[0] Sig=EAT_SIG Active=Philo_thinking 0000000000 Intern : Obj=l_philo[0] Sig=EAT_SIG Source=Philo_thinking 0000000000 PHILO_STAT: 4 eating 0000000000 Intern : Obj=l_table Sig=HUNGRY_SIG Source=Table_serving Philosopher 0 is hungry If you have any questions feel free to contact me. Edward Vidal Jr vidal.devel...@gmail.com or devel...@sbcglobal.net
_______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto