Эта хитрая мулька может помочь в отладке эльфов. Ну и не только эльфов Запускаете логгер, подключаете телефон (хоть кабелем, хоть по bluetooth), прога определяет его, открываете print server channel. Откроется окно лога, куда будет сыпаться отладочный вывод. Параллельно логи будут сохраняться в текстовые файлы. Ну а конкретно написанию эльфов прога может помочь, если в эльфе в нужных и не очень местах расставить вызов функции debug_printf.
Вот пример, который я публиковал на другом сайте. В нём кроме собственно вызова debug_printf используется простенький класс, использование которого позволяет контролировать вход (если объект создаётся в начале функции) и выход из функции. И ещё используются макросы, автоматически подсовывающие в вывод имена функций (можно и номера строк выводить, и дату, и вообще см. справку)
void onCloseHWBook(BOOK * book) { FUNCTION if (book) { Timer_Kill(&timer); StatusIndication_ShowNotes(0x6FFFFFFF); SetLampLevel(0); SUBPROC(elf_exit); } }
BOOK * CreateHWBook() { FUNCTION HWBook= new BOOK; CreateBook(HWBook,onCloseHWBook,&base_page,"Example",-1,0); return(HWBook); }
int main (void) { FUNCTION CreateHWBook(); // выводим текст в "заметки" на StandBy StatusIndication_ShowNotes(STR("Hello World!")); // запускаем таймер на 0.5 сек. timer=Timer_Set(500,onTimer,0); return(0); }
Ну и собственно сам вывод:
показать:
8302 TL_Counter 6 CDT_Counter 14 8302 + 8379 [BrowserItemBook#102] Created 8379 [BrowserItemBook#102] Inherit session from [DataDownloadBook#100] 8379 [BrowserItemBook#102] Goto BrowserItemBook_Main_Page 8379 => [BrowserItemBook#102] Call Elf_Run_Subroutine 8379 [BrowserItemBook#102] Goto Elf_Run_Page 8382 function enter: H:\svn\se_z610_new\HelloWorld\main.c/main 8382 function enter: H:\svn\se_z610_new\HelloWorld\main.c/CreateHWBook 8382 [Example#103] Created 8382 function leave: H:\svn\se_z610_new\HelloWorld\main.c/CreateHWBook 8382 function leave: H:\svn\se_z610_new\HelloWorld\main.c/main 8382 <= [BrowserItemBook#102] Return [...] 8389 BT UI : message received: Base = 9ca, ID = 4+ 8507 function enter: H:\svn\se_z610_new\HelloWorld\main.c/onTimer 8507 function leave: H:\svn\se_z610_new\HelloWorld\main.c/onTimer 8538 TL_Counter 6 CDT_Counter 14 8538 + 8632 function enter: H:\svn\se_z610_new\HelloWorld\main.c/onTimer 8632 function leave: H:\svn\se_z610_new\HelloWorld\main.c/onTimer 8632 [DataDownloadBook#100] Destroy gui [ListObject#22] on main display 8635 [DataDownloadBook#100] Destroyed [.....] 10114 MPH: requestBCCH Norm TC 3, ARFCN 607, SI flag 40 10128 MPH S 642 -2 38 -980 -18 -22 3720 10147 function enter: H:\svn\se_z610_new\HelloWorld\main.c/onTimer 10147 function leave: H:\svn\se_z610_new\HelloWorld\main.c/onTimer 10173 MPH B 622 1 0 1 0 28 7 10185 TL_Counter 6 CDT_Counter 14 10186 + 10221 function enter: H:\svn\se_z610_new\HelloWorld\main.c/TerminateElf 10221 [Example#103] Destroyed 10221 function enter: H:\svn\se_z610_new\HelloWorld\main.c/onCloseHWBook 10221 function leave: H:\svn\se_z610_new\HelloWorld\main.c/onCloseHWBook 10221 function leave: H:\svn\se_z610_new\HelloWorld\main.c/TerminateElf 10221 [BookManager#104] Destroy gui [TabMenuBar#38] on main display 10225 MPH B 607 1 1 1 1 28 3 10226 [BookManager#104] Create gui [ListObject#48] on main display 10231 [BookManager#104] Create gui [ListObject#52] on main display 10235 [BookManager#104] Create gui [TabMenuBar#56] on main display
а вот пример того, что без сервисного кабеля не увидеть. это то, что попадает в лог при серьёзных ошибках. в моём случае кривой патч был причиной ребутов при запуске одного из жава-приложений
показать:
### @JAVA shut down the Print Server! ###
################################################################################### ################################################################################### This is the Platform Error handler SW Build: R6DA001 prgCXC1250546_GENERIC_MY An error has been reported by the kernel: user_called : 0x0 error code : 0x80100113 OSE_EUNEXPECTED_EXCEPTION_REGDUMP subcode : data abort (data access memory abort) OSE_KRN (0x00100000) product : Kernel header file : ose_err.h extra : 0x6033fa20 mode : supervisor reg PC : 0x45BA8046 reg LR : 0x4423E16D reg PSR : 0x60000013 reg SP : 0x6033FAEC Current Process: 0x0001012b Process Name: @JAVA File: Line: 0
Вы не можете начинать темы. Вы не можете редактировать свои сообщения. Вы не можете создавать опросы. Вы не можете вкладывать файлы в сообщения. Вы не можете отвечать на сообщения. Вы не можете удалять свои сообщения. Вы не можете голосовать.