新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于嵌入式S3C2410芯片的智能手机电话短信模块设计

基于嵌入式S3C2410芯片的智能手机电话短信模块设计

作者:时间:2010-10-25来源:网络收藏

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

  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界面,询问用户是否接听。

  

  当需要发送短信或拨号时,应用程序流程如图4所示。当用户调用发信界面编辑好短信,并输入完收信方,点击发送钮时,应用程序首先判断短信中心号码和接收信息号码是否正确,若不正确,提示用户错误;若号码和号码格式均正确,便对要发送的短信内容按照进行PDU短信格式进行编码,并向串口写AT命令以便将该短信发送出去。拨号和挂断电话的流程很简单,只需要向串口写入ATD+所拨号码以及ATH就可,当拨号错误时,提示用户拨号错误。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭