Microchip-C18 x htsoft-C18
Michal HW
michalgregor@centrum.cz
Sobota Listopad 4 11:39:46 CET 2006
Ne da se tam zapisovat i cist po jednom byte. Trva to jednu instrukci, ale pointer je tri byte. Vysledny kod je des a hruza, C dava poradne zabrat vypocet adresy promenne. Zjistil jsem nektere prasarny. Napriklad Pokus=Pokus+1;. Pointer se vypocitava dvakrat!! HT-soft vubec nepouziva instrukce s aut. inkrementaci a dekrementaci TBLPTR. Napriklad pri cteni dvou po sobe lezicich instrukci. Zrovna jsem ve stadiu testu kompilatoru. Po vikendu napisu vice. Skoda ze demo verze HT-Softu ma omezene optimalizace.
Skoda ze neni nejaky MPLAB s napojenim na COMy a simulaci HW jako je klavesnice a LCD. Procesory neuveritelne poskocili kupredu, ale vyvojove nastroje stagnuji.
Michal
______________________________________________________________
> Od: pavlu@HWserver.cz
> Komu: "'HW-news'" <hw-list@list.hw.cz>
> Datum: 02.11.2006 16:44
> Předmět: RE: Microchip-C18 x htsoft-C18
>
>Zdravim,
>
>Jasne, setri to praci u PICC18, ale ja si to radeji dam do #define, když
se
>mi to nechce psat:).
>
>Jinak koukam, ze delate slusne velky projekt, na PIC18F8622 a jemu
podobne s
>externi pameti se chystam ji delsi dobu, ale není cas a ani nutnost,
alespon
>dosud. No uz vim, za kym jit s radou o reseni externi sram pameti v
C18:)...
>
>Nicmene jsem dosud myslel, ze PICky tu pametu umi jen jako pamet kodu
nebo
>prepisovatelnou s tim, ze pristup pro cteni/zapis je jako pristup do
>standardni flashky, tedy blokove hlavne pri zapisu...
>
>Nebo tomu tak neni?
>
>S pozdravem,
> Marek Pavlu
>
>// -----Original Message-----
>// From: hw-list-bounces@list.hw.cz [mailto:hw-list-bounces@list.hw.cz]
On
>// Behalf Of Michal HW
>// Sent: Wednesday, November 01, 2006 4:46 PM
>// To: HW-news
>// Subject: Re: Microchip-C18 x htsoft-C18
>// // Jsem zvykly na bity z asm. Na preklad bitovych promennych se
podivam a
>// zkusim to porovnat z unsigned char
>// // Libi se mi tento zapis u HT.C18: static volatile bit Tlacitko1 @
>// PORTBIT(PORTB, 4); Nebo treba GIE=0. (M.C18 - INTCONbits.GIE=0)
>// // Mam pole structur v externi pameti - 1024 polozek. Je tam 12
bitovych
>// promennych. Kdyz je prepisu na unsigned char tak to hodi navic 10KB.
Je
>// ale
>// fakt, ze tam jeste misto mam. Popremyslim nad tim.
>// // Chybne pole structur. Menu v BC funguje, ale M.C18 hlasi chyby.
(Moc
>// jsem
>// si s tim nehral.)
>// /*---------------------------------------------------------*/
>// //Definice structury
>// // typedef struct {
>// far u08 *p_Text; //Text na prvni radek (v BC far nedavam)
>// void (*Vypis)(); //Vypis hodnoty na druhy radek
>// void (*Edit)(); //Tato funkce spusti editaci
>// u08 Menu; //číslo nadřazeného menu
>// u08 Pozice //číslo řádku v nadřazeném menu
>// u08 Cas_Obnov; //Doba obnovovaní 0=není
>// // } MENU;
>// // /*---------------------------------------------------------*/
>// // Texty pro menu
>// // GLOBAL const MENU Menu_Obsah [8][23]= {
>// // /*---------------------------------------------------------*/
>// // Prazdné menu - číslo 0
>// // {
>// {"",Prazdna_Funkce,Prazdna_Funkce,0,0,0}
>// },
>// // /*---------------------------------------------------------*/
>// // Hlavní menu - číslo 1
>// // {
>// {"Databaze",Prazdna_Funkce,Databaze_Edit,0,0,0},
>// {"Mereni",Mereni_Vypis,Mereni_Edit,0,0,0},
>// {"Verze programu",Menu_Verze_Vypis,Prazdna_Funkce,0,0,0},
>// {"Stav systemu",Prazdna_Funkce,Menu_2,0,0,0},
>// {"Konfigurace systemu",Prazdna_Funkce,Menu_3,0,0,0},
>// {"Konfigurace site",Prazdna_Funkce,Menu_4,0,0,0},
>// {"Tabulka udalosti",Prazdna_Funkce,Menu_5,0,0,0},
>// {"",Prazdna_Funkce,Prazdna_Funkce,0,0,0}
>// },
>// /*---------------------------------------------------------*/
>// // Servisní menu - číslo 2
>// {
>// ....
>// }
>// atd....
>// }
>// // Co se tyce vetsiho procesoru mam 18F8622 64KB FLASH, pak je jeste
>// 18F8722
>// ale ten ma pouze vetsi FLASH - 128KB.
>// Dnes odpoledne jsem koncil na techto cislech:
>// // FLASH - 96%
>// RAM - 80%
>// External SRAM 70% (128KB)
>// Nic optimistickeho
>// // Michal Gregor
>// // // ----- Original Message -----
>// From: "Marek Pavlu" <pavlu@HWserver.cz>
>// To: "'HW-news'" <hw-list@list.hw.cz>
>// Sent: Wednesday, November 01, 2006 4:15 PM
>// Subject: RE: Microchip-C18 x htsoft-C18
>// // // Zdravim,
>// // No nevim, ukazte ten kus kodu, ktery nechodi, protoze ja tu s
polem
>// struktur
>// potize nemam a ani studentska verze nemela...
>// // Zas tak moc pameti bit snad neusetri ne?
>// Navic kdyz si predstavim ty konstrukce, ktere nekde v pameti ukladaji
>// jeden
>// bit a potom s nim pracuji alespon tak, jak to resi PICC18, tak to
zase
>// setri
>// jen pamet dat zato pamet programu uz moc ne ve srovnani s typem
unsigned
>// char a manmipulaci s nim jako porovnavani/testovani atd...
>// // Osobne takova rozsireni nepouzivam ani kdyz jsou takto dostupna,
protoze
>// budu to zase ja sam, koho to placne rakoskou pres prestiky, kdyz
kousek
>// kodu
>// budu chtit pouzit na jinem procesoru nebo jinem kompileru prave pri
>// prechodu
>// PICC18 a C18 nebo jinam...
>// // To toho vazne delate obrovske serie, ze se Vam vyplati takto
ztracet
>// vlastni
>// cas místo uziti vetsiho PIC? Bez ironie, jen zvedavost:).
>// // S pozdravem,
>// Marek Pavlu
>// // // -----Original Message-----
>// // From: hw-list-bounces@list.hw.cz
[mailto:hw-list-bounces@list.hw.cz]
>// On
>// // Behalf Of Michal HW
>// // Sent: Wednesday, November 01, 2006 9:42 AM
>// // To: HW-news
>// // Subject: Re: Microchip-C18 x htsoft-C18
>// //
>// // Asi jsem to spatne napsal. Ten bit mne netrapi, ale spoustu veci
>// // ulehcuje,
>// // setri pamet, kratsi kod... V BC to mam takto: typedef unsigned
char
>// bit;
>// //
>// // Modifikator near. Mel by u obou kompilatoru ulozit promennou do
>// pameti
>// // acces, ktera ma trosku rychlejsi pristup. Ale u Mic. C18 mi tam
>// hlasil
>// // chybu.
>// //
>// // Co mi ale vadi je pole structur, predpokladam ze to v norme je. S
>// tim si
>// // C18
>// // od Microchipu
>// // neporadila. Zatim jsem dalsi pokusy odlozil, takze nevim kde je
>// chyba.
>// //
>// // Ale je videt jedna vec, i kdyz je C normovano kazdy kompilator si
>// dela
>// // co
>// // chce a spousta veci lze implementovat ruznymi zpusoby.
>// //
>// // Michal
>// //
>// //
>// //
>// //
>// // ----- Original Message -----
>// // From: "Marek Pavlu" <pavlu@HWserver.cz>
>// // To: "'HW-news'" <hw-list@list.hw.cz>
>// // Sent: Tuesday, October 31, 2006 3:23 PM
>// // Subject: RE: Microchip-C18 x htsoft-C18
>// //
>// //
>// // Zdravim,
>// //
>// // Sorry, ale vycitat full ANSI C kompileru, ze neumi datovy typ bit
je
>// // docela
>// // zcestne, ne???
>// //
>// // Dale potom near, far a dalsi modifikatory thoto druhu jsou silne
>// // implementacne zaavisle, netusim tedy, jak chcete na teto urovni
>// // prechazet
>// // mezi ruznymi cilovymi platformami???
>// //
>// // Cimzto bych doporucil se podivat na normu ANSI C a zjistite, ze
>// prave v
>// // ohledu na datovy typ bit je C18 vice ANSI C nez PICC18...
>// //
>// // Dale pak jak zavadite v BC datovy typ bit by mne vazne docela
>// zajimalo,
>// // ja
>// // si to predstavit neumim:(...
>// //
>// // Ale trebas jsem vedle jak ta jedle, nejsu kovany informatik, ale
i
>// tak
>// // pochybuji, ze se pletu az tak seredne:).
>// //
>// // S pozdravem,
>// // Marek Pavlu
>// //
>// // // -----Original Message-----
>// // // From: hw-list-bounces@list.hw.cz [mailto:hw-list-
>// bounces@list.hw.cz]
>// // On
>// // // Behalf Of Michal HW
>// // // Sent: Tuesday, October 31, 2006 12:44 PM
>// // // To: HW-News
>// // // Subject: Microchip-C18 x htsoft-C18
>// // //
>// // // Pokousim se porovnat kompilatory. Oba dva maji napsano "full
>// ANSI
>// // C...".
>// // // Mam odladeny soft na PC - BC++ . (70 000 radku) Je to psano s
>// // ohledem na
>// // // PIC
>// // // procesory.
>// // //
>// // // Ht-Soft se trochu hadal, ale prelozil vse. Zatim ale program
>// nechce
>// // // fungovat, nekam se zabiha. (Drobny detail :-))) )
>// // // Omezeni je u promennych v externi pameti. Napriklad nelze
napsat
>// // // Structura.Bit_Pole=1 nebo ++Structura.Pocet. Taky je
nestastne
>// // vyresen
>// // // pristup do externi pameti - u zapisu se vzdy inicializuje
TBLPTR
>// i
>// // kdyz
>// // // zapisuji do promennych za lezicich v pameti za sebou.
>// // //
>// // // Microchip-C18 si neporadil s polem structur. Mam jich tam
>// nekolik,
>// // takze
>// // // je
>// // // to o nicem. Musel jsem taky vymazat z prommennych "near".
>// // // Dale nezna typ promenne bit, takze misto TMR1IF=1 musite psat
>// // // PIR1bits.TMR1IF=1. Taky jsem zatim neprisel na to jak zapnout
>// asm
>// // vypis.
>// // //
>// // // Zatim tedy vysledek nic moc. Potrebuji odladit vse na PC a co
s
>// // // nejmensimi
>// // // upravami prelozit do PICu, protoze ICDII je strasne pomala -
u
>// // velkych
>// // // procesoru je tak akorat vhodne na ladeni drobnych
kosmetickych
>// // uprav.
>// // //
>// // // Obe verze kompilatoru jsou posldniho data
>// // //
>// // // Michal Gregor
>// // _______________________________________________
>// HW-list mailing list - sponsored by www.HW.cz
>// Hw-list@list.hw.cz
>// http://list.hw.cz/mailman/listinfo/hw-list
>
>_______________________________________________
>HW-list mailing list - sponsored by www.HW.cz
>Hw-list@list.hw.cz
>http://list.hw.cz/mailman/listinfo/hw-list
>
Další informace o konferenci Hw-list