Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
232 changes: 116 additions & 116 deletions src/boot/banchmark/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -6,139 +6,139 @@

void checker_printMem(char *info, uint32_t size)
{
printf("%s", info);
if (size <= 1024)
{
printf("%d byte\r\n", size);
return;
}
printf("%0.2f Kb\r\n", size / 1024.0);
return;
printf("%s", info);
if (size <= 1024)
{
printf("%d byte\r\n", size);
return;
}
printf("%0.2f Kb\r\n", size / 1024.0);
return;
}

void checker_printMemUsage(char *testName)
{
printf("---------------------------\r\n");
printf("Testing :%s\r\n", testName);
checker_printMem(" max = ", pikaMemMax());
checker_printMem(" now = ", pikaMemNow());
printf("---------------------------\r\n");
printf("---------------------------\r\n");
printf("Testing :%s\r\n", testName);
checker_printMem(" max = ", pikaMemMax());
checker_printMem(" now = ", pikaMemNow());
printf("---------------------------\r\n");
}
void checker_memInfo(void)
{
printf("---------------------------\r\n");
printf("Memory pool info:\r\n");
checker_printMem(" mem state size = ", sizeof(PikaMemInfo));
printf("---------------------------\r\n");
printf("---------------------------\r\n");
printf("Memory pool info:\r\n");
checker_printMem(" mem state size = ", sizeof(PikaMemInfo));
printf("---------------------------\r\n");
}
void checker_assertMemFree()
{
if (0 == pikaMemNow())
{
pikaMemMaxReset();
return;
}
printf("[Error]: Memory free error.\r\n");
while (1)
;
if (0 == pikaMemNow())
{
pikaMemMaxReset();
return;
}
printf("[Error]: Memory free error.\r\n");
while (1)
;
}

void checker_objMemChecker(void *NewFun, char *objName)
{
{
/* new root object */
PikaObj *obj = newRootObj("obj", NewFun);
Args *buffs = New_args(NULL);
char *testName = strsFormat(buffs, "Root %s object", objName);
checker_printMemUsage(testName);
obj_deinit(obj);
args_deinit(buffs);
checker_assertMemFree();
}
{
/* new root object */
PikaObj *obj = newRootObj("obj", NewFun);
Args *buffs = New_args(NULL);
char *testName = strsFormat(buffs, "Root %s object", objName);
checker_printMemUsage(testName);
obj_deinit(obj);
args_deinit(buffs);
checker_assertMemFree();
}

{
PikaObj *obj = New_TinyObj(NULL);
Args *buffs = New_args(NULL);
checker_printMemUsage(strsFormat(buffs, "%s object", objName));
obj_deinit(obj);
args_deinit(buffs);
checker_assertMemFree();
}
{
PikaObj *obj = New_TinyObj(NULL);
Args *buffs = New_args(NULL);
checker_printMemUsage(strsFormat(buffs, "%s object", objName));
obj_deinit(obj);
args_deinit(buffs);
checker_assertMemFree();
}
}

int32_t main()
{
checker_objMemChecker(New_TinyObj, "tiny");
checker_objMemChecker(New_BaseObj, "base");
checker_objMemChecker(New_PikaStdLib_SysObj, "sys");
{
Arg *arg = New_arg(NULL);
checker_printMemUsage("void arg");
arg_deinit(arg);
checker_assertMemFree();
}
{
Link *link = New_link(NULL);
checker_printMemUsage("void link");
link_deinit(link);
checker_assertMemFree();
}
{
Arg *arg = New_arg(NULL);
arg_setInt(arg, 0);
checker_printMemUsage("int arg");
arg_deinit(arg);
checker_assertMemFree();
}
{
Arg *arg = New_arg(NULL);
arg_setFloat(arg, 0);
checker_printMemUsage("float arg");
arg_deinit(arg);
checker_assertMemFree();
}
{
Arg *arg = New_arg(NULL);
arg_setStr(arg, "test string");
checker_printMemUsage("str arg");
arg_deinit(arg);
checker_assertMemFree();
}
{
Args *args = New_args(NULL);
checker_printMemUsage("void args");
args_deinit(args);
checker_assertMemFree();
}
{
Args *args = New_args(NULL);
args_setInt(args, "testInt", 0);
checker_printMemUsage("one int args");
args_deinit(args);
checker_assertMemFree();
}
{
Args *args = New_args(NULL);
args_setInt(args, "testInt1", 0);
args_setInt(args, "testInt2", 0);
checker_printMemUsage("two int args");
args_deinit(args);
checker_assertMemFree();
}
{
Args *args = New_args(NULL);
args_setFloat(args, "testFloat", 0);
checker_printMemUsage("one float args");
args_deinit(args);
checker_assertMemFree();
}
{
Args *args = New_args(NULL);
args_setFloat(args, "testFloat", 0);
args_setFloat(args, "testFLoat", 0);
checker_printMemUsage("two float args");
args_deinit(args);
checker_assertMemFree();
}
checker_memInfo();
checker_objMemChecker(New_TinyObj, "tiny");
checker_objMemChecker(New_BaseObj, "base");
checker_objMemChecker(New_PikaStdLib_SysObj, "sys");
{
Arg *arg = New_arg(NULL);
checker_printMemUsage("void arg");
arg_deinit(arg);
checker_assertMemFree();
}
{
Link *link = New_link(NULL);
checker_printMemUsage("void link");
link_deinit(link);
checker_assertMemFree();
}
{
Arg *arg = New_arg(NULL);
arg_setInt(arg, 0);
checker_printMemUsage("int arg");
arg_deinit(arg);
checker_assertMemFree();
}
{
Arg *arg = New_arg(NULL);
arg_setFloat(arg, 0);
checker_printMemUsage("float arg");
arg_deinit(arg);
checker_assertMemFree();
}
{
Arg *arg = New_arg(NULL);
arg_setStr(arg, "test string");
checker_printMemUsage("str arg");
arg_deinit(arg);
checker_assertMemFree();
}
{
Args *args = New_args(NULL);
checker_printMemUsage("void args");
args_deinit(args);
checker_assertMemFree();
}
{
Args *args = New_args(NULL);
args_setInt(args, "testInt", 0);
checker_printMemUsage("one int args");
args_deinit(args);
checker_assertMemFree();
}
{
Args *args = New_args(NULL);
args_setInt(args, "testInt1", 0);
args_setInt(args, "testInt2", 0);
checker_printMemUsage("two int args");
args_deinit(args);
checker_assertMemFree();
}
{
Args *args = New_args(NULL);
args_setFloat(args, "testFloat", 0);
checker_printMemUsage("one float args");
args_deinit(args);
checker_assertMemFree();
}
{
Args *args = New_args(NULL);
args_setFloat(args, "testFloat", 0);
args_setFloat(args, "testFLoat", 0);
checker_printMemUsage("two float args");
args_deinit(args);
checker_assertMemFree();
}
checker_memInfo();
}
94 changes: 47 additions & 47 deletions src/boot/demo01-led/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,76 +5,76 @@

void onMethod(PikaObj *self, Args *args)
{
/* turn on the led */
printf("the led is on! \r\n");
/* turn on the led */
printf("the led is on! \r\n");
}

void offMethod(PikaObj *self, Args *args)
{
/* turn off the led */
printf("the led is off! \r\n");
/* turn off the led */
printf("the led is off! \r\n");
}

PikaObj *New_LED(Args *args)
{
/* Derive from the tiny object class.
Tiny object can not import sub object.
Tiny object is the smallest object. */
PikaObj *self = New_TinyObj(args);
/* Derive from the tiny object class.
Tiny object can not import sub object.
Tiny object is the smallest object. */
PikaObj *self = New_TinyObj(args);

/* bind the method */
class_defineMethod(self, "on()", onMethod);
class_defineMethod(self, "off()", offMethod);
/* bind the method */
class_defineMethod(self, "on()", onMethod);
class_defineMethod(self, "off()", offMethod);

/* return the object */
return self;
/* return the object */
return self;
}

PikaObj *New_MYROOT(Args *args)
{
/* Derive from the base object class .
BaseObj is the smallest object that can
import sub object. */
PikaObj *self = New_BaseObj(args);
/* Derive from the base object class .
BaseObj is the smallest object that can
import sub object. */
PikaObj *self = New_BaseObj(args);

/* import LED class */
obj_import(self, "LED", New_LED);
/* import LED class */
obj_import(self, "LED", New_LED);

/* new led object bellow root object */
obj_newObj(self, "led", "LED");
/* new led object bellow root object */
obj_newObj(self, "led", "LED");

/* return the object */
return self;
/* return the object */
return self;
}

int32_t main()
{
/* new root object */
PikaObj *root = newRootObj("root", New_MYROOT);
/* user input buff */
char inputBuff[256] = {0};
/* run the script with check*/
obj_run(root, "led.on()");
printf("memory used max = %0.2f kB\r\n", pikaMemMax() / 1024.0);
printf("memory used now = %0.2f kB\r\n", pikaMemNow() / 1024.0);
while (1)
{
/* get user input */
fgets(inputBuff, sizeof(inputBuff), stdin);
/* new root object */
PikaObj *root = newRootObj("root", New_MYROOT);
/* user input buff */
char inputBuff[256] = {0};
/* run the script with check*/
obj_run(root, "led.on()");
printf("memory used max = %0.2f kB\r\n", pikaMemMax() / 1024.0);
printf("memory used now = %0.2f kB\r\n", pikaMemNow() / 1024.0);
while (1)
{
/* get user input */
fgets(inputBuff, sizeof(inputBuff), stdin);

/* run PikaScript and get res */
Args *resArgs = obj_runDirect(root, inputBuff);
/* run PikaScript and get res */
Args *resArgs = obj_runDirect(root, inputBuff);

/* get system output of PikaScript*/
char *sysOut = args_getSysOut(resArgs);;
/* get system output of PikaScript*/
char *sysOut = args_getSysOut(resArgs);;

if (NULL != sysOut)
{
/* print32_t out the system output */
printf("%s\r\n", sysOut);
}
if (NULL != sysOut)
{
/* print32_t out the system output */
printf("%s\r\n", sysOut);
}

/* deinit the res */
args_deinit(resArgs);
}
/* deinit the res */
args_deinit(resArgs);
}
}
Loading