今天正式开始LUA之旅了。在STM32上弄。如何入门。
首先选用哪个版本的LUA? 网上搜索了半天,说是lua-5.1.4的比较好。登陆官网却登不上去。所以只能在优快云下载了个。
另外,以前网上搜集的几个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那个比较厉害的人物云风在其博客里面说的,“
思绪来得快去得也快,偶尔会在这里停留
”所以我今天也要在我的地盘上停留一把,要不然思路很快飞走了