各位skip 大神惹不起,怎样才能在DSP的一级引导程序前加入延时?急用!!!

如果从keil里看了c语言的反汇编代码然后根据晶振和指令计算延时的时间这样虽然非常的准确但是相当的麻烦而且容易搞错,我这里介绍一个最简单的方法.可以验证你的延时函数 这里用一个例程详细介绍一下。 过程参考如下:在编译器下建立一个新项目,也可以利用已有项目。此过程中需要注意,单片机晶振的选择,因为for循环里指令的执行时间和晶振有直接关系,本例中晶振使用11.0592M。
编写一段关于延时的函数,主要利用for循环,代码如下:void delay_ms(unsigned int ms){
for(i=0;i&i++)
for(j=0;j&200;j++);
for(j=0;j&102;j++);
}}其中ms是输入参数,如果输入1,就是要求程序延时1ms。j变量是调整程序运行的时间参数。调整j的数值,使1次循环的时间在1ms。将此程序编译通过,然后利用软件仿真,调整时间。下面这个sec就是程序运行到现在的这一行所用的时间。 两次时间差就是延时函数使用的时间,如果与1ms相差比较多,用户可以调整j参数的值,使延时时间尽量接近1ms。如增大j的值for(j=0;j&105;j++);
此方法得出延时函数,在晶振不同的情况下,延时时间会不准。软件调试结果,这个程序的延时时间为:1.01779ms,一般的单片机系统中都可以应用。下面来说说汇编的传统计算方法:指令周期、机器周期与时钟周期
指令周期:CPU执行一条指令所需要的时间称为指令周期,它是以机器周期为单位的,指令不同,所需的机器周期也不同。
时钟周期:也称为振荡周期,一个时钟周期 =晶振的倒数。
MCS-51单片机的一个机器周期=6个状态周期=12个时钟周期。
MCS-单片机的指令有单字节、双字节和三字节的,它们的指令周期不尽相同,一个单周期指令包含一个机器周期,即12个时钟周期,所以一条单周期指令被执行所占时间为12*(1/)=1us。了解了上面这些我们来看一个例子;============延时1秒子程序========================DELAY_1S:延时子程序,12M晶振延时1.002035秒MOV R4,#10 L3: MOV R2 ,#2001指令周期L1: MOV R3 ,#2491指令周期L2: DJNZ R3 ,L22指令周期DJNZ R2 ,L12指令周期DJNZ R4 ,L32指令周期RET
2指令周期;循环体延时时间: [(249*2+1+2)*200+1+2]*10*12/.002030s;加上ACALL指令和第一条mov指令以及最后一条RET指令算出来整个函数的时间为1.002035s;================================================通常选用的是11.0592MHZ的晶振:[(249*2+1+2)*200+1+2]*10*12/.66666...S汇编延时子程序的延时计算问题对于程序DELAY:
MOV R0,#00HDELAY1: MOV R1,#0B3HDJNZ R1,$DJNZ R0,DELAY1查指令表可知 MOV一个机器周期,DJNZ 指令需用两个机器周期,而一个机器周期时间长度为12/11.0592MHz,所以该段程序执行时间为:((0B3×2+1+2)×256+1)×12÷0.2789mS第一层:DJNZ R1,$:执行了B3H次,一次两个周期,所以为0B3×2;第二层:MOV R1,#0B3H为一个周期,DJNZ R0,DELAY1为两个周期,这样循环一次就是0B3×2+1+2个周期;第二层的执行次数本来是255次,但因为赋首值为0,而DJNZ是先减1,再比较的,所以就应该是256次。这样的话,整个循环执行完应该是(0B3×2+1+2)×256+1次。再加上开始赋值这一句,就是((0B3×2+1+2)×256+1)了还说明一下:nop指令或者_nop_(); 函数占一个机器周期,在stc单片机的12T模式下一个机器周期是一个振荡周期的12分频,如果你的晶振是12MHZ,那你的一个机器周期就是1微秒.一个nop指令的执行时间也就是1US当在6T模式(下载的时候可选择模式)下12M晶振的时候,一个nop就是0.5US了.玩转单片机单片机|汇编|嵌入式投稿、合作、赞助,请邮件:玩转单片机(mcu168) 
 文章为作者独立观点,不代表微头条立场
的最新文章
什么是电池的容量呢?计量单位以“安时”计Ah,以1安培A的电流放电1小时,得到的是1安时(Ah)容量。假设平相信对做硬件的工程师,毕业开始进公司时,在设计PCB时,老工程师都会对他说,PCB走线不要走直角,走线一定要1、复位STM32F支持三种复位形式,分别为系统复位、电源复位和备份区域复位。1.1 系统复位当以下事件中的有经验的电源开发者都知道,在PCB设计过程中便对EMI进行抑制,便能够在最大程度上在最后的过程中为EMI抑制(编者按:本文从技术和就业经验等角度,为即将进入嵌入式开发的工程师们详细讲述嵌入式的概念、嵌入式开发之间的异作为工程师应该经常与接口打交道,接口的完整定义是,实体把提供给外界的一种抽象化物,用以由内部操作分离出外部沟本文章是关于ADC/DAC设计经典问答,涵盖时钟占空比、共模电压、增益误差、微分相位误差、互调失真等常见问题本文着重介绍三个IGBT驱动电路。驱动电路的作用是将单片机输出的脉冲进行功率放大,以驱动IGBT,保证首先看看继电器的驱动这是典型的继电器驱动电路图,这样的图在网络上随处可以搜到,并且标准教科书上一般也是这样的单片机学习对许多没有实际接触学习过单片机的人仍是一件困难的事。该不该学习单片机?单片机学习难不难?如何开始单MCS-51是指由美国INTEL公司生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,80Wi-Fi技术早已被个人电脑、手持设备(如pad、手机)等终端广泛使用,我们的生活也离不开这项无线连接技术。串行通讯一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。串行通讯的特点是:数据位传送,传按位顺序进天线是一种变换器,它把传输线上传播的导行波,变换成在无界媒介(通常是自由空间)中传播的电磁波,或者进行相反的一、概述影响单片机系统运行稳定性的因素可大体分为外因和内因两部分:1、外因射频干扰,它是以空间电磁场的形式传一、USART通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部单片机的正常运行的前提,硬件是一方面,另一方面就是单片机需要执行的程序。大家都知道单片机会执行写好的程序,但存储器是记忆信息的实体,是数字计算机具备存储数据和信息能力,能够自动连续执行程序,进行广泛的信息处理的重要基篇文章对于上拉电阻在单片机当中的重要作用进行了细致的介绍,相信在阅读过本篇文章之后,大家对于为什么要在单片机本文让我们来学习单片机必须具有的硬件电路(外围功能电路)。这样,下一次就可以将挑战一个实际单片机的运行了!1.在电路中没有任何功能,只是在PCB上为了调试方便或兼容设计等原因。2.可以做跳线用,如果某段线路不用,直本文开始为您介绍单片机入门知识,本篇主要介绍各种单片机的基础概念及单片机特点相关内容。个人阅读建议:亲可以根技术人员是个特殊的群体,我接触过的HR人都这样讲,都来问我这样一个技术出身的管理者一个问题“技术人员拿么难沟计算机工作时,是在统一的时钟脉冲控制下一拍一拍地进行的。这个脉冲是由单片机控制器中的时序电路发出的。单片机的关于程序的执行,以前想的不多,没有意识到一个程序在运行时,从哪里读指令,数据又写在哪里。最近在看CSAPP时前面我们介绍了延时程序,但这还不完善,因为,我们只知道DJNZ R6,D2这句话会被执行62500次,但是执单片机就是个小计算机,跳蚤虽小不但五脏惧全,有时还跳得很高呢!自然,大计算机少不得的数据存储系统,小不点的单1、眼图基本概念 1.1 眼图的形成原理 眼图是一系列数字信号在示波器上累积而显示的图形,它包含了丰富的信息我在网上游逛了很久,也看过不少源程序了,没有发现这种按键处理办法的踪迹,所以,我将他共享出来,和广大同僚们共相信很多人都对单片机与计算机或者芯片通信时,RXD与TXD如何连接比较困惑。因为在一些电路图中,有的是直连接一、D/A转换器的基本原理及分类T型电阻网络D/A转换器 :二:输出电压与数字量的对应关系三:D/A转换器的我们常接触到晶体三级管,对它的使用也比较熟悉,相对来说对晶体场效应管就陌生一点,但是,由于场效应管有其独特的经过一段时间的学习,对于DSP有了一定的自我见解了。本人是大学专业是自动化,用的最多的是51单片机,学习最多最近一段时间在学习STM32F1,一开始接触时觉得比较难,后来间间断断用了几个星期熟悉后,发现使用STM32单片机的选型是一件重要而费心的事,如果选型得当,则做出来的产品就会性价比较高,且工作稳定;反之,则可能会造成1、定义的变量不要太多。低128位为用户定义变量的存放区域(默认时),也可以把变量放在高128位,但容易出错谈到内存,我们都会想到PC,对于单片机或者arm来说也是存在内存的,简单的理解是:内存嘛……就是存放东西的地(一)先声明一个概念,裸编程,我创造的名词,指的是在裸机上编写程序,裸机,在单片机领域就是指带着硬件的单片机需要掌握哪些技能需要了解并使用过几款常见的单片机。需要熟悉常见的硬件接口譬如UART、SPI、I2C需要了解1.取指译码执行模型:首先我们来看看单片机是如何工作的,我们拿电脑的主板来作为对比,我们买电脑时,总是追求处寻找一份好工作并不难,月间的一个多月时间里,我走访了全国各地的十几所大学,接触了300多我是做单片机的,CPLD用过,FPGA没有弄过,不会Verilog,我用的是VHDL。我本科是学的计算机,但近年来,随着科学技术的不断完善,推动了单片机的发展速度,也进一步促进了单片机在各个领域内的应用。作为微型控制经验之一:用“软件陷阱+程序口令”对付PC指针的弹飞当CPU受到外界干扰,有时PC指针会飞到另一段程序中,或引言:FPGA号称“万能芯片”,从技术角度讲,它是可编程的产品,在不改变芯片本身硬件组成的情况下可反复使用。单片机以其极高性价比和相对简单的开发,一直以来受到了开发者的欢迎,从51到现在各种ARM内核的产品,各种各样强烈要求学习单片机的同志们看完:前言: 近来在论坛总是见到一些菜鸟们在大叫:“我想学单片机”,“我要学单片机某天某日某产房,你诞生了(power up , 上电运行),结果你不哭,医生把你提起来,屁股上狠狠一巴掌,你这是单片机初学者经常问的问题。对于这个问题,我想没有人敢下定论。因为每一种单片机各有所长,都适用于其所能充分一个单片机应用系统的硬件电路设计包含两部分内容:一是系统扩展,即单片机内部的功
能单元,如ROM、RAM、mcu168专注单片机、嵌入式,学习资料、最新设计、案例等。带您一路玩转单片机!热门文章最新文章mcu168专注单片机、嵌入式,学习资料、最新设计、案例等。带您一路玩转单片机!每个时代都有一群爱“玩”的人,比如瓦特玩出了蒸汽机,……
近年来,以智能手机、智能硬件为代表的电子产品技术飞速……
智能手机逐渐成为了现代生活中必不可少的一部分,人们也……
在电子行业,电子元器件最常见不过,而且大多给人毫无生……
演讲人:吴际时间: 10:00:00
演讲人:陈雄基时间: 10:00:00
演讲人:李桢时间: 10:00:00
预算:小于¥1,000预算:大于¥100,000
多核DSP的以太网远程程序加载方法
[导读]摘要:为了解决工业远程控制设备的软件更新带来的成本和效率问题,在研究了以TMS320C6670为核心的DSP系统的结构和程序启动的基础上,提出了基于以太网的DSP程序远程加载方法。该方法主要基于BOOTP协议的广播和以太网
摘要:为了解决工业远程控制设备的软件更新带来的成本和效率问题,在研究了以TMS320C6670为核心的DSP系统的结构和程序启动的基础上,提出了基于以太网的DSP程序远程加载方法。该方法主要基于BOOTP协议的广播和以太网UDP协议实现。实践表明,该加载技术灵活可靠,为远程控制系统的调试和更新提供了便利。
随着科学技术的不断进步,网络通信技术和DSP技术飞速发展,许多智能仪器仪表、工业远程控制设备等能够接入到互联网,实现网络化、智能化的管理和控制。在这些设备中,有很多是以DSP为核心的设备,这些设备的程序代码的引导启动是一个很重要的问题。传统的DSP设备的程序加载方法是通过硬件仿真器来完成的,但在实际工业应用中,这种方法存在仿真器携带不便携和设备软件维护更新不方便等缺点。因此基于网络的DSP软件更新就是一种很好的解决方案。
文中介绍了DSP程序加载的基本原理,以TI公司的多核DSP
TMS320C6670为例,实现了一种基于以太网BOOTP协议的DSP程序加载技术,利用网络通信实现DSP程序的动态加载,提高软件更新效率。
这里使用传统的PC机作为下载服务器,以TMS320C6670为核心的DSP设备作为客户机,客户机启动后,不知道任何网络信息,需要通过TCP/IP协议的相关协议IP、UDP、BOOTP提供的功能来实现信息的传播。客户机通过BOOTP协议获得所需相关网络信息,然后通过UDP协议包获取待执行的引导程序,并运行之。
1.1 IP协议和UDP协议
IP(Internet Protocol,互联网协议)是TCP/IP中网络层协议。UDP(User Datagram
Protocol,用户数据报协议)是TC尸/IP传输层的无连接协议。由于完整的TCP/IP协议将占用大量系统资源,所以在高可靠的局域网中,可以采用UDP协议发送数据包。
1.2 BOOTP协议
客户机启动时,需从网络上获取三种信息:本机的IP地址、下载服务器的IP地址、待下载的运行程序。
BOOTP(BOOTstrapping
Protocol)能为无盘机获得启动所需的所有信息。在发送BOOTP请求之前,BOOTP客户既不知道自己的IP地址,也不知道服务器的IP地址,BOOTP必须通过广播方式发送请求。BOOTP服务器收到请求后,根据以太网地址,从下载数据库中查出相应应答表项,构成BOOTP响应,再应答之。对于服务器而言,此时客户机的IP地址已经知道,可以直接应答,不必用广播方式。
BOOTP报文交易就是请求,响应一个来回,交易成功与否只有客户知道,因此当服务器关闭或网络工作不正常时,将导致交易出错或报文丢失,客户需进行重传处理(每3
s重传一次)。当有多个响应(多服务器响应或BOOTP应答延时),可设一个标志,客户只接受并处理第一个响应,其余都抛弃。
1.3 BOOTP包格式
BOOTP包格式如图1所示。
包操作码/消息类型:1=BOOTREQUEST(引导请求),2=BOOTREPLY(引导应答)。硬件地址类型:1=10M以太网。硬件地址长度:6是10M以太网。跳跃点数:用于跨网引导,由路由器使用。事务ID:一个随机数,用来匹配引用请求和应答。客户端引导所用秒数:由客户端填写,客户端引导开始后的过去的秒数。客户端IP地址:BOOTP客户将此置为0,要求服务器应答本客户的IP地址。你的IP地址:BOOTP客户将此设置为0。服务器IP地址:由服务器在引导应答返回。网关IP地址:用于跨网引导时使用。客户端硬件地址:客户填充本机MAC地址。服务器主机名:用于跨网引导时使用。引导文件名:BOOTP请求置为0,服务器应答时将由BOOTPTAB填充一个特定的运行程序路径名。标准选项域:此域用于BOOTP客户从服务器获得一系列标准选项,例如网管IP地址、网关IP地址、DNS域名服务器IP地址、客户机名等。
1.4 以太网数据包格式
以太网请求包格式如图2所示。
DIX以太网中包含目标MAC地址(一般为FF:FF:FF:FF:FF:FF)和源MAC地址(即设备本身MAC地址)。IPV4中包含版本号、长度、协议、校验和及源地址IP和目标地址IP(这里IP地址均为0.0.0.0)。UDP中包含源端口、目标端口、长度及校验和。
以太网引导包格式如图3所示。
2 硬件设计
系统采用多核TMS320C6670 DSP芯片作为主控芯片,其内置千兆网络协处理器,所以外围电路只需增加物理层芯片。结构框图如图4所示。
3 下载实现过程
客户机:当硬件复位时,在RESET信号上升前,配置好开发板上的拨码开关SW3、SW4、SW5、SW6,确定TMS320C6670芯片为以太网引导方式。RBL(ROM
BootLoader)配置SerDes,SGMII和PASS准备接收来自以太网接口的引导包。RBL配置发送通道发送以太网请求包(每3 s发送一次)。
服务器即PC机端用Wireshark软件作为抓包软件,以太网请求包广播到服务器端,见图5,从中可以看出间隔约3 s多客户机广播一次BOO TP包。
图6为以太网请求包主要内容,与原理中描述的以太网请求包格式是一致的,包含DIX以太网、IPV4、UDP协议和BOOTP协议包。
图7为接收到的BOOTP包内容。
服务器此时收到了BOOTP协议包,获得了客户机的MAC地址,此时要进行ARP(Address Resolution
Protocol,地址解析协议)地址绑定。在完成上面两步后,通过上位机通信程序将帧文件发送给客户机。图8为截取的UDP发送图。
图9为以太网引导包内容。
当帧文件发送完毕后,客户机根据接收来的数据进行处理,找到数据部分,进行启动加载。
在CCS开发环境下生成的目标文件是*.out,即通用目标文件格式(COFF)。该文件可以在CCS开发环境下通过仿真器下载到DSP目标板中运行调试,但该代码文件并不是DSP中实际运行的程序代码,需用Hex工具(hex6x.exe)进行转换成引导表文件,然后再用bconvert64x.exe和bootpacket.exe下具将引导表文件转换成以太网引导格式数据文件,并封装成帧文件。
文中介绍了一种基于以太网的DSP引导程序加载技术,该技术在多核高性能DSP系统的程序引导及系统的软件更新等工程应用领域具有独特的优势和较好的应用前景。目前已成功运用在网络视频监控系统的软件更新。实践表明,该引导加载技术灵活可靠,为远程控制系统的调试和更新提供了便利。
美国国家超级计算应用中心(National Center for Supercomputing Applications)正计划推出一个包含380PB磁带存储容量和由17000个SATA驱动器组成的25PB在线磁盘存储的存储基础设施。这个大......关键字:
日前 IEEE 以太网络工作组(IEEE Ethernet Working Group)对 IEEE 802.3 标准做出了修订,为其加入了 100Gbps 规格(1Tbps 还要再等一下啦),希望未来它能在车内网络、数据中心网络等领域有更......关键字:
今天的网络世界正处于变革期,传统的网络架构正在被软件定义网络SDN和网络功能虚拟化NFV等新趋势所颠覆。近日,Dell'Oro发布了最新的2-3层以太网交换机市场调查报告。该报告显示,2015年第一季度,以太网交换机市场规......关键字:
21ic讯, RS
公司宣布,即日起在其工业网络产品组合中增添Brainboxes最新的ED系列以太网I/O模块。这种新模块可使网络输入和输出设备、传感器、激励器和控制器,无论在本地还是通过互联网均能轻松完成工作。全新系列......关键字:
虽说奥巴马看起来是个实实在在的科技发烧友,但其实住在白宫的他一直有口难言,因为这栋美国总统官邸的科技配置实在是太古老了。
......关键字:
导语:你有没有努力去当最后一个人?这个世界上到处都是半途而废的人,你能坚持到最后吗?
最近在看柴静的电视专题节目《看见》,她还是那么瘦弱沉静,闪动着平和却让人不能拒绝的目光,用她一贯的执著注视着这个时代......关键字:
Smoon:能自动调节容量的智能勺子很多自学成才的烹饪爱好者都不会严格遵守菜谱上的原料配比,而是本着&差不多就行&的态度。做菜的中庸哲学在中国人身上体现得淋漓尽致:我们喜欢说&少许&、&amp......关键字:
“你可能期望有一家公司会宣布类似这样的里程碑事件,沉浸在令人难以置信的成就中――但不会是微软。它选择了沉默是因为要面临公众对离岸控股1083亿美元收入的监督。而这些离岸资金竟然达到全部利润的41%,因此会受到来自华盛顿的查税压力。”
......关键字:
我 要 评 论
热门关键词相关热词搜索:捷配欢迎您!
微信扫一扫关注我们
当前位置:&>>&&>>&&>>&两类DSP芯片的引导过程分析
摘要:详细分析了TI公司和两类芯片的系统引导特点。在了解机理的基础上,叙述了工程设计中创建系统引导表的具体步骤,给出了创建步骤中所需的键接文件范例,并进行了说明。
TMS320C40 TMS320V 系统引导 引导表
目前,DSP芯片正逐渐应用到设计中,其中应用最广泛的是TI公司生产的DSP系列产品。笔者在工程项目的开发中,对TMS320C40和TMS320VC5402(以下简称C40和C5402)进行了系统的研究,并成功的实现了DSP的脱机运行。本文希望通过对C40和C5402两种芯片系统引导的描述使大家了解设计DSP系列引导的步骤,能够利用DSP设计自己的设备。
1 C40和C5402的系统引导机理
TI公司的每一种DSP产品,都为用户设计了多种系统的引导方式,如串口、并行加载、HPI加载等。C40和C5402的引导方式如表1所示。表1 C40和C5402的引导方式
程序执行地址
HPI口引导模式(由INT2引脚识别)
串行8位EEPROM引导模式(INT3)
并行引导模式
标准8位串行口McBPSP1
A000 0000H
标准16位串行口McBPSP2
I/O口引导模式
HPI口引导模式(由入口点进行识别)
通讯口引导方式
在工程中,使用最广泛的EEPROM并行加载方式。它又分为8位数据宽度和16位数据宽度两种,笔者采用的是8位数据宽度的并行加载方式。需要注意的是C40的数据宽度是32位,引导表中数据存放的原则是低字节在低地址。C5402的数据宽度是16位,引导表中数据的存放原则是高字节在低地址。
1.1 C40的并行引导模式
C40加电时,芯片塞满到ROMAN引脚为高电平,进入微处理器模式。再检测IIOF3~IIOF0引脚电平,决定系统的引导方式和选择并行引导的始地址。执行程序引导程序时,程序和数据存取等时间可以设置为最长7个等待周期。若软件延时不够用,则需要辅助硬件延时等待。程序引导完毕后,会在IACK引脚产生脉冲,使引脚可以作为中断引脚使用并转入到程序的入口地址开始执行程序。
C40由中断引脚的电平决定系统引导后的程序执行地址,或决定是否由通讯口进行程序的加载。采用H作为主程序的入口地址,即将一片地址设计为H~0030 7FFFH。在系统引导时,需维持IIOF3~IIOF0四个引脚电平为1101。
下面以IIOF2引脚和IIOF1引脚为例,叙述一下系统引导前后的中断引脚的处理过程。图1电路是IIOF2引脚的外围处理电路。在系统加电时,D31A的/PRE=0、/CLR=1,置位端有效,所以Q=1、/IIOF2=1。加电完毕后,/PRE=1、/CLR=1,此时无/IACK信号,Q=1、/IIOF2=1,C40开始程序的加载工作。当C40程序加载完毕时,IACK引脚会产生一个脉冲,Q=D=0,/IIOF2=/INT2。C40会转入程序的入口地址执行程序,此时D触发器电路的工作已经完成,C40此时可以处理中断信号。图2电路是IIOF1引脚的外围处理电路。系统引导时,要求/IIOF1引脚电平为低电平。
1.2 C5402并行引导模式
C5402加电时,如果芯片检测到MP/MC引脚电平为低电平,系统从0FF80H开始执行代码。此处有一个分支指令(厂家编程设置的),可以跳转到引导程序的开始地址(0F800H)。这个程序可以在引导之前设置CPU状态寄存器的初始值。中断被全局禁止,OVLY设置为1,程序和数据存取等待时间被设置为7个等待周期,外部内存块被设置为4K的WOROS(16BIT),然后开始程序的引导。
当C5402检测到INT2引脚为高电平、INT3引脚为高电平,即两个引脚都无效时,C5402会转到并行引导方式。并行引导方式是通过扩展的内存接口从数据地址空间读取所需的引导表,再将代码传送到程序存储区。并行引导既支持8位的数据宽度,也支持16位的数据宽度。软件可编程等待寄存器(SWWSR)和块切换控制寄存器(BSCR)都可以在这两种模式中得到设置。
C5402数据存储区、程序存储区和I/O地址空间,用/DS、/PS和/IS三个引脚信号区分。系统的引导表设在数据存储区,考虑到C5402内部只有16K×16的双存取RAM(DRAM),因此用于程序加载的EEPROM(EEPROM)中存放的是系统的引导表)可考虑使用28LV256。如果在设计中,使28LV256(+3.3V供电)占用系统的数据空间地址为8000H~0FFFFH,那么,C5402在系统引导时需从系统的数据地址0FFFEH和0FFFFH得到引导表的起始地址8000H。在设计系统引导表时要注意这两个单元的内容。如果设计EEPROM的首地址(系统引导表的首地址)为0C000H,那么数据地址0FFFEH和0FFFFH两个单元要存放C0和00H,也就是引导表的首地址。在设计中也可以使用其它EEPROM或FLASH,如29LE010(128K×8BIT),但要正确配置它在系统中的地址。引导表的首地址(即EEPROM的在系统中的首地址)是通过系统数据地址0FFFEH和0FFFFH决定的,可以是08000H~0FFFDH之间的任意地址,但要保证能够存储系统引导表。2 建立系统引导表的步骤
程序经过仿真无误以后,就要建立引导表,使系统能够脱机运行。下面介绍建立系统引导表的步骤:
(1)编译文件。编写完程序代码以后,对源程序进行编译,生成.obj文件,对于C5402,编译时要采用-V548的编译描述符。
(2)链接文件,将.obj文件生成.out文件。.out文件中应包括初始化的段落。如.text,.const,.cinint等。以上两步在仿真时,也需要执行,以便得到仿真用的.out文件。
(3)使用数制转换工具生成.HEX文件或.BIN文件,C40使用的数据转换工具为hex30.exe,C5402使用数制转换工具编写命令文件,命令文件的编写很重要,下面分别例举了C40和C5402系统引导的两个CMD命令文件。
例1:C40系统引导的CMD文件
myfile.out /*要进行转化的COFF文件名*/
-i /*建立INTEL十六进制文件的输出*/
-image /*产生ROM所指出的内存映射*/
-o n_t_fcom.hex /*输出的文件名*/
-map n_t_hex.map /*输出的MAP文件名*/
-romwidth 8 /*EEPROM的数据宽度*/
-cg H /*全局数据总线控制字*/
-cl 3e3fbfd0H /*本地数据总线控制字*/
-datawidth 32 /*数据宽度*/
-memwidth 8 /*的宽度*/
-boot /*将所有的输入文件创建引导表*/
-bootorg 0000H /*EPROM的0000H,系统的H*/
-ivtp H /*IVTP指针的初始值*/
-tvtp H /*TVTP指针的初始值*/
-iack 0300000H /*IACK指令的响应地址*/
-e H /*程序的开始执行地址*/
ROMS /*ROM的映射范围*/
EPROM:org=h,len=8000H
例2:C5402系统引导CMD命令文件
Myfile.out /*要进行转化的COFF文件名*/
-e 0300H /*程序运行的入口点*/
-i /*建立INTEL十六进制文件的输出*/
-boot /*将所有的输入文件创建引导表*/
-bootorg 0000H /*EPROM中引导表的始地址*/
-memwidth 8 /*EEPROM的数据宽度是8位*/
-o myfile.hex /*输出的文件名*/
下面给出操作符的几点说明:
(1)-bootorg指定引导表的地址,注意这里使用的是0000H,.HEX文件的始地址就是0000H。在C40中,EEPROM28C256的0000H地址单元,在系统中地址是H。若改为-bootorg H,在用打开.HEX文件时,可以看到起始地址是H,若将.HEX文件烧到EEPROM中,需要修改烧录芯片的起始地址,比较麻烦。但你可以将.HEX文件转化为.BIN文件,则地址就不必修改。
(2)输出文件的格式
-a 输出ASCII码的十六进制文件
-I 输出INTEL十六进制文件
-m1 输出Motrorola的S1数据格式文件
-m2 输出Motorola的S2数据格式文件
-m3 输出Motorola的S3数据格式文件
-t 输出TI的数据格式文件
-x 输出Tektronix数据格式文件
(3)检查.HEX文件正确与否,可以查看MAP映射文件,在.MAP文件里列出了.HEX文件中的一些具体配置。如32BIT数据位的排放顺序,即4个字节的排放顺序;系统引导表的参数:引导表的首地址、程序入口点、各个寄存器的初始值等;源程序中各段的起始地址、大小以及宽度等信息。对照它,就可以确定内存资源是否得到了合理的配置和有无地址冲突。
以下是C40 MAP文件的举例:
*********************************************
TMS320C3x/4x Hex Converter Version 5.00
********************************************
Fri Jun 8 09:47:33 2001
INPUT FILE NAME:&n.out&
OUTPUT FORMAT:Intel
PHYSICAL MEMORY PARAMETERS
Default data width:32
Default memory width:8(LS--&MS)
Default output width:8
BOOT LOADER PARAMETERS
Table Address: ,PAGE 0
Entry Point:
Global Memory Configuration:
Local Memory Configuration: 3e3fbfd0
Interrupt Vector Table Pointer(IVTP):
Trap Vector Table Pointer(TVTP):
IACK Location:
OUTPUT TRANSLATION MAP
-------------------------------------
307fff Page=0 Memory Width=8 ROM Width=8 "EPROM"
-------------------------------------
OUTPUT FILES:n_t_fcom.hex [b0..b7]
CONTENTS:3013ff BOOT TABLE
intvect:dest= size= width=
.text:dest= size=0000048a width=
.data:dest= size= width=
..00307fff FILL =
(4)烧录芯片。C40可以直接将生成的INTEL格式的.HEX文件烧到28LV256中。或将十六进制的文件用hexbin.exe转化为二进制的.BIN文件,再烧录到芯片中。对于C5402,还需要手动添加EEPROM在系统中的起始地址。如果采用28LV256(32K×8BIT),引导表的首地址为8000H,那么生成的.HEX文件用芯片加载到烧录器软件的内存后,手动修改28LV256的7FFEH和7FFFH单元(即系统的FFFEH和FFFFH单元)为80和00H,再绕到芯片中。
以上步骤的操作都是在DOS环境中执行的。新版本的DSP开发软件可以在WINDOWS环境中使用,其原理是一样的,这里不再多述。
源程序数据的存储格式(8位并行装载)如表2所示,当烧录时可以对比一下。表2 源程序数据的储存格式
C40引导程序
C5402引导程序表格
内存宽度(H)32全局数据总线控制字32本地数据总线控制字32第一段的存储空间范围32第一段程序的目的地址32程序代码(1)32……程序代码(N)32……最后一段的存储空间范围32最后一段程序的目的地址32程序代码(1)32……程序代码(N)32H程序块装载结束标志IVTPTVTPIACK指令的响应地址H
C8AAH16软件可编程等待状态寄存器的初值SWWSR16块切换控制寄存器的初值BSCR16XPC16PC16第一段的存储空间范围16第一段的目的(XPC)16第一段的目的地址(PC)16程序代码(1)16……程序代码(N)16……最后一段的存储空间范围16最后一段的目的(XPC)16最后一段的目的地址(PC)16程序代码(1)16……程序代码(N)160000(指示引导表格的结束)
本文详细介绍了C4X和C54XX两类DSP芯片系统引导的详细设计步骤,其它型号的DSP也大同小异,如C3X与C4X类似。笔者希望通过共享系统引导的经验,使系统引导不再成为DSP设计中的最大障碍,从而加速DSP的抗推广和使用。
技术资料出处:jzbox
该文章仅供学习参考使用,版权归作者所有。
因本网站内容较多,未能及时联系上的作者,请按本网站显示的方式与我们联系。
【】【】【】【】
上一篇:下一篇:
本文已有(0)篇评论
发表技术资料评论,请使用文明用语
字符数不能超过255
暂且没有评论!
12345678910
12345678910
12345678910
定位是感知应用的一个重要属性。在室内环境中,如果位置信息可用并非常可靠,有更多的应用场景可以实现的。行人航位推算(PDR) 就是这样一种技术,在室内环境中可提供行人航位信息并提高定位可靠性。惯性传感器、磁力计和压力传感器是航位推算应用中必不可少的传感器组件,用之可大幅[][][][][][][][][][]
IC热门型号
IC现货型号
推荐电子百科

我要回帖

更多关于 跳大神 的文章

 

随机推荐