91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

單片機(jī)腳本語(yǔ)言移植lua到stm32MDK的步驟

汽車玩家 ? 來(lái)源:cnblogs ? 作者:cnblogs ? 2021-07-22 16:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Lua是一個(gè)小巧的腳本語(yǔ)言。作者是巴西人。該語(yǔ)言的設(shè)計(jì)目的是為了嵌入應(yīng)用程序中,從而為應(yīng)用程序提供靈活的擴(kuò)展和定制功能。

Lua腳本能夠非常easy的被C/C++ 代碼調(diào)用,也能夠反過(guò)來(lái)調(diào)用C/C++的函數(shù),這使得Lua在應(yīng)用程序中能夠被廣泛應(yīng)用。不只作為擴(kuò)展腳本,也能夠作為普通的配置文件,取代XML,Ini等文件格式,而且更easy理解和維護(hù)。

Lua的目標(biāo)是成為一個(gè)非常easy嵌入其他語(yǔ)言中使用的語(yǔ)言。大多數(shù)程序猿也覺(jué)得它的確做到了這一點(diǎn)。

非常多應(yīng)用程序使用LUA作為自己的嵌入式腳本語(yǔ)言,以此來(lái)實(shí)現(xiàn)可配置性、可擴(kuò)展性。這當(dāng)中包含魔獸世界、博德之門、憤慨的小鳥(niǎo)、VOCALOID3 等。

MDK下lua移植到stm32

移植lua

  • l 加入?lua源代碼到MDK,把lua.c 和luac.c刪除。

l 改動(dòng)堆棧大?。憾炎钚?.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)庫(kù)底層函數(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)前長(zhǎng)度

long _sys_flen(FILEHANDLE fh)

{

return0;

}

void _sys_exit(int status)

{

//while(1);

}

int _sys_tmpnam(char *name, int fileno, unsignedmaxlength)

{

return0;

}

  • //將一個(gè)字符寫入控制臺(tái)

void _ttywrch(int ch)

{

}

int remove(const char *filename)

{

return0;

}

char *_sys_command_string(char *cmd, intlen)

{

return NULL;

}

static int lua_led_on(lua_State *L)

{

GPIO_ResetBits(GPIOC,GPIO_Pin_13);

return1;

}


文章整合自:cnblogs

編輯:ymf

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6076

    文章

    45492

    瀏覽量

    670116
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    183

    文章

    7643

    瀏覽量

    145539
  • 腳本語(yǔ)言
    +關(guān)注

    關(guān)注

    0

    文章

    48

    瀏覽量

    8578
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    智能顯示模塊支持腳本語(yǔ)言嗎?

    智能顯示模塊支持腳本語(yǔ)言嗎?
    發(fā)表于 02-26 11:18

    小白也能聽(tīng)懂的單片機(jī)知識(shí)路徑

    嘗試新的想法和技術(shù),不斷挑戰(zhàn)自我,實(shí)現(xiàn)創(chuàng)新。 從51單片機(jī)STM32單片機(jī),這是一條充滿挑戰(zhàn)與機(jī)遇的學(xué)習(xí)之路。通過(guò)不斷努力和實(shí)踐,只要保持對(duì)技術(shù)的熱愛(ài)和堅(jiān)持,一定能夠成為
    發(fā)表于 02-04 16:44

    CW32單片機(jī)支持哪幾種開(kāi)發(fā)環(huán)境,比較常用的MDK支持嗎?

    CW32單片機(jī)支持哪幾種開(kāi)發(fā)環(huán)境,比較常用的MDK支持嗎。 若使用MDK開(kāi)發(fā),是否也需要下載芯片包,導(dǎo)入MDK中?xxx32的庫(kù)可以用嗎。
    發(fā)表于 01-26 06:14

    Lua基礎(chǔ)語(yǔ)法更新篇(上)

    初識(shí) Lua ? Lua 是一種輕量小巧的腳本語(yǔ)言,它用標(biāo)準(zhǔn)C語(yǔ)言編寫并以源代碼形式開(kāi)放。這意味著什么呢?這意味著Lua虛擬
    的頭像 發(fā)表于 01-23 19:56 ?79次閱讀
    <b class='flag-5'>Lua</b>基礎(chǔ)語(yǔ)法更新篇(上)

    LuatOS-Air腳本移植LuatOS版本注意事項(xiàng)

    一、lua版本不一樣 LuatOS-Air使用的是lua5.1版本,本身不支持位移運(yùn)算符。 LuatOS使用的是lua5.3版本,取消了module(..., package.seeall)這種形式
    的頭像 發(fā)表于 01-17 14:48 ?1134次閱讀
    LuatOS-Air<b class='flag-5'>腳本</b><b class='flag-5'>移植</b><b class='flag-5'>到</b>LuatOS版本注意事項(xiàng)

    為什么單片機(jī)還在用C語(yǔ)言編程?

    最適合單片機(jī)開(kāi)發(fā)的編程語(yǔ)言實(shí)在太過(guò)晦澀難懂,學(xué)習(xí)起來(lái)非常的不方便,并且每一種單片機(jī)的匯編指令有很大區(qū)別,所以想把一個(gè)程序從這種單片機(jī)移植
    發(fā)表于 11-28 07:37

    LUA例程-常用的回調(diào)函數(shù)使用說(shuō)明

    詳細(xì)說(shuō)明LUA腳本函數(shù)功能和對(duì)應(yīng)的應(yīng)用實(shí)例。對(duì)于LUA腳本編程有很大的幫助和提高技能。
    發(fā)表于 11-24 16:43 ?0次下載

    C語(yǔ)言單片機(jī)C語(yǔ)言有什么差異

    單片機(jī)c語(yǔ)言相對(duì)于普通C語(yǔ)言增加了一些基本的指令,還有變量的賦值是16進(jìn)制,當(dāng)然單片機(jī)c語(yǔ)言只牽涉
    發(fā)表于 11-14 07:55

    大彩講堂:VisualHMI-LUA教程-獲取和設(shè)置16位數(shù)據(jù)函數(shù)

    一、適合范圍本文檔適用于VisualHMI平臺(tái),Lua腳本語(yǔ)言為V5.3版本,配合工程可以完成大部分的內(nèi)部邏輯處理。二、概述2.1get_uint16(vtype,addr)讀取無(wú)符號(hào)短整型寄存器
    的頭像 發(fā)表于 10-13 16:40 ?1363次閱讀
    大彩講堂:VisualHMI-<b class='flag-5'>LUA</b>教程-獲取和設(shè)置16位數(shù)據(jù)函數(shù)

    怎么測(cè)單片機(jī)系統(tǒng)頻率

    ,各有其特點(diǎn)和操作要點(diǎn)。 示波器測(cè)量法 示波器是測(cè)量單片機(jī)系統(tǒng)頻率的常用工具,其原理是通過(guò)捕捉單片機(jī)輸出的周期性信號(hào),根據(jù)信號(hào)的周期計(jì)算頻率。 操作步驟 首先,確定單片機(jī)的時(shí)鐘輸出引腳
    的頭像 發(fā)表于 07-25 11:39 ?778次閱讀

    機(jī)智云配網(wǎng)教程第三期:單片機(jī)代碼移植實(shí)戰(zhàn)

    前言本篇文章將分享單片機(jī)移植的經(jīng)驗(yàn)。可以下載并按步驟移植,也可以直接使用已移植好的工程文件。文中將介紹我在
    的頭像 發(fā)表于 07-01 17:32 ?1649次閱讀
    機(jī)智云配網(wǎng)教程第三期:<b class='flag-5'>單片機(jī)</b>代碼<b class='flag-5'>移植</b>實(shí)戰(zhàn)

    STM32與機(jī)智云連接實(shí)現(xiàn)步驟與技巧(下篇):機(jī)智云代碼移植與優(yōu)化

    在《STM32與機(jī)智云連接實(shí)現(xiàn)步驟與技巧(上篇)》中,我們介紹了硬件連接和通信協(xié)議配置。本篇將重點(diǎn)講解如何將機(jī)智云相關(guān)代碼移植STM32,
    的頭像 發(fā)表于 05-23 18:10 ?1105次閱讀
    <b class='flag-5'>STM32</b>與機(jī)智云連接實(shí)現(xiàn)<b class='flag-5'>步驟</b>與技巧(下篇):機(jī)智云代碼<b class='flag-5'>移植</b>與優(yōu)化

    單片機(jī)c語(yǔ)言編程實(shí)例大全

    單片機(jī)c語(yǔ)言編程實(shí)例大全_18
    發(fā)表于 04-30 16:11 ?7次下載

    STM32F10xxx單片機(jī)編程手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《STM32F10xxx單片機(jī)編程手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 04-14 14:56 ?17次下載

    STM32F103x8 STM32F103xB單片機(jī)數(shù)據(jù)手冊(cè)

    STM32F103x8STM32F103xB單片機(jī)數(shù)據(jù)手冊(cè)
    發(fā)表于 04-14 14:55 ?8次下載