您好,欢迎光临某某户外篷房有限公司!
语言选择: ∷ 

自制廉价的Arm9开发平台

发布时间:2024-02-12 19:48浏览次数:
本文摘要:1改建系统的挑选基于Arm9内核的单片机,由于其便宜的价格与良好的性能,早已被普遍的应用于各种消费类电子产品中。掌控Arm9单片机的研发技能早已沦为嵌入式系统开发者的迫切要求。但由于市面上的Arm9开发板价格不菲,使不少想要自学Arm9开发技术的朋友望而却步,其中有一大部分是各大高校的学生。本文阐释了改建ipTIME的IP0422路由器,使其沦为VxWorks和Linux的Arm9研发平台的过程。

开元7818网页版

1改建系统的挑选基于Arm9内核的单片机,由于其便宜的价格与良好的性能,早已被普遍的应用于各种消费类电子产品中。掌控Arm9单片机的研发技能早已沦为嵌入式系统开发者的迫切要求。但由于市面上的Arm9开发板价格不菲,使不少想要自学Arm9开发技术的朋友望而却步,其中有一大部分是各大高校的学生。本文阐释了改建ipTIME的IP0422路由器,使其沦为VxWorks和Linux的Arm9研发平台的过程。

整个过程简单易行,同时花费在150元以内,是嵌入式系统研发爱好者不俗的自由选择。要动手改建Arm9研发系统,首先要挑选一款展开改建的产品。现在基于Arm9内核的单片机被普遍的应用于家用路由器和手机当中,因而这两类产品可以作为我们找寻改建对象的范围。但由于手机总体的价格偏高,同时集成度较为低,电路系统简单,因而不合适作为我们改建的对象。

而路由器恰恰相反,现在100多元的路由器比比皆是,而且这些路由器基本用于单芯片,该芯片除了具备Arm9核心的掌控功能外,还具备硬件上的路由算法反对,因而电路比较非常简单,便于改建,所以廉价的路由器就是改建Arm9开发板的适合对象。经过重复较为以后,最后自由选择了ipTIME的IP0422。该款路由器的市场价格在100元左右,主芯片为KS8695X,是高度集成化的网络通讯处理器,具备ARM922T内核。

同时该路由器还具备2MFlash,8MSDRAM,同时还尚存一个SDRAM焊位,可以便利的把SDRAM的容量扩展为16M,为我们运营操作系统获取了充足的空间。自由选择该款路由器的另一个主要原因时KS8695X芯片获取了完善的研发资料,可以便利的从Micrel公司的FTP上(ftp://)iTunes取得(文中所牵涉到到的芯片涉及资料都从该FTPiTunes)。研发资料中还包括了供KS8695XDEMO板运营的Linux操作系统的源代码和VxWorks系统的BSP源代码包在,虽然KS8695XDEMO与我们展开改建的路由器的硬件配备有所不同,但只要做到少许重制工作,之后可以让以上程序反对我们的开发板,大大简化了我们的改建过程。

IP0422路由器改建已完成的电路板和电路板版本号如图1右图。以下将从硬件改建与软件DEMO重制两方面,详尽阐释对IP0422的改建过程。图1改建已完成电路板与电路板版本号2硬件改建2.1串口串口对一个嵌入式系统是致关最重要的,通过串口可以与嵌入式系统展开交互。

我们首先展开系统的串口改建。如图2右图,电路板上原本就将串口以4星条针的形式引向,估算是为了以后便利修理而设置的。经过分析找到,为了抗干扰,电路板上将主芯片串口的RX管脚展开了上拉,因而在一般用于中主芯片会接管到任何的输出信号。所以我们对串口的改建分成两步:1、去除RX管脚上的上拉电阻;2、自己搭起一个串口电平切换电路,使串口可以与PC机通信。

串口各管脚定义与要去除的电阻如图2右图。图2串口电路串口电平切换电路负责管理单片机串口与PC机串口间电平的切换工作,使两者可以长时间通信。串口电平切换电路用于最少的是MAXIM公司的产品,在这里可以用于MAX3232或MAX232,两者相连的电路原理图是完全相同的。

由于MAX3232是用于3.3V展开供电的,所以可以必要与上图右图的4个管脚展开相连。若用于MAX232芯片,则要将芯片的供电管脚与电路板上输出电源5V串联。我用于的是MAX232芯片,5V电源端的相连如图3右图。

MAX232、MAX3232相连原理图如图4右图:图3MAX2325V连接端图4MAX232、MAX3232相连原理图由于以上模块电路比较简单,假如没现成的串口电路板,可以必要出售面包板,在上面搭起,以后所说的模块电路也能用此方法建构,仍然赘述。将适当的电路相连好后,与PC机的串口连接,关上串口工具DNW(超级终端也可以),设置波特率为38400,数据位为8,奇偶校验为无,暂停位为1,硬件流控制为0(后面用于的串口设置只有波特率有所不同,其他设置都按此设置)。

相连开发板的电源后,可以看见路由器启动时的提示信息,如图5右图,解释串口改建顺利。图5IP0422启动串口输入2.2JTAG模块JTAG模块是作为开发板必需不具备的。我们可以通过JTAG模块对板上的程序展开非常简单的调试,同时,还可以通过JTAG,将程序iTunes到板上的SDRAM中,对板上的Flash展开擦写操作者。

对JTAG的改建要比串口艰难,因为电路板上并没为我们引向该模块,我们只有自己想要办法做到一个引向模块。如图6右图,图示方位将电路板的绝缘层用小刀刮掉,遮住里面的铜箔,将一个2x10的条形插针一面的9个脚焊接在该铜箔上,构成短路,这与我们即将用于的wiggle简陋JTAG模块是完全一致的,同时还可以起着相同整个插座的起到。

条针的2脚与串口模块中的3.3V电源末端连接,作为简陋JTAG模块的电源脚。然后将芯片上的与JTAG涉及的各个管脚引向。如图6右图,绿色线一端连条针的第5脚,一端连芯片TDI上拉电阻R27的一端;橙色线一端连条针的第7脚,一端连芯片TMS下接电阻R28的一端;蓝色线一端连条针的第9脚,一端连芯片TCK上拉电阻R29的一端;白线一端连条针的第13脚,一端必要与芯片的TDO(113脚)连接。

其中白色线与芯片的TDO(113脚)连接末端是焊的难题,由于芯片管脚太密,必要焊很更容易照成邻接管脚间的短路,所以建议将该管脚翘起来(如图6右图),然后再行焊,操作者时要十分小心。图6JTAG模块与适当连线图7简陋JTAG模块原理图模块结构已完成后,可以用于wiggle的简陋JTAG口与计算机的并口连接。

Wiggle的电路原理图如图7右图。从/网站,iTunesH-JTAG软件,展开加装后,启动H-JTAG软件,应当可以检测到相连的芯片是ARM922T的内核。再行用于H-JTAG因应AXD调试软件对芯片的存储区域,寄存器展开读取,如读取长时间,解释模块改建顺利。

在用于AXD时,可能会经常出现这样的现象,再行相连PC机并口与板上的JTAG口,再行给路由板上电,然后启动AXD时可能会报错。解决问题的方法是再行给路由板上电,然后再行将JTAG口夹住PC机的并口上,最后再启动AXD,可以解决问题以上问题。

2.3扩展SDRAM路由板上的SDRAM只有8MB,由于Demo板的SDRAM是16MB,为了便利必要运营Demo板的Linux系统,必须为路由板扩展8MSDRAM。板上用于的SDRAM型号为IC42S16400-7TG,在市场中并不少见,根据查阅该型号SDRAM的规格书,我们挑选与其相容的HY57V641620HG型号的SDRAM。由于路由板上原本就尚存另一片SDRAM的焊方位,扩展较为更容易,只必须在焊时留意芯片的1脚的方位,不要将芯片焊反了。SDRAM周围缺乏的器件也都要焊上,排阻为33欧姆,电容用于0.1uF。

由于原本路由器中的程序不会检测外围SDRAM的数据宽度,展开SDRAM扩展后,原本程序将自动用32位数据宽度展开采访。所以在扩展SDRAM后,给路由板上电如串口输入长时间(如图5右图),则解释扩展顺利。经过以上步骤,路由板的硬件改建早已已完成,接下来就是要撰写,重制软件,使路由板沦为VxWorks与Linux操作系统的研发平台。

3软件撰写3.1Flash烧写软件由于扩展了JTAG模块,我们可以自己撰写一个程序,对板上的Flash展开擦写。明确原理是在路由板启动后,通过AXD中的命令行,设置KS8695X中的寄存器,将Flash与SDRAM同构到特定的区域,然后将擦写程序iTunes到SDRAM中运营,对板上的Flash展开编程。关于这方面文章网上早已有很多,同时还获取有源代码,在此就仍然赘述。这里只把要点说道一下。

由于Arm9芯片具备MMU单元,配置文件的路由板上的完整程序是Linux,配置文件情况下不会把MMU单元关上,用于数据内存,所以我们在AXDCommand窗口中继续执行内存区域配备时,要再行把开着的MMU单元和数据内存重开,这样对KS8695寄存器的配备才不会准确。对MMU中寄存器的设置如下图右图:图8AXD中CP15寄存器的设置在Command窗口中键入命令obeyC:cfg.ini(假设自己撰写的配置文件cfg.ini在C盘根目录下),SDRAM被同构到了0x00xFFFFFF区域,Flash被同构到了0x28000000x29fffff区域。将Flash烧写程序进到0x0一处开始运行,将串口波特率设置为115200,串口输入如图9右图。按1键自由选择烧写Flash,从DNW的serialport菜单中选transmit,然后自由选择发送到要封装的文件就可以对Flash展开擦写了。

我的路由板上用于的Flash芯片型号为Spansion公司的S29AL016D70,有所不同型号的Flash,扇区产于与厂家ID有可能有所不同,擦写协议也有可能有所不同,要对适当部分的程序做到必要的改动。图9Flash擦写程序串口输入3.2VxWorksBSP包在的重制Demo程序自带VxWorks的BSP包在。根据Demo板的Datasheet[1]和VxWorks解释文档[2]中的解释,我们自由选择与这块路由板的配备基本相同的KS8695X建构目标展开改建。

经过较为两者仅次于的差异就是在Flash部分,因而必须重写BSP包中与Flash模块的部分。其中还包括Flash的初始化、擦写逻辑、程序在Flash中的布局,文件系统与Flash的模块等[3]。

牵涉到到的主要文件与构建的功能如表格1右图:文件名改动解释Ks8695p.h、config.h获取路由板涉及寄存器设置值flashFsLib.c构建FAT文件系统模块flashDrvLib.c构建Flash操作者模块flashAmdMem.h、flashAmdMem.c明确构建S29AL016D70的各种操作者flashMem.h、flashMem.c获取程序在Flash中存储的方位和系统记录启动参数的模块表格1BSP改动涉及文件解释将涉及文件改动好后,根据BSP解释[2]中的方法编译器bootrom,自由选择的编译器目标是KS8695X。接下来根据解释中的方法编译器限于于网络iTunes的VxWorks新形式和限于于Flash引领的VxWorks新形式,某种程度用于的编译器目标是KS8695X。将bootromiTunes到路由板上,同时设置好FTP服务器,设置串口波特率为9600,配置文件情况下bootrom通过FTP从网络上iTunes引领启动VxWorks新形式,启动过程如图10右图。也可以改动bootrom中的启动参数,从Flash的FAT文件系统中引领启动VxWorks新形式,启动过程如图11右图。

经过改动的BSP构建原先BSP的所有功能,各项功能的用于及参数设置参看BSP解释[2],在此仍然赘述。图10网络引领VxWorks输入图11Flash引领VxWorks输入3.3u-boot和Linux的重制开发包中具有供Demo用于的Linux系统,由于Demo板用于的Flash为4M[4],该Linux系统中Linux内核再加文件系统有2M多,路由板上用于的是2M的Flash,而且没扩展的可能性,似乎无法必要用于。经过对Demo板自带的引领程序的分析,找到Demo板在运营Linux前,引领程序将Linux系统整个拷贝到16M的SDRAM中运营。我们的路由板早已扩展为16M的SDRAM,所以我们可以不将Linux系统存储在Flash中,而必要用于网络,将Linux系统iTunes到SDRAM中然后运营。

开元7818网页版

当然,要将Linux必要iTunes到SDRAM中运营,还必须有引领程序的协助。u-boot是Arm系统中普遍用于的引领程序,同时其中早已有用于KS8695芯片的建构目标,目标的配备名称是cm4008,所以我们自由选择在原本的建构目标上展开改建,将u-boot重制到我们的路由板上。

关于u-boot的重制的文章网上很多,重制方法在此就仍然赘述,牵涉到到的主要文件与构建的功能如表格2右图:文件名改动解释includeconfigscm4008.hu-boot特定平台的配置文件includeasm-armarch-ks8695platform.h硬件平台的参数设置boardcm4008.cu-boot初始化设置boardflash.cu-boot中flash的模块部分driversks8695eth.cu-boot中用于KS8695的驱动表格2Linux改动涉及文件解释必须特别注意的是u-boot中自带的KS8695芯片的网口驱动是用于路由板上的LAN口[5],而不是WLAN口,因而在iTunesLinux系统时网线应当挂在LAN口上。同时,该驱动程序在废黜网口时有个错误,不会造成除第一次iTunes文件长时间外,先前的iTunes文件都再次发生错误,必须手动改动源文件加以修正。将串口波特率设置为115200,启动u-boot。

通过设置u-boot环境变量,改动串口波特率为38400,设置路电板的IP地址和PC机端的IP程序。


本文关键词:自制,廉价,的,Arm9,开发平台,改建,系统,的,开元7818网页版

本文来源:开元7818网页版-www.ellytvynova.com

开元7818网页版(中国)有限公司官网微信扫码 关注我们

  • 24小时咨询热线062-66250350

  • 移动电话13494792436

Copyright © 2006-2023 www.ellytvynova.com. 开元7818网页版科技 版权所有 地址:湖北省随州市邓州市超事大楼68号 ICP备43990106号-3 XML地图