打印
[应用相关]

stm32移植ecos #1,为什么要把ecos移植到stm32平台上

[复制链接]
3235|37
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
stm32移植ecos #1,为什么要把ecos移植到stm32平台上
为什么选择stm32?

选择stm32作为eCos推广突破口,有以下几个因素:

在对eCos有一点了解或有所耳闻的大多数工程师眼中,eCos可能被定位于像ucosII一样级别的嵌入式OS,换句话说,eCos的应用场合应该是类似ARM7、Cortex-M处理器之类的CPU中;
当前,STM32相比其它家的Cortex-M处理器更加流行,被广泛应用到许多低端嵌入式产品中,而且最重要的是,学者众多,开发板资源非常丰富;
目前市场上,stm32开发板一大堆,很容易利用当前资源展开eCos的学习;
像ARM7和Cortex-M处理器之类的CPU中,使用的OS大多数是ucosII,而这个OS是收费的,不能商用,相反,eCos是开源免费使用的,如果在这众多嵌入式应用中,可使用eCos在多数产品应用中替换掉ucosii,那么推广效果将更加理想;
对于ARM9以上的高端处理器,工程师更宁愿使用linux、VxWorks、Windows CE、uclinux等OS,而不愿意使用免费便资源匮乏的eCos;

沙发
Diyer2015|  楼主 | 2018-9-21 12:28 | 只看该作者
stm32开发板厂家

在淘宝上销售stm32开发板的主要集中在这几家:原子、野火、奋斗、红牛(还有火牛、金牛,让你傻傻分不清楚)、神舟、安富莱等。这些厂家大多数属于小公司、团体、工作室或者个人性质。相比三星2410/2440开发板而言,stm32开发板所要求的技术、生产、成本、服务支持、人员配置等方面门槛和要求都较低,从而使STM32开发板呈现百开齐放、竞争激烈的态势。

开发板价格

从淘宝上看各家的stm32F103XX开发板,视不同的硬件配置,价格在200~400RMB之间。一般带LCD的开发板都在300RMB左右。


配套资料

虽然销售厂家都是一些小厂家甚至个人、团体性质的,但相应的配套资料、例程,还是很丰富的。比如,原子的开发板,宣传有800多页的文档资料,丰富的例程等。但大家都知道的,这些资料都是你抄我的,我抄你的,然后自己再包装下。

使用特权

评论回复
板凳
Diyer2015|  楼主 | 2018-9-21 12:29 | 只看该作者
技术支持

买开发板,就别想有太多技术支持,毕竟都是小厂家,不管成本上,还是人员配置上,都可想而知。

选购要点、陷阱、技巧

1. 选购开发板时,不要一味追求高(丰富的)硬件配置。硬件配置越多,意味你将要花更多的钱。这是因为,可能有些硬件配置你可能永远都没能碰它。因此,选购时,一定要清楚自己的需求,像我购买的时候,我就列出一个表,哪些是必配的,哪些是可选,做得心中有数,如下表所示。有的厂家,为了追求利润或诱惑你买更多的硬件模块,往往把一些不经常用的硬件配置放在主板上,而把一些常用的硬件作为模块进行销售。比如原子的旗舰版stm32开发板就是如此。这一点一定要看清楚。

2. 别刻意追求低价。正所谓便宜没好货,无利不起早。越便宜的板子,在用料上可能就会选更低成本的。说到价格,购买的时候,实际上是可以讲价的,能砍多少就看你本事啦。

3. 很多人特别是初学者很容易入这个误区:认为提供的资料越多越详细越好,但真的如此吗?我觉得未必如此。几个方面可考虑下:

资料越多,让人越觉得无所适从,不知如何下手;
我自己有这样的体会,买开发板来学习技术,刚开始很有激情,但过了一段时间,激情就消退了,然后就把板子扔到一边了。而实际上,你看的资料可能就是其中的几分之一;
宣传资料如何多如何详细的,只不过是其的一个宣传卖点而已。

使用特权

评论回复
地板
Diyer2015|  楼主 | 2018-9-21 12:29 | 只看该作者
买开发板时,不必刻意追求丰富的资料。像原子的开发板,宣传有800多页的文档资料,有多少人能看得完,即使看完了,得花多长时间,且还没说这文档资料的质量和价值如何。我们买开发板,回到实质,是了解一门开发技术,掌握一套学习方法,学习人家的设计思想等,而不是照本宣科得做实验。

使用特权

评论回复
5
Diyer2015|  楼主 | 2018-9-21 12:29 | 只看该作者
哪个厂家的开发板好?其实用心做开发板的厂家都还可以,像野火、原子,都是用心在做开发板,他们都有自己的特色。而这些用心做开发板的厂家,价格上往往要贵不少。但有点就像上面说的,别奢求有很多的技术支持。这里,说下神舟的开发板,感觉它跟红牛的很像,也不知道他们谁抄谁。

以上几点,其实最重的就是:一定要清楚自己的需求,从而量体裁衣,做到有的放矢,提高学习效率,节省更多的时间。

选购开发板

选购开发板时,不同的人有不同的要求,出发点也不一样。这里就我自己的需求说说:

使用特权

评论回复
6
Diyer2015|  楼主 | 2018-9-21 12:30 | 只看该作者
硬件配置        必配:
        CPU必须是stm32F103ze;
        外挂至少512KB的SRAM;
        外挂flash(最好是nor flash或SPI flash或两者都有);
        10或100M网络;
        带触摸的彩色LCD;
        串口、RS485、CAN接口;
        硬件设计上与ST官方的3210E-EVAL开发板越接近越好,特别是存储器设计这块,这样便于移植ecos到开发板中;
其它都可为选配,如音频、USB等;

使用特权

评论回复
7
Diyer2015|  楼主 | 2018-9-21 12:30 | 只看该作者
价格        价格要适中。虽然本人也已工作多年,这点钱不算什么,但能以较低的价格买到自己需要的东西,我想也不算为过吧;
配套资料        没要求

根据我的需求,对比了几家,发现安富莱的stm32开发板比较适合我,它的存储器设计上很接近ST官方的3210E-EVAL评估板。不过,话说回来,我不太喜欢安富莱的PCB布局设计,丑死了;板带的示波器简直就是个**肋。此外,购买的时候,跟安富莱砍了下价3*8外加一个USB转串口。看下我的板,如下图所示。

使用特权

评论回复
8
Diyer2015|  楼主 | 2018-9-21 12:30 | 只看该作者

使用特权

评论回复
9
Diyer2015|  楼主 | 2018-9-21 12:31 | 只看该作者
我最后选购的是安富莱stm32开发板(V2标准版本),主要的硬件配置信息如下图所示。

使用特权

评论回复
10
Diyer2015|  楼主 | 2018-9-21 12:31 | 只看该作者
存储器的设计如下图所示:


使用特权

评论回复
11
Diyer2015|  楼主 | 2018-9-21 12:31 | 只看该作者
从上图中可以看到,安富莱stm32开发板(V2标准版本)的存储器设计与官方STM3210E-EVAL开发板是一样的。它们的差异如下图所示。

使用特权

评论回复
12
Diyer2015|  楼主 | 2018-9-21 12:32 | 只看该作者


要在stm32上运行ecos系统,首先要让redboot启动起来,然后再去引导ecos的运行。本节主要介绍在stm32开发板上移植redboot并让其从CPU内部flash启动。

使用特权

评论回复
13
Diyer2015|  楼主 | 2018-9-21 12:35 | 只看该作者
redboot的作用

redboot是ecos的一部分,具体的说,它是ecos系统的一个最小实现,主要用作bootloader,用于引导OS的启动。可以引导的OS不仅仅是ecos本身,还包括像linux等其它操作系统。

说起bootloader,很多人可能马上就联想到了u-boot,是的,你现在可以把redboot视为像u-boot一样的东西。

使用特权

评论回复
14
Diyer2015|  楼主 | 2018-9-21 12:35 | 只看该作者
为什么要从CPU内部ROM启动

之所以移植的redboot从CPU内部flash启动而不是从内部RAM或者外部SRAM启动,主要是移植步骤最简单,几乎不需要做任何的修改就可以运行起来。

使用特权

评论回复
15
Diyer2015|  楼主 | 2018-9-21 12:38 | 只看该作者
移植redboot到stm32开发板

1.,如果没有搭建好ecos开发环境的,请阅读这篇**:ubuntu9.10中安装eCos并建立eCos开发环境

2,打开ecos图形配置工具configtool,如下图所示。

下图中,左边窗口为ecos的配置项窗口,右边窗口从上到下分别为:冲突提示窗口、配置项属性窗口、配置项说明窗口。

使用特权

评论回复
16
Diyer2015|  楼主 | 2018-9-21 12:40 | 只看该作者
3,设定ecos代码仓库(Repository)位置

获取ecos最新代码,请查看这篇**:使用TortoiseCVS获取最新的eCos源代码

在ecos图形配置工具configtool界面中,点击Build->Repository,如下图所示。

使用特权

评论回复
17
Diyer2015|  楼主 | 2018-9-21 12:40 | 只看该作者
配置好ecos代码仓库位置后,configtool会重新载入内容。

4,选择模板(Template)和目标(Target)及软件包(Package)

在ecos图形配置工具configtool界面中,点击Build->Templates,在Templates界面中,先选择目标板,即在Hardware中选择“ST STM3210E EVAL board”,然后选择模板即在Package中选择“redboot”,最后点击OK。如下左图所示。

点击OK后,可弹出一个冲突提示按钮,如下右图所示。不过不要紧,点击Continue按钮即可,configtool会帮我们自动解决这些冲突的。

使用特权

评论回复
18
Diyer2015|  楼主 | 2018-9-21 12:40 | 只看该作者
5. 导入redboot-ROM的最小配置

在ecos图形配置工具configtool界面中,点击File->Impor,如下左图所示,然后会出现如下右图所示的界面。

使用特权

评论回复
19
Diyer2015|  楼主 | 2018-9-21 12:40 | 只看该作者
在上面右图界面中,去设定的ecos软件仓库的如下路径找到redboot-ROM的最小配置文件:

你的ecos软件仓库路径/ecos/packages/hal/cortexm/stm32/stm3210e_eval/current/misc

在该路径下有一个名为:redboot_ROM.ecm的文件,这个就是redboot-ROM的最小配置文件。ecos是一个可配置系统,配置后会产生一个后缀为.ecc的文件。而.ecm文件则是ecos的最小配置文件,与.ecc文件比较起来,.ecm文件去掉了.ecc文件中的注释,所以文件大小非常小。

导入后,会提示有冲突,如上述方法一样,点击continue让ecos的配置工具自动解决冲突。然后点击OK按钮,完成redboot_ROM最小配置文件的导入。

使用特权

评论回复
20
Diyer2015|  楼主 | 2018-9-21 12:41 | 只看该作者
6.,设置串口波特率并保存配置

经上述步骤后,接下来我们确定下redboot的启动方式并设置debug串口的波特率。

在ecos图形配置工具configtool界面的配置项窗口(左边的主窗口)中,依次找到:

eCos HAL—>Cortex-M Architecture—>Cortex-M3/-M4 STM32 Variant—>ST STM3210E EVAL Development Board配置项,如下图所示。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

63

主题

1615

帖子

13

粉丝