DSP28379D_双核启动简介
双核启动简介
- DSP的上电过程、Boot Mode以及Boot Loader
- 双核的调试、烧写
- 参考资料目录
DSP的上电过程、Boot Mode以及Boot Loader
对于双核DSP上电后,启动运行的顺序如下所示:
①系统复位或者重新上电之后,CPU2系统一直处于复位状态。CPU1系统会自动跳转到地址0x3FFFC0中获取复位向量,复位向量的目的就是为了使得系统自动跳转到0x3F8000地址上,开始执行Boot ROM 段中存储的Boot loader代码段。对于CPU1而言,CPU1的Boot ROM段中的Boot loader程序首先会从TI-OTP内存段中获取设备的配置字,并配置好器件。
②Boot Loader开始执行DCSM和OTP JTAGLOCK流程。DCSM流程:(1)读取OTP中的Zx_poinyer;(2)解码指针值;(3)度去除TI-OTP中的SECDC;(4)读取Zx BOOT模式;(5)读取ZX DCSM模块。
③Boot Loader检测FUSEERR寄存器中是否存在错误标志位,并采取错误处理机制。之后初始化RAM和内存端的ECC/PARITY。CPU1将引导CPU2系统跳出复位操作,之后便不管CPU2的运行状态。
④CPU1系统的Boot Loader将会根据外部的GPIO和XRST(一般链接下载器才会有)来确定程序的启动方式是从Flash启动还是RAM启动,或者是在XRST为低的情况下,根据PIE向量表(地址为0xD00)的第一个32位的值来确定启动方式(一般是链接了下载器的情况)。确定完之后,CPU1的Boot Loader代码段会将各种信息都更新到指定的RAM段中,以便于CPU1的程序去读取这些状态字。
⑤此时按照启动方式开始跳转程序,如果是Flash启动则将程序指针跳转到Flash的起始地址:0x80000,如果是Ram启动则将程序指针跳转到Ram段的起始地址:0x00000,同时结束Boot Loader并进入CPU1的主程序。
如果此时的启动方式是外设启动,那么Boot Loader则会等待外部程序按照一定的格式将程序加载到Ram中,程序代码传输完成之后,跳转到运行指针开始运行程序代码段。
⑥此时CPU1的Boot Loader完成使命,已退出,并开始执行CPU1中的用户程序。此时的CPU2系统退出了复位状态,仍然在等待启动模式确定,需要CPU1的用户程序来引导CPU2的引导,如果是CPU2也从Flash启动,则通过IPC Command即可触发,但是如果CPU2也需要从外设启动,则需要CPU1首先设置好外设的引脚,之后再触发CPU2开始接受程序。
双核的调试、烧写
TI公司C2000Ware给出的例程,可以学习创建CPU1与CPU2的工程,修改工程属性,设置Predefined Symbols(区分CPU1、CPU2,选择烧写方式),添加头文件路径,使用cmd等。
CPU1有三种工作方式:CPU1_RAM_DEBUG、CPU1_FLASH_DEBUG、CPU1_FLASH_STANDALONE。
CPU2有两种工作方式:CPU2_RAM、CPU2_FLASH。尽管双核共享系统的外设,但是作为主核的CPU1可以通过IPC控制CPU2从何引导启动。
只需要在CPU1的工程中添加:
#ifdef _STANDALONE
#ifdef _FLASH// Send boot command to allow the CPU2 application to begin executionIPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_FLASH);
#else// Send boot command to allow the CPU2 application to begin executionIPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_RAM);
#endif
#endif
双核的调试可以按下方配对:
①CPU1_RAM;仅使用CPU1在线调试,CPU2闲置。
②CPU1_FLASH;仅使用CPU1烧写,CPU2闲置。
③CPU1_RAM<->CPU2_RAM;CPU1与CPU2一起在线调试。
④CPU1_FLASH_STANDALONE<->CPU2_FLASH。CPU1与CPU2一起烧写,CPU2的Boot由CPU1工程中设置IPC。
参考资料目录
《TMS320F2837xD Dual-Core Microcontrollers Datasheet》Memory章节
《TMS320F2837xD Dual-Core Microcontrollers Technical Reference Manual》System Control、ROM Code and Peripheral Booting章节
DSP28379D_双核启动简介相关推荐
- u-boot分析之启动简介(一)
目录 u-boot启动简介(一) 启动概述 内部存储布局 Bootloader概述 内核启动参数 taggedlist 体验一下实际的Uboot U-boot的使用帮助 U-boot基本要求 u-bo ...
- Android以太网框架情景分析之启动简介
Android以太网框架情景分析之启动简介 Android网络框架分析系列文章目录: Android P适配以太网功能开发指南 Android以太网框架情景分析之启动简介 Androi ...
- 第九节,ZYNQ的双核启动
ZYNQ的双核启动 1 双核运行原理 ZYNQ是一种主从关系的AMP架构,通过松散耦合共享资源,允许两个处理器同时运行自己的操作系统或者裸机应用程序,在各自运行自己的程序或者系统的时候,可以通过共享内 ...
- Android-0.AMS初始化和启动简介
文章目录 1.Activity Manager简介 2.AMS 的启动和初始化过程 2.1.AMS 所在的system进程 2.1.AMS 初始化流程 2.2.AMS 启动流程 2.3.AMS 的 s ...
- MPC5746C双核启动配置分析
MPC5746C内部集成了一个BAF(Boot Assist Flash)小工具(代码)(这个有点像Bootloader),BAF主要用于管理多核CPU的启动,其原理是寻找特定地址的启动头,查看并根据 ...
- cortexM3启动简介
一.nxp 1853系列启动流程 1.上电复位后使用内部IRC 12M振荡源作为时钟.程序指针指向0x00000000处. 2.将bootrom地址映射到0x00000000处.不用执行该步骤,上电时 ...
- SpringBoot杂货铺开源项目启动简介
最近越来越多的小伙伴开始找博主要免费的源码啦,看来博主的源码对大家还是很有帮助的
- ce玩家_当玩家选择错误时
ce玩家 You may have heard about the recent controversy surrounding Assassin's Creed Odyssey. Specifica ...
- 扩展中断控制器8259实验_「正点原子FPGA连载」第十三章双核AMP实验
1)摘自[正点原子]领航者 ZYNQ 之嵌入式开发指南 2)实验平台:正点原子领航者ZYNQ开发板 3)平台购买地址:https://item.taobao.com/item.htm?&id= ...
最新文章
- 刚装oracle, 熟悉一下命令
- css和HTML布局小技巧
- sourceTree
- java 静态方法中为什么不可以使用关键字this _super_Java static方法里为什么不能使用this关键字,和Super...
- 计算机视觉概述:视觉任务+场景领域+发展历程+典型任务
- jqGrid表格展示简单实例
- bochs安装win98
- 花体字转换器微信小程序源码支持多种花样字体不同风格
- Flink系列:物理分区分组broadcast、global、shuffle、forward、rebalance、rescale理解与实战
- MySQL容器部署及数据持久化(主从复制)
- 西安理工大学计算机科学与技术分数线,2017西安理工大学各专业录取分数线
- 关于钢琴学习的若干问题的混蛋解答 【2014/1/29更新,未完待续…………】
- 爬虫 - 提高爬虫效率的方法
- 3dmax渲染软件有哪些?哪个好用
- mysql报错:1406, Data too long for column
- VIRTIO 前后端驱动中 GPA,HVA 转换原理
- 对图片进行剪切,保留原始比例
- php 计算时间差,php 怎么计算两个时间的时间差?
- 鸭子心包积液发病比较多是因为什么该怎么治疗
- API ShowWindow