[yocto] state machine for X86_64 beaglebone zedboard & pic32.

Edward Vidal vidal.develone at gmail.com
Wed Sep 18 13:01:43 PDT 2013


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 at 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 at 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.develone at gmail.com or develone at sbcglobal.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20130918/ba1f3b4c/attachment.html>


More information about the yocto mailing list