flash上电加载操作流程.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
flash上电加载操作流程

flash上电加载操作流程 第一步:导出二进制镜像文件 打开需要将要烧写的DSP代码工程,编译无误后打开工程.map文件,把所有二进制镜像段保存,也即保存为两个.dat文件即可,以本文件夹的工程for_phich_ 14_no_new_FFT_UE_PSS03_31_SIB为例,.map文件如下: 保存的两个dat文件的起始-终止地址分别为00x009e2300(0L2缓存的起始地址,0x009e2300为0x009e21e0+0x0000120)和0x009f0000~0x009f0200(向量表的镜像文件);保存的长度要为地址长度的1/4,原因是dat文件里的数据是以word为单位,而map文件以byte为单位,故本例中保存长度分别为0x1e2300/4 = 0x788c0和0x200/4 = 0x80; 注意:保存dat文件时不能从00x009f0200;这样保存为一个dat文件虽然省事些,但烧写到Flash中是会出错的,原因是从0x009e21e0到0x009e2300一段为非代码的镜像文件,这段内存是一些默认数据,烧写到Flash后会把它当做代码执行。(也存在侥幸跑通的,但纯属侥幸) 在本map文件里,这一步也要记录下上图_c_int00的地址,以待下用 第二步:修改Boot代码参数,并导出Boot二进制镜像文件 打开testloader工程如下: 修改阴影部分,阴影部分如下: ENTER_POINT地址(0x009D0D00)如果不是_c_int00的地址替换为_c_int00的地址; CODE_SIZE数据长度(0x1E2300)如果不是本工程代码镜像的长度替换掉(这里已经是了); VECTORS_SIZE向量表的镜像长度如果不是map文件中的向量表长度,替换掉; VECTORS_START向量表的起始地址如果不是map文件中的地址,替换掉; 上图的设置与本实例工程完全吻合,可以参考 ??这些设置完后还应该注意CODE_SIZE的长度(0x1E2300)一定要小于FLASH_VECTORS_START—FLASH_CODE_START (0xB01E5000 — 0xB0001000 = 0x1E4900),以保证Flash有足够的空间容纳代码。 这些修改完成后,编译无误的情况下保存出boot代码的dat文件。 以上为boot的map文件,这里只有上图选中区有镜像,保存出即可,同样为上图中所示长度的1/4。 第三步:修改烧写函数参数,并烧写二进制镜像文件到Flash 打开testflash工程如下: 保证#define addrcode 0xb0001000 #define addrvectors 0xb01E5000 0xb0001000和0xb01E5000与boot工程里的 ??FLASH_CODE_START .equ 0xB0001000 ??FLASH_VECTORS_START .equ 0xB01E5000 对应相同。 分别修改烧写长度,第一个是烧写的boot代码,第二个为DSP工程程序的代码镜像,第三个为向量表的镜像,修改完后编译加载后分别如上打断点,执行到第一个断点为片擦除完成,执行到第二个断点为烧写boot代码成功,第三个断点为烧写DSP应用程序代码段成功,第四个为烧写向量表成功,烧写完成后,掉电,拨码开关拨为EMIFA加载模式(0100)上电即可,如下图(红色部分为需要拨的拨码): 注意:片擦除和DSP应用程序代码的烧写可能需要较长时间(1分钟),请耐心等待! 左 DSP_EMIFA_BA0 DDR2_EN 1 DSP_EMIFA_ADD19 BOOTMODE3 0 DSP_EMIFA_ ADD8 PCI_EEAI 0 右 DSP_EMIFA_ ADD17 BOOTMODE1 0 S12 左 DSP_EMIFA_ ADD18 BOOTMODE2 0 DSP_EMIFA_ ADD15 AECLKIN_SEL 0 DSP_EMIFA_ ADD14 HPI_WIDTH 1 DSP_EMIFA_ ADD13 LENDIAN 0 DSP_EMIFA_ ADD12 UTOPIA_EN 0 DSP_EMIFA_ ADD11 0

您可能关注的文档

文档评论(0)

haihang2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档