S3C44B0X-VxWorks-BSP-移植笔记

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Amine思创黄金开发板S3C44B0XVxWorksBSP移植笔记版本1.0思创黄金开发板版本:1.0S3C44B0XVxWorksBSP移植笔记日期:2004.07.18共享Amine,2020页2of36修改历史日期版本描述作者2004.08.121.0创建版本Amine思创黄金开发板版本:1.0S3C44B0XVxWorksBSP移植笔记日期:2004.07.18共享Amine,2020页3of36目录1.介绍51.1目的51.2范围51.3定义和缩写51.4参考51.5声明52.开发环境描述52.1思创黄金开发板S3C44B0X62.2Tornado2.262.3ARMSDTv2.5162.4FlashProgrammer63.设计目标74.关键主题74.1异常处理74.1.1问题分析74.1.2解决方法1(eking)94.1.3解决方法2(d3000)104.1.4解决方法3114.1.5其他124.2CPU寄存器124.3仿真和写Flash程序的差别124.4时钟134.5串口驱动134.5.1修改134.5.2FIFO144.5.3连接Console和targetserver144.6缓存[Cache]154.6.1修改154.6.2测试174.7网络驱动184.7.1修改184.7.2寄存器测试194.7.3网络初始化分离194.8TFFS驱动204.8.1Socket204.8.2MTD204.8.3格式化204.8.4加载214.9目标机FTP服务启动214.10bootShell命令扩展224.11简单VxWorks应用23思创黄金开发板版本:1.0S3C44B0XVxWorksBSP移植笔记日期:2004.07.18共享Amine,2020页4of365.详细开发过程245.1建立开发环境245.2选择近似BSP模板245.3让最简bootRom运行起来255.4丰富bootRom功能296.操作说明296.1bootRom启动296.2加载VxWorks306.2.1TFFS自动加载316.2.2TFFS手动加载316.2.3网络自动加载316.2.4网络手动加载326.3VxWorks启动337.TIPs358.TODOs359.?s3510.附件3510.1代码目录3610.2映象目录3610.3其他36思创黄金开发板版本:1.0S3C44B0XVxWorksBSP移植笔记日期:2004.07.18共享Amine,2020页5of36S3C44B0XVxWorksBSP移植笔记1.介绍1.1目的主要从几个关键主题描述S3C44B0XVxWorksBSP定制工作,对整个过程作了详细描述。另外提供一些开发中需要使用的参考资源,包括手册、文档、代码和工具等。1.2范围通用于S3C44B0X硬件板,特别适用于思创S3C44B0X黄金开发板。1.3定义和缩写ARM–AdvancedRISCMachinesTDMI–T:支持16位压缩指令集ThumbD:支持片上DebugM:内嵌硬件乘法器[Multiplier]I:嵌入式ICE,支持片上断点和调试点BSP–BoardSupportPackageJEDECStandard–FlashEEPROMPinoutsandcommandsetsSWI–SoftwareInterruptInstructionFIQ–FastInterruptreQuestdiabbe–be后缀表示BigEndian,无后缀表示LittleEndianBSP_VTS–BSPValidationTestSuite1.4参考陈智育(Amine)等,VxWorks程序开发实践,人民邮电出版社,2004.05Amine,MFC5272_BOOTROM开发笔记,2003.06Amine,EDW嵌入式论坛精华集,电子产品世界论坛,2004.06eking,打造你的44b0BSP,,44B0x的BSP是如何调成的,应用系统开发详解──基于S3C4510B的系统设计思创S3C44B0黄金开发板手册1.5声明保持完整性,可以自由使用本文。特别感谢思创DragonBoy的硬板支持。有任何建议和疑问可以联系Amine@263.net。2.开发环境描述主机操作系统为Windows2000ProfentionalwithSP4.2.1ARM体系结构系统的工作频率在很大程度上决定了ARM微处理器的处理能力。ARM7系列微处理器的典型处理速度为0.9MIPS/MHz,常见的ARM7芯片系统主时钟为20MHz-133MHz,ARM9系列微处理器的典型处理速度为1.1MIPS/MHz,常见的ARM9的系统主时钟频率为100MHz-233MHz,ARM10最高可以达到思创黄金开发板版本:1.0S3C44B0XVxWorksBSP移植笔记日期:2004.07.18共享Amine,2020页6of36700MHz。ARM微处理器的在较新的体系结构中支持两种指令集:ARM指令集和Thumb指令集。其中,ARM指令为32位的长度,Thumb指令为16位长度。Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,可节省30%~40%以上的存储空间,同时具备32位代码的所有优点。Thumb状态下的寄存器集是ARM状态下寄存器集的一个子集。S3C44B0X与S3C4510的比较如下表。S3C44B0XS3C4510用途手持设备嵌入式以太网应用,hubs和routers中断30Interruptsources(Watch-dogtimer,6Timer,6UART,8Externalinterrupts,4DMA,2RTC,1ADC,1IIC,1SIO)向量IRQ中断模式21interruptsources,including4externalinterruptsources分级中断处理2.2思创黄金开发板S3C44B0XS3C44B0X[66M]GCS0-sst39vf160[2M][0x00000000-0x001FFFFF]GCS3-CPLD[0x06000000-0x071FFFFF]0x060Axxxx以太网控制器(rtl8019as)地址空间,控制器A0接在CPU的A5上.GCS5-[0x0A000000-0x0B1FFFFF]0x0A20xxxxCPLD_REG1寄存器D5网卡控制顺的复位控制(NET_RST)0:网卡控制器进入工作态1:网卡控制器进入复位态0x0A21xxxxCPLD_REG2寄存器D2SYSTEM指示灯控制(SYSTEM_STATE)0:SYSTEM指示灯(D200)亮1:SYSTEM指示灯(D200)灭GCS6-SDRAM[8M][0x0C000000-0x0C7FFFFF]上面仅列出了bootRom定制涉及的硬件设置,其他硬件细节请参看思创S3C44B0黄金开发板手册的第3章.2.3Tornado2.2Tornado2.2forARM(TDK-14624-ZC-00和TDK-14634-ZC-00)补丁:t22-cp1-arm、patch-SPRt221-pf-cp1、patch-SPRt221-pf-cp22.4ARMSDTv2.51安装bootRom的仿真调试环境.按手册步骤安装ARMSDTv2.51,并复制Jtag目录,以建立Jtag头和SDT之间的联系.2.5FlashProgrammer安装MacraigorSystemsFlashProgrammerv2.2.3用于将bootRom映象写入Flash存储器中.FlashProgrammer能直接和Jtag头连接,不需要通过Jtag驱动.使用Flash.Programmer前,需要根据硬板的实际情况思创黄金开发板版本:1.0S3C44B0XVxWorksBSP移植笔记日期:2004.07.18共享Amine,2020页7of36作一些设置,也可以获得现成的配置文件(Strong44B0X.ocd).3.设计目标启动TFFS文件系统启动ftp服务器,通过它可操作TFFS文件系统,如应用程序&参数文件可选程序加载方式:TFFS|网络,方便调试和程序发布bootRom程序代码可用于SDT仿真和FlashProgrammer写入bootRom加载到RAM中运行,加载地址0x0C500000应用程序加载到RAM中运行,加载地址0x0C001000第1片flash前512K用于bootrom写入.后512*3K用于建立TFFS文件系统”/tffs0/”,用于存放应用程序文件(vxWorks)和参数文件.使系统状态灯在运行时闪烁。4.关键主题4.1异常处理4510和44b0x的异常相同,支持7种异常,每种异常有固定的优先级和相应的处理器特权模式4.1.1问题分析从S3C4510BSP移植到S3C44B0X,面临的最大问题就是异常处理。不像S3C4510,S3C44B0X不能进行内存remap操作,也就是每个片选的地址范围是定死的,不能由程序员指定。思创黄金开发板版本:1.0S3C44B0XVxWorksBSP移植笔记日期:2004.07.18共享Amine,2020页8of36S3C4510BSP编写时,异常处理入口的填写需要remap操作。系统启动后,会将RAM空间重映射到0地址空间-原来启动Flash存在的地方。异常入口不是硬编码在启动flash中的,而是运行时写入remap后的RAM中的,该操作由excVecInit完成。中断处理流程和中断向量表如下图示意。而S3C44B0X不支持remap,启动flash一直位于0地址,异常入口不能在运行时写入。不使用VxWorks的S3C44b0X通常编程,硬编码将异常入口填写在启动flash开始处,如下所示。这种格式对我们移植工作有启示作用。ENTRY;AsmEntrybResetHandler;Resetldrpc,=(_IRQ_BASEADDRESS+0x04);HandlerUndefldrpc,=(_IRQ_BASEADDRESS+0x08);HandlerSWIldrpc,=(_IRQ_BASEADDRESS+0x0C);HandlerPabortldrpc,=(_IRQ_BASEADDRESS+0x10);HandlerDAbortldrpc,=(_IRQ_BASEADDRESS+0x14);HandlerReservedldrpc,=(_IRQ_BASEADDRESS+0x18);HandlerIRQldrpc,=(_IRQ_BASEADDRESS+0x1C);HandlerFIQ为了将发生异常导入到vxWorks对应的处理函数,我们需要知道vxWorks具体的处理函数。这个分析最先由eking动态跟踪完成。我这儿的分析已经是马后炮,但为了找到使用这几个接口的理由,也使用静态分析方法找到这几个接口的来源。用IDA反编译boortom_uncmp,可以找到excVecInit的汇编实现,如下所示。.text:0C50A948LDRR11,=excEnterTbl.text:0C50A94CMOVR1,#5.text:0C50A950LDRR0,=0xE59FF0F4.text:0C50A954SUBR11,R11,#8.text:0C50A958.text:0C50A958loc_C50A958;CODEXREF:excVecInit+38j.text:0C50A958LDRR3,[R11,#8].text:0C50A95CSUBSR1,R1,#1.text:0C50A960STRR0,[R3].text:0C50A964LDRR12,[R11,#8].text:0C50A968LDRR3,[R11,#0xC].text:0C50A96CADDR11,R11,#8.text:0C50A970STRR3,[R12,#0xFC].tex

1 / 36
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功