在eCos源码包的examples中有一个串口编程的应用例子。针对stm32平台,串口也可以这样应用吗?在eCos的stm32应用中,我们还需要移植或编写串口驱动吗?还是eCos中已有stm32的串口驱动了吗?

带着这些疑问和问题,我们一一来解开这些疑团!

阅读全文 »

 

第一篇:让Redboot和eCos在STM32中跑起来

 

第二篇:驱动开发、移植及其调测

 


前节,实现了redboot引导运行flash中的hello程序,但该程序是通过串口把srec格式的hello程序下载到内存,再烧写到flash中的。如换作bin格式程序,则会出现问题,不能成功引导运行。

为何呢?这就是本节所要介绍的内容:实现redboot引导运行bin格式的应用程序。

阅读全文 »

 


上一节中,我们创建了自己的模板,从本节开始,都将在此模板上进行移植开发。

FIS格式化带来的问题

使用此模板生成redboot(ROM启动方式,其它配置暂不修改),并烧写到STM32内部flash中。烧写reboot后,在我的板子上,redboot下执行reset命令时有问题:执行后不能复位,卡死了;此外,复位键好像也有时不启作用。在这之前,没有出现这种情况是因为没执行fis init来格式化flash。这实际上是redboot的配置引起的,且往下看。

阅读全文 »

 


移植eCos时,对其内存布局文件内容比较疑惑,特别不理解其中“SECTIONS”部分的含义。为理解eCos内存布局文件中的内容,特此研究了一翻,这里我以eCos中stm3210e评估板ROM启动方式对应的内存布局文件为例进行说明。

eCos的内存布局(the Memory Layout)文件,由ldi文件及其头文件组成,描述了目标板的存储器设计和定义了链接器脚本输出段(section)。一般情况 下,针对每种启动方式(startup type),eCos中的模板都提供了对应的内存布局文件。当建立自己的模板时,需要在CDL文件中为每种启动方式匹配对应的内存布局文件。 阅读全文 »

 


1—10章节,我称之为stm32移植ecos系列的第一篇章:让Redboot和eCos跑起来。从中可以看到,借助eCos本身带的ST STM3210E EVAL board模板和examples,几乎不需要做什么修改就让eCos在STM32板子上跑起来了。这一方面得意于我的板子与该模板对应的ST官方板子在存储器设计上大同小异,另一方面则是得意于eCos良好的架构设计,使系统移植变得轻而易举。

在展开ecos裁减、配置和驱动编写移植之前,我来说下如何创建和使用自己的模板(Template)。这里可能会有人问了:官方都提供了模板,还需要创建自己板子的模板吗?这不是多此一举吗?

是的,表面上看有点多余,但实际上更符合系统移植方法与步骤。

  • ecos自带的模板一般是基于芯片厂家的评估板而创建的。而我们使用的目标板或多或少与这些板有差异,甚至有比较大的差异,有时,目标板的CPU在ecos中没有相应的模板,这时候只能借鉴相近的模板展开移植,以降低难度和减少工作量;这就使我们有必要根据目标板创建自己的模板;
  • 使用自己的模板可尽量少的去修改ecos本身的代码,这样便于与ecos cvs服务器代码保持同步,而不至于引起代码冲突;
  • 创建自己的模板,更深入了解ecos的模板、package、component、cdl脚本、HAL的概念;

由于ecos优秀的架构设计,所以创建自己的模板也变得很容易。 阅读全文 »

 


上一节中,详细介绍了如何使用redboot引导内存中的helloworld程序。也许这时会有人问:如何使用redboot引导flash(如spi接口flash或者外扩NAND FLASH等)中的helloworld程序呢?这个工作我暂还没做,因为还涉及到redboot中flash管理、分区等相关问题。

本节主要介绍另一种方法来启动执行helloworld程序,即把该目标执行程序烧写到stm32内部flash中直接运行(上电或复位后直接运行helloworld程序),无需使用reboot来引导运行。 阅读全文 »

 


上节,我们介绍了如何编译链接生成helloworld程序。在些基础上,接下来我们就要把这个helloworld程序在stm32板子上运行起来。我使用了两种方法来启动运行这个程序。一种是下章节要介绍的:烧写到内部flash中直接启动运行;另一种则是本节所介绍的:使用redboot引导运行内存中的helloworld程序。

要想使用redboot引导运行内存中的helloworld程序,首先移植好redboot并能成功运行。这已经在stm32移植ecos #4,移植redboot(ROM启动方式)上篇stm32移植ecos #5,移植redboot(ROM启动方式)下篇两篇文章中介绍了。

当然你也可以跳过本章节,直接使用下章节介绍的方法。

下面开始介绍如何实现使用redboot引导运行。 阅读全文 »

 


上一节中,我们介绍了如何配置ecos并编译生成静态链接库文件。在此基础上,本节主要介绍如何编译链接生成helloworld程序。

在ecos源码包中,有一个名为examples文件夹,这个文件夹下面展示了几个ecos的应用例子,其中就包括helloworld程序示例。这几个程序示例很好的展示了用户如何开发自己的应用程序。因此,刚接触ecos时,研究这几个实例是大有裨益的,也是学习ecos的一手材料。

ecos的应用示例

ecos的应用示例

阅读全文 »

 


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并编译生成静态链接库文件。

阅读全文 »

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

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