Magic Lantern Firmware Wiki
Register
Advertisement


Parent:http://magiclantern.wikia.com/wiki/2.0.4_AJ


Related Page: StateObjects, EventDispatchTasks

AJ_task_create()[]

+----------------------------------+
|  AJ_task_create() at 0xFF86E2C8  |  
+----------------------------------+

int R0 = Name of task  [eg "LiveViewMgr"]
int R1 = Priority      [eg 17.    0..31 allowed]
int R2 = Unknown       [eg 5120]
int R3 = Routine name  [eg AJ_task_create_2_related()]
Stack0 = & task_struct


List of all tasks created

Sub where AJ_task_create()

was called from

R0=

Name_of_task

R1=

Priority

R2=

unknown


bitmask

R3=


Sub_name()

Stack0=


Task_struct

Comment

AJ_massive_kernel_init()


at 0xFF81326C

"TaskMain" 29 0

AJ_Firmware_2_0_4_

Akashi_Morino()

0 Calls AJ_NewTaskShell()

TH_startupEntry()


at 0xFF813684

"Startup" 17 1024 TH_startupPropAdminMain() 0

AJ_hotplug_taskmaster()


at 0xFF81E1B0

"HotPlug" 30 0 TH_hotplug_task() 0

AJ_DL_PrepareDL()

at 0xFF821608

"DL" 17 1024 AJ_DL_dlMain() 0

AJ_MainMessQueue_

n_MainControlTask_

n_hotplugInit_n_MPU_ n_AJ_MainCtrl()

at 0xFF822278

"MainCtrl" 18 0 AJ_MainCtrl() 0

AJ_GUI_Initialize_ClassID()

at 0xFF823D0C

"GuiMainTask" 23 8192 AJ_gui_main_task() 0

AJ_GUI_Lock_InitializeGUILock_

CreateMessageQueue_ n_CreateTask()

at 0xFF824AEC

"GuiLockTask" 23 0

AJ_GuiLock_n_

TurnOffDisplay()

0

AJ_CreateSequencer()


at 0xFF82B3D0

"Startup"

"Terminate"

"Terminate"

"Terminate"

25

21

21

17

0x2800

0x1000

0x1000

0x1000

AJ_SEQ_

seqEventDispatch()

Malloced


task_struct

Called in 4 different places. The startup sequence cycles through:

TH_startupEntry()
AJ_startupPrepareProperty()
AJ_startupPrepareCapture()
AJ_startupPrepareDevelop_n_SDS_initialise()
AJ_startupPreparePlayback()
AJ_startupInitializeComplete()

AJ_InitializeDisplayDeviceController()


at 0xFF86761C

"LightMeasure" 30 0x200 AJ_LightMeasure_task() 0

AJ_Createtask_HDMI_ ReadMessageQueue()

at 0xFF868498

"HDMI" 23 0

AJ_HDMI_

ReceiveMessageQueue()

0

AJ_Createtask_n_ CALL_SubMainReset()

at 0xFF87228C

See additional table below See additional table below See additional table below

AJ_NewTaskShell()

at 0xFF875670

"EvShel" 24 0x8000 AJ_EventShell_task() 0

Orphan_sub_create_task()

at 0xFF876288

cant work out until Orphan call located 29 0

AJ_OrphanMsgQueue

Receive_task()

task_struct

AJ_LpfMode()

at 0xFF88DD18

"LpfMode" 29 0

AJ_SetReleaseMode

ForSR_task()

0

a AJ_SendReqestQue()

at 0xFF8CC270

"DpsReceiveTask" 25 0x1000 AJ_DpsReceiveTask() 0

AJ_fmLaunchCopyFile()

at 0xFF956190

"FmCopy" 25 0 AJ_fmCopyEventDispatch()

aAJ_0x1ED8_

FM_struct_0x00_

task_struct_ptr

Priority set in


AJ_FM_Initialize()

AJ_task_create_PowerMgr()

at 0xFF9B59A0

"PowerMgr"

32


low priority?

0x400 AJ_pmSelfRefresh_task() 0

AJ_createTask_CmdShell()

at 0xFF9B8A30

"CmdShell" 10 0 AJ_CmdShell_task() 0

AJ_Setup_EventDispatch()

at 0xFF9B8BB8

Check this page for complete list

Tasks for event dispatch are on


http://magiclantern.wikia.com/wiki/2.0.4_EventDispatch

TH_task_create_UserLevel()

at 0xFF9B955C

=R0 17 =R2 AJ_UserLevel_task()

Malloced 24 byte

task_struct

UserLevel Tasks are listed on the following page


http://magiclantern.wikia.com/wiki/2.0.4_Tasks_UserLevel

AJ_CUCreateTask ()

at 0xFF9BA6A8

"CpuUsageTask"

1


high priority

0 AJ_CPU.Usage_task() 0

AJ_DDD_CreateTaskClass()

at 0xFFA55674

"DDDMgr" 28 0x400 AJ_DDDMgr_task() task_struct

AJ_CSMGR_Initialize()

at 0xFFB2A580

"CSMgrTask" 30 0x1000

AJ_CSMgrTask_

ReceiveMessageQueue()

0 Card Service Manager

AJ_create_WDTResetCounterTask()

at 0xFFB3C634

"WDTResetCounterTask" 25 0 AJ_WDTResetCounter_task() 0


AJ_task_create_n_CALL_SubReset.MainReset()[]

+-----------------------------------------------------------+
|  AJ_task_create_n_CALL_SubReset.MainReset() at 0xFF87228C |
+-----------------------------------------------------------+

int R0 = task_name      [eg "LowConsole"
int R1 = priority       [eg 17.   0..31]
int R2 = bit_mask       [eg 0x800]
int R3 = task_entry     [eg AJ_LVC_FACE_task()]
STACK0 = task_struct

This routine calls AJ_task_create() above, then additional perfoms a CALL Subset and CALL Reset

Sub where AJ_task_create_n_

CALL_SubReset.MainReset()

was called from

R0=

Name_of_task

R1=

Priority

R2=

unknown


bitmask

R3=


Sub_name()

Stack0=


Task_struct

Comment

AJ_LowConsole_ConsoleSvr_

BinarySemaphore_Alloc() at 0xFF815654

"LowConsole"

25 0x800

AJ_LowConsole_task()

0

AJ_LowConsole_ConsoleSvr_

BinarySemaphore_Alloc() at 0xFF815654

"ConsoleSvr"

24 0x800

AJ_ConsoleSvr_task()

0

AJ_LVC_FACE_n_DmacCB_struct()

at 0xFF839F18

[Duplicate]

"LVC_FACE"

23 0x800

[Duplicate]

AJ_LVC_FACE_task()

0

AJ_Createtask_LVC_FACE()

at 0xFF839FA0

[Duplicate]

"LVC_FACE"

23 0x800

[Duplicate]

AJ_LVC_FACE_task()

0

AJ_MVP_Initialize()

at 0xFF84D998

"MoviePlay" 22 0x1000 AJ_MoviePlayer_task() 0

TH_asif_initialize()

at 0xFF857F90

"ASIF" 23 0 AJ_asif_task() 0

AJ_InitializeSoundDevice()


at 0xFF85B294

"SoundDevice" 25 0 TH_sounddev_task() 0

AJ_PTPSession_actions()


at 0xFF913DCC

"PTPSessionTASK" 25 0 AJ_PTPSession_task() task_struct

AJ_USBTrns()


at 0xFF91530C

"USBTrns" 25 0 AJ_USBTrns_task() 0

AJ_SDIOTrns()


at 0xFF91FFA4

"SDIOTrns" 25 0 AJ_SDIOTrns_task() 0

AJ_MOVR_InitializeMovReader()


at 0xFF95BB9C

"MovRead" 23 0x1000 AJ_MovieReader_task() 0

AJ_InitializeAviReader()


at 0xFF95F2B0

"AviRead" 23 0x1000 AJ_AviReader_task() 0

AJ_InitializeImagePlayDriver()


at 0xFF98A930

"ImgPlayDrv" 24 0 AJ_ImagePlayDriver_task() 0

AJ_CtrlSrv()


at 0xFF99FDF8

"CtrlSrv"

23

educated

guess

0x4000 AJ_CtrlSrv_task() 0

AJ_PTPtoFAPI_

StartupPTPtoFAPI()

at 0xFF9F2FB4

"PTPtoFAPI_EventProcTask" 25 0

AJ_PTPtoFAPI_

EventProcTask()

0

AJ_ORPHAN_

CreateMessageQueue_

FsIoNotifyQueue()

at 0xFFB313B0

"FsIoNotifyTask" 23 0 AJ_FsIoNotify_task() 0

.

Advertisement