Microchip-C18 x htsoft-C18
Marek Pavlu
pavlu@HWserver.cz
Sobota Listopad 4 14:17:27 CET 2006
Zdravim,
Zatim nebylo kde ukrast cas na hrani si s timto, takze jsem to uz asi rok
odlozil do nejnizssiho supliku naspod stohu:(.
Nuze alespon vim, ze to jde:).
Jak jsem rikal, C30 a nejaky dsPIC nebo PIC24 by mozna bylo lepsim resenim.
Akorat je to vse na 3,3V, ale zase překladač je postaven na gcc, je tam
moznost primo pracovat s heapem a takove dalsi malickosti jako plne sw
rizeny Stach a podobne:), ktere cloveku na PC prijdou jako samozrejme, ale v
risi PIC dosud zabite:(.
Jsem si musel heap pro PIC18 a htsoft picc18 napsat sam:(.
Podpora kompilerem mizerna:(...
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: Saturday, November 04, 2006 11:40 AM
// To: hw-list@list.hw.cz
// Subject: RE: Microchip-C18 x htsoft-C18
//
// 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
// >
//
// _______________________________________________
// 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