Event Shell is available on (almost?) all Cameras via UART connection. Look SD4000 for Reference.
Event Procedure are directly useable this way. It also possible to enter DryOS Shell with drysh command.
Example[]
Some Example output from SD4000:
Event[1]>? [PutsCameraLogEvent] [DispDev_EnableEventProc] [StopCameraLog] [EngineDriver.Create] [Mecha.Create] [ShowCameraLog] [ExMem] [SS.Create] [Driver_EnableEventProc] [UI_RegistDebugEventProc] [StartCameraLog] [UI.CreatePublic] [ShowCameraLogInfo] [drysh] [Capture.Create] [DispDev.Create] [NewTaskShell] [UI.Create] [StopRedirectUART] [OpLog.Create] [Driver.Create] [StartRedirectUART] [EngApp.Create] [System.Create] [FA.Create] Event[1]>ShowCameraLogInfo === CAMERA LOG STATUS === CAMERA LOG is started. CameraLogLevel = 0x20 CameraLogBufferSize = 0x1000 ShowCameraLogInfo returned 0(0x0) ShowCameraLog 00000160: *** Camera Log Start *** 00000200: UI:LogicalEvent:0x5001:adr:0,Para:0 00000260: SS:S-Imag 00000260: UI:ScreenLock 00000260: UI:ScreenUnLock 00000270: UI:LogicalEvent:0x300a:adr:0,Para:0 00000270: UI:HDMIConnectCnt 00000270: UI:PB.Create 00000270: UI:DispSwCon_TurnOnBackLight 00000270: UI:TurnOnBackLight 00000310: UI:LogicalEvent:0x5006:adr:0,Para:0 00000430: UI:DispSwCon_MuteOffPhysicalScreen 00000430: UI:MuteOffPhysicalScreen 00000430: UI:LogicalEvent:0x3138:adr:0,Para:0 00000440: UI:LogicalEvent:0x112c:adr:0,Para:0 00000460: UI:ScreenLock 00000470: UI:ScreenUnLock 00000480: UI:PB.CreateE 00000480: UI:AC:StartPB 00000480: UI:DispSwCon_TurnOnDisplayDevice 00000480: UI:AC:EBtn 00000480: UI:PB.Start 00000480: UI:DSIC:47,0 00000490: UI:CC_CompFlhJpg 00000490: UI:_CompFlhJpg 00000490: UI:PB.Flash 00000490: UI:ScreenLock 00000490: UI:DSIC:47,0 00000490: UI:ScreenUnLock 00000520: UI:ScreenLock 00000530: UI:DSIC:47,0 00000530: UI:LogicalEvent:0x3209:adr:0x3e,Para:62 00000610: UI:PB.DrawI 00000610: UI:LogicalEvent:0x320a:adr:0,Para:0 00000780: UI:LogicalEvent:0x3203:adr:0,Para:0 00000840: UI:PB.StartE 00000840: UI:PB.TOTAL 00000840: UI:PB.DPOF 00000840: UI:PB.IHist 00000850: UI:PB.DcdCBR 00000850: UI:PB.RfrsI 00000880: UI:LogicalEvent:0x3201:adr:0,Para:0 00000890: UI:ScreenUnLock 00000900: UI:DispSw: Unlock 00000900: UI:DispSwCon:Unlock 00000900: UI:DispSwCon_TurnOnBackLight 00000900: UI:DispSwCon_MuteOffPhysicalScreen 00000900: UI:MuteOffPhysicalScreen 00000900: UI:AC:EnryPB 00000900: UI:AP:ChkCnctUSB 00001210: UI:LogicalEvent:0x321f:adr:0,Para:0 00001210: UI:PB.CTG 00001210: UI:DSIC:48,0 00002890: UI:ScreenLock 00002890: UI:ScreenUnLock 00002890: UI:ScreenLock 00002900: UI:ScreenUnLock 00007030: UI:ScreenLock 00007030: UI:ScreenUnLock 00014440: ShowCameraLogInfo 00017360: ShowCameraLog ShowCameraLog returned 0(0x0) Event[1]>drysh === Dry-shell start === Dry>
ROMLOG Example[]
Camera does output ROMLOG on Error. Example from SD4000:
Event[1]>Can not Execute UIFS_Capture ASSERT!! EvntProc.c Line 221 Occured Time 2011:02:11 19:23:11 Task ID: 14811165 Task name: CtrlSrv SP: 0x00387C78 StackDump: 0x00000000 0xFF88BAEC 0x000000DD 0x00002F44 0x00387CBC 0x00000000 0x00387CD4 0x00000001 0x00000000 0x0000082A 0x0000083C 0xFF88BA1C 0x00002F58 0x00176F70 0x003D0EA8 0xFF97740C 0x003CE86C 0x00000005 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x0016E080 0x00176F00 0x00000000 0xFF9BC854 0x00176F00 0xFF888E30 0x00000070 0x00176F00 0x00000860 0x00000000 0x20000000 0x00007DEC 0x00000000 0x00000862 0x0000082A 0xFF9BC594 0x00000000 0x001C7830 0x00003118 0x00000860 0x00001504 0x20000000 0x20000000 0x19980218 0x19980218 0xFF89309C 0x001C7830 0x00000001 0x00003118 0x00000860 0x00001504 0xFF8935A4 0x0003A3B0 0x00003100 0x19980218 0x19980218 0x19980218 0x19980218 0x19980218 0xFF892A78 0x0003A3B0 0x00372EE8 0x19980218 0xFF816AEC 0x19980218 0x19980218 0x00000808 ShootConDump: 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f CameraConDump: 07 0a 02 0f 0f 0f 0f 0f 0f 0f 00000160: *** Camera Log Start *** 00000200: UI:LogicalEvent:0x5001:adr:0,Para:0 00000260: UI:LogicalEvent:0x5006:adr:0,Para:0 00000270: SS:S-Imag 00000280: UI:ScreenLock 00000280: UI:ScreenUnLock 00000280: UI:LogicalEvent:0x300a:adr:0,Para:0 00000280: UI:HDMIConnectCnt 00000280: UI:PB.Create 00000280: UI:DispSwCon_TurnOnBackLight 00000280: UI:TurnOnBackLight 00000320: UI:Button:0x00001004:UnpressPBButton 00000430: UI:DispSwCon_MuteOffPhysicalScreen 00000430: UI:MuteOffPhysicalScreen 00000430: UI:LogicalEvent:0x3138:adr:0,Para:0 00000460: UI:LogicalEvent:0x112c:adr:0,Para:0 00000480: UI:ScreenLock 00000480: UI:ScreenUnLock 00000490: UI:PB.CreateE 00000490: UI:AC:StartPB 00000490: UI:DispSwCon_TurnOnDisplayDevice 00000490: UI:AC:EBtn 00000490: UI:PB.Start 00000490: UI:DSIC:47,0 00000490: UI:CC_CompFlhJpg 00000490: UI:_CompFlhJpg 00000490: UI:PB.Flash 00000500: UI:ScreenLock 00000500: UI:LogicalEvent:0x321f:adr:0,Para:0 00000500: UI:DSIC:47,0 00000500: UI:ScreenUnLock 00000500: UI:LogicalEvent:0x320a:adr:0,Para:0 00001010: UI:ScreenLock 00001010: UI:ScreenUnLock 00001020: UI:LogicalEvent:0x3201:adr:0,Para:0 00001020: UI:ScreenLock 00001020: UI:ScreenUnLock 00001020: UI:ScreenLock 00001020: UI:ScreenUnLock 00001030: UI:PB.StartE 00001030: UI:PB.CTG 00001030: UI:PB.DPOF 00001030: UI:DSIC:48,0 00001030: UI:DispSw: Unlock 00001030: UI:DispSwCon:Unlock 00001030: UI:DispSwCon_TurnOnBackLight 00001030: UI:DispSwCon_MuteOffPhysicalScreen 00001030: UI:MuteOffPhysicalScreen 00001030: UI:AC:EnryPB 00001030: UI:AP:ChkCnctUSB 00003020: UI:ScreenLock 00003020: UI:ScreenUnLock 00003020: UI:ScreenLock 00003020: UI:ScreenUnLock 00003600: UI:Button:0x0000089B:TouchRightButton 00003660: UI:Button:0x0000089C:UntouchRightButton 00003780: UI:Button:0x0000089B:TouchRightButton 00004400: UI:Button:0x00000860:PressSetButton 00005380: UI:Button:0x00000861:UnpressSetButton 00005400: UI.CreatePublic 00005410: UI.Create 00005420: LCDMsg_Create 00005420: UI:ScreenLock 00005430: UI:ScreenUnLock 00005430: LCDMsg_SetStr Erase Done. 0xffffe000 Erase Done. 0xff800000 Log Write to ROM... Successful. Operation Log Write to ROM... Successful.
See Debugging for more information about ROMLOG and ASSERT.