F28335BOOTROM引导模式和程序
- 格式:docx
- 大小:1.03 MB
- 文档页数:16
28335使用串口烧写程序串口烧写是一种相对较方便的烧写方式,相对于仿真器或是CAN烧写,相对于仿真器或是USB转CAN的设备,串口是一种非常廉价的烧写方式,而且也不需要安装专业的集成开发环境CCS等,但是不能实现在线调试,因此也只适用于程序基本不用再调整或大批量的场合。
F28335的存储器映射图如下:BOOTROM 是一块8K X 16的只读存储器,位于地址空间0x3FE000~0x3FFFFF,片内BOOTROM在出厂时固化了引导加载程序以的存储映射如下图所示:及定点和浮点数据表,片上BOOTROM1.内BOOT ROM数学表:在BOOT ROM中保留了4K X 16位空间,用以存放浮点和IQ数据公式表,这些数据公式表有助于改善性能和节省SARAM空间。
向量表:CPU向量表位于ROM存储器0x3FE000~0x3FFFFF段内,如下图所示。
复位后,当VMAP=1,ENPIE=0(PIE向量表禁止)时,该向量表激活。
在内部BOOT ROM引导区中能够调用的唯一向量就是位于0x3FFFC0的复位向量。
复位向量在出厂时被烧录为直接指向存储在BOOT ROM 空间中的InitBoot函数,该函数用于开启引导过程。
然后通过通用I/O引脚上的检验判断,决定具体引导模式。
引导模式与控制引脚之间的关系如下图所示:Bootloader特性:Bootloader是位于片上引导ROM中的在复位后执行的程序,用于在上电复位后,将程序代码从外部源转移到内部存储器。
这允许代码暂时存储在掉电不丢失数据的外部存储器内,然后被转移到高速存储器中执行。
引导ROM中的复位向量将程序执行重定向至InitBoot函数。
执行器件初始化之后,bootloader将检查GPIO引脚的状态以确定您需要执行哪种引导模式。
这些选项包括:跳转至闪存、跳转至SARAM、跳转至OTP或调用其中一个片上引导加载例程。
完成选择进程后,如果已完成所需的引导加载,处理器将在所选引导模式确定的应用起点继续执行。
TMS320C6701(以下简称C6701)是一款浮点运算DSP,适用于需要大量运算且实时性要求高的场合,如导航解算等。
在浮点DSP芯片中,C6701是一款可应用于恶劣环境并具有高可靠性的产品,因此该型DSP芯片虽然推出较早,却依然在某些领域具有重要应用价值。
DSP应用程序需脱离开发系统独立工作,在实时DSP应用系统中,通常将应用程序存储在外部非易失性存储器(如FLASH、E EPROM、PROM等)中。
系统上电后,DSP将外部程序存储器的程序代码加载到可高速存取的RAM中,加载完成后自动跳转到零地址开始运行。
因此DSP程序烧写及自动加载是实时DSP系统设计的重要部分。
本文采用的烧写方法不需要格式转换到外部辅助设备,同时DSP程序不再进行二次加载,简化了烧写及程序自动加载的过程。
1 加载方案及电路设计1.1 外围电路设计C6701有三种加载模式:不加载(No Boot)、ROM加载(Rom Boot)、主机加载(Host Boot)。
这三种加载模式由C6701的BOOTMODE[4:0]引脚电平设定,由这5个引脚的设置共同决定使用何种存储空间映射模式。
在恶劣环境及高可靠应用场合中,可使用不加载方式,也可使用程序从ROM中加载到DSP片外高可靠RAM存储器中的运行方式。
FLASH、EEPROM、PROM等程序存储芯片多为8位或16位,在高可靠应用环境中8位比较常见。
本文中设置BOOTMODE[4:0]为01010B,即程序由外部8位程序存储器加载到外部32位SRAM中,LENDIAN引脚接高电平。
外部程序存储器选用FLASH芯片AM29LV160,32位SRAM芯片选用ACT—S512K32V。
FLASH和SRAM芯片与C6701的硬件连接如图1和图2所示。
1.2 加载方案设计在BOOTMODE[4:0]为01010B的设置下,程序由外部8位程序存储器加载到外部32位SRAM中。
C6701具体加载过程为:DMA按默认时序从CE1地址(0x01000000)复制64 KB到零起始地址外部SRAM芯片中,加载完成后,从零地址处开始执行。
张掌柜讲F28335DSP系列之把DSP程序从烧到RAM变成烧到FLASH中的方法一、前言1、首先跟大家强调一点,阅读这个文档的前提是,已经阅读过本店《张掌柜讲DSP系列之CCS4.2 XDS100在CCS4.2环境下仿真编程新手入门.pdf》这个文档,并且熟练掌握里面的操作步骤。
我后面讲解的话语里面,如果有你看不懂的,请回过头去看《张掌柜讲DSP系列之CCS4.2 XDS100在CCS4.2环境下仿真编程新手入门.pdf》。
这个文档我写的比较简练,希望大家看的时候仔细一些。
2、其次,说明一下我写这个文档的原因,很多买家朋友在本店购买TMS320F 28335DSP开发板套装,在RAM程序调试完毕后,将程序固化到FLASH的过程中遇到困难。
因为这些困难是很多朋友都会遇到的,所以我专门写这个文档讲解一下。
3、提醒一下,用仿真器烧写DSP的FLASH程序完成后,给开发板断电,然后拔掉仿真器和DSP开发板之间JTAG的连接,然后再给开发板上电,否则DSP开发板连着DSP 仿真器的时候,无法正常运行FLASH中的程序。
4、最后说明一下,在CCS4的Debug界面下,可以成功的Connect(连接),可以成功的Load program到DSP的片内RAM中,这个就说明DSP仿真器和DSP开发板没有硬件上的损坏或者问题,完全可以放心。
二、把烧写到RAM程序修改成烧写到FLASH的首先,希望大家明白一点,想把一个原来是烧写到DSP的片内RAM的程序修改成是烧写到DSP片内FLASH的程序,不仅仅是修改一个cmd文件就结束了,还需要做其他几个步骤,这里我重点强调一下。
第一步:把28335_RAM_lnk.cmd这个从project中移除,用右键选择28335_RAM_lnk.cmd然后选delate。
如下图1,然后出现对话框,点YES,如图2。
图1图2第二步:右键选择project名称,然后选add file to project,如下图3,然后出现浏览框,在\Code of TMS320F28335 CCS4\v120\DSP2833x_common\cmd这个子文件夹下,选择F28335.cmd,点OK,至此可以在project的文件列表内看到F28335.cmd被添加到project中。
TMS320F28335经验若干要点TMS320F28335开发过程中常见问题总结1.SPI驱动TLE7241E出现返回值不对的问题。
主要是由于时序的不对,导致TLE7241E输入采样时数据还没有建立,所以TLE7241E 收到的命令不正确,所以返回值不正确。
2.SPI驱动EEPROM时,如果用金属物触到clock pin时,能正确运行,否则不能正确运行。
出现次问题也是由于时序的问题,金属物触到clock导致clock出现微小幅度的偏移,导致正好和eeprom 的时序对上,而不用金属物触碰时时序不正常,当使dsp MOSIpin数据发送提前半个周期后,eeprom工作正常。
3.示波器有时会导致显示的波形被消尖,所以用示波器测量时周期不能太大。
TMS320F28335笔记-I2C1.响应和非响应的区别是什么?关于i2c的响应问题:对于每一个接收设备(从设备,slaver),当它被寻址后,都要求在接收到每一个字节后产生一个响应。
因此,the master device 必须产生一个额外的时钟脉冲(第九个脉冲)用以和这个响应位相关联。
在这个脉冲期间,发出响应的从设备必须将SDA拉低并在时钟脉冲的高电平期间保持住。
这表示该设备给出了一个ACK。
如果它不拉低SDA 线,就表示不响应(NACK)。
另外,在从机(发送方)发送完最后一个字节后主设备(接收方)必须产生一个不响应位,用以通知从机(发送方)不要再发送信息了,这样从机就知道该将SDA释放了,而后,主机发出一个停止位给slaver。
总结下,i2c通讯中,SDA 和SCL 都是有主机控制的,从设备只是能够将SDA线拉低而已。
对于SCL线,从机是没有任何能力去控制的。
从机只能被动跟随SCL再说的清楚些:主机发送数据到从机的状态下:主机控制SCL信号线和SDA信号线,从机只是在SCL线为高的时候去被动读取SDA 线。
主机读取从机的数据:主机来发出时钟信号,从机只是保证在时钟信号为高电平的时候的SDA的状态而已。
绝密,DSPF28335实⽤板使⽤教程官⽅声明YXDSP-F28335系列开发板是南京研旭开发⽣产并直接进⾏销售及提供技术服务的产品,暂时未设置任何代理商。
如有其它任何⼚商或代理使⽤“YXDSP-F28335开发套件”的名义进⾏销售,均属于假冒产品。
南京研旭对您购买及使⽤此假冒产品过程中造成的所有损失均不承担任何责任。
官⽅指定销售⽹站:/doc/98ddcdb369dc5022aaea002f.html 中⽂名称:研旭商城官⽅指定销售⽹站:/doc/98ddcdb369dc5022aaea002f.html 中⽂名称:研旭淘宝商城YXDSP-F28335开发板是研旭电⽓科技有限公司⾃主研发的,针对⾼校、研究所和中⼩企业⼩批量设计的需求⽽研发的。
该开发板可以满⾜基于所有F28335开发时的所有应⽤。
YXDSP-F28335开发套件功能强⼤,代码丰富,⽅便使⽤。
在国内,我们的产品已经成为众多的国家级科研院所、⼤学、国家重点实验室、电⼒、通讯、⼯业、医疗类公司指定的开发⼯具。
TMS320F28335型数字信号处理器是TI公司的⼀款TMS320C28X系列浮点DSP控制器。
与以往的定点DSP相⽐,该器件的精度⾼,成本低,功耗⼩,性能⾼,外设集成度⾼,数据以及程序存储量⼤,A/D转换更精确快速等。
TMS320F28335具有150MHz的⾼速处理能⼒,具备32位浮点处理单元,6个DMA通道⽀持ADC、McBSP和EMIF,有多达18路的PWM输出,其中有6路为TI特有的更⾼精度的PWM输出(HRPWM),12位16通道ADC。
得益于其浮点运算单元,⽤户可快速编写控制算法⽽⽆需在处理⼩数操作上耗费过多的时间和精⼒,从⽽简化软件开发,缩短开发周期,降低开发成本。
采⽤六层核⼼板与底板的分拆形式,在听取⼴⼤DSP⼯程师意见的基础上,以保证DSP 能稳定独⽴运⾏、外设资源充分扩展为原则,优化结构设计,注重EMC处理,⽆论在设计还是在⼯艺上,均⽤⼼完成。
28335使用串口烧写程序串口烧写是一种相对较方便的烧写方式,相对于仿真器或是CAN烧写,相对于仿真器或是USB转CAN的设备,串口是一种非常廉价的烧写方式,而且也不需要安装专业的集成开发环境CCS等,但是不能实现在线调试,因此也只适用于程序基本不用再调整或大批量的场合。
F28335的存储器映射图如下:BOOTROM 是一块8K X 16的只读存储器,位于地址空间0x3FE000~0x3FFFFF,片内BOOTROM在出厂时固化了引导加载程序以及定点和浮点数据表,片上BOOTROM的存储映射如下图所示:1.内BOOT ROM数学表:在BOOT ROM中保留了4K X 16位空间,用以存放浮点和IQ数据公式表,这些数据公式表有助于改善性能和节省SARAM空间。
向量表:CPU向量表位于ROM存储器0x3FE000~0x3FFFFF段内,如下图所示。
复位后,当VMAP=1,ENPIE=0(PIE向量表禁止)时,该向量表激活。
在内部BOOT ROM引导区中能够调用的唯一向量就是位于0x3FFFC0的复位向量。
复位向量在出厂时被烧录为直接指向存储在BOOT ROM 空间中的InitBoot函数,该函数用于开启引导过程。
然后通过通用I/O引脚上的检验判断,决定具体引导模式。
引导模式与控制引脚之间的关系如下图所示:Bootloader特性:Bootloader是位于片上引导ROM中的在复位后执行的程序,用于在上电复位后,将程序代码从外部源转移到内部存储器。
这允许代码暂时存储在掉电不丢失数据的外部存储器内,然后被转移到高速存储器中执行。
引导ROM中的复位向量将程序执行重定向至InitBoot函数。
执行器件初始化之后,bootloader将检查GPIO引脚的状态以确定您需要执行哪种引导模式。
这些选项包括:跳转至闪存、跳转至SARAM、跳转至OTP或调用其中一个片上引导加载例程。
完成选择进程后,如果已完成所需的引导加载,处理器将在所选引导模式确定的应用起点继续执行。