Dann fing ich mal mit dem, was ich bisher weiß. Der Receiver hat einen bestückten 10-poligen JTAG-Anschluss, der höchstwahrsheinlich wie von STmicro in den JTAG-Dokumenten beschrieben beschaltet ist. Außerdem besitzt der Receiver einen 4-poligen Anschluss für die sieriellen Signale, die TTL-Pegel haben (siehe Anhang).
Außerdem befindet sich oberhalb des JTAG-Anschlusses noch ein unbestücker 2-poliger Anschluss, der offensichtlich für einen Reset-Schalter (System-Reset und gleichbedeutend mit dem nSRST-Signal des JTAG-Anschlusses) vorgesehen war.
Über den seriellen Anschluss erhält man aufschlussreiche Bootmeldungen:
Code:
**********init test tool**************
===================================================
SDK - Software development kit debug environment
PLATFORM : hdk7111_7111
OS : OS21 - 3.3.1 (06:11:12 Nov 19 2008)
VERSION : Jan 28 2011 at 17:44:12
===================================================
STAPI_SDK Revision : STAPI_SDK-REL_A22_20091216
Software Revision : SINDITV-REL_1.0.0A0-2008.08.18
Adaptation layer initialization ...
[Sal_Scart_SetMode] start !
[Sal_Scart_SetAspectRatio] start !
[Sal_Scart_SetColorFormat] start !
[SAL_FE_Init] OK)!
[SAL_TIME_init] OK)!
[Sal_Power_Init] OK)!
[FE] Error attaching STTuner 1.., status -1000007
Middleware layer initialization ...
-----------dal_psi_si_pmt_task: PMT task! is running!-------------
-----------dal_monitor_task is running!-------------
SUB_Test_Init start ...
[pan_init] START!
Please press a key...
[pan_set_display_onoff] DataBuf[3] = 0x02
[pan_init] data[3] = 0x01
[pan_init] power key 0 = 0x00ff7887
[pan_init] create task!
[pan_init] END!
[pan_init] END!
VIN_Disable(0):**ERROR** !!! Capture is not initialized !!!
[STAUD_ModuleStop]--> switch off SPDIF!
[STAUD_ModuleStop]--> switch off SPDIF!
VIN_Close(0):**ERROR** !!! Capture is not initialized !!!
[VIN_Close]--> Unable to Close the vin0(0x1)!
[VIN_Close]--> Unable to Close the vin0(0x1)!
[AVINT] SAL_AV_VideoCaptureStop failed, status 1
[pan_get_systime] DataBuf= 0x[00][00][00][00]
[pan_get_systime] 2000/00/00 00:00:00
[APM]Current system time from MCU is 2000/00/00 00:00:00
[APM] The box booted by user power switch!
[Sal_Scart_SetsOutMode] start !
[Sal_Scart_SetAspectRatio] start !
[Sal_Scart_SetAspectRatio] start !
[DEV] Event 0, total 2
[DEV] 0 => device type 1, device name /usb/ohci0, type name USB controller
HDMI_IsScreenDVIOnly():**ERROR** !!! There is not screen on HDMI !!!
[DEV] 1 => device type 1, device name /usb/ehci0, type name USB controller
HDMI_EnableOutput(0):**WARNING** !!! Unable to detect if this is a DVI or HDMI screen, assume it is a HDMI screen !!!
[pan_key_task] ++++++++++++++++++++++++++++++++++++++++++++++++++
[pan_key_task] ++++++++++++++++++++++++++++++++++++++++++++++++++
[pan_key_task] TASK START !!!
[pan_key_task] ++++++++++++++++++++++++++++++++++++++++++++++++++
[pan_key_task] ++++++++++++++++++++++++++++++++++++++++++++++++++
[APPMenuAutoOTA] Unable to open sw_upgrade_data.bin
[APP_MENU_Init] ..
Open HD+ boot menu
VERSION 1.5.6.184
service db size 5000, tv 4000, radio 1000, fav list 10
[BOOT] Tune to barker TP0
[FEM] Tuning FE 0, frequency 12604000, symbol rate 22000, H, return 0
received lock status, 3
TUNER(EVT_TUNER0) : TUNER_EV_SEARCH_FAILED
received lock status, 1
[BOOT] Tuner not locked..
[BOOT] Tune tobarker TP1
[BOOT] Tuner not locked..
[BOOT] Tune to barker TP2
[BOOT] Tuner not locked..
[BOOT] HD+ boot procedure completed..
[sunny add: AVINT_LiveTvSelectService] selectLiveTvPids..(321)
[selectLiveTvPids] --> no PCR PID ..!
[selectLiveTvPids] --> no pids is available!
[FEM] Tuning FE 0, frequency 11302750, symbol rate 22000, H, return 0
[EPG] EVM callback received, req Id is 0, type 0,0 events
[EPG] Request slot 0 match
[EPG] EVM callback received, req Id is 1, type 1, 0 events
[EPG] Request slot 1 match
TUNER(EVT_TUNER0) : TUNER_EV_SEARCH_FAILED
[LIVE] Unable to get current service copy control desc, status -2131245112
[LIVE] We assume digital copy protection is not required!
[EPG] EVM callback received,req Id is 0, type 0, 0 events
[EPG] Request slot 0 match
[EPG] EVM callback received, req Id is 1, type 1, 0 events
[EPG] Request slot 1 match
[FEM] Tuning FE 0, frequency 11302750, symbol rate 22000, H, return 0
TUNER(EVT_TUNER0) : TUNER_EV_SEARCH_FAILED
[FEM] Tuning FE 0, frequency 11302750, symbol rate 22000, H, return 0
TUNER(EVT_TUNER0) : TUNER_EV_SEARCH_FAILED
[FEM] Tuning FE 0, frequency 11302750, symbol rate 22000, H, return 0
TUNER(EVT_TUNER0) : TUNER_EV_SEARCH_FAILED
[FEM] Tuning FE 0, frequency 11302750, symbol rate 22000, H, return 0
TUNER(EVT_TUNER0) : TUNER_EV_SEARCH_FAILED
.
.
.
[FEM] Tuning FE 0, frequency 11302750, symbol rate 22000, H, return 0
TUNER(EVT_TUNER0) : TUNER_EV_SEARCH_FAILED
Insbesondere verrät uns die erste Meldung schon, dass der Receiver auf einem modifizierten hdk7111 Targes (PLATFORM : hdk7111_7111) beruht.
Außerdem gibt es eine Vielzahl an Debug-Befehlen, die man an der seriellen Konsole nutzen kann:
Code:
HELP
The following 96 commands and macros are defined:
HELP - <commandname> Displays help string for named commands and macros
LIST - <commandname or partial> Lists all strings of command and macro
SHOW - <symbolname> Displays symbol values and macro contents
DELETE - <symbolnames> Removes named symbols or macros
IOBASE - <hex/decimal> Sets default I/O radix for input and output
VERIFY - <flag> Sets echo of commands for macro execution
PRINT - Formats and prints variables
SOURCE - <filestring><echoflag> Executes commands from named file
SAVE - <filestring><constflag> Saves macros, var, consts to file
LOG - <filestring><outputflag> Logs all command I/O to named file
DISPLAY - <address><range> Displays local memory contents
DISPLAY_B - <address><range> Displays local memory contents in byte format
SEARCH - <string><address><range> Searchs for local memory contents
FILL - <address><range><value> Fill local memory with value
COPY - <address><range><newaddress> Copies local memory contents
ALLOC - <size> allocates some memory in partition
FREE - <pointer address> deallocates the memory
LOADMEM - <'filename'> <address> <maxsize> loads file at specifiedaddress
DUMPMEM - <'filename'><Address><Size> Dump memory to binary file
PEEK - <address> Extracts 32 bit memory value
POKE - <address><value> Sets 32 bit memory value
SPEEK - <address> Extracts 16 bit memory value
SPOKE - <address><value> Sets 16 bit memory value
BPEEK - <address> Extracts 8 bit memory value
BPOKE - <address><value> Sets 8 bit memory value
GETKEY - get a key
WAIT - <millisec> Pause operation for a time period
ZAP - Change I/O controls UART/CONSOLE
HISTORY - History of last commands
Q - Quit develop
cadebug - <module name> <disable print> e: error, w: warning, I: info, D: debug
FS_DEL - <File Name> Delete a file
nvm_rt - Read persistent memory storage table.
nvm_read - <firstByte> <numByte> read from persistent storage table.
nvm_write - <firstByte> <numByte> write to persistent storage table.
ADP_OSY_TASK - <action> <index/number> : 0 N = delete Nth tasks, 1 N = create N tasks, 2 N = task wait for 500ms, N is not in use
ADP_OSY_SEMP - <action> <index/number> : 0 N = delete Nth semaphore, 1 N = create N semaphore, 2 N = get Nth semaphore, 3 N = release Nth semaphore
ADP_OSY_EVENT - <action> <index/number>: 0 N = free Nth event, 1 N = create N events, 2 N = receive Nth event, 3 N = send Nth event
ADP_OSY_TIMER - <action> <index/number>: 0 N = free Nth timer, 1 N = create N timers, 2 N = start Nth event, 3 N = stop Nth timer
ADP_OSY_PRINT - <ID> : 0 = task list, 1 = semaphore list, 2 = event list, 3 = timer list
ADP_OSY_ABORT - reset CPU
ADP_CA_RESET - <sectionId> <resetMode> reset smart to get ART
ADP_CA_OPEN - open a connection of with a smartcard
ADP_CA_STATUS - get smart card status.
ADP_CA_CLOSE - register to ICC adptation
ADP_CA_LOAD - load test data, used before CAL is integrated
psitest - Test PSI
psireg - <reg_type> 0: register ECM; 1: register EMM
psiclient - print EMC and EMM registration data
psistm - print EMC data
psiinfo - print PSI info
patinfo - print pat info
psidmx - Test PSI
bdcprint - print bdc message
bdcdisplay - <index> the display CAK message 0 and 1
bdcremove - remove the display CAK message
bdcget - <lang index>: get test data: 0 for eng, 1 for ger, 2 for fin, 3 for no lang given
sysinfo - get cak info
sysenum - Print alarm enum
sysmsg - Send test alarm to app
sysok - Send test alarm to app
systime - get system time
sysmeta - get system time
syspin - set pin code
checkpin - set pin code
testpin - set pin code
syspc - set parental code
sysnuid - set parental code
ettlist - Set PP renewable flag
emm - power up/down notification
smartcard - get SMARTCARD display freq for X with Y days left
prod - get PRODUCT display freq for X with Y days left
wkData - set wakeup test data
wkDisable - set wakeup test data - DISABLE
pfData - set profile test data
msgData - set MESSAGE test data
hotline - get HOTLINE no
charge - get phone call charge
fread - read flash content
empty - 1-clean msg data; 2-clean profile data; 3-clean wakeup data default - clean all data
svcid - to get the svcIDs from svcDB
svcindex - to get the svcIndex for given IDs
Command and macros can be used as statements or part of expressions,
if appropriate, where the assignment is made to a symbol whose value
is either defined or modified by this assignment. Generalised assignments
can be made to symbols of integer, floating point or string types,
including evaluation of arbitrary arithmetic expressions.
Commands and assignments can be combined into parameterised macros
that use FOR, IF, ELSE and WHILE constructs. Using the DEFINE
command these macros can be set up for later invocation. All blocks
within these macro constructs are terminated using the END statement.
Aber das hilft noch nicht viel weiter, denn wenn man mit den ST40-Tools und unmodifizierten hdk7111-Targetdefinitionen versucht, bekommt man nach der richtigen Identifikation des STi7111 sofort den bekannten "Sentinel-Error", dessen Ursache bisher vollkommen ungeklärt ist.
Lesezeichen