一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

Lua是一個(gè)小巧的腳本語言。作者是巴西人。該語言的設(shè)計(jì)目的是為了嵌入應(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)是成為一個(gè)非常easy嵌入其他語言中使用的語言。大多數(shù)程序猿也覺得它的確做到了這一點(diǎn)。

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

MDK下lua移植到stm32

移植lua

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

l 改動(dòng)堆棧大小:堆最小為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;

}

  • //將一個(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)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6067

    文章

    44991

    瀏覽量

    650401
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7632

    瀏覽量

    141713
  • 腳本語言
    +關(guān)注

    關(guān)注

    0

    文章

    48

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

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

    前言本篇文章將分享單片機(jī)移植的經(jīng)驗(yàn)??梢韵螺d并按步驟移植,也可以直接使用已移植好的工程文件。文中將介紹我在
    的頭像 發(fā)表于 07-01 17:32 ?168次閱讀
    機(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 ?253次閱讀
    <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語言編程實(shí)例大全

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

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

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

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

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

    【正點(diǎn)原子STM32H7R3開發(fā)套件試用體驗(yàn)】移植lua解釋器

    Lua簡介 Lua 是一種輕量小巧的腳本語言,用標(biāo)準(zhǔn)C語言編寫并以源代碼形式開放, 其設(shè)計(jì)目的是為了嵌入應(yīng)用程序中,從而為應(yīng)用程序提供靈活的擴(kuò)展和定制功能。
    發(fā)表于 12-29 13:30

    nginx+lua+redis實(shí)現(xiàn)灰度發(fā)布

    了這種能力,隨時(shí)可以基于這種能力和思想調(diào)整實(shí)現(xiàn)方案:比如nginx+lua+(其他數(shù)據(jù)源)、nginx+(其他腳本語言) 一、灰度方案: 常見的灰度實(shí)現(xiàn)方案: 1.請求路由:通過請求中的標(biāo)識(shí)(如用戶ID、設(shè)備ID、請求頭等)來決定是否將請求路由
    的頭像 發(fā)表于 12-17 10:01 ?437次閱讀

    微軟生成式AI腳本GenAIScript的安裝與配置

    GenAIScript 是一種結(jié)合了生成式人工智能(Generative AI,簡稱 GenAI)和腳本編寫能力的新型腳本語言。
    的頭像 發(fā)表于 11-07 09:13 ?767次閱讀
    微軟生成式AI<b class='flag-5'>腳本</b>GenAIScript的安裝與配置

    單片機(jī)編程語言有哪些選擇

    常用的單片機(jī)編程語言,以及它們的特點(diǎn)和應(yīng)用場景: 1. C語言 特點(diǎn) :C語言是一種通用的編程語言,以其高效性和靈活性而聞名。它提供了豐富的
    的頭像 發(fā)表于 11-01 14:13 ?2423次閱讀

    Lua語法基礎(chǔ)教程(上篇)

    今天我們來學(xué)習(xí)Lua語法基礎(chǔ)教程。由于篇幅過長,將分為上中下三篇進(jìn)行講解,本篇為上篇。 一、初識(shí)Lua Lua 是一種輕量小巧的腳本語言,它用標(biāo)準(zhǔn)C
    的頭像 發(fā)表于 10-24 07:17 ?833次閱讀

    單片機(jī)STM32可以用Python寫嗎?可以的開發(fā)板有哪些?

    近年來,隨著嵌入式技術(shù)的發(fā)展,Python語言逐漸被引入單片機(jī)開發(fā)中,尤其是一些高性能的單片機(jī)上。這一趨勢給開發(fā)者帶來了極大的便利,尤其是在快速原型設(shè)計(jì)和實(shí)驗(yàn)中。本文將詳細(xì)探討
    的頭像 發(fā)表于 09-05 08:00 ?7602次閱讀
    <b class='flag-5'>單片機(jī)</b><b class='flag-5'>STM32</b>可以用Python寫嗎?可以的開發(fā)板有哪些?

    stm32單片機(jī)用什么軟件編程

    STM32單片機(jī)是一種廣泛應(yīng)用于嵌入式系統(tǒng)領(lǐng)域的微控制器,具有高性能、低功耗、豐富的外設(shè)接口等特點(diǎn)。要對STM32單片機(jī)進(jìn)行編程,需要選擇合適的軟件工具。 概述
    的頭像 發(fā)表于 09-02 10:16 ?3475次閱讀

    單片機(jī)燒錄程序的基本步驟是什么

    單片機(jī)燒錄程序是單片機(jī)開發(fā)過程中非常重要的一步,它涉及將編寫好的程序代碼通過一定的方式傳輸?shù)?b class='flag-5'>單片機(jī)內(nèi)部的存儲(chǔ)器中,使單片機(jī)能夠按照預(yù)定的邏
    的頭像 發(fā)表于 09-02 09:47 ?2757次閱讀

    stm32單片機(jī)引腳介紹及功能

    STM32系列單片機(jī)是STMicroelectronics(意法半導(dǎo)體)推出的一款基于ARM Cortex-M內(nèi)核的32位微控制器。STM32單片機(jī)具有高性能、低功耗、豐富的外設(shè)和靈活
    的頭像 發(fā)表于 09-02 09:38 ?1.3w次閱讀

    【龍芯2K0300蜂鳥板試用】+3.移植lualoongarch

    1.Lua簡介 Lua 是一種輕量小巧的腳本語言,用標(biāo)準(zhǔn)C語言編寫并以源代碼形式開放,其設(shè)計(jì)目的是為了嵌入應(yīng)用程序中,從而為應(yīng)用程序提供靈活的擴(kuò)展和定制功能。
    發(fā)表于 08-18 03:31