stm32移植ecos #4,移植redboot(ROM启动方式)上篇stm32移植ecos #5,移植redboot(ROM启动方式)下篇两篇文章中,详细介绍了redboot的移植过程,且烧写到内部flash后可正常启动。

stm32移植ecos #6,redboot的疑问和问题,redboot是必需的吗?文章中讨论了在我们的应用中redboot是否必需的问题。

接下来移植ecos,在此基础上运行一个最基本的helloworld程序。在移植过程中,我先后采用了两种方法并都成功运行。一种方法是在redboot下引导运行内存中的helloworld程序;另一种方法是把映像烧写到内部flash中直接运行它。这两种方式对于ecos而言,只是它的启动类型配置不同而已。

为叙述方便并使读者有的放矢,把ecos的移植步骤分为几个章节分别介绍,读者可以选择的阅读。

本节主要介绍如何配置ecos并编译生成静态链接库文件。

引子

不像linux编译后会产生内核镜像文件,ecos本身被编译为一个静态链接库文件,最终与用户应用程序链接在一起,生成一个二进制烧写文件。redboot是一个特例,它编译后直接生成二进制烧写文件。这点需要明确并区别开来。

移植和配置ecos

前面章节中,我们在STM32平台上成功地移植了redboot。ecos本身设计为一个高度可配置的嵌入式OS,因此,移植和配置ecos本身就相对容易多了,只需要在ecos的图形配置工具中,把Templates中的Packages从redboot改为default即可。如下图所示。

image

其它步骤包括编译等参考stm32移植ecos #4,移植redboot(ROM启动方式)上篇stm32移植ecos #5,移植redboot(ROM启动方式)下篇两篇文章的详细说明。

另外注意的就是启动类型和debug串品波特率的配置,其它的配置先暂时不用管。如下图所示。

image

当用redboot引导运行内存中的helloworld程序时,启动类型必须配置为RAM类型;当烧写到内部flash直接运行时,启动类型必须配置为ROM类型。这点必须十分注意。

配置并设置好编译路径后,就可编译出ecos静态库文件了。生成的静态链接库文件在生成路径下的ecos_install/lib目录,如下图所示。

image

其中,libtarget.a就是生成的ecos静态链接库文件,target.ld是链接说明文件,用于告诉编译器如何链接该库文件。

从上所述,把ecos生成静态链接库文件是相当容易的。相比其它OS,如UCOS、linux等,更加简洁明了。

» 文章出处: reille博客—http://velep.com , 如果没有特别声明,文章均为reille博客原创作品
» 郑重声明: 原创作品未经允许不得转载,如需转载请联系reille#qq.com(#换成@)
分享到:

  3 Responses to “stm32移植ecos #7,移植ecos并成功运行helloworld程序,配置编译生成静态链接库文件”

  1. 我觉得之所以要编译器库再和用户程序一起链接,是因为没有MMU,ecos本身也不支持mmu,没法动态加载程序吧。

    兄弟,我的博客换了,换成jingzhiee.com,有空你改下友情链接。

Leave a Reply to lishutong Cancel reply

(必须)

(我会替您保密的)(必须)

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.

   
© 2012 velep.com | reille blog | 管理| 粤ICP备15065318号-2| 谷歌地图| 百度地图| Suffusion theme|Sayontan Sinha

无觅相关文章插件,快速提升流量