I2C总线,只有2根信号线,结构简单,易于实现,因此在嵌入式中应用非常广泛。在eCos中,I2C的设计框架与SPI类似,都是由IO层和Device Driver层组成。与linux I2C框架相比,eCos I2C框架设计简洁实用。

STM32提供了2个I2C接口,由于STM32芯片本身存在的缺陷,eCos STM3210E-EVAL模板并没有提供I2C的驱动组件包。但可在eCos官方bug网站上找到相应的补丁包。

遗憾的是,这个补丁包在我的板子上还是不能使用(下面会介绍原因)。所以,后面采用GPIO软件模拟I2C来实现。经初步测试,本人编写的eCos I2C driver初步成功。

阅读全文 »

 


本节说明如何把DM9000移植到eCos中。DM9000在redboot中工作方式为poll,但在eCos中则是使用中断工作方式,所以移植和调试的重点就是GPIO中断。

之前没有了解过STM32的GPIO中断,也不清楚在eCos中如何安装和使用GPIO中断,甚至在开始调试DM9000驱动的时候不知道要了解这块知识,所以整个调试过程都是在慢慢的摸索中掌握的。

所以本节与其说是移植DM9000驱动,还不如说是如何在eCos中安装和使用stm32的GPIO中断。需要注意的是,这里不会太详细介绍stm32 GPIO外部中断的知识,因为stm32的参考手册有详细的介绍。

阅读全文 »

 


上一节中,我们定义了stm32网卡组件,并在ecos.db中添加好了相关组件和软件包。这节说明如何在redboot中实现网络。

打开图形配置工具,选择好模板(package为redboot) ,然后导入之前的redboot配置文件(.ecm文件)。之所以要导入之前的redboot配置文件,是因为可以免去之前所做的一些配置,也就是在之前的配置基础上开展新的配置工作。另一个好处就是:避免忘记配置某个配置项,从而引入一些曾经出现的问题。

注意:经自己的试验发现,linux下的图形配置工具在导入配置文件时有可能会出现“闪退”现象,不必着急,多试几次就OK了。

提示:以后我的配置一般都会在之前的配置基础上进行配置,并保留之前的配置文件,每次修改配置都会形成一个版本,用一个文本文件对这些版本的配置文件进行说明。

阅读全文 »

 


花了两周时间(实际上就是一个周末加两三个晚上时间), 终于把eCos网卡驱动——DM9000驱动移植好了。在STM32的片外RAM中运行,ping时间稳定在2ms。

调试过程中,走了一些弯路,遇到了一些比较棘手的问题,如DM9000收发包问题、eCos stm32 GPIO中断、ping一会儿就ping不通了等等。

为了说明的方便,先把自己的调试过程梳理下,呈现给大家,避免大家在调试网卡驱动时走弯路。然后介绍redboot中移植DM9000驱动和eCos中移植DM9000的驱动。

阅读全文 »

 


最近在移植新版本代码,但发现在新版本软件中,居然找不到子网掩码这个参数。与旧版本软件不同的是,IP地址后面接了“/24”,类似192.168.1.1/24,但一直未去理会IP地址后面这个“/24”表示什么意思。

通过跟踪代码发现,这个“/24”大有含义,于是上网搜索了下,不查不知道,一查发现这就是我在苦苦寻找的子网掩码!这是一种现在流行的子网掩码表示方法,这种表示方法很好计算子网络的规模。

明白过来后,恍然大悟,记得以前也曾接搜索了解过“/24”的含义,看样子是忘记了。

这里转载了一篇优秀文章,详细介绍了IP地址的定义及其划分、子网掩码的表示及其作用,让大家可以更好的了解一些网络通信的基础知识。 阅读全文 »

 


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

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

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

 


整个LCD驱动主要由LCD初始化、LCD底层函数、framebuf实例、framebuf IO操作内联文件及其头文件自动生成文件等4部分组成。上节介绍了LCD驱动的前面3个部分。

本节介绍LCD驱动的framebuf IO操作内联文件及其头文件自动生成文件这个部分。本章最后会展示一个简单的应用测试程序。 阅读全文 »

 


就像在linux系统一样,eCos把lcd设备抽象为framebuf设备,并提供了framebuf抽象层,使得用户GUI程序不依赖于具体的frambuf设备,增加了用户GUI程序的独立性、可移植性,便于移植和使用第三方开发的GUI系统。

本章节主要介绍如何实现eCos中的LCD驱动,并展示了一个简单的测试用例。  阅读全文 »

 


reille blog曾经2次申请Google AdSense,均failed,第1次是内容不足,第2次是说:“受版权保护的材料:我们发现您的网站上包含受版权保护的材料”。后面就没再申请过Google AdSense。我只想借助一些广告丰富下我的博客网站而已。

百度联盟之前也申请过2次了,这是第3次申请百度联盟了,本没放在心上,令人意外的是,收到了百度联盟发来的邮件。当然,这次申请不是用reille blog申请的,而是用eCos技术网的域名申请的。

阅读全文 »

 


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

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

阅读全文 »

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

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