DSP——双核的使用

目录

前言

一、DSP的双核是怎样的?

二、DSP的双核怎样应用?

1.CPU2的启用

2.双核之间的交互

三.应用实例

总结


前言

28377D芯片有两个主频200M的32位CPU,两个CPU有各自独立的内存,并共享一块内存用于交互。此外还共用外设,通过CPU1可以配置外设及共享内存块到哪个CPU。一般将一个CPU用于实时性要求高的控制环路计算,另一CPU用于与外界的交互通信等;前段时间工作需要,将CPU2用于实时控制环路计算,CPU1用于人机交互,特意研究了下双核的如何使用。


一、DSP的双核是怎样的?

首先看28377D数据手册中的功能框图,可以看出CPU1和CPU2共用外设,各自有独立的内存,独立的看门狗及三个定时器,也有共享的内存区域。

28377D上,CPU1子系统当主机,并且默认情况下,它拥有所有的配置和控制权。通过在CPU1上运行的软件,可以将外围设备和I/O配置为可由CPU2子系统访问,并且可以锁定所选的配置。默认情况下,PLL时钟配置也由CPU1子系统拥有,但提供了一个时钟控制信号量,CPU2可以通过该信号量访问时钟配置寄存器。

二、DSP的双核怎样应用?

1.CPU2的启用

CPU2需要由CPU1引导启动,库函数包中为以下接口

#ifdef _FLASH
    //
    // Send boot command to allow the CPU2 application to begin execution
    //
    Device_bootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_FLASH);
#else
    //
    // Send boot command to allow the CPU2 application to begin execution
    //
    Device_bootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_RAM);

#endif // _FLASH
uint16_t
Device_bootCPU2(uint32_t bootMode)
{
    uint32_t bootstatus;	
    uint16_t returnstatus=STATUS_PASS;
    //
    // If CPU2 has already booted, return a fail to let the application	
    // know that something is out of the ordinary.	
    //	
	bootstatus
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值