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 
 
 |