本节主要介绍LCD触摸屏控制芯片TSC2046驱动的移植,同时展示一个简单的应用示例。

TSC2046为SPI接口触摸屏控制芯片,因此本质上讲,它是个SPI设备驱动。eCos中,编写SPI设备驱动是非常方便的,一般情况下只需要按照datasheet实现其SPI读写时序即可。

eCos源码中没有现成的触摸屏芯片驱动,但令人高兴的是,在一个开源的eCos工程中,有现成的TSC2046驱动,我们可以把它移植过来。 阅读全文 »

 


上节说道,在ADC应用中,我遇到了一个问题:只要我在eCos图形配置工具中打开了ADC的任何一个通道,则不能生成正常的bin格式映像文件(但可生成正常的srec格式映像文件),如果不打开ADC任何一个通道,则可以输出正常的bin格式文件。

这个问题很纠结,最后,哥用暴力解决了!

阅读全文 »

 


本节主要介绍eCos中stm32的ADC驱动及其应用编程。在eCos中,已经实现了stm32的ADC驱动。但在stm3210e_eval模板中,你会发现ADC驱动配置项是灰色的,也就是不能配置。

所以,我们的任务很简单:在eCos图形界面中根据板子硬件实现来配置stm32的ADC驱动(包括如何使能配置项)和编写一个应用实例(读取ADC的值,并在串口打印出来)。

阅读全文 »

 


GPIO驱动应该是所有嵌入式OS中最简单但也是最常用的底层硬件驱动。不像linux,应用层访问GPIO驱动需要使用设备文件接口(read或ioctl方法)。在eCos中,应用层访问GPIO是非常直接的,而且由于eCos驱动体系的特点——HAL共用,我们无需要再单独编写GPIO驱动。

本节通过实现控制LED灯(IO输出)和扫描按键(IO输入)功能来展示eCos中如何操作GPIO的。

阅读全文 »

 


从开始移植ecos到stm32开发板以来,“程序运行过程中时不时跑飞或死掉,或者一加载就死掉”的问题一直令我头痛和百思不得其“姐”。如下图:程序一加载就死掉了。

程序运行过程中跑飞的现象类似,也是出现这种类似信息:$T050f:00800068;0d:e80f0d68;#98$T050f……

今天在编写按键程序时,频繁出现,是时把它解决了。功夫不负有心人,终于定位问题为外扩的SRAM时序不正确导致的,重新配置下SRAM的FSMC时序就解决了。

阅读全文 »

 


在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的配置引起的,且往下看。

阅读全文 »

 


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优秀的架构设计,所以创建自己的模板也变得很容易。 阅读全文 »

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

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