77范文网 - 专业文章范例文档资料分享平台

ARM课程设计说明书(3)

来源:网络收集 时间:2019-03-10 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

山东建筑大学信电学院课程设计说明书

3.3.6串口电路

S3C2410的DART提供了二个同步串行IO日,图8是COMO的连接方式。串口数据的收发有查询方式、中断方式和DMA方式等,这些可以在UCONO寄存器中设置。UTXH0把要发送的数据写入此寄存器。URXH0读此寄存器获得串日接收的数据。串日一般可以用程序运行信息的输出和程序调试。

图 8 串口连接电路

3.4 软件设计

在本系统中,指纹图像识别部分的算法主要通过S3C2410芯片来完成。

当S3C2410的OM0,OM1引脚接低电平时S3C2410就从NADN Flash启动.在NAND Flash启动模式下上电后NAND Flash控制器自动将NAND Flash的最前面的4k区域拷贝到所谓的\单面.这一过程完全由硬件自动实现.\”实际上是S3C2410内部的一个SRA M,因为NADN Flash不支持程序片内运行,因此必须把NAND Flash内的指令拷贝到SRAM或SDRAM中才可以运行.在拷贝完前4k代码后,NAND Flash控制器自动将“steppingstone”映射到arm地址空间0x00000000开始的前4k区域.在映射过程完成后NAND Flash控制器将pc指针直接指向arm地址空间的0x00000000位置,准备开始执行“steppingstone”上的代码。而“steppingstone”上从NAND Flash拷贝过来的4k代码,是程序员写的boot loader的前4k代码。 boot loader之前写好,并己经被烧写到NAND Flash的。x00000000开始区域。

3.4.1Boot loader 工作原理

8

山东建筑大学信电学院课程设计说明书

Boot loader是引导操作系统的程序,也是开发阶段目标板和 PC机的通信工具。Boot loader一般都放在NAND Flash的起始位置,这样上电后Bootbader的第一个指令被自动执行。由于Boot Loader的实现依赖于CPU的体系结构,因此大多数Boot Loader都分为stage1和stage2两大部分.依赖于CPU体系结构的代码,比如设备初始化代码等,通常都放在stagel中,而目通常都用汇编语言来实现,以达到短小精悍的目的。而stage2则通常用C语言来实现,这样可以实现复杂的功能,而目代码会具有更好的可读性和可移植性。阶段1和阶段2的工作流程如图9。

图 9 程序流程图 3.4.2第一阶段

第一阶段的卞要工作是硬件设备初始化,加载Boot Loader的stage2,准备RAM空;拷贝Boot Loader的stage2到RAM空间中;设置好堆栈;跳转到stage2的C入日点

下面介绍ADS环境下开始制作简单Bootloader的方法.

9

山东建筑大学信电学院课程设计说明书

先建立工程命名为myBoot,定义出程序的基本结构如下:

AREA mvBoot, CODE, READONLY;声明一个代码段,名称为mvBooL ENTRY ;程序入口声明,程序的开始执行位置 __ ENTRY ;入口名称为_ENTRY ???? ;中间写主要代码 END ;程序结束

在myBoot工程的Settings中做一些设置.首先设置Target/ Target Settings/post Link 中选择“ARM fromELF\。Linker/Arm Linker/0utput/Link Type选Simple简单连接方式;RO Base设置为0x30008000代码段连接地址。实际上RO BA SE指定了程序的静态连接地址。程序真正被执行时所在的内存地址叫做运行地址。如果连接时用到绝对地址的话运行地址和链接地址保持一致时程序才能正常运行,这种代码叫做与位置有关代码。如果连接时没有涉及到绝对地址那么连接地址和运行地址不一样程序也可以正常运行,这种代码叫做位置无关的代码.但是Bootloader一开始时被加载在0x00位置开始运行,这会不会和RO Bas。设置地址冲突呢?实际上是会冲突的,解决冲突的办法就采用位置无关代码( PIC)。实际上Boodloader的绝大部分代4i最后想让它运行在0x30000800开始的SDRAM单,只有第一阶段代码运行在0x00开始的SRAM单,因此把阶段1用位置无关的汇编代码实现整个程序就正常运行了。RW Base是数据段的开始位置,如果不指定数据段,就紧接着代码段放置。在Options->Image entry point指定代码的入口__ENT RY。

程序的第一步要设置中断向量表。S3C2410有7种中断,中断入日地址在0x00开始处,每个中断占用4个字节,正好可以放一个跳转指令.程序如下:

b ResetH andler;复位中断,也是整个程序的入口,b指令是根据当前PC进行跳转,因此可以实现位置无关代码引.在ResetH andler中需要做的工作有:关闭看门狗、关闭所有中断、设置主频、初始化SDRAM、设置中断堆栈,最后搬移代码到SDRAM中。最后一步跳转到C程序的入口函数m ain中。

3. 4. 3第二阶段

这阶段代码用C语言编写,从m ain函数开始.这个阶段的卞要任务有串日初始化、MMU的初始化、USB初始化、以太网初始化等.Bootloader工作时显示屏可能还没有工作,或者日标板根本就没有显示屏或键盘等设备,因此人机交匀_一般通过串日来实现.因此必须初始化串口,通过串日打印运行信息或者接收用户输入.用串日连接到PC上,用专用或通用的串口软件来接收信息或输入信息。

10

山东建筑大学信电学院课程设计说明书

总结与致谢

本次设计设计的系统具有成本低廉,体积小,功耗低等特点,并且可靠性、可扩展性、同时节省硬件资源。但同时存在一些不足,本系统中的代码是顺序执行的,运行时间较长。

通过本次课程设计,使我对ARM开发有了一定的掌握和理解,巩固了我在《嵌入式系统及应用》课程中所学的基本理论知识和实验技能,使我对《嵌入式系统及应用》课程有了更深入的了解,熟悉了S3C210 的串口的使用,了解S3C2410的内部功能模块,及内核架构。进一步激发了我对所学专业学习的兴趣;提高了我的思考与实践能力。

在设计的过程和设计说明书的撰写过程中,老师们给予了我热心的帮助和大力的支持,给我提了诸多的宝贵意见,拓宽了我的思路。在此我向老师致以崇高的敬意和衷心的感谢!

在我的学习过程中,高焕兵、辛征等其它老师也给了我耐心的指导和帮助。我在此对各位老师表示诚挚的感谢!

11

山东建筑大学信电学院课程设计说明书

参考文献

[1] 杜春雷.ARM体系结构与编程[M].北京:清华大学出版社,2003.

[2] 周立功 .ARM嵌入式Linux系统构建与驱动开发范例[M].北京:北京航空航天大学出版社,2006. [3] 斯洛斯(Sloss,A.N.).ARM嵌入式系统开发:软件设计与优化[M].北京:北京航空航天大学出版社,2005.

[4] ARM&Linux嵌入式系统教程.北京:北京航空航天大学出版社,2004.

[5] 陈赜.ARM9嵌入式技术及Linux高级实践教程[M] .北京:北京航空航天大学出版社,2005. [6] 孙天泽,袁文菊.嵌入式设计及Linux驱动开发指南——基于ARM9处理器[M] .第2版.北京:电子工业出版社,2007.

[7] 田泽.ARM9嵌入式Linux开发实验与实践[M] .北京:北京航空航天大学出版社,2006. [8] 于明.ARM9嵌入式系统设计与开发教程[M] .北京:电子工业出版社,2006.

[9] 赵星寒 .ARM开发工具ADS原理与应用[M] .北京:北京航空航天大学出版社,2006. [10] 季昱, 林俊超, 宋飞编.ARM嵌入式应用系统开发典型实例[M] .北京:中国电力出版社,2005.

12

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库ARM课程设计说明书(3)在线全文阅读。

ARM课程设计说明书(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/514076.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: