新闻中心

EEPW首页 > 消费电子 > 设计应用 > 智能手机电话短信实验模块设计与实现

智能手机电话短信实验模块设计与实现

作者:时间:2010-09-30来源:网络收藏

1.2.1 Bootloader
Bootloader是系统上电后运行的第一段代码,主要工作是完成硬件的初始化和为加载操作系统准备好条件。它的是依赖于硬件的,不同体系结构开发板的Bootloader变化很大。为了更好地支持目标板的硬件设备,该系统选择在ADS1.2集成开发环境下开发自己的Bootloa-der。Bootloader的过程主要分为以下2个阶段:
(1)主要进行与CPU内核以及存储设备密切相关的初始化处理工作,这部分的代码通常用ARM汇编指令编写,包含在start.S文件中。通常包括一些步骤:
①硬件初始化工作。包括关闭看门狗;屏蔽所有中断;设置处理器时钟和工作频率;初始化外部寄存器;初始化堆栈指针。
②为阶段(2)准备RAM空间,并把阶段(2)的代码拷贝倒RAM,跳转倒阶段(2)的入口点。
(2)完成一般的启动流程以及提供目标板设备的驱动支持,这部分会被拷贝倒RAM中执行,这段代码通常由C语言来,具有较强的可读性和移植性。
通常包括一下步骤:
①通过set_gpios()函数完成通用I/0设置;
②通过mere_map_init(),mmu_init()函数完成内存映射和内存管理单元初始化;
③初始化MTD设备,使用mtd_dev_init()函数;
④拷贝NAND FLASH中的Kernel映像文件和根文件系统映像到RAM空间中;
⑤跳转到内核的第一条指令处。
至此,Bootloader的任务结束,接下来的任务由操作系统完成。
1.2.2 操作系统的剪裁、移植
操作系统负责对整个的外围设备进行管理和对各个软件任务进行调度。这对于而言是非常重要的。操作系统采用开源、免费的Linux,基于嵌入式Linux 2.6版本进行移植,主要移植过程包括建立开发环境、下载内核源码、修改配置文件、配置内核、编译内核、编译几个步骤,因为移植的过程大致相同,这里只做简单介绍:
(1)宿主机上的交叉编译工具采用arm-linux-gcc-3.4.1 ;
(2)修改commom-smdk.c文件,为NANDFLASH设置分区;
(3)修改配置文件fs/Kconfig,使内核支持启动时挂载devfs;
(4)配置内核;
(5)编译内核与,用Busy-box工具制作yaffs文件系统。
1.2.3 嵌入武GUI Qtopia的移植
嵌入式GUI用于开发应用程序图形界面,本文采用Trolltech公司的Qtopia作为图形界面库,采用版本是Qtopia-core-opensou rce-src-4.4.3。移植的主要工作有:
(1)修改qmouselinuxtp_qws.h文件,使Qtopia支持触摸屏;
(2)配置、编译、安装;
(3)拷贝相关的库文件到开发板,并设置环境变量。

2 应用程序
应用程序是最基本也是最核心的应用。应用程序的主要工作包括:电话短信应用程序的流程、通信和应用处理器的串口通信以及电话和短消息应用程序界面开发。
2.1 电话/短信应用程序流程
应用程序采用定时器函数来控制整个程序的流程。定时器每200 ms触发1次。
新电话、新短信的检测流程如图3所示,应用程序初始化需要对GSM/GPRS通信模块与应用处理器之间的接口进行初始化,此外还要定义1个200 ms触发的定时器。系统初始化完毕之后,定时器触发开始读串口数据进行判断。当串口无数据时,等待下一次定时器出发;当串口有数据时,将串口的数据进行判断;当数据中有新短信提示符时,按照PDU短信的解码格式对该短信进行解码,并调用UI界面提示用户新短信到达,询问用户是否阅读;当数据中有新电话提示符时,调用UI界面,询问用户是否接听。

本文引用地址:http://www.eepw.com.cn/article/166511.htm



评论


相关推荐

技术专区

关闭