当前位置: 首页 > news >正文

重庆网站建设沛宣网络跨境电商平台排行榜前十名

重庆网站建设沛宣网络,跨境电商平台排行榜前十名,做关键字要改网站,怎么设置网站文章目录 目的移植演示示例链接更多说明合理设置内存大小按需加载标准库实现系统和IO接口设置引用路径 总结 目的 通常单片机都是使用C/C来开发的#xff0c;任何修改都需要重新编译固件然后下载运行。在一些需要灵活性更强的场合中可以内嵌Lua解释器实现动态更新应用程序的功… 文章目录 目的移植演示示例链接更多说明合理设置内存大小按需加载标准库实现系统和IO接口设置引用路径 总结 目的 通常单片机都是使用C/C来开发的任何修改都需要重新编译固件然后下载运行。在一些需要灵活性更强的场合中可以内嵌Lua解释器实现动态更新应用程序的功能。这篇文章将对相关内容做个简单说明。 移植演示 Lua本身就是纯C实现的不管是移植到上位机程序还是单片机程序中本质上没有多大区别单就移植以及Lua脚本和C代码交互等参考我之前的文章即可 《Lua和C语言交互入门》https://blog.csdn.net/Naisu_kun/article/details/134000058 这里进行简单演示使用NUCLEO-H743ZI2开发板启用默认使能的串口用来打印输出信息 修改最小堆栈大小生成初始化项目代码。 然后参考上面文章直接引入Lua源码排除 lua.c 和 luac.c接着改写 main.c 代码如下 #include main.h#include stdio.h // 引入该库为了可以使用 printf 函数#include src/lua.h // Lua数据类型与函数接口 #include src/lauxlib.h // Lua与C交互辅助函数接口 #include src/lualib.h // Lua标准库打开接口UART_HandleTypeDef huart3; void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_USART3_UART_Init(void);/* 以下代码用来实现putchar操作以此可实现printf功能 */ /* With GCC, small printf (option LD Linker-Libraries-Small printf set to Yes) calls __io_putchar() */ #ifdef __GNUC__ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) // 实现__io_putchar函数 #else #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #endif /* __GNUC__ */PUTCHAR_PROTOTYPE {// 实际发送操作这里可以改成自己真实需要操作的端口HAL_UART_Transmit(huart3, (uint8_t *)ch, 1, 0xFFFF);return ch; } /* 以上代码用来实现putchar操作以此可实现printf功能 */int main(void) {HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_USART3_UART_Init();lua_State* L luaL_newstate(); // 创建Lua线程luaL_openlibs(L); // 打开标准库while (1){HAL_Delay(1000);luaL_dostring(L, print(Naisu, Lua!)); // 解析并执行Lua脚本字符串}lua_close(L); // 关闭Lua线程虽然代码并不会运行到这里 }void SystemClock_Config(void) {// some code ... }static void MX_USART3_UART_Init(void) {// some code ... }static void MX_GPIO_Init(void) {// some code ... }void Error_Handler(void) {// some code ... }上面代码主要就两方面内容 实现了 putchar 操作这样在 Lua 中就可以使用 print 函数了创建Lua虚拟机初始化标准库然后循环执行Lua脚本 将上述代码编译后下载到开发板可以看到相关输出 示例链接 仓库地址 https://github.com/NaisuXu/STM32_MCU_Examples 本文中的示例位于仓库中 Lua_H743 。 更多说明 从上面演示可以看到移植本身很简单不过相比在上位机上移植在单片机中移植还有些需要注意的地方。 合理设置内存大小 单片机相比上位机一个比较大的问题是内存比较小所以需要合理设计内存使用。 单片机本身设置合适的堆栈空间 Lua源码 luaconf.h 文件中 #define LUAI_MAXSTACK 宏定义用于设置Lua使用的最大栈大小 /*LUAI_MAXSTACK limits the size of the Lua stack. ** CHANGE it if you need a different limit. This limit is arbitrary; ** its only purpose is to stop Lua from consuming unlimited stack ** space (and to reserve some numbers for pseudo-indices). ** (It must fit into max(size_t)/32 and max(int)/2.) */ #if LUAI_IS32INT #define LUAI_MAXSTACK 1000000 #else #define LUAI_MAXSTACK 15000 #endif按需加载标准库 上面演示中使用 luaL_openlibs(L); 方式加载了所有的Lua标准库实际使用中完全可以按需加载。 在Lua源码 linit.c 中注释掉不需要的库即可 /* ** these libs are loaded by lua.c and are readily available to any Lua ** program */ static const luaL_Reg loadedlibs[] {{LUA_GNAME, luaopen_base},{LUA_LOADLIBNAME, luaopen_package},{LUA_COLIBNAME, luaopen_coroutine},{LUA_TABLIBNAME, luaopen_table},{LUA_IOLIBNAME, luaopen_io},{LUA_OSLIBNAME, luaopen_os},{LUA_STRLIBNAME, luaopen_string},{LUA_MATHLIBNAME, luaopen_math},{LUA_UTF8LIBNAME, luaopen_utf8},{LUA_DBLIBNAME, luaopen_debug},{NULL, NULL} };实现系统和IO接口 Lua中很多操作都是调用了操作系统相关的接口这些接口单片机是不带的如果需要用到相关功能的话要不就去实现相关接口比如演示中的print函数就需要实现相关接口才可以使用要不就直接改写Lua标准库相关函数。 设置引用路径 如果单片机上跑了文件系统将Lua脚本以文件的形式放到文件系统中那么在执行这些文件的时候可能需要合理设置Lua相关路径。比如在Lua源码 luaconf.h 文件中 LUA_PATH_DEFAULT 宏定义就可以设置默认的路径。 总结 总体来说在单片机上移植Lua并不复杂更多的是对内存的限制以及没有操作系统自带的各种接口问题上话时间去调试处理。 这些年单片机性能越来越强约来越多的脚本语言和高级语言可以运行在单片机上玩法真的是越来越多了。
http://www.zqtcl.cn/news/326180/

相关文章:

  • 个人免费设计网站fomo3d 网站怎么做
  • 菏泽做网站公司公关公司经营范围
  • 钓鱼网站营销型网站建设实战
  • 可以下载电影的网站怎么做做网站公司西安
  • 自己做签名网站网店美工培训教程
  • 宁波产品网站设计模板php 网站 教程
  • 制作一个网站的费用是多少免费网站空间怎么
  • 如何建立自己的微网站网站建设教程怎么建
  • seo网站项目讲解沈阳网红
  • 苏州大型网站建设公司网站外链优化
  • 阿里云购买域名后怎么建网站沂南网站设计
  • 网站建设基础考试php网站开发入门
  • 广州五屏网站建设seo诊断报告示例
  • 周浦高端网站建设公司信阳做网站的公司
  • 博客网站怎么建设湛江新闻头条最新消息
  • 外贸网站建设 评价有没有教做网站实例视频
  • 县 住房和城乡建设局网站wordpress接入支付宝
  • 网站建设初期推广方式天津网站建设案例
  • 销项税和进项导入是在国税网站做吗凡科网站模块
  • 苏州建网站皆去苏州聚尚网络常州企业建站系统
  • 网站建设明细wordpress 主题稳定
  • 网站设计论文前言怎么写肇庆网站开发哪家专业
  • 商城建站系统松江新城做网站公司
  • 长沙招聘做搜狗pc网站优化排
  • 辽宁智能建站系统价格金融做市场广告挂哪些网站
  • 做外贸的有哪些网站互动平台游戏
  • 网站设计最好的公司idc网站模板源码下载
  • 网站建设历史视频制作软件有哪些
  • 加盟网站制作定制桥的设计网站建设
  • 深圳做宣传网站的公司开发电商网站多少钱