skriptovaci jazyk pro MCU
Jaroslav Buchta
jaroslav.buchta na hascomp.cz
Pátek Listopad 15 23:25:46 CET 2013
No fakt docela dobry projekt, virtualni zasobnik a haldu jsem udelal ve
velikosti 20kB v sekci CCM na STM32F407 a na jednoduche scripty dost
dobre. Vyborne se daji doplnovat vlastni funkce realizovane primo v
programu, napr. jsem udelal test -
staci napsat funkci:
void LibGetTime(struct ParseState *Parser, struct Value *ReturnValue,
struct Value **Param, int NumArgs)
{
if (NumArgs >= 1) *((int *)(Param[0]->Val->Pointer)) = 1234;
if (NumArgs >= 2) *((int *)(Param[1]->Val->Pointer)) = 1;
if (NumArgs >= 3) *((int *)(Param[2]->Val->Pointer)) = 2;
if (NumArgs >= 4) *((int *)(Param[3]->Val->Pointer)) = 3;
if (NumArgs >= 5) *((int *)(Param[4]->Val->Pointer)) = 4;
if (NumArgs >= 6) *((int *)(Param[5]->Val->Pointer)) = 5;
}
a doplnit definici do pole
struct LibraryFunction CLibrary[] =
....
{ LibGetTime, "void gettime(int *, char *, char *, char *, char
*, char *);" },
....
---------- a script:
void header(char * hdr)
{
printf("<HTML><TITLE>%s</TITLE>\r\n<BODY>", hdr);
}
void footer()
{
printf ("</BODY></HTML>\r\n");
}
void main()
{
int year;
char month, day, hour, min, sec;
gettime(&year, &month, &day, &hour, &min, &sec);
header("Test script page");
printf ("<H1>TEST Formuláře Script</H1>\r\n");
printf ("<P>DateTime: %02d.%02d.%04d %02d:%02d:%02d<br>", day, month,
year, hour, min, sec);
footer();
}
------ spotrebuje asi 10kB virtualni haldy + zasobniku dohromady, trva
5ms a funguje... (pouzivam to pro generovani HTTP response)
Test script page
TEST Formuláře Script
DateTime: 02.01.1234 03:04:05
A nejlepsi bude udelat podporu realizace kratkych skriptu primo v HTML
textu pro doplnovani hodnot promennych atp., to se pak udela libovolne
slozita stranka. Jen je trochu problem se spocitanim delky do hlavicky,
kdyz nechci mit cely obsah v pameti.
Dne 8.11.2013 23:37, Jaroslav Buchta napsal(a):
> No ten picoc vypada docela nadejne, zitra udelam testy na spotrebu
> pameti ale zrejme to opravdu interpretuje... Prvni jednoduche pokusy
> jako tento provede bez zavahani:
>
> #include <stdio.h>
>
> char s[64];
>
> void main()
> {
> int i;
> printf ("Hello\n");
> sprintf (s, "Hello %d\n", 123);
>
> for (i=0; i<10; i++)
> {
> printf ("i=%d (%04x)\n", i, i);
> }
>
> printf(s);
> }
>
> Dne 8.11.2013 22:46, Jaroslav Buchta napsal(a):
>> To vim, ale jen verze, ktera potrebuje dodat uz prelozeny bytecode -
>> to se mi nelibi.
>> Co picoc ?
>> http://code.google.com/p/picoc/downloads/detail?name=picoc-2.1.tar.bz2&can=2&q=
>> To by asi bohate stacilo a navic bych se nemusel ucit novy jazyk ;-)
>>
>>
>>
>> Dne 8.11.2013 22:40, Jaroslav Lukesh napsal(a):
>>> PHP je na weby. Ale je python for microcontrollers
>>>
>>> ----- Původní zpráva ----- Od: "Pavel Hudecek" <edizon na seznam.cz>
>>>
>>> Není něco jako PHP pro MCU?
>>>
>>> _______________________________________________
>>> HW-list mailing list - sponsored by www.HW.cz
>>> Hw-list na list.hw.cz
>>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>> _______________________________________________
>> HW-list mailing list - sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20131115/1de4fbac/attachment.html>
Další informace o konferenci Hw-list