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