lua移植到MTK平台小結

2021-08-22 20:31:49 字數 2368 閱讀 5372

lua核心使用

c語言,所使用的函式也只有標準

c,並且沒有全域性變數。對於大部分作業系統來說,移植所要做的事情很少。而移植到

mtk平台則要注意以下幾點: 1.

記憶體分配。

lua使用malloc

、realloc

、calloc

等函式來分配記憶體,而

mtk平台下不能使用這些函式,而是使用

oslmalloc

等函式代替之。其它的分配記憶體函式包括以下:

#define media_get_ext_buffer(src_mod_id, buffer_p, buffer_size)/

media_get_ext_buffer_ext(src_mod_id,buffer_p, buffer_size,__file__,__line__)

#define media_get_int_buffer(src_mod_id, buffer_p, buffer_size)/

media_get_int_buffer_ext(src_mod_id,buffer_p,buffer_size,__file__,__line__)

#define media_free_int_buffer(src_mod_id, buffer_p)/

media_free_int_buffer_ext(src_mod_id, buffer_p, __file__, __line__)

#define media_free_ext_buffer(src_mod_id, buffer_p)/

media_free_ext_buffer_ext(src_mod_id, buffer_p, __file__, __line__)

mmi_frm_scrmem_alloc() 2.

檔案操作。

fopne

、fread

、fwrite

、fclose

等函式也不要使用,用

fs_open

、fs_close

、fs_read

、fs_write

等函式代替之。

3.訊息(事件)傳遞。

手機上的訊息要傳給

lua,包括按鍵訊息、

timer

訊息、socket

訊息。

int(*func)(

void

*pthis,

intevttype,

uint32

param1,

uint32

param2);

lua_state*l;

void

key1downhandler()

void

key2downhandler()

void

key3downhandler()

...................

void

keyrskdownhandler()

void

keyrskuphandler()

typedef

struct

mtk_key_event

mtk_key_event;

const

mtk_key_eventeventhandlers=

, , ,

................... ,

, };

void

lua_set_key_handler(

void)

for(i=0;i<

sizeof

(eventhandlers)/

sizeof

(eventhandlers[0]);i++) }

intmy_event_handler(

void

*pthis,

intevttype,

uint32

param1,

uint32

param2)

case

init:

//todo:otherevent }

return

1; }

unsigned

intlua_event_handler(lua_state*l,

intevttype,

uint32

param1,

uint32

param2)

ret=(unsigned

int)lua_tonumber(l,-1);

lua_pop(l,1);

return

ret; }

4。初始化以及退出

intinit()

intfini()

移植 Lua 到嵌入式平台 OMAPL138

lua 是十分小巧精簡的,編譯安裝也是很簡單。先來看下在 x86 ubuntu 上的編譯安裝 curl r o sudo apt get install libreadline dev tar xf lua 5.3.5.tar.gz cd lua 5.3.5 make linux test sudo...

移植程式到symbian平台

symbian平台理論上可以平移標準的c c 語 言程式,以及標準庫。只需要在mmp檔案中進行如下編寫 target hello.exe targettype exe uid 0 sourcepath source slhello.c systeminclude epoc32 include lib...

gloox移植到android平台

最近需要在android平台是使用gloox,官方gloox沒有沒有對應的android.mk檔案,那當然也可以用android ndk來編譯,但是我覺得用ndk編譯有點麻煩,就寫乙個android.mk來使用mm編譯。首先,進入src目錄,configure該專案 configure host a...