chuyans 发表于 2015-11-16 16:24:55

STM32F429dicovery运行Java游戏

      第一步:确认你手上有一块STM32F429Disco的板子
      第二步:下载附件中hex烧录文件
      第三步:使用STVP将hex烧录到STM32F429Disco上去
      第四步:烧录成功后,系统会自动启动贪吃蛇应用,该游戏采用JAVA开发,游戏框架大概占用约800行代码(不含GUI库)。


chuyans 发表于 2015-11-16 16:32:17

本帖最后由 chuyans 于 2015-11-17 08:49 编辑

游戏有手动和自动两种模式可以切换,在自动模式下,蛇会自动走蛇形线去吃豆子,直到整个屏幕吃满为止。

chuyans 发表于 2015-11-16 17:49:58


                                       导读:为何采用JAVA开发MCU应用?
传统的MCU是按照单任务系统来设计的,随着MCU功能越来越强大,现在也有许多针对MCU开发嵌入式系统。然而,很多开源的嵌入式系统并没有做到很好的内核封装,这就意味着如果要开发一款成熟的应用,开发者得到从底层汇编开始做起,然后是底层驱动、内核移植、协议栈定制……一直做到应用程序开发,不论哪个环节出了问题或者没有衔接好,都可能导致开发陷入僵局。   能不能像在Windows/Linux下开发应用程序一样开发应用。也就是说,拿到手上的单片机上已经整合好了系统,它给你提供了一整套可用的内核API,开发者只需要熟悉API的使用规范就能上手开发应用了。出于这个目的,作者设计一款圆景系统,已经将API封装好了,提供了应用开发的模板。但是在推广使用的时候,却遇到了一个重大的瓶颈:MCU没有MMU!       对的,所有的的MCU均不带MMU,否则就不叫MCU了。正是因为这个原因,导致在开发C/C++应用的时候,必须要手动指定程序入口和堆栈空间。这类操作风险很大,任何一步有问题都会导致系统崩溃,而且崩溃原因很难查找。当然,这也有例外:uCLinux是通过reloc段修正的方法来实现不需要指定上述参数,但是该方法存在一个缺陷:该操作涉及到大量的段拷贝的操作,该操作期间长期关闭中断,系统的实时性难以得到保障。       为了突破上述瓶颈,2014年作者曾尝试将Lua移植到圆景中,然而相对当时的MCU资源来说,Lua的消耗量还是挺可观的,后来曾经按照uBasic改良出来了一种LuBaC脚本语言,但脚本的执行速度远不尽如人意,最终不得不放弃。       LuBaC项目虽然最终失败了,但是它提供了一个很好的模型:一个虚拟机装载脚本执行,执行完毕以后将占用的所有资源全部释放掉;而且它还能同时装载多个应用同时执行,彼此之间互不干扰。于是,作者尝试将一款Java虚拟机按照LuBaC的模式,移植到圆景中去运行,在开发进度、执行速度、资源消耗等方面都得到了很好的均衡。       因此,使用Java开发MCU应用,最重要的是突破了MCU没有MMU的瓶颈;其次,才是Java高效率的进度开发。

QianFan 发表于 2015-11-16 18:21:50

chuyans 发表于 2015-11-16 17:49
导读:为何采用JAVA开发MCU应用?
传统的MCU是按照单任务系 ...

作者是谁?有项目的网址没?

QianFan 发表于 2015-11-16 18:22:32

chuyans 发表于 2015-11-16 17:49
导读:为何采用JAVA开发MCU应用?
传统的MCU是按照单任务系 ...

圆景系统能解释一下吗?

dsjsjf 发表于 2015-11-16 18:49:06

我只看看不说话

2958155267 发表于 2015-11-16 20:54:27

好抽象的贪吃蛇:L

奋斗逼 发表于 2015-11-16 20:58:24

赞一个      :lol:lol:lol:lol

suoma 发表于 2015-11-16 21:16:46

谢谢分享学习一下
页: [1]
查看完整版本: STM32F429dicovery运行Java游戏