![](http://datasheet.mmic.net.cn/260000/PPSMMANUAL_datasheet_15946768/PPSMMANUAL_74.png)
13-2
Programmer’s Manual
{
PAN_SCREEN
tempScreen
;
tempScreen.panAddress = tempScreen.displayScreenAddr = gPanScreen;
tempScren.horzSize = 160;
tempScreen.vertSize = 240;
tempScreen.displayXOrigin = tempScreen.displayYOrigin = 0;
tempScreen.regPOSR = 0;
tempScreen.regPSW = tempScreen.horzSize/PIXELS; /* where PIXELS=8 if the LCD
is set to 2 bits/pixel and PIXELS=16 if the LCD is set to 1 bit/pixel. */
/* Set the panning screen of current task to the sharing panning screen */
ChangePanning(tempScreen, 0);
while(1)
{
....
}
}
main()
{
U32 taskAppId;
PAN_SCREEN tempScreen;
/* PPSM Initialization */
PPSMInit(FALSE);
/* Get screen memory */
gPanScreen = (U32)GetScreenMem(160, 240);
/* Assign panning screen parameters */
tempScreen.panAddress = tempScreen.displayScreenAddr = gPanScreen;
tempScren.horzSize = 160;
tempScreen.vertSize = 240;
tempScreen.displayXOrigin = tempScreen.displayYOrigin = 0;
tempScreen.regPOSR = 0;
tempScreen.regPSW = tempScreen.horzSize/PIXELS; /* where PIXELS=8 if the LCD
/* Delete the default system panning screen and assign the new panning screen
to system task */
ChangePanning(tempScreen, 0);
/* Create a main task without application icon nor panning screen */
AdvTaskCreate(taskAppId, TaskApp, 0, 0, 0, 0, 2048, PPSM_SCREEN_NOSCREEN, 0,
0, NULL);
TaskStart(taskAppId);
}
13.2
Sub-task
Sub-task, on the other hand, can be active at the same time as the parent task
that generated the sub-task and other sub tasks with same parent task. A maIf the task is swapped by pen interrupt or AdvSendMessage() with input parameter
task can create multiple sub-tasks. These sub-tasks are queued in the reverse
order they are created initially. However, the order may be changed when any sub
task is swapping in or out by using SendMessage() or AdvSendMessage().
Sub-task uses the display resource, hardware cursor and input pad of its parimmediately. It will be swapped out in IrptGetData() when all messages in current
and can only be created with the system tool SubTaskCreate().
Sub-tasks are tied to the parent task. If the parent task is swapped out or
terminated, the sub-task will be swapped out or terminated too. Sub-task inheAll tasks to be swapped in will be in a FIFO queue. The current task to be
the input pad properties from the parent task at creation. There can only be oswapped out will be put at the end of the queue. However, if the current task
input pad among the main task and its sub-tasks.
Personal Portable System Manager
Programmer’s Manual
Task MaTask Management
13-3
13.2.1
Sub-task Management
When the active area of sub task is touched, that sub task will be swapped in as
the current task.
The IrptGetData() tool is another task swapping point. If no interrupt message is
If there are multiple sub-tasks, they will be parsed using round-robin method. The
most recently swapped out sub-task will be put to the end of the queue. When the
system is ready to restart a new sub-task, it always searches from the beginning
of the queue.
13.3
Task Switching
When the task is started for the first time, it will execute from the beginning of the
task application. When the task needs to be swapped out, PPSM will save the
current Program Counter value. Then, when this task is swapped back in, it will
resume execution from where it was left off.
Example 13-2 Task switching
At arrow 1, TaskApp1() is started for the first time. Then, at arrow 2, TaskApp2() is
also started for the first time, so TaskApp1() will be swapped out. At arrow 3,
TaskApp1() is swapped back in and is resumed from where it was left off.
being SWAP_TASK or SWAP_TASK_BACK_LATER.
If the task is swapped by SendMessage() or AdvSendMessage() with input
parameter being SWAP_TASK_LATER , the current task will not be swapped out
task are handled. If the target task is a subtask in other family, it will swap to the
parent of the other family before swapping to the target subtask.
TaskApp1()
{
TaskInit();
while(TRUE)
{
switch(IrptGetData...
......
......
}
1
F
Freescale Semiconductor, Inc.
For More Information On This Product,
Go to: www.freescale.com
n
.