- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TMS320C6678的EMIF16NORFlash程序自加载的实现
TMS320C6678的EMIF16 NOR Flash程序自加载的实现
一.C6678的加载综述
C6678的加载实质上就是将各核的代码按段分别写到各自的L2 SRAM.这个过程的实现可以用很多种方式,于是就有了多种bootmode,比如EMIF16 boot、SRIO boot、Ethernet boot、PCI boot、SPI boot、Hyperlink boot等,这几种加载方式虽然过程不尽相同,但是目的是一样的。
在C6678的地址空间0x20B00000到0x20B1FFFF间集成了128K的内部ROM。此ROM中固化了一段叫作“boot loader”的引导代码,它的主要作用是在C6678上电时,对C6678进行必要的配置,以便辅助EMIF/PCI/SRIO等接口进行加载;另外,它还可以将代码从外部存储器读到内部L2 SRAM,以完成代码加载。
C6678有8个核,但Rom code只有一份,因此8个核统一执行Rom code的代码,Rom code 会根据核号(即DNUM)进行不同的分支。对于core0来说,它主要是读取DEVSTAT 寄存器(反映加载模式以及一些参数配置,具体是由Bootmode pin[12:0]设置)的加载模式,并根据当前加载模式进行一些接口的初始化和PLL的配置,还要根据加载模式决定是否搬移数据,若需要搬移,比如SPI boot,就要将SPI外接ROM的代码按段加载到C6678的内存中。若不需要搬移,比如EMIF16加载,就直接跳到EMIF16外接Nor Flash的起始地址开始执行。对于其它的7个核来说,它们主要是挂载IPC中断,然后进入IDLE状态等待core0发过来的中断。中断一到,就跳到入口地址开始执行程序。
二.C6678的EMIF16加载过程
1.core0加载
C6678的EMIF16加载是一种直接从Nor Flash(必须挂在CE2空间:0加载core0的模式,不需要I2C EEPROM的参与,由Rom code初始化EMIF16接口,并且由于EMIF16外接Nor Flash是一种XIP器件(即可以在芯片内执行),因此直接跳到Nor Flash的起始地址处开始执行。
为了将Nor Flash中的代码搬移到C6678 的core0的L2 SRAM中,需要在core0的待加载工程中编写引导代码,此引导代码的作用就是将core0的代码按段加载到内存中,最后跳到入口地址处开始执行。此段引导代码用汇编语言编写,命名.bootload段,放在L2 SRAM的前1KB空间,并烧写到Nor Flash的前1KB空间,应用代码放到1KB后面,如下图所示Nor Flash代码格式:
图1 Nor Flash空间分配
2.core0加载其它核
在多核加载过程中,core0是主核,core1~core7是从核,由core0加载其它核的代码,具体步骤是:
1) 上电后,core0完成程序加载,并跳到入口地址开始执行程序。
2) 在core0主程序中,core0从Nor Flash中读取core1的代码,并按段加载到core1的L2 SRAM,然后将core1程序的入口地址写到core1的BOOT_MAGIC_ADDRESS,即L2 SRAM的最后4个字节地址:0x1187FFFC,最后向core1发送IPC中断,既写寄存器IPGR1=0x1,其它核的加载过程一样。
具体程序流程图为:
图2 EMIF16多核加载过程
各个核的Nor Flash空间分配如下:
起始地址 结束地址 长度 Core0 00x701FFFFF 2MB Core1 00x703FFFFF 2MB Core2 00x705FFFFF 2MB Core3 00x707FFFFF 2MB Core4 00x709FFFFF 2MB Core5 0x70A00000 0x70BFFFFF 2MB Core6 0x70C00000 0x70DFFFFF 2MB Core7 0x70E00000 0x70FFFFFF 2MB
您可能关注的文档
最近下载
- 丁锦红-认知心理学(第3版)第4章-记忆的编码与贮存.pptx VIP
- 施工现场签证单模板范文.docx VIP
- 丁锦红-认知心理学(第3版)第3章-知觉与模式识别.pptx VIP
- 咖啡与咖啡文化.pptx VIP
- 2025湖北武汉市华中师范大学校友工作办公室实习生招聘笔试备考题库及答案解析.docx VIP
- 丁锦红-认知心理学(第3版)第2章-注意.pptx VIP
- 标准图集-建标 176-2016 精神专科医院建设标准.pdf VIP
- 林崇德版《发展心理学》史上最全ppt课件.pptx VIP
- 丁锦红-认知心理学(第3版)第1章-概论.pptx VIP
- Hollywood好莱坞的介绍.pptx VIP
文档评论(0)