디버깅 메뉴로 할 수 있는 모든 것을 설명한다. 나중에 디버깅 시에 많은 도움이 될 것이다.
디버깅 메뉴를 사용하기 위해서는 몇가지 전제조건이 충족되어야 한다.
- 'Debug Status : Debug / EVENT 에서만 사용가능'
- 'Baudrate : 기본적으로 115200 을 사용하지만, In-stop 시 9600 으로 초기화됨'
디버깅 모드
디버깅 모드로 진입하기 위해서는 시리얼포트를 연결한 상태에서 'debug' 를 입력하고 'd' 를 입력하면, 아래와 같은 메뉴가 출력된다.
001011.266404:Keyboard] Exit Product mode 001011.266545:Keyboard] Enter Debug Mode : if you want exit form debug, input 'x' 001011.510143:Keyboard] 0x00000064 help,? Print this help message ============================================================ * show Show Various status ver Show VERsion data sh Excute OS shell md Memory dump mm Modify memory mf Memory fill mmap Map kernel physical memory to user vitrual memory dsm Disassemble memory regs Dump current exception registers i2cd Dump I2C Device i2cm Modify I2C Device nvmd Dump NVRAM Device nvmm Modify NVRAM Device nvmclr Clear(Reset) NVRAM num Print number in hex/dec/bin uptime Print system up time pdm XX_PRINTF() off/on control call Call a function reset Reset system mtd Show current MTD. map info. cfg Show current CFG. set value * orgm Enter Org style debug menu chkesc Toggle check ESC on/off ------ ORG MAIN ---------------------------------------- 1 Print Mask Menu 2 S/W Version Info 3 Select Country Group 10 SDEC Menu 11 VDEC Menu 12 VIDEO Menu 13 ADEC Menu 14 GFXOSD Menu 15 Pictue Quality Driver Menu 16 Pictue Quality MW Menu 23 Front End Menu 24 AUDIO DDI Menu 25 AUDIO API Menu 30 GPIO Menu 31 I2C Menu 32 NVM Menu 40 PVRDDI Menu 50 Micom Menu 51 SUMDSVC Menu 52 FRC 53 Fan Menu 55 HDMISW 56 LED Local Dimming 60 SSU Menu 61 NSU Menu 62 NM Menu 70 WCM Menu 80 SI Menu 81 CM Menu 83 PSIP Menu 90 MRE Menu 91 UTIL Menu 92 PWM Menu 99 Streaming Menu a3 EDB Menu aa DASY Menu ae SDM Menu af MFS Menu b0 SWU Menu b2 Autotest Menu c1 ATVCC Menu c2 DTVCC Menu e0 UI Menu e1 DVR UI Menu e5 OAE Menu f1 EDID Menu f6 Hotel Mode Menu f7 LCD TCON Menu df OSD Multi-Language d1 BSI d2 Show Config. Data d3 LED Menu d4 Init Tool Option from CFG file to Eeprom g4 DLNA Menu h1 Addon Print Mask Menu ============================================================ exit Exit from ORG MAIN menu 1:ORG MAIN $
위 메뉴에서는 각 모듈 별로 기능(function) 테스트를 할 수 있다. 단축키를 입력하면 된다.
각 모듈별이 아닌 전체 프로그램 상에서의 정보를 확인하기 위해서는 'F1' 키를 누르면 아래와 같은 도움말이 출력된다
Function Key helps(gnDebugLevel is 0) == Primitive functions keys(LGTerm, CRT/linux, CRT/SCOANSI) =================== F01 : Show this help message, F02 : Reset debug menu level F03 : Toggle overrun check method F04 : Reserved for future use F05 : Show task resource table F06 : Show OSA task information F07 : Show OSA semaphore information F08 : Show OSA Message Information F09 : Toggle debug message output F10 : Enter debug main menu F11 : Top utility F12 : Enter task monitoring tool == Shifted functions keys(LGTERM and CRT/SCOANSI only) ========================= S+F03: Toggle H/W mem logs(BCM) S+F04: Reserved for future use S+F05: Reserved for future use S+F06: Reserved for future use S+F07: Reserved for future use S+F08: Reserved for future use S+F09: Reserved for future use S+F10: Reserved for future use == LGTerm/Linux/SCOANSI(Other control keys) =================================== INSERT/HOME /HOME : Show OSA hash table DELETE/END /END : Dump raw task table END /PGUP /PGUP : Dump raw Resource table PGDN /PGDN /PGDN : Dump raw mapped memory list ================================================================================
디버깅 메세지 출력하기
각 모듈별로 디버깅 메세지를 볼 수 있다. 여기서는 Network UI 쪽의 디버깅 메세지만 보도록 하겠다.
먼저 'Debug Status : Debug' 로 지정한다. 위의 디버깅 모드에서 '1 Print Mask Menu' 을 선택한다.
************** Debug Print Mask Menu *************** 0x01 : Set [UART PRINT : ENABLE] 0x02 : Set [API_ERROR : DISABLE] 0x03 : Enable all module print mask 0x04 : Disable all module print mask 0x09 : Set [Module Print: DISABLE] 0x10 : Set Mask [UI1 : DISABLE] 0x11 : Set Mask [UI2 : ENABLE] 0x12 : Set Mask [MW1 : DISABLE] 0x13 : Set Mask [MW2 : DISABLE] 0x14 : Set Mask [MW3 : DISABLE] 0x15 : Set Mask [MW4 : DISABLE] 0x16 : Set Mask [DRV1 : DISABLE] 0x17 : Set Mask [DRV2 : DISABLE] 0xFF : Exit from this menu **************************************************** Enter command: 0x11 <---- 11 입력 [UI2] Module : ENABLE --------- ( Enter, 1 : Enable / 2: Disable ) Select: 1 <---- 1 입력 [UI2] Print Bit Mask : 0x 00001000-------- ( Enter : Keep / 1 : Enable / 2: Disable ) 0x01 : [UI MATRUX ] (2) | 0x02 : [UI VIDEO ] (2) 0x03 : [UI_BT_PRINT ] (2) | 0x04 : [UI SYS ] (2) 0x05 : [UI TOOLKIT ] (2) | 0x06 : [UI EPGSEG ] (2) 0x07 : [UI DASY ] (2) | 0x08 : [UI PGBARTIME] (2) 0x09 : [UI AUTOTUNING] (2) | 0x0a : [UI MANUALTUNING] (2) 0x0b : [UI MOVIELIST] (2) | 0x0c : [UI ACMS ] (2) 0x0d : [UI NETWORK ] (1) | 0x0e : [UI NETFLIX ] (2) 0x0f : [UI NSU ] (2) | 0x10 : [UI YOUTUBE ] (2) 0x11 : [UI RATING ] (2) | 0x12 : [UI MHP ] (2) 0x13 : [UI ANI ] (2) | 0x14 : [UI MULTICHANNEL] (2) 0x15 : [UI MHPKEY ] (2) | 0x16 : [UI IMAGE ] (2) Select Print Number(exit:0xff): 0xd <---- d 입력 [UI NETWORK ] [12] (1) : (Enter : Keep / 1 : Enable / 2: Disable) : 1 <---- 1 입력 Current Color : red <---- red 입력 ===================================================== blac[k/K], [r/R]ed, [g/G]reen, [y/Y]ellow, [b/B]lue [p/P]urple, [c/C]yan, gr[a/A]y, [n/N]o color --------------------------------------------------- Back Ground : Large Chracter ===================================================== Input color : red Changed Color : red Module name Disp. flag DISABLE Input(1:Enable, 2:Disable): 1 -> ENABLE [UI2] Print Bit Mask : 0x 00001000 [UI2] Print Bit Mask : 0x 00001000-------- ( Enter : Keep / 1 : Enable / 2: Disable ) 0x01 : [UI MATRUX ] (2) | 0x02 : [UI VIDEO ] (2) 0x03 : [UI_BT_PRINT ] (2) | 0x04 : [UI SYS ] (2) 0x05 : [UI TOOLKIT ] (2) | 0x06 : [UI EPGSEG ] (2) 0x07 : [UI DASY ] (2) | 0x08 : [UI PGBARTIME] (2) 0x09 : [UI AUTOTUNING] (2) | 0x0a : [UI MANUALTUNING] (2) 0x0b : [UI MOVIELIST] (2) | 0x0c : [UI ACMS ] (2) 0x0d : [UI NETWORK ] (1) | 0x0e : [UI NETFLIX ] (2) 0x0f : [UI NSU ] (2) | 0x10 : [UI YOUTUBE ] (2) 0x11 : [UI RATING ] (2) | 0x12 : [UI MHP ] (2) 0x13 : [UI ANI ] (2) | 0x14 : [UI MULTICHANNEL] (2) 0x15 : [UI MHPKEY ] (2) | 0x16 : [UI IMAGE ] (2) Select Print Number(exit:0xff): 0x
위와 같이 설정 후에 아래와 같이 출력되면 이후 디버깅 메세지를 볼 수 있다.
************** Debug Print Mask Menu *************** 0x01 : Set [UART PRINT : ENABLE] <---- ENABLE 확인 0x02 : Set [API_ERROR : DISABLE] 0x03 : Enable all module print mask 0x04 : Disable all module print mask 0x09 : Set [Module Print: DISABLE] 0x10 : Set Mask [UI1 : DISABLE] 0x11 : Set Mask [UI2 : ENABLE] <---- ENABLE 확인 0x12 : Set Mask [MW1 : DISABLE] 0x13 : Set Mask [MW2 : DISABLE] 0x14 : Set Mask [MW3 : DISABLE] 0x15 : Set Mask [MW4 : DISABLE] 0x16 : Set Mask [DRV1 : DISABLE] 0x17 : Set Mask [DRV2 : DISABLE] 0xFF : Exit from this menu **************************************************