查看: 1701|回复: 0
打印 上一主题 下一主题

STM32F2/F4 的elua 移植

[复制链接]
跳转到指定楼层
沙发
发表于 2016-6-13 23:21:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ST推出了Cortex-M4核的微控制器,它的DSP指令集,1MB闪存,196K的RAM,168MHz核心时钟看起来很吸引人,至少对于我来说。低成本评估板STM32F4 Discovery看起来是个不错的开始。
像许多其他开发人员一样,我也喜欢Lua语言,感觉有助于提高工作效率 。eLua项目提供Lua环境可以在许多当今的32位微控制器上运行。

几点我认为eLua最吸引人的地方:
1。Lua语言的支持在嵌入式系统中提供Lua语言环境支持
2。文件系统灵活的文件系统,ROM中,通过SPI接口连接的SD卡,通过串口的远程文件系统
3。RPC 远过程调用(RPC)允许调用远程端上运行的程序
4。Command shell (命令行支持 ??(抱歉,不清楚中文怎么翻这个词))一个简单,但实用的命令行支持,让您与文件系统交互,接收,阅读,复制和执行Lua脚本文件

开始之前需要以下软件:
1。支持Cortex - M4的核心的 gcc,例如, Code sourcery G++ Lite 2011.03-42
2。Scons
3。烧写工具 STM32的ST - Link的工具,可以从www.st.com下载
4。取得最新的elua源码,参考www.eluaproject.net如何用git下载

经验教训:
1。 ST link 报告"No target connected"
请参考我的另一篇博客
现有的STM32F1xx之支持会缺省设置所有GPIO端口为输入,这会导致SWD引脚失效。添加代码设置JTAG / SWD管脚,添加新的宏以启用/关闭JTAG / SWD和TRACE引脚。
2. _fini引用但没有定义
修改LD脚本
3. STM32F4 Discovery板载8M晶振,时钟设置应改变
4。外设引脚需要额外GPIO_PinAFConfig调用。
5。因为MCU的运行在168Mhz,默认SYSTICKHZ(10)会导致SysTick_Config超界,增大。
6。STM32F2/F4 UART没有FIFO,115200运行在轮询模式下,可能会丢失字符。
7。SPI+MMCFS文件系统已经工作。与UART一样,SPI也没有FIFO,只有DR,主模式下还好,从模式需要DMA。
8。我前面的代码计算时钟错误,已更正
9。请更新到最新的elua代码。旧代码导致的SPI / MMCFS不能正常工作。

进度:
以下模块已经可以正常运行在STM32F4 Discovery和定制的STM32F2板
UART, GPIO, timer,led.lua 已经可以闪烁
SPI,MMCFS SD卡可以正常存取

调试中的模块:
ADC, PWM

代码可以在
http://dd.homeunix.com/home/space.php?uid=1&do=blog&id=91
下载
zip文件包含了我所有的stm32f4 stm32f2平台支持文件,首先获取最新的elua文件,展开,复制stm32f2 stm32f4到platform文件夹,复制SConstruct到elua根文件夹,您也可以复制led.lua到ROMFS文件夹以保存到处理器闪存。

文件夹设置正确后,运行
scons board=STM32F4DSCY prog
将生成的elua_lua_stm32f407vg.hex下载到目标板

hex文件可以在
http://dd.homeunix.com/home/space.php?uid=1&do=blog&id=91
下载
,在STM32F4 Discovery 上运行
连接信息:
UART:PB6,7
SD卡: spi-PB13, 14, 15; cs-PB11

哈!又有新玩具了!


许可证信息:请参阅eLua网站 http://www.eluaproject.net/overview/license

本文原始blog
http://dd.homeunix.com/home/space.php?uid=1&do=blog&id=91

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入中科因仑

本版积分规则

快速回复 返回顶部 返回列表