Lua是一個小巧的腳本語言。作者是巴西人。該語言的設(shè)計目的是為了嵌入應(yīng)用程序中,從而為應(yīng)用程序提供靈活的擴展和定制功能。
Lua腳本能夠非常easy的被C/C++ 代碼調(diào)用,也能夠反過來調(diào)用C/C++的函數(shù),這使得Lua在應(yīng)用程序中能夠被廣泛應(yīng)用。不只作為擴展腳本,也能夠作為普通的配置文件,取代XML,Ini等文件格式,而且更easy理解和維護。
Lua的目標(biāo)是成為一個非常easy嵌入其他語言中使用的語言。大多數(shù)程序猿也覺得它的確做到了這一點。
非常多應(yīng)用程序使用LUA作為自己的嵌入式腳本語言,以此來實現(xiàn)可配置性、可擴展性。這當(dāng)中包含魔獸世界、博德之門、憤慨的小鳥、VOCALOID3 等。
MDK下lua移植到stm32
移植lua
- l 加入?lua源代碼到MDK,把lua.c 和luac.c刪除。
 
l 改動堆棧大?。憾炎钚?.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
- 
                                單片機
                                +關(guān)注
關(guān)注
6072文章
45277瀏覽量
661630 - 
                                C語言
                                +關(guān)注
關(guān)注
183文章
7636瀏覽量
144294 - 
                                腳本語言
                                +關(guān)注
關(guān)注
0文章
48瀏覽量
8518 
發(fā)布評論請先 登錄
大彩講堂:VisualHMI-LUA教程-獲取與設(shè)置32位數(shù)據(jù)函數(shù)的應(yīng)用
    
大彩講堂:VisualHMI-LUA教程-獲取和設(shè)置16位數(shù)據(jù)函數(shù)
    
怎么測單片機系統(tǒng)頻率
大彩講堂:VisualHMI-LUA教程-on_run回調(diào)函數(shù)使用指南
    
STM32與機智云連接實現(xiàn)步驟與技巧(下篇):機智云代碼移植與優(yōu)化
    
瑞薩RA8系列教程 | 基于 Keil 開發(fā) RA8單片機
    
STM32F103x8 STM32F103xB單片機數(shù)據(jù)手冊
STM32單片機最小系統(tǒng)電路設(shè)計
    
【正點原子STM32H7R3開發(fā)套件試用體驗】移植lua解釋器
nginx+lua+redis實現(xiàn)灰度發(fā)布
Linux從零到精通:最簡單的Shell腳本入門教程
    
          
        
        
單片機腳本語言移植lua到stm32MDK的步驟
                
 
    
           
            
            
                
            
評論