디버깅 메뉴 사용하기
디버깅 메뉴로 할 수 있는 모든 것을 설명한다. 나중에 디버깅 시에 많은 도움이 될 것이다.
디버깅 메뉴를 사용하기 위해서는 몇가지 전제조건이 충족되어야 한다.
- '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
**************************************************