本帖最后由 reille 于 2013-3-4 22:21 编辑
前段时间,成功的把redboot移植到了stm32板子上,并留下了一个疑问:既然redboot是ecos的一个单线程应用,那么不要redboot而直接运行ecos的应用程序是否可行呢?对这个问题,结合我对ecos的了解,理论上是可行的,因为它们都是采用相同的HAL(硬件抽象层)。
带着这个疑问,我想采用两种方式把最简单的helloworld应用程序在stm32板子上跑起来:先使用前面移植成功的redoot引导启动内存中的ecos应用程序(即helloworld应用程序),因为我现在所开发的项目中就可使用这种方式启动运行应用程序,故这种方式不存在任何问题,因为我现在所开发的项目中就可使用这种方式启动运行应用程序;在此基础上,使用另一种方式来启动helloworld应用程序,即把应用程序直接烧写到STM32内部flash中直接运行。
经过一段时间的努力和折腾,上述这两种方式都验证OK,同时证明了,ecos应用程序可以不需要redboot引导启动,而可直接从stm32内部flash启动运行。我把这个移植过程记录成了**,放在了我的博客中。由于内容较多,就不贴在这里了,如果有兴趣的朋友,可进我的博客中了解,下面是链接:
stm32移植ecos #7,移植ecos并成功运行helloworld程序,配置编译生成静态链接库文件
stm32移植ecos #8,移植ecos并成功运行helloworld程序,编译链接生成helloworld程序
stm32移植ecos #9,移植ecos并成功运行helloworld程序,使用redboot引导运行内存中的helloworld程序
stm32移植ecos #10,移植ecos并成功运行helloworld程序,烧写到内部flash直接运行helloworld程序
为了简单起见,ecos应用程序为最简单的helloworld程序。
接下来,我想实现:使用redboot引导启动flash中的ecos应用程序。不过,目前遇到了一些问题。等弄好了,再分享出来。另外,如果有对ecos感兴趣的,可以加我签名中的Q群。
|