从开始移植ecos到stm32开发板以来,“程序运行过程中时不时跑飞或死掉,或者一加载就死掉”的问题一直令我头痛和百思不得其“姐”。如下图:程序一加载就死掉了。
程序运行过程中跑飞的现象类似,也是出现这种类似信息:$T050f:00800068;0d:e80f0d68;#98$T050f……
今天在编写按键程序时,频繁出现,是时把它解决了。功夫不负有心人,终于定位问题为外扩的SRAM时序不正确导致的,重新配置下SRAM的FSMC时序就解决了。
从开始移植ecos到stm32开发板以来,“程序运行过程中时不时跑飞或死掉,或者一加载就死掉”的问题一直令我头痛和百思不得其“姐”。如下图:程序一加载就死掉了。
程序运行过程中跑飞的现象类似,也是出现这种类似信息:$T050f:00800068;0d:e80f0d68;#98$T050f……
今天在编写按键程序时,频繁出现,是时把它解决了。功夫不负有心人,终于定位问题为外扩的SRAM时序不正确导致的,重新配置下SRAM的FSMC时序就解决了。
在eCos源码包的examples中有一个串口编程的应用例子。针对stm32平台,串口也可以这样应用吗?在eCos的stm32应用中,我们还需要移植或编写串口驱动吗?还是eCos中已有stm32的串口驱动了吗?
带着这些疑问和问题,我们一一来解开这些疑团!
在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并编译生成静态链接库文件。
年前抢了个小米2后,就一直在想法子怎么样可在家里使用WLAN联网,最大方便手机的使用。像小米2这种android智能手机最是吃流量的家伙,一下子几M的流量就不见了。这不,春节才几天,70M的流量就没了。
之前有个TP-Link的无线路由器,由于网线是接房东的,所以用不了,故一直闲置着。 而且要命的是,久未使用,都不知道放到哪里去了。
26号抢到的小米2,经过几天焦急的等待,31号下午就拿到手了。初用了几天,整体上令自己满意。所以在这里简单记录下。
1. 整体外观比想象的要好,精典的黑白配;装上电池后,手感也不赖。电源按键在右边,方便使用。要数落的是它的USB接口。由于有防倒钩,所以拔USB线时有点不方便。我第一次拔下USB线时,生怕把手机给弄坏了。
2. 在小米论坛上,看到说有几批小米2有屏幕发黄、屏幕底部发黑、SIM卡检测不到等问题。仔细看了下,我的还好,没有此现象。
3. 2GRAM就是好。用NOKIA的时候,总是被“内存不足”问题困扰。每次只能运行一个QQ,然后其它的软件如浏览器就不能再运行了。现在有2GRAM了,余量很多。所以至少不会很快遇到“内存不足”的问题了。
4. 吃流量。短短几天,GPRS流量就用了20M了,平均每天3~5M,而且并不全天打开GPRS。照这么用下去,一个月需要150M左右流量。很怀念移动送给我的每月2G流量、每月200小时的WLAN,可惜只送了一年而且没正经用上。
在stm32移植ecos #4,移植redboot(ROM启动方式)上篇和stm32移植ecos #5,移植redboot(ROM启动方式)下篇两篇中,详细介绍了redboot的移植过程,且烧写到内部flash后可正常启动。从整个移植过程来看,移植是很简单的。借助ecos模板,几乎不需要太多修改就可以让redboot运行起来。
简单地让redboot运行起来是不够的,我们知道,作为bootloader,其最基本的功能就是用来引导OS,这里就是用来引导ecos系统。那么怎样让redboot来引导我们的ecos系统呢?还有一个我在思考的问题:redboot只是ecos的一个单线程最小系统,而ecos最终是与我们的应用程序链接在一起的,那么,redboot是必需的吗?我们是否不需要redboot就可以一上电直接运行我们的最终目标程序(ecos+应用程序)呢?
怎样让redboot来引导我们的ecos系统
根据我现有ecos的项目经验和嵌入式linux的项目经验,在我看来,redboot引导ecos需要以下几步:
2013.1.26号,星期六,睡到11点40多。让自己意想不到的是,在匆忙起床打开电脑后,比较幸运地成功抢购到了小米2手机一台。这也是我第一次在网上抢购一样东西,听起来有点让人哭笑不得,因为我不曾想过会做这样一件事情,即使春节的火车票,至少到目前为止,我也不用去抢,囧,囧。
在支付的时候,还是有所犹豫和顾忌的。
看网上,小米2的负面消息还是挺多的,比如:莫名重起、死机、屏幕有坏点等。此外,身边同事有用小米1的,也劝我最好不要买。同事的小米1屏幕坏过一次,而且最要命的是死机后要让它启动起来非常麻烦。不过,身边也有一个用小米2联通版的,却没有重起、死机等情况。
另外,还有一个让我犹豫的是,小米的发货速度,要7个工作日左右。先不说这么多人把这么多钱给雷不死存在银行里吃多少利息,7个工作日后,都接近我的放假时间了。难道要我等到明年回来才能使用,这未免让人有点气愤。
在我看来,像android这样的智能手机,重起是不可避免的,特别是当你有了root权限(在linux上是变成超级用户了,这样就可以为所欲为了)后,任何一个应用软件都有可能导致莫名重起。所以,我认为,只要硬件上没有大的缺陷,还是可以接受的。至于发货速度,只能祈望雷不死真的不死。所以最终我还是买单了。
接上篇:stm32移植ecos #4,移植redboot(ROM启动方式)上篇
6.,设置串口波特率并保存配置
经上述步骤后,接下来我们确定下redboot的启动方式并设置debug串口的波特率。
在ecos图形配置工具configtool界面的配置项窗口(左边的主窗口)中,依次找到:
eCos HAL—>Cortex-M Architecture—>Cortex-M3/-M4 STM32 Variant—>ST STM3210E EVAL Development Board配置项,如下图所示。
© 2012 velep.com | reille blog | 管理| 粤ICP备15065318号-2| 谷歌地图| 百度地图| Suffusion theme|Sayontan Sinha |