LUA+STM32,开始弄了。如何入门?

今天正式开始LUA之旅了。在STM32上弄。如何入门。


首先选用哪个版本的LUA? 网上搜索了半天,说是lua-5.1.4的比较好。登陆官网却登不上去。所以只能在CSDN下载了个。

另外,以前网上搜集的几个STM32例子都是用的lua-5.1.4。


具体在STM32上弄LUA要注意啥 才能入门呢?

(0)把lua代码填到工程中,并把lua.c和luac.c弄成不参与编译。

(1)修改启动代码的堆栈大小。

(2)弄个地方 加上下面的代码,当然可能不完全有用,至少一部分有用。具体作用以及准确性以后慢慢琢磨

<span style="font-family:Microsoft YaHei;font-size:18px;">typedef int FILEHANDLE;

#pragma import(__use_no_semihosting_swi)

#pragma import(_main_redirection)

const char __stdin_name[150];

const char __stdout_name[150];

const char __stderr_name[150];

FILEHANDLE _sys_open(const char *name, int openmode)

{

         return 0;

}

int _sys_close(FILEHANDLE fh)

{

          return 0;

}

int _sys_write(FILEHANDLE fh, const unsigned char *buf, unsigned len, int mode)

{

         return 0;

}

int _sys_read(FILEHANDLE fh, unsigned char*buf, unsigned len, int mode)

{

         return 0;

}

//¼ì²é¾ä±úÊÇ·ñΪÖÕ¶Ë

int _sys_istty(FILEHANDLE fh)

{

         return 0;

}

int _sys_seek(FILEHANDLE fh, long pos)

{

         return 0;

}

//ˢоä±ú¹ØÁªµÄ»º³åÇø

int _sys_ensure(FILEHANDLE fh)

{

         return 0;

}

 

//·µ»ØÎļþµ±Ç°³¤¶È

long _sys_flen(FILEHANDLE fh)

{

         return 0;

}

void _sys_exit(int status)

{

         //while(1);

 

}

int _sys_tmpnam(char *name, int fileno, unsigned maxlength)

{

         return 0;

}

//½«Ò»¸ö×Ö·ûдÈë¿ØÖÆ̨

void _ttywrch(int ch)

{

}

int remove(const char *filename)

{

         return 0;

}

char *_sys_command_string(char *cmd, int len)

{

 return NULL;

}</span>

(3)照着正点原子的例子 网上有个例子 照葫芦画瓢,能跑起来。可以用MDK软仿真。

好了就到这里。

以前弄过一次这个lua入门,但是今天重新又话了半天时间倒腾了一遍。就是因为以前没有书面记录,所以今天不得不说重新回忆。

所以说就像 lua那个比较厉害的人物云风在其博客里面说的,“

所以我今天也要在我的地盘上停留一把,要不然思路很快飞走了



你可能感兴趣的:(LUA+STM32,开始弄了。如何入门?)