Hello e2e-Community,
I am currently using BIOS v.6-32-05-54, IPC v.1-24-02-27 and CCS v. 5.2.0.00070.
I am very happy that I got my Concerto running from Flash, and communicating with a MessageQ from C28 to M3 and the other way. I got the MessageQ-Example running from flash, and that's about the state of my code.
First problem:
Now I want to open another, bigger MessageQ in addition to the existing one, but when I try this the same way I do it with the first one, I always get:
ti.sysbios.heaps.HeapBuf: line 225: requested size is too big: handle=0x20002a20, size=232
MessageQ_alloc failed
I went down with the heapbuf sizes in my C code from 1024 -> 512 -> 256 bytes ...
So it seems to me, that my Heap is too small. Then I tried various things, I set BIOS.HeapSize to a bigger value (4096) => no effect. I tried some code snippet I found somewhere with HeapMem etc, but then my Concerto would not even startup anymore :(
How can I increase my heap? I have this #define HEAPID 0 from the example project - Do I have to create another Heap to do what I want?
Second Problem:
Is it possible do use a MessageQ only in ONE WAY? I tried it, but the Concerto always resettet itself (Probably because of the fact that the C28 had some kind of reset/abort).
I do it like this (pseudo code style)
M3-side:
buf = Memory_alloc(0, numBlocks * blockSize, 0, NULL);
heapHandle = HeapBuf_create(&hbparams, NULL); // with blocksize = 256
MessageQ_registerHeap((IHeap_Handle)(heapHandle), HEAPID);
messageQ = MessageQ_create(M3_C28toM3, NULL); // create the local queue here, do not open a remote queue
while(1)
{ status = MessageQ_get(messageQ, (MessageQ_Msg *)&msg, MessageQ_FOREVER); }
C28-side
buf = Memory_alloc(0, numBlocks * blockSize, 0, NULL);
heapHandle = HeapBuf_create(&hbparams, NULL); // with blocksize = 256
MessageQ_registerHeap((IHeap_Handle)(heapHandle), HEAPID);
status = MessageQ_open(M3_C28Debug, &remoteQueueId); // only open remote queue, dont open a local one
while(1)
{ /*.. do something ..*/ status = MessageQ_put(remoteQueueId, (MessageQ_Msg)msg); /*... do something else ... */}
As always, I am looking forward to your answers, and a big thanks in advance!!
- Philipp