Lua是一個小巧的腳本語言。作者是巴西人。該語言的設(shè)計目的是為了嵌入應(yīng)用程序中,從而為應(yīng)用程序提供靈活的擴(kuò)展和定制功能。
Lua腳本能夠非常easy的被C/C++ 代碼調(diào)用,也能夠反過來調(diào)用C/C++的函數(shù),這使得Lua在應(yīng)用程序中能夠被廣泛應(yīng)用。不只作為擴(kuò)展腳本,也能夠作為普通的配置文件,取代XML,Ini等文件格式,而且更easy理解和維護(hù)。
Lua的目標(biāo)是成為一個非常easy嵌入其他語言中使用的語言。大多數(shù)程序猿也覺得它的確做到了這一點。
非常多應(yīng)用程序使用LUA作為自己的嵌入式腳本語言,以此來實現(xiàn)可配置性、可擴(kuò)展性。這當(dāng)中包含魔獸世界、博德之門、憤慨的小鳥、VOCALOID3 等。
MDK下lua移植到stm32
移植lua
- l 加入?lua源代碼到MDK,把lua.c 和luac.c刪除。
l 改動堆棧大小:堆最小為5.5kb,棧最小是1.5kb。lua的空間分配在堆空間。16kb的內(nèi)存建議分配是堆11Kb,棧4Kb,留1Kb給全局變量。
在startup_stm32f10x_md.s文件里
; stack size 0x1000 == 4Kb
Stack_Size EQU 0x00001000
; heap size 0x2c00 == 11Kb
Heap_Size EQU 0x00002C00
- l 重寫標(biāo)準(zhǔn)庫底層函數(shù)
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, intopenmode)
{
return0;
}
int _sys_close(FILEHANDLE fh)
{
return 0;
}
int _sys_write(FILEHANDLE fh, constunsigned char *buf, unsigned len, int mode)
{
return0;
}
int _sys_read(FILEHANDLE fh, unsigned char*buf, unsigned len, int mode)
{
return0;
}
- //檢查句柄是否為終端
int _sys_istty(FILEHANDLE fh)
{
return0;
}
int _sys_seek(FILEHANDLE fh, long pos)
{
return0;
}
- //刷新句柄關(guān)聯(lián)的緩沖區(qū)
int _sys_ensure(FILEHANDLE fh)
{
return0;
}
- //返回文件當(dāng)前長度
long _sys_flen(FILEHANDLE fh)
{
return0;
}
void _sys_exit(int status)
{
//while(1);
}
int _sys_tmpnam(char *name, int fileno, unsignedmaxlength)
{
return0;
}
- //將一個字符寫入控制臺
void _ttywrch(int ch)
{
}
int remove(const char *filename)
{
return0;
}
char *_sys_command_string(char *cmd, intlen)
{
return NULL;
}
- C語言與lua交互
static int lua_led_on(lua_State *L)
{
GPIO_ResetBits(GPIOC,GPIO_Pin_13);
return1;
}
文章整合自:cnblogs
編輯:ymf
-
單片機(jī)
+關(guān)注
關(guān)注
6074文章
45453瀏覽量
667067 -
C語言
+關(guān)注
關(guān)注
183文章
7642瀏覽量
145116 -
腳本語言
+關(guān)注
關(guān)注
0文章
48瀏覽量
8540
發(fā)布評論請先 登錄
LuatOS-Air腳本移植到LuatOS版本注意事項
為什么單片機(jī)還在用C語言編程?
LUA例程-常用的回調(diào)函數(shù)使用說明
C語言和單片機(jī)C語言有什么差異
學(xué)單片機(jī)的誤區(qū)
大彩講堂:VisualHMI-LUA教程-獲取與設(shè)置32位數(shù)據(jù)函數(shù)的應(yīng)用
大彩講堂:VisualHMI-LUA教程-獲取和設(shè)置16位數(shù)據(jù)函數(shù)
怎么測單片機(jī)系統(tǒng)頻率
大彩講堂:VisualHMI-LUA教程-on_run回調(diào)函數(shù)使用指南
機(jī)智云配網(wǎng)教程第三期:單片機(jī)代碼移植實戰(zhàn)
STM32與機(jī)智云連接實現(xiàn)步驟與技巧(下篇):機(jī)智云代碼移植與優(yōu)化
STM32F10xxx單片機(jī)編程手冊
STM32F103x8 STM32F103xB單片機(jī)數(shù)據(jù)手冊
STM32單片機(jī)最小系統(tǒng)電路設(shè)計
單片機(jī)腳本語言移植lua到stm32MDK的步驟
評論