clevis.czSiemensMania | WMmania | VySemNesmite | SiemensMania na Facebooku
EnglishČesky
SiemensMania has a brand new forum
  SiemensMania    Fórum

   Off-line verze  TESTY  Náhradní díly  Podpořte SM  

ÚVOD FÓRUM CHAT
:: Zobrazit téma - Programovani elfu
 
 FAQFAQ   HledatHledat   Seznam uživatelůSeznam uživatelů   Skupiny uživatelůSkupiny uživatelů   NastaveníNastavení   ChatChat   Přihlásit, pro kontrolu soukromých zprávPřihlásit, pro kontrolu soukromých zpráv 
 BankaBanka   LoterieLoterie   Obchody uživatelůObchody uživatelů   Obchodní důmObchodní dům 

Programovani elfu
Jdi na stránku 1, 2, 3, 4, 5, 6  Další
 
Odpovědět na téma    Obsah fóra -> Elfy
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Moucha
čestný člen
čestný člen

Založen: 25. 01. 2006
Příspěvky: 2125
Bydliště: C. Budejovice Telefon: HTC Hero

60.08 SMM
PříspěvekZaslal: pá prosinec 08, 2006 6:50 pm    Předmět: Programovani elfu Odpovědět s citátem

Byl by tu nekdo schopny udelat nejaky navody na programovani elfu, treba vim ze sh@dy v tom umi tak jestli by nechtel neco kratkyho udelat nejaky jednoduchy elf atd
_________________

SM
wmmania.cz
Podpořte SiemensManii
=> HTC Hero, ROM alias HTC Touch
Koukněte co zrovna poslouchám


Naposledy upravil Moucha dne pá prosinec 08, 2006 7:11 pm, celkově upraveno 1 krát
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
alkaba
čestný člen
čestný člen

Založen: 15. 01. 2005
Příspěvky: 1618
Bydliště: 0x0000FFF Telefon: S75

10903.00 SMM
PříspěvekZaslal: pá prosinec 08, 2006 6:52 pm    Předmět: Odpovědět s citátem

On už návod je, ale rusky Smile Takže by stačil nějaký schopný ruštin, který by to přeložil...
(btw Sh@dy nemá čas)

_________________
»HTC Rose S740 with WM 6.5.3
»HP iPaq 514 with WM6.5.3
»Siemens C65
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Moucha
čestný člen
čestný člen

Založen: 25. 01. 2006
Příspěvky: 2125
Bydliště: C. Budejovice Telefon: HTC Hero

60.08 SMM
PříspěvekZaslal: pá prosinec 08, 2006 6:54 pm    Předmět: Odpovědět s citátem

Kde najdu link? ze bych to zkusil treba v PC translatoru nejak prelozit
_________________

SM
wmmania.cz
Podpořte SiemensManii
=> HTC Hero, ROM alias HTC Touch
Koukněte co zrovna poslouchám


Naposledy upravil Moucha dne pá prosinec 08, 2006 6:59 pm, celkově upraveno 3 krát
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
alkaba
čestný člen
čestný člen

Založen: 15. 01. 2005
Příspěvky: 1618
Bydliště: 0x0000FFF Telefon: S75

10903.00 SMM
PříspěvekZaslal: pá prosinec 08, 2006 6:58 pm    Předmět: Odpovědět s citátem

Arrow http://cbn.narod.ru/documents/elf_info.html
Musíš ale umět programovat v C-čku...

_________________
»HTC Rose S740 with WM 6.5.3
»HP iPaq 514 with WM6.5.3
»Siemens C65
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
krMeEjNzy
věrný diskusník
věrný diskusník

Založen: 06. 11. 2005
Příspěvky: 401
Bydliště: javamania :o)

2061.00 SMM
PříspěvekZaslal: pá prosinec 08, 2006 7:08 pm    Předmět: Odpovědět s citátem

Tak me napada, neni nahodou symbian taky v Ccku? nebo je v c++? Think
Jinak za navod bych se primlouval... A spis bych se primlouval za nakej pokud mozno psanej jak pro debily Takze sh@dy jestli sem kouknes tak uvidis, ze uz nejsem sam kdo by to chtel wink
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovi WWW stránky
mart22
elfmaster
elfmaster

Založen: 03. 05. 2005
Příspěvky: 1346
Bydliště: Tábor

56669.28 SMM
PříspěvekZaslal: pá prosinec 08, 2006 7:20 pm    Předmět: Odpovědět s citátem

návod na ruským fóru (Howmakeelf.rar) jsem přeložil na altavista a překladu bylo rozumět dobře Very Happy ,ale nepochopil jsem návod samotný Sad .
Takže bych byl taky pro 1/2patický návod

_________________
Arrow E71v45 + Testpoint, MasterPatch 14, ElfPack 2.3CZ , 1GB
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovi WWW stránky
Moucha
čestný člen
čestný člen

Založen: 25. 01. 2006
Příspěvky: 2125
Bydliště: C. Budejovice Telefon: HTC Hero

60.08 SMM
PříspěvekZaslal: pá prosinec 08, 2006 7:26 pm    Předmět: Odpovědět s citátem

Doufam ze nespamuju
Tohleto mi vyhodil PC Translator po prelozeni do CJ, jeste by to chtelo trosku dat do vic srozumitelny CJ, sem tam je to opravdova blbost co to vypise takze se nedivte

kód:
Elfy psaní jazykem Si i zabezpečuje maximální operační rychlost.
Pro jich zanedbáváš u vás musejí je nastavený 3 PATČA: knihovna funkcí, elfloader i swi- hook konkrétně pro vaší TYPY prošití i aut (čísla prošití viz z *#06# - > další působnosti, řádku SW- Version). Ssylki na patči viz nižší.
Hned nakladač elf psaní pro všechny mód posvěceného oleje x65 (některé je třeba přešít v dr. model, že označuje - >): CX65- >CX70, M65), C65 - >SL65, S65
i pro x75 mód posvěceného oleje: S75, CX75 i dr.

Instrukce z vytvoření elf od cbn 0.3a:
Všichni příklad (s) Rst7.
co to je elf viz . zde. 
Připravené elf i patči iščem na kibab 

Obsah:
1. Instalování Si kompilátor IAR 
2. Instalování nakladač elf na aut 
3. Uvedení do chodu příklad v IAR 
4. Sozdaem svůj elf 
5. Příklad 1. Práce s památkou i souborem 
6. Příklad 2. Závěr na štít i dezinfekci klávesa 
7. Příklad se rozloučí. Zapuskaem fonovyj proces, kreslí z časového spínače
8. Příklad 4. Rezidentnaja program 
9. FAQ 

1. Instalování Si kompilátor IAR 
S webovská stránkou www.iar.com skačivaem evaluation verzi ARM IAR kompilátor (>100 mb),
při záznamu se stanoví reálný e- mail - na něj pošlu klíč.
Zapuskaem krek iarunicrk aby obejde 30- dnevnoe omezení (přečte předpisy).
Nebo (komu lenivost pumpuje 100 mb :) bereme krácný pracovní verzi Iar (11 mb, bez angl.help i sv.čl.)
odtud: 1    2    3    4    5    6    7 

2. Instalování nakladač elf na aut ( ponadobitsja šňůra - bez něj nikterak ): 
Idem na siemens- klub, rozšíření všichni o elf v FAQ i na forumach tamtéž.
Delaem jak tam psaní...:)

3. Uvedení do chodu příklad v IAR 
Raspakovyvaem příklad od Rst7 (i Unzip i Tetris (cbn), Diction (alex_itd), bibl. Swilib ) ve fasciklu E:\ARM\
Zapuskaem IAR, objevuje Open existing Workspace jedno ze příkladu
ŠČelkaem v lvovi okně navrchu na název návrhu i vybírá meno Project- >Options- >Arm
Kompiliruem Project - > Rebuild All
Pokud obdržela chyba "_thumb...in range 0- 0xFF", to ne udělalo předešlé stanoviště!
V nastavení je třeba stát Release (Project- >Edit Configurations- >Release), sv.k. skompilirovannye s Debug elf ne naloží!
Došlý elf leží ve fasciklu E:\ARM\jméno návrhu\Release\Exe\
PS. Pokud potřebný elf pro x65, to před kompilací kommentiruem // v souboru E:\ARM\swilib.h řádek
#define NEWSGOLD, pokud pro s75, ten čistý komentář.
Kommentiruem všichni nepotřebné #include png,sys,<> ... kromě swilib.h
Pokud vyráží chyba obexcopy... ne lekají se - všichni ok.
Jak vidí všichni jednoduše :)

4. Sozdaem svůj elf 
Nyní vytvoření elf stalo se celkem snadným práci :)
Prošče pouze poopraví připravený příklad: viz . předešlá část.
Dobavljaem k návrhu "Project- >Add Files" soubory Siemens.c i main.c 
K návrhu musejí jsou podključeny soubory Func.asm (tečka vzletu) i divu.r79 (dělení, viz .Swilib výše)
Korrektiruem v main.c působnost:
onkey - dezinfekce klávesa (return 1 pro východu z elf)
onredraw - pererisovka štít (masív screen[132*176])
onstart, oncreate - působnost volá při začátku
onclose, onexit - působnost volá při východu
REDRAW() tázaný pro pererisovki štít (zanedbává onredraw)
A vše! U vás hotovo přiložení. Specifiku Simensa ví netřebu vůbec!
Také viz . příklad nižší.

5. Příklad 1. Práce s památkou i souborem 
mne v každému příkladu maině.c na:
#include "E:\ARM\swilib.h"

void ElfKiller(void){ // používá se pro východu z elf
extern void *ELF_BEGIN;
// zde obvykle ještě osvobozuji památku z mfree(), freeWS()
((void (*)(void *))adr()))(&ELF_BEGIN); // nic není jasné :(
}

int main(char *exename, char *fname){ // hlavní funkce
// v exename oznamuje cestu zanedbaně elf vzhledu 4:\Zbin\xyz.elf
// ve fname oznamuje jméno soubor, který vyčiní v CardExplorere, vzhledu 0:\Misc\data.txt
// nebo 0, pokud elf zahájený sám
char *mem;
int i, err;
int handle;
if(fname){
// práce se souborem standardním:
handle=fopen(fname,A_ReadWrite+A_BIN+A_Append+A_Create,P_READ+P_WRITE,&err);
// otevřít pro čtenija i vložení v dvojkové. poměry s do zápisem (append), utvoří nejsou - li
// nebo handle=fopen(fname,A_ReadOnly+A_BIN,P_READ,&err); // read only - konstanta viz . swilib.h
if(handle!= - 1){ // -1 = error
mem=malloc(10000); // vyčlení památka: AllocWS() pro řádek (z 2b)
if(mem!=0){ //0 = error
i=freadndle,mem,10000,&err); // Vozvraščaet počet pročte slabiku i chybu v err
// Delaem cokoliv makesomebody(mem,i);
fwrite(handle,mem,i,&err);
mfree(mem); // osvobodí památka: FreeWS() pro řádek
}
fclose(handle); // zavře soubor
}
}
SUBPROC((void *)ElfKiller); // se hádanka velká je :) ale bez ji spodku!
return(0);
}
// PS. Sv.k. v x65 souborů čtení i zápisu se provádí bloku do 32767 slabik,
// místo fread() i fwrite() používaného jich analogie fread32() i fwrite32( analogicky)

int fread32(int fh, char *buf, int len, unsigned int *err) // (s) Rst7
{
int clen;
int rlen;
int total=0;
while(len)
{
if (len>16384) clen=16384; else clen=len;
total+=rlen=fread(fh, buf, clen, err));
if (rlen!=clen) break;
buf+=rlen;
len- =clen;
}
return(total);
}

Ne nechává zařadí do každého projektu soubor Func.asm :
PUBLIC ELF_BEGIN
RSEG ELFBEGIN:DATA
ELF_BEGIN
defadr MACRO a,b
PUBLIC a
a EQU b
ENDM
END

6. Příklad 2. Závěr na štít i dezinfekci klávesa 
Líhne malá kresba na štít, přemístitelný pomocí joystick,
i vychází z dlouho stlačení červenou tlačítka. Sdelan na příkladu TED- a (c) Rst7
Hledět odzdolu nahoru :)
mne v příkladu maině.c na:
#include "E:\ARM\swilib.h"

typedef struct
{
GUI gui;
// WSHDR *ws1;
// WSHDR *ws2;
// int i1;
}MAIN_GUI;

typedef struct
{
CSM_RAM csm;
int gui_id;
}MAIN_CSM;

const int minus11= - 11;
const unsigned int INK=0;
const unsigned int PAPER=1;
volatile int xx=0, yy=0; // souřadnice otobraženija risunka

const char bmp[12]={0xFC,0x86,0xB3,0xA9,0xB1,0xA9,0x81,0xFF,0,0,0,0};
const IMGHDR img = {8,12,0x1,0,(char *)bmp};

//================================
//závěr na štít
//================================

void DrwImg(IMGHDR *img, int x, int y, int *pen, int *brush)
{
RECT rc;
DRWOBJ drwobj;
StoreXYWHtoRECT(&rc,x,y,img->w,img->h);
SetPropTo_Obj5(&drwobj,&rc,0,img);
SetColor(&drwobj,pen,brush);
DrawObject(&drwobj);
}

void DrawScreen(void)
{
int *ink=GetPaletteAdrByColorIndex(INK);
int *paper=GetPaletteAdrByColorIndex(PAPER);
int x=xx;
DrwImg((IMGHDR *)&img,x,yy,ink,paper);
}

//Pererisovka základního dialog
void method0(MAIN_GUI *data){
DrawScreen();
}

void method1(MAIN_GUI *data, void *adr)(int)){}
void method2(MAIN_GUI *data, void (*mfree_adr)void *)){}
void method3(MAIN_GUI *data, void *adr)(int), void (*mfree_adr)void *)){}
void method4(MAIN_GUI *data, void (*mfree_adr)void *)){}
void method7(MAIN_GUI *data, void (*mfree_adr)void *)){}
int method8id){return(0);} // prázdná F- á
int method9id){return(0);} // prázdná F- á

// - - - - - - - -----------------------------------------------------------------------
// Osn. dialog - dezinfekce knopok
// - - - - - - - -----------------------------------------------------------------------
int method5(MAIN_GUI *data, GUI_MSG *msg)
{
// if (msg- >gbsmsg- >msg==KEY_UP) // klávesa odpuštění
if ((msg - >gbsmsg->msg==KEY_DOWN)||(msg->gbsmsg->msg==LONG_PRESS)) // tř. stlačení nebo uderživaetsja
switch(msg- >gbsmsg- >submess)
{
case RED_BUTTON:
return(1); //vzniká výzva GeneralFunc pro tek. GUI - > zavírání GUI
case UP_BUTTON:
if(yy>0) - -yy; break;
case LEFT_BUTTON:
if(xx>0) - -xx; break;
case DOWN_BUTTON:
if ++yy; break;
case RIGHT_BUTTON:
if ++xx; break;

// case GREEN_BUTTON:
// case RIGHT_SOFT:
// case ENTER_BUTTON:
// case LEFT_SOFT:
// case VOL_UP_BUTTON:
// case VOL_DOWN_BUTTON:
// case' 0':
// case' 9':
// case' #':
// SUBPROC((void *)DoDiskAccess,1);
// Dr. proces s nízkým prioritou aby ne brzdí pererisovku okna
}
DrawScreen();
return(0);
}

const void * const gui_methods[11]={
(void *)method0, //Redraw
(void *)method1, //Create
(void *)method2, //Close
(void *)method3, //Focus
(void *)method4, //Unfocus
(void *)method5, //OnKey
0,
(void *)method7, //Destroy
(void *)method8,
(void *)method9,
0
};

const RECT Canvas={0,0,131,175};

void maincsm_oncreate(CSM_RAM *data)
{
MAIN_GUI *main_gui=malloc(sizeof(MAIN_GUI));
MAIN_CSM*csm=MAIN_CSM*)data;
zeromem(main_gui,sizeof(MAIN_GUI));

// ustk=malloc(STKSZ); // Vydeljaem památka pod že nám je třeba
// info_ws=AllocWS(512);

main_gui- >gui.canvas=void *));
main_gui- >gui.flag30=2;
main_gui- >gui.methods=void *)gui_methods; // základní metody (viz . výše)
main_gui- >gui.item_ll.data_mfree=void (*)(void *))mfree_adr(); // nižší nic nevím :(
csm- >csm.state=0;
csm- >csm.unk1=0;
csm- >gui_id=CreateGUI(main_gui); // vlastně vytvoření GUI
}

void Killer(void) // východ
{
extern void *ELF_BEGIN;
// mfree(ustk); // Osvoboždaem památka
// FreeWS(info_ws);
((void (*)(void *))adr()))(&ELF_BEGIN);
}

void maincsm_onclose(CSM_RAM *csm)
{
// GBS_StopTimer(&light_tmr);
SUBPROC((void *)Killer);
}

int maincsm_onmessage(CSM_RAM *data, GBS_MSG *msg){
return(1);
}

unsigned short maincsm_name_body[140];

const struct
{
CSM_DESC maincsm;
WSHDR maincsm_name;
}MAINCSM =
{
{
maincsm_onmessage, // Obrabotčik soobščenij
maincsm_oncreate, // Vyzyvaetsja při vytvoření
// 0, // pro S75 uklidí kommentarii v 4ch štěpováních
// 0, // i raskommentirovat v swilib.h řádek #define NEWSGOLD
// 0,
// 0,
maincsm_onclose, // Vyzyvaetsja při uzavření
sizeof(MAIN_CSM),
1,
&minus11
},
{
maincsm_name_body,
NAMECSM_MAGIC1,
NAMECSM_MAGIC2,
0x0,
139
}
};

int main(char *exename, char *fname)
{
char dummy[sizeof(MAIN_CSM)];
// strcpy(filename,fname); // Sochranjaem kdesi fname
CreateCSM(&MAINCSM.maincsm,dummy,0);
return 0;
}

7. Příklad se rozloučí. Zapuskaem fonovyj proces, kreslí z časového spínače 
Dobavljaem k návrhu "Project- >Add Files" soubor Siemens.c:
// Siemens.c 0.1
// interface aut pro IAR
// zde nic ne dotýkáš se! (nejsou - li přesvědčený)
// Vnešnie působnost volá při:
extern int onstart(char *exename, char *fname); // začátku aplikace. Vozvraščaet 0 nebo 1 pro východu.
extern void oncreate(); // Sozdanii okna
extern void onclose(); // uzavření oknech
extern void onexit(); // Vychode
extern void onredraw(void); // Pererisovke štít
extern int onkey(unsigned char keycode, int pressed); // Nažatii klávesy. Vozvraščaet 0 nebo 1 pro východu.

// v swilib.h kommentiruem // řádek #define NEWSGOLD není - li S75
#include "E:\ARM\swilib.h"
// následující řádek dává 16 bit poměry (RGB 565 z 2 slabik na bod štít screen)
// zakommentirovav obdrž 8 bit poměry (RGB 232 z 1 slabik na bod)
#define HIGHCOLOR
#ifdef HIGHCOLOR
short screen[132*176];
const int screensize=132*176*sizeof(short);
const IMGHDR img = {)132,(unsigned)176,8,0,(char*)screen};
#else
char screen[132*176];
const int screensize=132*176*sizeof(char);
const IMGHDR img = {)132,(unsigned)176,5,0,(char*)screen};
#endif

// nižší číst už není třeba! :)
typedef struct
{
GUI gui;
WSHDR *ws1;
WSHDR *ws2;
int i1;
}MAIN_GUI;

typedef struct
{
CSM_RAM csm;
int gui_id;
}MAIN_CSM;

void DrawScreen(){
RECT rc; DRWOBJ drwobj;
StoreXYWHtoRECT(&rc,0,0,img.w,img.h);
SetPropTo_Obj5(&drwobj,&rc,0,(IMGHDR*)&img);
SetColordrwobj,GetPaletteAdrByColorIndex(0),GetPaletteAdrByColorIndex(1));
DrawObject(&drwobj);
}
void method0(MAIN_GUI *data){ onredraw(); DrawScreen();}
void method1(MAIN_GUI *data, void *adr)(int)){ oncreate(); data- >gui.state=1;}
void method2(MAIN_GUI *data, void (*mfree_adr)void *)){ data- >gui.state=0;}
void method3(MAIN_GUI *data, void *adr)(int), void (*mfree_adr)void *)){ data- >gui.state=2;}
void method4(MAIN_GUI *data, void (*mfree_adr)void *)){ if (data- >gui.state!=2) return; data- >gui.state=1;}
int method5(MAIN_GUI *data, GUI_MSG *msg){
return onkey(msg- >gbsmsg- >submess, msg- >gbsmsg- >msg);}
void method7(MAIN_GUI *data, void (*mfree_adr)void *)){}// mfree_adr(data);
int method8id){return(0);} // prázdná F- á
int method9id){return(0);} // prázdná F- á

const void * const gui_methods[11]={
(void *)method0, //Redraw
(void *)method1, //Create
(void *)method2, //Close
(void *)method3, //Focus
(void *)method4, //Unfocus
(void *)method5, //OnKey
0,
(void *)method7, //Destroy
(void *)method8,
(void *)method9,
0
};

const RECT Canvas={0,0,131,175};

void maincsm_oncreate(CSM_RAM *data)
{
MAIN_GUI *main_gui=malloc(sizeof(MAIN_GUI));
MAIN_CSM*csm=MAIN_CSM*)data;
zeromem(main_gui,sizeof(MAIN_GUI));
// ustk=malloc(STKSZ); // Vydeljaem památka
// info_ws=AllocWS(512);
main_gui- >gui.canvas=void *));
main_gui- >gui.flag30=2;
main_gui- >gui.methods=void *)gui_methods;
main_gui- >gui.item_ll.data_mfree=void (*)(void *))mfree_adr();
csm- >csm.state=0;
csm- >csm.unk1=0;
csm- >gui_id=CreateGUI(main_gui);
}

void Killer(void){
extern void *ELF_BEGIN;
extern void kill_data(void *p, void (*func_p)(void *));
onexit();
kill_data(&ELF_BEGIN,void (*)(void *))mfree_adr());
// ((void (*)(void *))adr()))(&ELF_BEGIN);
}

void maincsm_onclose(CSM_RAM *csm)
{
onclose();
SUBPROC((void *)Killer);
}

int maincsm_onmessage(CSM_RAM *data, GBS_MSG *msg){
MAIN_CSM *csm=MAIN_CSM*)data;
if ((msg - >msg==MSG_GUI_DESTROYED)&&((int)msg->data0==csm->gui_id))
csm- >csm.state= -3;
return(1);
}

const int minus11= - 11;
unsigned short maincsm_name_body[140];

const struct
{
CSM_DESC maincsm;
WSHDR maincsm_name;
}MAINCSM =
{
{
maincsm_onmessage,
maincsm_oncreate,
#ifdef NEWSGOLD
0,
0,
0,
0,
#endif
maincsm_onclose,
sizeof(MAIN_CSM),
1,
&minus11
},
{
maincsm_name_body,
NAMECSM_MAGIC1,
NAMECSM_MAGIC2,
0x0,
139
}
};

int main(char *exename, char *fname){
char dummy[sizeof(MAIN_CSM)];
if(onstart(exename,fname)) SUBPROC((void *)Killer);
else CreateCSM(&MAINCSM.maincsm,dummy,0);
return 0;
}

Nyní korrektiruem (pokud je třeba) soubor main.c:
// Main.c 0.1 
// Demo 3: Příklad se rozloučí: Zapuskaem fonovyj proces, kreslí z časového spínače

#include "E:\ARM\swilib.h"
extern short screen[132*176]; // štít 132*176*2
extern void DrawScreen(); // funkce pererisovki štít
void onredraw(void);

//#define RGB8) (B+(G<<2)+(R<<5))
#define RGB16B) ((B>31?31:B)+63:G)<<5)+>31?31:R)<<11))

char *buf=0; // jakýsi nárazník (na ukázku výtok paměti)
int bufsize=10000; // jeho rozměru
volatile int started=0; // proces kontroluje vlajku i vychází pokud =0
int color=0;

GBSTMR timer;
void timer_proc(void){ // funkce se provádí z časového spínače 10 raz ve vteřinu
if(started){
REDRAW(); // Pererisovat štít
}
GBS_STARTTimerProc(&timer,262/10,timer_proc); // Startuem časový spínač s frekvencí 10 raz ve vteřinu
// on provádí se jednorázově proto jeho je třeba neustále zanedbávat
}

void execute(){ // Fonovyj proces
started=1;
while(started){ // zatím nejsou brigády na zastavení
onredraw(); // jen na ukázku, de facto případy cokoliv ještě
}
}

int onstart(char *exename, char *fname){ // start aplikace. Vozvraščaet 0 nebo 1 pro východu.
// if(!fname) return 1; // není - li zadání jméno soubor vystupoval
buf=char *)malloc(bufsize); // Vydeljaem památka i sv.čl.
if(!buf) return 1; // nevyšlo - vystupoval
// zde případy cokoliv
return 0;
}

void oncreate(){ // vytvoření okna
SUBPROC((void *)execute); // Zapuskaem fonovyj proces
GBS_STARTTimerProc(&timer,262/10,timer_proc); // Startuem časový spínač s frekvencí 10 raz ve vteřinu
}

void onclose(){ // zavírání okna
started=0; // signál na stanici fonovogo procesu
GBS_StopTimer(&timer); // Ostanavlivaem časový spínač
// Sochranjaem tvar pokud je třeba
}

void onexit(){ // východ
if(buf) mfree(buf); // Osvoboždaem památka
}

void onredraw(void){ // Pererisovka štít screen[132*176]
int i,j;
forcolor++;i<132*176;i++){
screen[i]=j++;
}
}

// keycode - klíč klávesy, pressed - stlačení/odpuštění/uderživaetsja
int onkey(unsigned char keycode, int pressed){ // Obrabotčik klávesa. Vrátit 0 nebo 1 pro východu
switch(pressed){
case KEY_UP: break; // klávesa odpuštění
case LONG_PRESS: // klávesa uderživaetsja dlouho (opakuje)
case KEY_DOWN: // klávesa stlačení
switch(keycode){ // klíč klávesy
case RED_BUTTON: return 1; // východ
case LEFT_SOFT: case RIGHT_BUTTON: case UP_BUTTON: case ENTER_BUTTON: // Delaem cokoliv
case' 0': case' 9': case' #': case' *': break;
default: return 0;
}
onredraw(); DrawScreen(); // Pererisovat štít
}
return 0;
}
//#define MSG_GUI_DESTROYED 152 //pro ne s75 pokud u vás není v swilib.h


8. Příklad 4. Rezidentnaja program 
[...]

9. FAQ 
Smontovaný na základě odpověď Rst7 (děkuje mu:)

proč v iar cu konstrukci char c[100]; int a=*c+5) odpojuje potrubí?
Protože ty pokoušíš se číst int z nekruglomu adresy - proc to je posílá nach - generuje vyloučení... Pokud tobě je třeba taková věc dělat, to čtete pobajtno i hodláme v zvláštní int.

určitě při východu osvobozuje vší památku z mfree()?
Vší, kterou půjčil - určitě

jak odlaďovat elf než kopírovat jich na telefon i psal úžlabinu?
Debaggerom CHaosovskim... Hledáš BLX R4 v nakladači elf, staví tam bod zastavení i vpřed...

že činí SUBPROC ? REDRAW ?
SUBPROC - výzva působnost v kontextu jiného proudění s malou prioritou kvůli tomu, aby ne brzdí GUI, pokud je třeba cosi dlouho dělat (například v TED\'e nakládá text, v MegaDial\'e hledá jména v poznámkové knize)
REDRAW - vyzve metodu onRedraw zobrazovat GUI (lze z kontextu procesu- pomocník)

Odpovědi od cbn :
jak dostane datum/čas?
TDate date; TTime time;
GetDateTime(&date,&time);
sprintf(s,"%d:%02d",time.hour,time.min);
sprintf,"%02d-%02d-%04d",date.day, date.month,date.year);

IAR maluje: ne známá funkce div_32a (nebo adresa ELF_BEGIN)
K návrhu musejí jsou podključeny patřičně soubory div.r79 i func.asm

přiložení pracuje příliš pomalu - jak opsat na asm?
S opisováním na asm spěchá nestojí - zpočátku je třeba se přesvědčit že si verze pracuje bez chyb. Nejvyšší akcelerace dává správně psaný algoritmus, je třeba udělat pokus jeho zlepšit. V kompilátoru zahrne maximální optimalizaci z rychlostí.
A už poslední etapa - zaměří nebo odhadnout jaké části klíč provádí se nejvíce dlouho (80% času proca zaujímá 20% klíč) i opíše jich.

Příklad: přidává ve func.asm funkcí myfunc,c,d)
zasazujeme před ELF_BEGIN její klíč
PUBLIC myfunc
myfunc: PUSH {R4 R6,LR}
;případy cosi s R4- R6 (lze do R12)
POP {R4 R6,PC} ; Vrácení
;nebo dělá BX LR ne zachováváš jeho
Výzva ze Si:
extern int myfunc(int a,int b,int c, int d);
myfunc,c,d);
První 4 hodnot předává sootv. v registru R0- R3, zbývající přes zásobník.
Výsledek se vrací v R0.
Systém povelů ARM viz tuhle i tuhle 

proč na ch65 - 75 ne otvírají se soubory s kartičkami (MMC)?
Ve fopený() jistě P_READ místo 0

jak vyvede na štít kresba bmp?
Viz . tuhle 


Autor předpisy: Vorobev Alexander (cbn) Webovská stránka    Pošta

_________________

SM
wmmania.cz
Podpořte SiemensManii
=> HTC Hero, ROM alias HTC Touch
Koukněte co zrovna poslouchám
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
mart22
elfmaster
elfmaster

Založen: 03. 05. 2005
Příspěvky: 1346
Bydliště: Tábor

56669.28 SMM
PříspěvekZaslal: čt prosinec 14, 2006 3:50 pm    Předmět: Český popis elfů Odpovědět s citátem

Kdyby se někdo nudil může si přečíst.
Tady je nějaký popis souborů .elf, je to docela obsáhlé.

http://www.kiv.zcu.cz/~luki/vyuka/stare-materialy/os/oslinux/2.1.120/svobod30/myiso.htm


Tohle je jen začátek Rolling Eyes
Struktura ELFu
kód:

    /-------------------------------\
    |          hlavička             |-------\--\
    |-------------------------------|       |  |
    |       tabulka programů        |<------/  |
    |                               |>--\      |
    |-------------------------------|   |      |
/-->|   sekce 1     |               |   |      |
|   |----------------               |   |      |
/-->|   sekce 2     |   segment 1   |<--|      |
|   |----------------               |   |      |
/-->|   sekce 3     |               |   |      |
|   |-------------------------------|   |      |
/-->|     ...       |               |   |      |
|   |----------------   segment m   |<--/      |
/-->|   sekce n     |               |          |
|   |-------------------------------|          |
\---|        tabulka sekcí          |<---------/
    |                               |
    \-------------------------------/

_________________
Arrow E71v45 + Testpoint, MasterPatch 14, ElfPack 2.3CZ , 1GB
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovi WWW stránky
Skipy
badatel
badatel

Založen: 05. 09. 2005
Příspěvky: 124

264.00 SMM
PříspěvekZaslal: út prosinec 19, 2006 6:06 pm    Předmět: Odpovědět s citátem

Nevíte někdo v jakým programu otevřít Elfy a trochu je "počeštit". Nějak se mně nedaří tu jejich azbuku zobrazit.
_________________
Nějaká Motorola -> C25 -> S25 -> ME75 předělaný na C75 sw22 + hafo patchů + ELFloader 2.3 CZ
Asus P535, WM6
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
alkaba
čestný člen
čestný člen

Založen: 15. 01. 2005
Příspěvky: 1618
Bydliště: 0x0000FFF Telefon: S75

10903.00 SMM
PříspěvekZaslal: út prosinec 19, 2006 6:09 pm    Předmět: Odpovědět s citátem

Winhex+doinstalovat do windows podporu azbuky wink
Důkaz: http://www.imghosting.eu/uploaded1/azbuka_hex_1.JPG Whistle Angel

_________________
»HTC Rose S740 with WM 6.5.3
»HP iPaq 514 with WM6.5.3
»Siemens C65


Naposledy upravil alkaba dne út prosinec 19, 2006 10:07 pm, celkově upraveno 1 krát
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
michalkopecky
redaktor
redaktor

Založen: 30. 11. 2004
Příspěvky: 1541
Bydliště: Praha Mobil:Siemens CX70

13617.60 SMM
PříspěvekZaslal: út prosinec 19, 2006 6:18 pm    Předmět: Odpovědět s citátem

Kde seženu tu azbuku pro WinXP? Prosím stránku nevedoucí na Microsoft.
_________________
N3410 Sad > Siemens CX70v56 WVA TNG 3.1 Smile > C72 > SE K750i CID49 RED > Vodafone 845 > HTC Desire Z (Android 4.0.4)

SM
______________________________
http://droidik.blogspot.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovi WWW stránky
alkaba
čestný člen
čestný člen

Založen: 15. 01. 2005
Příspěvky: 1618
Bydliště: 0x0000FFF Telefon: S75

10903.00 SMM
PříspěvekZaslal: út prosinec 19, 2006 6:53 pm    Předmět: Odpovědět s citátem

Je tam standartně.. Laughing Start-Ovládací panely-Místní a jazykové nastavení-Upřesnit-Ruština wink
Restartuješ PC a pojede to...

_________________
»HTC Rose S740 with WM 6.5.3
»HP iPaq 514 with WM6.5.3
»Siemens C65
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
michalkopecky
redaktor
redaktor

Založen: 30. 11. 2004
Příspěvky: 1541
Bydliště: Praha Mobil:Siemens CX70

13617.60 SMM
PříspěvekZaslal: út prosinec 19, 2006 9:52 pm    Předmět: Odpovědět s citátem

To mi hlásí chybu :-(
_________________
N3410 Sad > Siemens CX70v56 WVA TNG 3.1 Smile > C72 > SE K750i CID49 RED > Vodafone 845 > HTC Desire Z (Android 4.0.4)

SM
______________________________
http://droidik.blogspot.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovi WWW stránky
alkaba
čestný člen
čestný člen

Založen: 15. 01. 2005
Příspěvky: 1618
Bydliště: 0x0000FFF Telefon: S75

10903.00 SMM
PříspěvekZaslal: út prosinec 19, 2006 10:01 pm    Předmět: Odpovědět s citátem

"Nějaká chyba" to je široký pojem Laughing
_________________
»HTC Rose S740 with WM 6.5.3
»HP iPaq 514 with WM6.5.3
»Siemens C65
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
romboid
badatel
badatel

Založen: 25. 11. 2005
Příspěvky: 102
Bydliště: Bratislava, Slovakia

261.00 SMM
PříspěvekZaslal: st prosinec 20, 2006 2:22 pm    Předmět: Odpovědět s citátem

no ja pouzivam UltraEdit ktory ma v sebe aj hex editor. problem je ze je plateny ale pracuje tusim 30 dni zdarma takze je to fpohode
_________________
nokia 8110, motorola T192, A55->C55, CX75fw25 + Apacer uz len 256MB + ELF + patches + kabel Siemens DCA-510
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky MSN Messenger
Zobrazit příspěvky z předchozích:   
Odpovědět na téma    Obsah fóra -> Elfy Časy uváděny v GMT + 1 hodina
Jdi na stránku 1, 2, 3, 4, 5, 6  Další
Strana 1 z 6

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru
Můžeš k příspěvkům připojovat soubory
Můžeš stahovat a prohlížet přiložené soubory



Powered by phpBB © phpBB Group