Hi,
I use the board with the arm processor and sdk 4.13.03.30 (sdk 5 was causing too much trouble). I load different programs on different cores and I use 15 cores. While loading I use e_true as the start parameter. I use a piece of shared memory as a Mailbox to synchronize the cores. (All cores set a predefined address on the shared memory to indicate that they are ready.) There are interesting things going on.
-First of all, some of the cores seem not to be running. (Usually the cores which are loaded as last are not running. When I change the orders, the ones, which were previously in the last and not running, starts running but then there are some others which does not want to run. And yes, they are again the new last ones.) I tried using e_false and afterwards e_start() - didn't work. I tried e_true and afterwards e_start() - didn't work.
- Sometimes the cores would run the program even if I set the start parameter as e_false.
- Sometimes the cores would run the program even if I remove the e_load();
I tried to debug but I don't know how to debug an application where you have multiple cores and the host core. I could connect only to the first core and debug it but that didn't help with anything. It seems like the host and the other cores were not running.
My host start-up code sequence is:
e_set_host_verbosity()
e_init()
e_reset_system()
e_alloc()
e_open()
-reset some arrays in the shared memory
-read a few integers from a file and write to the shared memory
-load the cores
-wait for the cores to set an array in the shared memory (each core sets an element of the array with the size of 15)
(At each run, a few elements are not set and they are not always the same ones)
....
- some other stuff
I did a lot of tests about the address of the array in the shared memory. It seems to be okay.
Any ideas what is going on?
Regards,