...
Anchor
OSMemGet()
as shown in Listing 17-3. The the listing below. The code assumes that the partition was already created.anchorCode Block |
---|
...
HTML Table | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
summary | ||||||||||||||||||||||||
class | Code_Listing | |||||||||||||||||||||||
Table Row (tr) | ||||||||||||||||||||||||
Table Cell (td) | ||||||||||||||||||||||||
Anchor | 1069617 | 1069617 | OS_MEM MyPartition; (1)||||||||||||||||||||||
Anchor | 1069618 | 1069618 | CPU_INT08U *MyDataBlkPtr;||||||||||||||||||||||
Anchor | 1069619 | 1069619 | ||||||||||||||||||||||
Anchor | 1069620 | 1069620 | ||||||||||||||||||||||
Anchor | 1069621 | 1069621 | void MyTask (void *p_arg)||||||||||||||||||||||
Anchor | 1069622 | 1069622 | {||||||||||||||||||||||
Anchor | 1069623 | 1069623 | OS_ERR err;||||||||||||||||||||||
Anchor | 1069624 | 1069624 | ||||||||||||||||||||||
Anchor | 1069625 | 1069625 | :||||||||||||||||||||||
Anchor | 1069626 | 1069626 | while (DEF_ON) {||||||||||||||||||||||
Anchor | 1069627 | 1069627 | :||||||||||||||||||||||
Anchor | 1069628 | 1069628 | MyDataBlkPtr = (CPU_INT08U
| |||||||||||||||||||||
OS_MEM MyPartition; (1) CPU_INT08U *MyDataBlkPtr; void MyTask (void *p_arg) { OS_ERR err; : while (DEF_ON) { : MyDataBlkPtr = (CPU_INT08U *)OSMemGet((OS_MEM *)&MyPartition,(2) Anchor | | 1069629 | 1069629 | |||||||||||||||||||||
Anchor | 1069630 | 1069630 | if (err ==||||||||||||||||||||||
Anchor | 1069632 | 1069632 | /* You have a memory block from the partition */||||||||||||||||||||||
Anchor | 1069633 | 1069633 | }||||||||||||||||||||||
Anchor | 1069634 | 1069634 | :||||||||||||||||||||||
Anchor | 1069635 | 1069635 | :||||||||||||||||||||||
Anchor | 1069636 | 1069636 | }||||||||||||||||||||||
Anchor | 1069637 | 1069637 | }
...
(3)
/* You have a memory block from the partition */
}
:
:
}
} |
Panel | ||
---|---|---|
| ||
(1) The memory partition control block must be accessible by all tasks or ISRs that will be using the partition. |
...
(2) Simply call |
...
to obtain a memory block from the desired partition. A pointer to the allocated memory block is returned. This is similar |
...
to |
...
(3) It is important to examine the returned error code to ensure that there are free memory blocks and that the application can start putting content in the memory blocks. |