简简单单学TI 多核DSP(4):多核DSP TMS320C6678的BOOT方式(二)

前面主要是讲了C6678的总体的BOOT方式。这一讲,告诉大家C6678从上电复位后的BOOTLOADER的工作情况。

  C6678的BOOT过程由COREPAC0执行。前面文章说到,C6678的BOOT方式有4种。上电复位,硬件复位,软件复位和局部复位。前面的3个复位模式是全局型的,影响到整个C6678。后者只是局部的复位,不会触发BOOT过程。

  上电复位后的BOOT过程究竟是如何的呢?如何触发BOOT呢?

  从C6678的DATASHEET(参考:http://www.ti.com/lit/ds/symlink/tms320c6678.pdf)可以看出,POR和RESETFULL 两个管脚可以触发上电复位,从而引起RBL初始化。POR引脚由上电时序产生,RESETFULL则由主机来复位系统。只有在POR实现上电复位之后,RESETFULL才能实现全局复位,也就是说RESETFULL复位时热复位。在上电复位的过程中,13个BOOTLOADER引脚状态分别被采样且被锁存在BOOT的配置寄存器中,RBL就凭着这些设备状态寄存器的值去进行决策,往后如何BOOT—使用设备状态寄存器中的启动配置,BOOT过程就是执行初始化代码,也就是RBL初始化代码:

  (1)ROM里面的代码激活所有支持该功能的外设的复位隔离,也就是说,这些外设的状态不会被改变。有哪些外设支持这个功能呢?记住下面这些外设:SmartReflex,DDR3,Embedded Trace,Ehternet SGMII,Ethernet Switch,SRIO,AIF2。怎么样,这下清楚了吧 。
  (2)ROM代码必须在所有启动需要使用的外设供电和时钟都是有效的情况下才能正常 。
  (3)ROM代码配置系统的PLL,根据DEVSTAT寄存器中PLL选择的3个BIT,配置C6678 的工作速度。
  (4)对于NO-BOOT,SPI以及I2C BOOT模式,主PLL保留在BYPASS模式下。其他的BOOT模式BOOTLOADER初始化过程则把主PLL配置成PLL MODE。
  (5)ROM代码在所有的COREPACS中保留最后0xD23F 字节。这个东西做啥用呢?这个保留的RAM区域其实就是用来存储启动过程中的初始化配置,也就是我们常听说的启动参数表。下面有一个表,放在局部L2里面的COREPAC0的启动参数表:
注意哟,对于EMIF16 BOOT模式,RBL不保留MEMORY。这时候MEMORY的使用完全依赖存储在NOR FLASH的镜像。



  (6)在启动过程中,BOOTLAODER会在SECONDARY COREPACS(即COREPAC1-7) 执行IDLE命令,且等待中断,只有在应用程序加载到SENCONDARYCOREPACS之后,每个COREPACS中的BOOT_MAGIC_ADDRESS被启用,这时候COREPAC0中的应用程序就可以触发一个 IPC唤醒其他的核,完成启动。此时从核执行程序指向BOOT_MAGIC_ADDRESS指定的地址。
如上表中的BOOTMAGIC地址就是ROM搬移到RAM信息的最后一个字,这里面存放的就是各CORE初始化之后需要跳转的C程序入口地址:_c_int00()。是不是很绕口啊。没办法。暂且记住吧。C6678 的内存规划设计的时候,不同CORE的BOOT_MAGIC_ADDRESS存放在该核的L2 RAM的最后一个字里面。所以用一个公式的形式表示每个核的BOOT_MAGIC_ADDRESS就是0x1n87ffc,其中n表示第n个核)。
  (7)所有的L1D和L1P被BOOT代码配置成CACHE,而L2存储器则配置成可寻址的内存空间。
  (8)这时候除了主机中断,其他的中断都是无效的。主机中断在PCIe,SRIO及Hyperlink Boot模式下是需要使用的。
  (9)BOOTLAODER里面有个DDR配置表。缺省配置初始化为0 。在启动时,每块BOOT表加载完后,表格中的所有参数都会进行测试。发现其中ENABLE BITMAP域非零,DDR3就会被配置。此时允许BOOT表配置DDR表,然后初始化并加载数据到DDR。

  以下分别是对上述的各种BOOT的配置参数:










  下一讲将对MCSDK提供的多核BOOT方法做详细的讲解。

  • 1
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: tms320c66x keystone架构多dsp入门与实例精解.pdf 是一本介绍基于TMS320C66x Keystone架构的多DSP编程的实践性指南。本书分为四章,每一章都包含了多个实例,逐步深入讲解多DSP编程的基本概念和实践技巧。 第一章主要介绍Keystone架构的基本特点、硬件资源和多编程的优势。第二章从单到多的转变上做了深入讲解,并且结合实例从基本的多并行编程开始介绍了TMS320C66x Keystone架构下的Event Manager、Message Manager、Mailbox和RM的使用方法。 第三章介绍了DSP封装的基本操作和解封装方法,同时讲解了运用RTDX技术实现多DSP互相通讯的方法。第四章讲解了多DSP异构计算的优越性和实践技巧。通过实例,讲解了提升DSP并行度的四种方法:分割、工作流分配、部署和确定性和非确定性计算。 总体来说,该书是一本聚焦于TMS320C66x Keystone架构下多DSP编程实践的入门指南和工具手册。需要注意的是,该书对读者在DSP编程方面的基础知识要求较高,建议具备一定的DSP编程经验再进行阅读。 ### 回答2: 《TMS320C66x Keystone架构多DSP入门与实例精解》是一本介绍Keystone架构多DSP的入门教材,主要涵盖了Keystone架构、TMS320C66x、多处理、DSP算法开发、实时系统开发等内容。 Keystone架构是一种高性能、低功耗、灵活可扩展的DSP架构,在嵌入式应用领域得到广泛应用。TMS320C66x是Keystone架构的一种实现,具有高达1.2Tops的处理能力和丰富的片上外设资源。多处理是Keystone架构的重要特性之一,可以有效提高系统的性能和可靠性。 本书以DSP算法开发为主线,详细介绍了TMS320C66x的架构、资源配置、多编程、DSP算法开发等方面的内容。同时,还介绍了实时系统开发和性能优化等关键问题,为读者提供了一系列实践案例和经验总结。 本书适合从事嵌入式系统开发、DSP算法开发和实时系统开发等领域的工程师、生和研究人员阅读。无论是初者还是有一定经验的开发者,都可以从本书中获得有用的知识和实践经验,提高开发效率和系统性能。 ### 回答3: 《TMS320C66x Keystone架构多DSP入门与实例精解》是一本介绍Texas Instruments公司TMS320C66x系列多数字信号处理器的入门教材和实例精解。本书深入浅出地介绍了DSP的体系结构、系统架构、并行编程方法和实现技术等方面的知识,实例详尽而丰富,既全面系统地介绍了该系列DSP的基本概念和特性,又能够从实践出发,提供丰富的应用案例和技术经验。 全书分为十二章,从DSP基础知识讲起,逐渐深入介绍了Keystone系列多DSP的设计、接口和编程方法等方面的内容。每一章的末尾都有实验项目,让读者听取到的知识进行实践,深入了解多DSP的特点和应用。 该书的优点在于深入浅出,易于理解。同时,该书的实例很丰富,从任务调度、矩阵乘法、FFT算法、卷积编码等实例都贴近实际,体现了多DSP的应用价值。该书对于习多DSP生、工程师、技术人员都是很好的参考材料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值