今天正式开始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那个比较厉害的人物云风在其博客里面说的,“
所以我今天也要在我的地盘上停留一把,要不然思路很快飞走了