新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于eCos在基于ARM7硬件平台上的应用

基于eCos在基于ARM7硬件平台上的应用

作者:时间:2010-07-27来源:网络收藏

  ④ 在组件仓库ecos.db中为以关键字target添加名为Flow55的新目标。在这个目标中还必须用关键字packages包括体系结构层包和AT91M55800变体抽象层包,同时为了实现调试还必须包括串口驱动包和Flash驱动包及其上层驱动包。除了这些被包含的软件包外,根据不同的选择configtool还会为目标包添加一些默认的包,如内核包、数学库包等。另外,还应加入一些对该平台的简单描述。

  3.2 内核的配置

  移植完成以后,一个最基本的目标平台就产生了。在configtool中可以看到Templates菜单的平台列表中新增了Flow55目标平台模版,以default方式打开这个模版。各个软件包的CDL脚本中都给出了默认的配置值,有些值需要根据具体的要求重新配置。本系统一些重要的配置情况如下:

  ① 由于系统线程数量较少(小于10),所以选择效率更高的位图调度器Bitmap scheduler,并将线程数numbers of priority levels限定为16,以提高任务切换的速度。当点击位图调度器的单选按钮时,configtool会检测到一个配置冲突。由于时间片轮转是默认使能的,而时间片轮转仅仅对应于多级队列调度器,所以出现配置冲突。Configtool会给出一个推荐的解决冲突的方法,即禁止时间片轮转,按照这个推荐的解决方法可以安全地解决这个冲突。这个地方可以充分体现出强大的可配置性。

  ② 由于配合RedBoot一起使用,所以内核配置为RAM启动方式。这样,系统上电后程序将由RedBoot复制到RAM中运行,以提高速度。

  ③ 系统的晶振频率为16 MHz,经PLL倍频后为32 MHz,所以需将Clock speed配置为32000000;RTC是系统的时钟节拍发生器,本系统的时钟节拍时间选为20 ms,所以也需要对RTC相关项进行配置。具体参数为Realtime clock numerator配置为2000000000,Realtime clock denominator配置为100,Realtime clock period配置为20000。

  其余的配置选项使用默认的配置值即可。完成配置工作后,对内核进行编译可以产生内核库文件和链接脚本以及相关头文件。这些生成的文件再同程序一起编译、链接,生成最终的可执行映像文件。

  图4 软件结构

  3.3 操作系统的应用软件的编写

  是一个单进程多线程的操作系统,多个线程在宏观上可以认为是并发运行的,而且各线程之间耦合低,便于软件的编写和维护。针对这一特点,本系统的软件结构如图4所示。

  本系统主要有两种程序运行方式,分别称为方式A和方式B。方式A中,中断产生后,相应的ISR(Interrupt Service Routine)程序运行,由于ISR中是禁止中断的,所以在ISR中只进行最简单的操作,ISR退出后内核调用相应的DSR(Deferred Service Routine)。DSR中中断是使能的,所以可以进行一些稍复杂的处理,如简单的数据运算、内核调用(发送信号量和邮箱等)。在得到相应的信号量或消息邮箱后,相应的线程进入就绪态被内核调度运行。本系统中对键盘的处理就是这种方式――按键产生中断、ISR执行,接着在DSR中进行相应的运算得到具体的键值后以消息邮箱的方式通知并唤醒键盘处理线程,键盘处理线程在完成任务后进入休眠直到再次有按键发生而被唤醒。方式B中,各线程只是周期性地被内核调度运行,如测量数据显示线程,在显示一次数据后调用延时函数进入休眠,直到延时完毕后再次进入就绪态被内核调用。

  根据测控系统的实际情况,具体的线程编写如下: 方式A为流量计算线程、温度测量线程、键盘处理线程、USB通信处理线程。方式B为测量数据显示和曲线绘制线程、流量控制线程、初始标定线程。

  4 结论

  经过实践,本系统运行稳定,实时性能良好。由于eCos的强大可配置性使得系统的软硬件可维护性强,在进行硬件改动或应用要求改动后可方便地进行升级。


上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭