0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

分析GEC2410开发板和Linux的特点

电子工程师 来源:仪器仪表用户 作者:张磊;温阳东 2021-06-12 12:23 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

交叉开发环境是嵌入式Linux开发的基础.后续的开发过程几乎都是基于此环境的。而ARM作为一种高性能、低成本的嵌入式RISC微处理器。已成为应用最广泛的嵌入式处理器。本文内容包括基于32位ARM920T核“GEC2410”开发板的硬件结构和嵌入式Linux交叉开发环境的概念和配置.开发工具的使用以及交叉调试器制作的方法。利用虚拟机在Windows操作系统下,为“GEC2410”开发板搭建了一个嵌入式Linux的运行平台。

0 引言

目前,随着ARM技术的日益成熟和广泛应用,基于ARM核的微处理器已经成为嵌入式市场的主流。而建立面向ARM构架的嵌入式操作系统也就成为当前研究的热点问题.在众多的嵌入式操作系统中,许多开发人员都选择Hnux,主要是因为它是源码公开而且是免费的,可以让任何人将其修改移植到自己的目标平台系统里使用。系统可以通过配置内核,动态地加载和卸载内核模块机制,可以方便地在内核中添加新的组件或卸载不再需要的内核组件。

本文介绍了如何在Windows操作系统下利用Linux虚拟机、针对32位ARM920T内核的$3C2410微处理器实现嵌入式LintLx应用软件的交叉开发环境,提出了一个比较完整的解决方案,并成功地为GEC2410开发板搭建了一个嵌入式应用软件开发环境。

1 GECMlO开发板硬件构成

ARM处理器是一种支持16/32位双指令集的高性能、低成本、低功耗的R ISC微处理器,目前已经占领了75%以I:的32位RISC嵌入式产品f仃场。本文所选用的ARM920T微处理器属于中端产品,应用也十分广泛。$3C2410是32位低功耗RISC宏单元,其工作频率为203 MHz,同时支持Thumbl6位精。

简指令集,从而能以较小的存储空间需求,获得32位的系统性能。64M字节的SDRAM,由两片K4S561632组成,工作在32位模式下;64M字节NAND Flash,采用的是K9F1208,可以兼容16M,32M或128M字节;10M以太网接口,采用的是CS8900Q3,带传输和连接指示灯;

2路UART串行口,波特率可高达115200bps,并具有RS232电乎转换电路Embedded·ICE(20脚标准JTAG)接口和并口式jTAG接口,支持ADS,SDT软件的卜.载和调试以及FLASH的烧写。

2 嵌入式Linux开发环境的搭建及开发工具的使用

2.1宿主机——目标机模式

进行项目开发前,先要做的是搭建一套基于Linux操作系统的应用开发环境,一般由目标板(GEC2410开发板)和宿主机(LiUUX虚拟机)所构成。如图1所示。嵌入式系统通常是一个资源受限的系统,因此直接在嵌入式系统的硬件平台上编写软件比较困难,有时候甚拿是不可能的。

目前一般采用的解决办法是首先在通用计算机上编写程序,然后通过交叉编译生成目标平台七可以运行的二进制代码格式,最后再下载到目标平台上的特定位置.卜运行.用来编译这种程序的编译器就叫交叉编译器。为了不跟本地编译器混淆,交叉编泽器的名字一般都有前缀。

例如:arm.1inux—gcc。交叉开发环境是指编译、链接和调试嵌入式应用软件的环境,它与运行嵌入式应用软件的环境有所不同,通常采用宿主机/目标机模式。

2.2 Linux服务器交叉编译环境的建立

Linux服务器是嵌入式Linux内核编译、应用程序开发、编译等的公共平台,在一个嵌入式系统的开发过程中,有许多工作需要通过它来完成。交叉编译工具用于编译在目标系统上运行的嵌入式Linux内核及应用程序,包括编译器、连接器、调试器以及代码转换J二具等实用程序,一般以瓜缩软件包的方式提供给我们,称为开发工具链(Toolchain).目前基于ARM架构的交叉编泽工具链为:allll-liuux.gcc-2.95.3。

1)GNU交叉工具链的下载

从ARM官方网站F载删.arm.tinux.org.ak,可以从该站点下载2.95.3工具链:

ftp://tip.arm.Iinux.org.uk/pub/armlinux/toolehain/cross-2.95.3.tar.bz2

2)cross-2.95.3.tar.bz2包的安装步骤

a.#mkdir/mr/local/arm;

b.#cp CROSS一2.95.3.tar.bz2/usr/local/ann;

C.#tar jxvf crog$一2.95.3.tar.bz2;

d.添加环境变量:在文{牛/ete/bashrc文件最后添加:

export PATH=/usr/local/arm/2.95.3/bin:$PATH:

e.工具链安装完成。

2.3配置NFS服务的步骤

NFS服务就是将宿主机的一个目录通过网络可以被挂载到其他计算机上。并且作为其他计算机的一个目录,其目的就是让不同的机器、不同的操作系统之间可以彼此共享文件。

NFS的使用分服务器端和客户端,其中服务器端提供要共享的文件,客户端通过挂载“mount”这一动作实现对共享文件的访问操作。下面主要介绍GEC24 10开发板的Linux系统与虚拟机的LintLx通过NFS实现文件共享的方法与步骤:

1)在虚拟机linux配置nfs服务,编辑nfs配置文件/etdexports,设置共享目录如:vi/etc/exports,添加:/root/nfs—share·(rw,sync,no—root—squash)。rW表示允许下位机读写该目录,no_root_squash允许下位机以主机root用户身份挂载根文件系统。

2)在虚拟机linux启动NFS服务:(修改配置文件后就需要蕈新启动施服务)#/etc/init.d/nfs reSTart或者用命令:#service nfs restarto.

3)防火墙的关闭。选择系统设置一》安全级别,将安全级别改为“无防火墙”。

4)用交叉网线连接PC机(虚拟机)与开发板,目的让两个linux处在同一个网络内。

开发板的ip地址是:192.168.2.223,因此配置虚拟机ip为192.168.2开头的ip地址,如可用下列命令配置:#ifcONfigethO 192.168.2.23。

5)在开发板linux系统中挂载虚拟机linux的NFS共享目录,执行下列命令:#mkdir/tmp/nfs#mount—t nfs一0 nolock192.168.2.23:/root/nfs—share/trap/nfs。

2.4交叉调试器的制作

2.4.1交叉调试器的结构

程序的调试足检杏程序正确性、可靠性、稳定性的重要手段,也是应用程序开发必不可少的组成部分。嵌入式软件开发过程中的交叉调试与本地软件开发过程中的调试方式有所差别。本地软件开发调试器与被调试的程序往往运行在同一台计算机}:。而嵌入式软件开发过程中,调试时采用的是在宿主机和目标机之间进行的交叉调试。

调试器运行在宿主机,但被调试的进程却是运行在目标板。调试器和被调试进程通过串口或者网络进行通信,调试器可以控制、访问被调试进程,读取被调试进程的当前状态,并能够改变被调试进程的运行状态。

2.4.2制作交叉调试器的方法

1)解压源码包:tar zxf gdb一6.0.tar.gz

2)配置:cd gdb一6.0

mkdir build..arm..1inux

cd build..arm..1inux

../configure--target=arm·linux一一prefix=/usr/local/arm/2.95.3/

3)编译:make

4)安装:make install

在/usr/locaL/arm/2.95.3/bin/目录下生成alTfl-linuxgdb工具

5)编译生成针对f1.Eln处理器的gdbserver

a.进入sdb源代码包中的gdb$erver目录

cd sdb-6.0

cd gdb/gdbserver

b.配置生成gdbserver

chmod U+X configure

CC=arnl—linux—gcc./configure一一host=arm-linux

c.Make,生成gdbserver、gdbreplay

6)通过凼,将gdbserver/gdbreplay到目标板中

7)启动目标板上的gdbserversabserver 192.168.1.88:2345 cross-teat其中192.168.1.88是目标板的IP地址。2345是任意指定的端口,也可以是其他端口。

8)启动宿主机端arm.1inux-gdb调试器在宿主机的工作目录中有对应的程序和源文件

#arm·hnux-柚CI'OS8一teat

(gdb)target remote 192.168.1.88:2345

连接远程gdbserver

(sab)b main

设置断点

(Sdb)C运行

3 结束语

本文在分析了GEC2410开发板和Linux的特点的基础上,介绍了嵌入式Linux开发平台的搭建过程,并详细介绍了配置NFS服务和制作交叉调试器的方法和步骤。这样就可以在此基础上进行各种驱动程序和应用程序的开发。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PC
    PC
    +关注

    关注

    9

    文章

    2164

    浏览量

    158511
  • Linux
    +关注

    关注

    88

    文章

    11628

    浏览量

    218018
  • IP
    IP
    +关注

    关注

    5

    文章

    1849

    浏览量

    154938
  • 调试器
    +关注

    关注

    1

    文章

    325

    浏览量

    24931
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RK3588核心/开发板RT-Linux系统实时性及硬件中断延迟测试

    本文介绍瑞芯微RK3588芯片平台RT-Linux系统实时性及硬件中断延迟测试,基于触觉智能RK3588核心/开发板演示。Linux-RT实时性测试测试环境说明本次测试是使用Cycl
    的头像 发表于 11-28 18:57 141次阅读
    RK3588核心<b class='flag-5'>板</b>/<b class='flag-5'>开发板</b>RT-<b class='flag-5'>Linux</b>系统实时性及硬件中断延迟测试

    迅为iTOP-3568开发板 Linux驱动开发实战:menuconfig图形化配置实验

    迅为iTOP-3568开发板 Linux驱动开发实战:menuconfig图形化配置实验
    的头像 发表于 11-24 15:29 535次阅读
    迅为iTOP-3568<b class='flag-5'>开发板</b> <b class='flag-5'>Linux</b>驱动<b class='flag-5'>开发</b>实战:menuconfig图形化配置实验

    【迅为工业RK3568稳定可靠】itop-3568开发板Linux驱动开发实战:RK3568内核模块符号导出详解

    【迅为工业RK3568稳定可靠】itop-3568开发板Linux驱动开发实战:RK3568内核模块符号导出详解
    的头像 发表于 11-21 13:25 694次阅读
    【迅为工业RK3568稳定可靠】itop-3568<b class='flag-5'>开发板</b><b class='flag-5'>Linux</b>驱动<b class='flag-5'>开发</b>实战:RK3568内核模块符号导出详解

    重磅升级!迅为iTOP-Hi3403开发板SDK全面升级至Linux 6.6内核

    【重磅升级!迅为iTOP-Hi3403开发板SDK全面升级至Linux 6.6内核】
    的头像 发表于 11-18 13:34 745次阅读
    重磅升级!迅为iTOP-Hi3403<b class='flag-5'>开发板</b>SDK全面升级至<b class='flag-5'>Linux</b> 6.6内核

    迅为3568开发板从零学习Linux驱动开发:迅为一站式资料包如何让我效率翻倍

    迅为3568开发板从零学习Linux驱动开发:迅为一站式资料包如何让我效率翻倍
    的头像 发表于 11-05 11:16 191次阅读
    迅为3568<b class='flag-5'>开发板</b>从零学习<b class='flag-5'>Linux</b>驱动<b class='flag-5'>开发</b>:迅为一站式资料包如何让我效率翻倍

    如何移植EtherCAT Igh--基于米尔RK3576开发板

    开发板EtherCATIgH需要保证高实时性,Preempt-RT是一种针对实时性能进行了优化的Linux内核。与普通的Linux内核相比,Preempt-RT具有以
    的头像 发表于 09-26 08:04 9457次阅读
    如何移植EtherCAT Igh--基于米尔RK3576<b class='flag-5'>开发板</b>

    RK3506开发板Linux开发板极致性价比之选

    RK3506开发板Linux开发板极致性价比之选瑞芯微RK3506开发板,3核Cortex-A7@1.5GHz+Cortex-M0,Linux
    的头像 发表于 09-11 16:26 2833次阅读
    RK3506<b class='flag-5'>开发板</b><b class='flag-5'>Linux</b><b class='flag-5'>开发板</b>极致性价比之选

    技术分享 | 迅为RK3568开发板如何将 Linux 板卡虚拟成U盘

    技术分享 | 迅为RK3568开发板如何将 Linux 板卡虚拟成U盘
    的头像 发表于 06-04 10:57 887次阅读
    技术分享 | 迅为RK3568<b class='flag-5'>开发板</b>如何将 <b class='flag-5'>Linux</b> 板卡虚拟成U盘

    NXP i.MX 91开发板#支持快速创建基于Linux®的边缘器件

    NXP Semiconductors FRDM i.MX 91开发板设计用于评估i.MX 91应用处理器,支持快速创建基于Linux ^®^ 的边缘器件。该开发板还设计用于入门级Linux
    的头像 发表于 05-19 10:55 2029次阅读
    NXP i.MX 91<b class='flag-5'>开发板</b>#支持快速创建基于<b class='flag-5'>Linux</b>®的边缘器件

    Linux文件系统打包及镜像制作,触觉智能RK3562开发板演示

    本文介绍Linux开发板文件系统打包及镜像制作的方法,演示Linux文件系统打包及镜像制作,适用于想将配置好的系统环境打包成镜像批量烧录。触觉智能RK3562开发板演示,搭载4核A53
    的头像 发表于 04-28 16:45 776次阅读
    <b class='flag-5'>Linux</b>文件系统打包及镜像制作,触觉智能RK3562<b class='flag-5'>开发板</b>演示

    Linux开发板CAN总线测试方法,触觉智能RK3568开发板演示

    本文介绍Linux开发板CAN总线测试方法,使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568,四核A55处理器,主频2.0Ghz,1T算力NPU;支持OpenHarmony5.0
    的头像 发表于 04-11 19:14 922次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>开发板</b>CAN总线测试方法,触觉智能RK3568<b class='flag-5'>开发板</b>演示

    迅为RK3568开发板驱动指南Linux中通用SPI设备驱动

    迅为RK3568开发板驱动指南Linux中通用SPI设备驱动
    的头像 发表于 01-23 11:02 3449次阅读
    迅为RK3568<b class='flag-5'>开发板</b>驱动指南<b class='flag-5'>Linux</b>中通用SPI设备驱动

    Linux系统更换开机logo方法教程,触觉智能RK3562开发板演示

    本文介绍Linux系统更换开机logo方法教程,通用RK3566、RK3568、RK3588、RK3576等开发板,触觉智能RK3562开发板演示
    的头像 发表于 01-06 10:53 1262次阅读
    <b class='flag-5'>Linux</b>系统更换开机logo方法教程,触觉智能RK3562<b class='flag-5'>开发板</b>演示

    Made with KiCad(九十四):M5Pi Linux嵌入式开发板

    “ 波哥大作,必须优先安排!M5Pi 是一款开源 Linux 嵌入式开发板,使用全志 F1C200s CPU,拥有漂亮的外壳。”
    的头像 发表于 12-25 14:53 1337次阅读
    Made with KiCad(九十四):M5Pi <b class='flag-5'>Linux</b>嵌入式<b class='flag-5'>开发板</b>

    瑞芯微主板/开发板Linux系统播放音频方法,触觉智能RK3562开发板演示

    本文介绍瑞芯微方案主板/开发板Linux系统播放音频的方法,触觉智能RK3562开发板演示,通用RK3566、RK3568、RK3588等
    的头像 发表于 12-13 11:40 1405次阅读
    瑞芯微主板/<b class='flag-5'>开发板</b><b class='flag-5'>Linux</b>系统播放音频方法,触觉智能RK3562<b class='flag-5'>开发板</b>演示