本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处!
今年穿戴设备突然火起来......穿戴设备与概念未爆发前的电子产品不同于“可联网”和“支持app”,使得一个封闭的小玩意可以加入多人的想象,屌丝的想象力很丰富的说....
穿戴设备目前分为"屌丝“和”高富帅“两档配置,所谓”屌丝”配置也就是弱得装不上android,未来一段时间内,手表和手环都以“屌丝”配置为主,例如pebble和sony手表以arm cortex m3芯,不过"高富帅"geek watch用上android....
吹完水,就说本文的重点,如何让弱性能设备支持app,也就是把lua移植到stm32.....本文代码可以到这里(http://download.csdn.net/detail/hellogv/5721915)下载。
手上的板子是STM32F103RCT6 FLASH 256K RAM 48K,配置低得勉强跑得动Lua。开发环境是IAR For ARM 6.4,以后也方便使用eclipse cdt,移植重点:
1.下载lua:http://www.lua.org/download.html,本文用Lua 5.2.2;
2.把/lua/src里的文件全部copy到IAR for STM32 工程;
3.在IAR for STM32 模版工程,workspace下面新建lua文件夹,添加所有源文件:
4. 修改工程配置
5.把lua.c和luac.c 从工程中删除,否则编译过程中会提示 Error[Li006]: duplicate definitions for "main";
6.修改stm32f10x_flash.icf,否则编译通过,运行会提示内存不足:
define symbol __ICFEDIT_size_cstack__ = 0x00008000;
define symbol __ICFEDIT_size_heap__ = 0x00002000;
代码就不贴出,运行本文程序,会发现简单的lua程序跟C程序效率比是1:100,而lua运算量越大,与C程序效率差距就越小。