ARM9的GPS定位程序在Linux26下的移植设计说明_第1页
ARM9的GPS定位程序在Linux26下的移植设计说明_第2页
ARM9的GPS定位程序在Linux26下的移植设计说明_第3页
ARM9的GPS定位程序在Linux26下的移植设计说明_第4页
ARM9的GPS定位程序在Linux26下的移植设计说明_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 . 目录摘摘要要 I IABSTRACTABSTRACTIIII引言引言 1 11 1绪论绪论 2 21.1儿童定位系统背景与应用现状 21.2 所需做的工作 22 2硬件平台系统简介硬件平台系统简介 4 42.1 博创平台简介 42.2嵌入式 LINUX简介 42.3GPS 模块简介 52.3.1GPS 实现原理 52.3.2GPS 接口 73 3开发工具软件与系统软件部分开发工具软件与系统软件部分 8 83.1 儿童定位系统程序框图 83.2 开发工具软件的安装 83.3 开发环境配置 83.4 超级终端 93.5FLASHFXP103.6程序分析 104 4移植过程移植过程 13134

2、.1LINUX2.6 核驱动与 2.4 的区别 134.2 平台升级操作步骤 154.3.1 烧写 u-boot164.3.2 烧写核、文件系统与应用程序 184.3.3 烧写文件系统 194.3.4 烧写应用程序 195 5实验验证实验验证 21216 6结论结论 2424致致 2525参考文献参考文献 2626 . 摘要摘要随着生活节奏的日益加快,人们把越来越多的精力投入到了工作之中,对于子女尤其是儿童的照顾就显得力不从心了。现代通信技术的发展,已经可以使这样的设计实现利用GPS定位。GPS具有高效的定位功能,定位频率高,误差小。嵌入式设备功能强大、可靠性高,开源的Linux操作系统又为其

3、添加了新的生命力。该GPS程序之前在博创2.4开发平台上运行正常,但是考虑到2.6版本比2.4版本有更多的功能函数等优势,在参考了大量资料后,将博创2.4平台升级为2.6版本。但是由于版本不同的问题,程序在2.6平台上运行不正常,于是翻看了大量资料,对其进行了移植工作。关键词: 儿童定位;GPS;Linux;移植ABSTRACTABSTRACT . I / 29As the pace of life quickening, people put more energy into work, especially childrens care for children is not. The d

4、evelopment of modern communication technology, have been able to make such a design - using GPS. GPS positioning function is high, the location of high frequency and small error. Embedded devices has strong function, high reliability, the open-source Linux operating system and to add a new vitality.

5、The GPS program before running on 2.4 development platform, but given the 2.6 version has more features than version 2.4 function advantages, in reference to a large amount of information, will have a 2.4 platform upgrade to version 2.6. But version due to the different problems, programs run on 2.6

6、 platform is not normal, then flicking through a large amount of data, on the porting effort.Key words: childrens positioning; GPS; Linux; transplant . II / 29引言引言随着生活节奏的加快,人们把越来越多的精力投入到了工作之中,对于子女尤其是儿童的照顾就显得力不从心了。很多儿童的意外就是在无人看管的情况下发生的。因此,一种能够监控儿童活动情况并能够实时和家长互通的系统的开发就显得很有必要了。当父母离开时,该系统可将儿童的位置信息传送到父母携

7、带的接收设备中,使家长对儿童的具体情况能与时掌握,从而达到避免意外事件的发生的目的。目前,国外厂商已经研发出该类产品,市场前景广阔。因此,儿童定位系统设计所研究的问题是具有实际的意义的。本次毕业设计ARM9 的 GPS 定位程序在 Linux2.6 下的移植,对博创开发平台进行了升级,并针对版本不同对端口与核进行了分析,对该程序进行了移植。本论文共五章,第一章为绪论,主要概述儿童定位的现状与发展前景;第二章开发平台简介,主要介绍博创开发平台;第三章为开发工具软件的安装与配置,介绍其软件环境;第四章为开发平台升级,说明了 2.4 版本与 2.6 版本在驱动上的区别;第五章为 GPS,主要说明 G

8、PS 的实现原理和接口。 . 1 1绪论绪论1.11.1儿童定位系统背景与应用现状儿童定位系统背景与应用现状随着生活节奏的日益加快,人们把越来越多的精力投入到了工作之中,对于子女尤其是儿童的照顾就显得力不从心了。儿童的很多意外都是在无人看管的情况下发生的。因此,一种能够实时监护儿童的日常活动,并可以与时和家长通信的系统的设计就显得很有必要了。当父母离开时,该系统可将儿童的位置、活动围、声音等信息传送到父母携带的接收设备中,使家长对儿童的具体情况能与时掌握,从而达到避免意外事件的发生的目的。目前,国外厂商已经研发出该类产品,市场前景广阔。因此,儿童定位系统设计所研究的问题是具有实际的意义的。现代

9、通信技术的发展,已经可以使这样的设计实现利用 GPS 定位、GSM 通信、QT、嵌入式 Linux 平台进行系统的设计。GPS(Global Positioning System全球定位系统)是在海、陆、空 进行全方位实时三维导航与定位的新一代卫星导航与定位系统。GPS 具有高效的定位功能,定位频率高,误差小等优点。GPS 由三个独立的部分组成1:空间部分:21 颗工作卫星,3 颗备用卫星。地面支撑系统:1 个主控站,3 个注入站,5 个监测站。用户设备部分:接收 GPS 卫星发射信号,以获得必要的导航和定位信息,经数据处理,完成导航和定位工作。GPS 接收机硬件一般由主机、天线和电源组成。L

10、inux 是一种自由和开放源码的类 Unix 操作系统,存在着许多不同的 Linux 版本,但它们都使用了 Linux 核。Linux 可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。Linux是一个领先的操作系统,世界上运算最快的 10 台超级计算机运行的都是 Linux 操作系统。严格来讲,Linux 这个词本身只表示 Linux 核,但实际上人们已经习惯了用Linux 来形容整个基于 Linux 核,并且使用 GNU 工程各种工具和数据库的操作系统1。1.21.2所需做的工作所需做的工作基于 Linux 操作系统的应用开发环境是由

11、开发板和 pc 机所构成。目标硬件开发板用于运行操作系统的核编译、应用程序的开发和调试则需要通过 pc 机来完成。实现交叉编译。因为 Linux 版本问题以与开发平台的不同,需要自己摸索和修改。 . 1 / 29首先需要查找有关于系统升级的资料1,了解升级方法和步骤,搭建平台,为程序移植做准备。所谓 Linux 移植就是把 Linux 操作系统针对具体的目标平台做必要改写之后,安装到该目标平台使其正确的运行起来。这个概念目前在嵌入式开发领域讲的比较多。其基本容是:获取某一版本的 Linux 核源码,根据我们的具体目标平台对这源码进行必要的改写(主要是修改体系结构相关部分) ,然后添加一些外设的

12、驱动,打造一款适合于我们目标平台(可以是嵌入式便携设备也可以是其它体系结构的 PC 机)的新操作系统,对该系统进行针对我们目标平台的交叉编译,生成一个核映象文件,最后通过一些手段把该映象文件烧写(安装)到我们目标平台中。而通常对 Linux 源码的改写工作难度较大,它要求你不仅对 Linux 核结构要非常熟悉,还要求你对目标平台的硬件结构要非常熟悉。同时还要求你对相关版本的汇编语言较熟悉,因为与体系结构相关的部分源码往往是用汇编写的。所以这部分工作一般由目标平台提供商来完成。比如说针对目前嵌入式系统中最流行的 ARM 平台,它的这部分工作就是由英国 ARM 公司的工程师完成的,我们所要做的就是

13、从其上下载相关版本 Linux 核的补丁(Patch) 。把它打到我们的 Linux 核上,再进行交叉编译就行。升级成功后根据移植步骤,首先了解 GPS 接口原理和各个管教的函数定义与其参数设置,包括串口连接的方式。其次,还要更深入的了解其核设置,对核驱动有个详细的了解,学习两个版本的区别。最后将程序成功调试出来。 . 2 / 292 2硬件平台系统简硬件平台系统简介介2.12.1博创平台简介博创平台简介本次毕设所使用的硬件系统为博创 UP-CUP S2410/P270 嵌入式开发平台如图 2-1,这是一款经典的嵌入式开发平台,拥有许多有用的功能模块可供我们进行系统开发。由博创兴业科技开发的

14、UP-NetARM3000、UP-NetARM2410 系列以与 UP-TECHPXA270 系列实验仪器。UP-NetARM3000 的 CPU 为 ARM7TDMI 核的三星S3C44B0X01 芯片,由于没有 MMU(存管理单元)只能运行 uClinux,UP-NetARM2410 系列的 CPU 为 ARM920T 核的三星 S3c2410 芯片。UP-TECHPXA270 系列实验仪器为Intel Xscale 系列的 PXA270 CPU。其中 USB 主口可选择的模块有蓝牙模块和摄像头模块;168pin 扩展插槽的可选模块有 GPS+GPRS 模块,FPGA 模块和 CAN 节点

15、模块。本课题所使用的模块就是GPS+GPRS 模块。图 2-1 博创平台2.22.2嵌入式嵌入式 LinuxLinux 简介简介Linux 正在嵌入式开发领域稳步发展。Linux 使用 GPL,所有对特定开发板、PDA、掌上机、可携带设备等使用嵌入式 Linux 感兴趣的人都可以从因特网上免费下载其核和应用程序,并开 . 3 / 29始移植和开发。许多 Linux 改良品种迎合了嵌入式市场,它们包括 RTLinux(实时 Linux) 、uclinu(用于非 MMU 设备的 Linux) 、Montavista Linux(用于 ARM、MIPS、PPC 的 Linux 分发版) 、ARM-L

16、inux(ARM 上的 Linux)和其它 Linux 系统。嵌入式 Linux 的发展比较迅速。NEC、索尼已经在销售个人视频录像机等基于 Linux 的消费类电子产品,摩托罗拉则计划在其未来的大多数手机上使用 Linux,IBM 也制定了在手持机上运行 Linux 的计划。数年来, “Linux 标准库”组织一直在从事对在服务器上运行的 Linux 进行标准化的工作,现在,嵌入式计算领域也开始了这一工作。嵌入式 Linux 标准吸引了“Linux 标准库”以与Unix 组织中有益的元素。2.32.3GPSGPS 模块简介模块简介GPS(Global Positioning System全球

17、定位系统)GPS 的主要优点包括:(1)全球,全天候工作:能为用户提供连续,实时的三维位置,三维速度和精密时间。不受天气的影响。(2)定位精度高:单机定位精度优于 10 米,采用差分定位,精度可达厘米级和毫米级。(3)功能多,应用广:目前已广泛的应用于测量、工程测量、航空摄影测量、运载工具导航和管制、地壳运动监测、工程变形监测、资源勘察、地球动力学等学科领域。GPS 由三个独立的部分组成:空间部分:21 颗工作卫星,3 颗备用卫星。地面支撑系统:1 个主控站,3 个注入站,5 个监测站。用户设备部分:接收 GPS 卫星发射信号,以获得必要的导航和定位信息,经数据处理,完成导航和定位工作。GPS

18、 接收机硬件一般由主机、天线和电源组成。.1GPSGPS 实现原理实现原理GPS 定位的基本原理是根据高速运动的卫星瞬间位置作为已知的起算数据,采用空间距离后方交会的方法,确定待测点的位置。如图所示,假设t 时刻在地面待测点上安置GPS 接收机,可以测定GPS 信号到达接收机的时间t,再加上接收机所接收到的卫星星历等其它数据可以确定以下四个方程式,如图2-1 . 4 / 29、 图 2-1GPS 实现原理方程上述四个方程式中待测点坐标 x、y、z 和 Vto 为未知参数,其中 di=cti (i=1、2、3、4)。di (i=1、2、3、4) 分别为卫星 1、卫星 2、卫星 3

19、、卫星 4 到接收机之间的距离。ti(i=1、2、3、4) 分别为卫星 1、卫星 2、卫星 3、卫星 4 的信号到达接收机所经历的时间。c 为 GPS 信号的传播速度(即光速) 。四个方程式中各个参数意义如下:x、y、z 为待测点坐标的空间直角坐标。xi 、yi 、zi (i=1、2、3、4) 分别为卫星 1、卫星 2、卫星 3、卫星 4 在 t 时刻的空间直角坐标,可由卫星导航电文求得。Vt i (i=1、2、3、4) 分别为卫星1、卫星 2、卫星 3、卫星 4 的卫星钟的钟差,由卫星星历提供。Vto 为接收机的钟差。由以上四个方程即可解算出待测点的坐标 x、y、z 和接收机的钟差 Vto

20、。目前 GPS 系统提供的定位精度是优于 10 米,而为得到更高的定位精度,通常采用差分 GPS 技术:将一台 GPS 接收机安置在基准站上进行观测。根据基准站已知精密坐标,计算出基准站到卫星的距离改正数,并由基准站实时将这一数据发送出去。用户接收机在进行 GPS 观测的同时,也接收到基准站发出的改正数,并对其定位结果进行改正,从而提高定位精度。如图 2-2 . 5 / 29图 2-2 GPS.2GPSGPS 接口接口接口特性如下:RS-232输出,可输入RS232或者具有RS-232 极性的TTL 电平。可选的波特率为:300、600、1200、2400、4800、9600、

21、19200。串口输出协议:输出 NEMA0183 格式的 ASCII 码语句,输出:GPALM,GPGGA,GPGLL,GPGSA,GPGSV,GPRMC,GPVTG(NMEA 标准语句) ;PGRMB,PGRME,PGRMF,PGRMM,PGRMT,PGRMV(GARMIN 定义的语句) 。还可将串口设置为输出包括 GPS 载波相位数据的二进制数据。输入:初始位置、时间、秒脉冲状态、差分模式、NMEA 输出间隔等设置信息。在缺省的状态下,GPS 模块输出数据的波特率为 4800,输出信息包括:GPRMC、GPGGA、GPGSA、GPGSV、PGRME 等,每秒钟定时输出。 . 6 / 293

22、 3开发工具软件开发工具软件与系统软件部分与系统软件部分3.13.1儿童定位系统程序框图儿童定位系统程序框图整个儿童定位系统程序框图如图 3-1 所示,本次毕业设计主要研究 GPS 模块。图 3-1 儿童定位系统程序框图3.23.2开发工具软件的安装开发工具软件的安装参考 linux 虚拟机使用说明里的 Samba 服务器的的配置。参照执行安装环境脚本命令:./install 安装脚本程序将自动建立/arm2410cl 目录,并将所有开发软件包安装到/arm2410cl 目录下,同时自动配置编译环境,建立合适的符号连接。注意: 安装完成后看一下主编译器 Armv4l-unknown-linux

23、-gcc 是否在/opt/host/armv4l/bin/,如果不是这个路径,请使用 vi 修改/root/.bash_profile 文件中 PATH 变量为PATH=$PATH:$HOME/bin:/opt/host/armv4l/bin/ , 存盘后执行: source/root/.bash_profile,则以后 armv4l-unknown-linux-gcc 会自动搜索到,可以在终端上输入 armv,然后按 tab 键,会自动显示 armv4l-unknown-linux-3.33.3开发环境配置开发环境配置配置网络,包括配置 IP 地址、NFS 服务、防火墙。网络配置主要是要安装

24、好以太网卡,对于一般常见的 RTL8139 网卡,REDHAT9.0 可以自动识别并自动安装好,完全不要用户参与,因此建议使用该网卡。然后配置宿主机 IP 为 21。双击设备 eth0 的蓝色区域,进入以太网设置界面,对于 REDHAT9.0,它默认的是打GPSGPS信息信息提供信息GSMGSM通信通信提供信息QTQT界面界面用户用户通信显示信息控制 . 7 / 29开了防火墙,因此对于外来的 IP 访问它全部拒绝,这样其它网络设备根本无法访问它,即无法用 NFS mount 它,许多网络功能都将无法使用。因此网络安装完毕后,应立即关闭防火墙。操作如下:点击红帽子开始菜单

25、,选择安全级别设置,选中无防火墙。在系统设置菜单中选择服务器设置菜单,再选中服务菜单,将 iptables 服务的勾去掉,并确保 nfs 选项选中。配置 NFS:点击主菜单运行系统设置-服务器设置-NFS 服务器(英文为:SETUP-SYSTEMSERVICE-NFS) ,点击增加出现如下在界面,在目录(Drictory):中填入需要共享的路径,在主机(Hosts):中填入允许进行连接的主机 IP 地址。并选择允许客户对共享目录的操作为只读(Readonly)或读写(Read/write)。配置完成后,可用如下办法简单测试一下 NFS 是否配置好了:在宿主机上自己mount 自己,看是否成功就

26、可以判断 NFS 是否配好了。例如在宿主机/目录下执行:mount 0:/arm2410cl /mnt 其中 0 应为主机的 IP 地址。然后到/mnt/目录下看是否可以列出/arm2410cl 目录下的所有文件和目录,可以则说明 mount 成功,NFS 配置成功。3.43.4超级终端超级终端超级终端是一个通用的串行交互软件,很多嵌入式应用的系统有与之交换的相应程序,通过这些程序,可以通过超级终端与嵌入式系统交互,使超级终端成为嵌入式系统的“显示器” 。超级终端的原理是将用户输入随时发向串口(采用 TCP 协议时是发往网口,这里只说串口的情况) ,

27、但并不显示输入。它显示的是从串口接收到的字符。所以,嵌入式系统的相应程序应该完成的任务便是:1、将自己的启动信息、过程信息主动发到运行有超级终端的主机;2、将接收到的字符返回到主机,同时发送需要显示的字符(如命令的响应等)到主机。3、在单片机开发时使用。如图 3-2 所示 . 8 / 29图 3-2 设置步骤将波特率设为 115200,数据流控制设为无。3.53.5FlashFXPFlashFXPFlashFXP 是一款功能强大的 FXP/FTP 软件,集成了其它优秀的 FTP 软件的优点,如 CuteFTP 的目录比较,支持彩色文字显示;如 BpFTP 支持多目录选择文件,暂存目录;又如 L

28、eapFTP 的界面设计。支持目录(和子目录)的文件传输,删除;支持上传,下载,以与第三方文件续传;可以跳过指定的文件类型,只传送需要的本件;可自定义不同文件类型的显示颜色;暂存远程目录列表,支持 FTP 代理与 Socks 3&4;有避免闲置断线功能,防止被 FTP 平台踢出;可显示或隐藏具有“隐藏”属性的文档和目录;支持每个平台使用被动模式等。GPS 连接后,需要通过 FlashFXP 来完成代码的导入。3.6GPS 程序3.63.6程序分析程序分析GPS 原始采集的数据如上图所示。在接收进程 receive 中收到“n”之后,表示收到一条完整的信息。在 show_gps_info

29、 进程中进行数据的解析和显示:void* show_gps_info(void * data) . 9 / 29while(1)if(GET_GPS_OK)GET_GPS_OK=FALSE;printf(%s,GPS_BUF);gps_parse(GPS_BUF,&gps_info);show_gps(&gps_info);usleep(100);if(STOP)break;gps_parse 实现 GPRMC 格式数据的解析:void gps_parse(char *line,GPS_INFO *GPS)int i,tmp,start,end;char c;char* buf

30、=line;c=buf5;if(c=C) /判断GPRMC语句GPS-D.hour =(buf 7-0)*10+(buf 8-0); /读取小时GPS-D.minute =(buf 9-0)*10+(buf10-0); /读取分钟GPS-D.second =(buf11-0)*10+(buf12-0); /读取秒tmp = GetComma(9,buf);GPS-D.day =(buftmp+0-0)*10+(buftmp+1-0); /读取日GPS-D.month =(buftmp+2-0)*10+(buftmp+3-0); /读取月GPS-D.year =(buftmp+4-0)*10+(

31、buftmp+5-0)+2000;/读取年 . 10 / 29/-GPS-status =bufGetComma(2,buf); /读取小时GPS-latitude =get_double_number(&bufGetComma(3,buf); /读取纬度GPS-NS =bufGetComma(4,buf); /南纬 or 北纬GPS-longitude=get_double_number(&bufGetComma(5,buf); /读取经度GPS-EW =bufGetComma(6,buf); /东经或者西经#ifdef USE_BEIJING_TIMEZONEUTC2BTC

32、(&GPS-D);#endifif(c=A) /$GPGGAGPS-high = get_double_number(&bufGetComma(9,buf);/读取小时 . 11 / 294 4移植过程移植过程4.14.1Linux2.6Linux2.6 核驱动与核驱动与 2.42.4 的区别的区别随着 Linux2.6 的发布,由于 2.6 核做了新的改动,各个设备的驱动程序在不同程度上要进行改写。1、 使用新的入口必须包含 module_init(your_init_func);module_exit(your_exit_func);老版本:int init_module(

33、void);void cleanup_module(voi);2.4 中两种都可以用,对如后面的入口函数不必要显示包含任何头件。2、 模块参数必须显式包含module_param(name, type, perm);module_param_named(name, value, type, perm);参数定义module_param_string(name, string, len, perm);module_param_array(name, type, num, perm);老版本:MODULE_PARM(variable,type);MODULE_PARM_DESC(variable,

34、type);3、 模块别名MODULE_ALIAS(alias-name);这是新增的,在老版本中需在/etc/modules.conf 配置,现在在代码中就可以实现。4、 结构体的初试化 . 12 / 29gcc 开始采用 ANSI C 的 struct 结构体的初始化形式:static struct some_structure = .field1 = value,.field2 = value,.;老版本:非标准的初试化形式static struct some_structure = field1: value,field2: value,.;5、 核可剥夺preempt_disable

35、();preempt_enable_no_resched();preempt_enable_noresched();preempt_check_resched();6、 新增完成事件(completion events)init_completion(&my_comp);void wait_for_completion(struct completion *comp);void complete(struct completion *comp);void complete_all(struct completion *comp);7、 中断处理1、中断处理有返回值了。IRQ_RETVA

36、L(handled); . 13 / 292、cli(), sti(), save_flags(), 和 restore_flags()不再有效,应该使用local_save_flags() 或 local_irq_disable()。3、synchronize_irq()函数有改动4、新增 int can_request_irq(unsigned int irq, unsigned long flags);8、 网络驱动1、struct net_device *alloc_netdev(int sizeof_priv, const char *name,void (*setup)(struc

37、t net_device *);struct net_device *alloc_etherdev(int sizeof_priv);2、新增 NAPI(New API)void netif_rx_schedule(struct net_device *dev);void netif_rx_complete(struct net_device *dev);int netif_rx_ni(struct sk_buff *skb);(老版本为 netif_rx()9、 USB 驱动老版本 struct usb_driver 取消了,新的结构体为struct usb_class_driver cha

38、r *name;struct file_operations *fops;mode_t mode;int minor_base;int usb_submit_urb(struct urb *urb, int mem_flags);int (*probe) (struct usb_interface *intf,const struct usb_device_id *id);4.24.2平台升级操作步骤平台升级操作步骤烧写 2410CL linux 操作系统包括烧写 vivi,kernel,root 三个步骤,除此我 . 14 / 29们还要烧写应用程序,这四个文件分别为:u-boot.bin

39、- linux 操作系统启动的 bootloader;uImage - linux 操作系统核;root.cramfs - 根文件系统;yaffs.tar.bz2 - 应用程序压缩包。.1烧写烧写 u-boou-boot t1.把并口线插到 pc 机的并口,并把并口的另一端与实验箱上端的UP-LINK 相连,(确保跳线 1、2 相连即使用 UP-LINK)打开 2410CL 电源(12V) 。2.把整个 GIVEIO 目录(在光盘的 img/flash-uboot 目录下)拷贝到c:/windows 下,并把该目录下的 giveio.sys 文件拷贝到c:/windows/sy

40、stem32/drivers 下。3.在我的电脑里打开控制面板,选添加硬件,点击“下一步” ,选择“是,我已经连接了此硬件”然后点击“下一步” ,选中“添加新的硬件设备”然后点击“下一步” ,选中“安装我手动从列表选择的硬件”后点击“下一步” ,选择“显示所有设备”然后点击“下一步”, 选择“从磁盘安装”然后点击“下一步”, 选择“浏览” ,指定驱动为 C:WINDOWSGIVEIOgiveio.inf 文件,选择 giveio.inf 文件,然后点击“打开” , 然后选择“确定” , 点击“下一步”至“完成”即安装好驱动。4.在 d 盘新建一目录 bootloader,把 sjf2410-s

41、.exe(在 flash-uboot 目录下)和要烧写的 u-boot.bin,linux 操作系统核,根文件系统和应用程序压缩包拷贝到该目录下。在所有程序附件命令提示符下,进入 D:bootloader 目录,运行sjf2410-s 命令如下:sjf2410-s /f:u-boot.bin。然后按回车,显示结果如图 4-1 . 15 / 29图4-1烧写过程1在此后出现的三次要求输入参数,第一次是让选择 Flash,选 0,然后回车,第二次是选择 jtag 对 flash 的两种功能,也选 0,然后回车,第三次是让选择起始地址,选 0,然后回车,等待大约 35 分钟的烧写时间,如下图 4-2

42、 所示: . 16 / 29图4-2烧写过程2当 u-boot 烧写完毕后选择参数 2,退出烧写。如下图所示。烧录后关闭2410CL,拔掉并口线与开发板的连线。在这一步应该注意所传的文件夹要选对,否则这一步出不来。.2烧写核、文件系统与应用程序烧写核、文件系统与应用程序1.并用串口线连接 pc 和 2410CL。并连接好 PC 机与设备网线。打开超级终端,然后启动 2410CL,按任意键进入 u-boot 控制台,设置开发板 IP,其命令为:setenv serverip/ipaddr 如下图所示:设置本机服务器 IP 地址:(根据具体主机环境更改 IP) setenv ser

43、verip 13 设置 ARM 设备 IP 地址:(随意设置成与上面主机同一网段 IP 即可) setenv ipaddr 99 保存变量设置:saveenv2.Windows 平台下 tftp 服务的配置:双击“D:bootloader”目录下的 tftpd32.exe 文件,对 Windows 下的 tftp 服务进行配置。3、烧写核 . 17 / 29tftp 0 x30008000 uImage 将 uImage 核文件下载到地址为 0 x30008000 的 RAM 中nand erase 0 x80000 0 x250000 擦除 nan

44、dflash 第一个参数 0 x80000 为 nandflash 起始地址第二个参数 0 x250000 为擦除 nandflash 大小nand write 0 x30008000 0 x80000 0 x250000 第一个参数 0 x30008000 为存放要写入 nandflash 文件的 RAM 地址第二个参数 0 x80000 为 nandflash 写入起始地址第三个参数 0 x350000 为写入 nandflash 容大小以上三个命令可以用分号连接同时输入,如图:tftp 0 x30008000 uImage;nand erase 0 x80000 0 x250000;na

45、nd write 0 x30008000 0 x80000 0 x250000.3烧写文件系统烧写文件系统tftp 0 x30008000 root.cramfs 将 root.cramfs 文件系统镜像下载到 RAM nand erase 0 x380000 0 x400000 将 nandflash 文件系统地址空间擦除 nand write 0 x30008000 0 x380000 0 x400000 将 RAM 中文件系统容写入到 nandflash 中文件系统空间三条命令同样可以用分号连接写成一条命令tftp 0 x30008000 root.cramfs;nand

46、 erase 0 x380000 0 x400000;nand write 0 x30008000 0 x380000 0 x400000.4烧写应用程序烧写应用程序1. 用网线连接好 2410CL 的 ETHERNET-1 口和 PC 机的网口,配置 IP 在同一网段,重启 2410CL 进入 linux 系统(用户名 root)。如图所示进行设置开发板 IP(开发板 IP 要与 FTP 服务器端(windows xp)系统 IP 同一个网段) 以上根据 FTP windows 端 ip 13 设置开发板 ip 为 95 2. 在

47、windows 端启动 FTP(关盘 linux/img/FlashFXP 文件夹下)点击 FTP 选择Quick Connent. 在弹出的小窗口里录入:95,用户名:无,密码:无,匿名登陆。点击 Connect, 登陆到开发板 TFP 用户目录下,此时即可向开发板传输文件。在左侧一栏中选择要下载的 yaffs 压缩包文件,右键-transfer 即可下载到 . 18 / 29ARM 开发板解压到相关目录下由于开发板 FLASH 空间有限,建议将 FLASH 中容先搬移到 SDRAM 中,在加压到FLASH 中:拷贝到 RAM 中up-tech: #cp system/

48、var/ftp/pub/2410cl-yaffs-2.6.24.tar.bz2 /tmp/ 删除 FLASH 中容up-tech: #rm system/var/ftp/pub/2410cl-yaffs-2.6.24.tar.bz2 进入到 RAM 中重新解压到 FLASH 中up-tech: #cd /tmp/ up-tech:/tmp #tar xvjf 2410cl-yaffs-2.6.24.tar.bz2 -C /root/ 2410cl_yaffs_2.6.24/16xkbd/ 2410cl_yaffs_2.6.24/16xkbd/getkey 2410cl_yaffs_2.6.24/16xkbd/mega8.ko 2410cl_yaffs_2.6.24/ad/ 2410cl_yaffs_2.6.24/ad/ad 2410cl_yaffs_2.6.24/ad/s3c2410-adc.ko 2410cl_yaffs_2.6.24/ad/test.sh 2410cl_yaffs_2.6.24/bluetooth

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论