0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ZYNQ多核處理器硬件上的劃分

lhl545545 ? 來源:ZYNQ ? 作者:ZYNQ ? 2022-09-19 09:06 ? 次閱讀

1.簡介

zynq系列開發(fā)板有兩個(gè)板載Cortex-A9處理器,兩個(gè)ARM可以協(xié)同處理數(shù)據(jù)。

多核處理器硬件上的劃分

??1.同構(gòu)多核:系統(tǒng)中的多個(gè)處理器在結(jié)構(gòu)上是相同的;

????????優(yōu)點(diǎn)是硬件和軟件設(shè)計(jì)上較為簡單,通用性高。

??2.異構(gòu)多核:系統(tǒng)中的處理器結(jié)構(gòu)上是不同的;

????????優(yōu)點(diǎn)是在某些特定場合,專用的硬件加速核可以提高性能。

ZYNQ中的兩個(gè)Cortex-A9處理器+可編程邏輯器件FPGA組成了異構(gòu)多核處理器。

多核處理器從軟件運(yùn)行方式上劃分

??AMP(Asymmetric Muti-processing):非對稱多處理

????多個(gè)內(nèi)核相對獨(dú)立的運(yùn)行不同的任務(wù),每個(gè)內(nèi)核相互隔離,可以運(yùn)行不同的操??作系統(tǒng)或者裸機(jī)程序。

??SMP(Symmetric Muti-processing):

????多個(gè)處理器運(yùn)行一個(gè)操作系統(tǒng),這個(gè)操作系統(tǒng)同等的管理多個(gè)內(nèi)核。

??BMP(Bound Muti-processing):混合多模式

????BMP與SMP類似,但是開發(fā)者可以指定將某個(gè)任務(wù)僅在某個(gè)指定內(nèi)核上執(zhí)行。

AMP模式下要注意不要兩個(gè)CPU一起訪問同一個(gè)地址或者共享外設(shè)。

2.CPU之間通訊原理

2.1 通訊步驟

1.系統(tǒng)初始化

2.啟動(dòng)CPU1

3.和CPU1進(jìn)行通訊

4.共享CPU外設(shè)

2.2 CPU資源

??CPU資源分為私有資源和公共資源。私有資源是每個(gè)CPU都有的資源,只能被各自的CPU訪問,訪問時(shí)無需注意沖突。公共資源為CPU之間共享的資源,訪問時(shí)要注意訪問沖突。

??私有資源: L1Cache、PPI(Private peripheral interrupts)、MMU(Memory management unit)。

??公共資源: L2Cache、DDR存儲(chǔ)器、OCM(on chip memory)、ICD(Interrupt control distributor)、全局時(shí)鐘和其他外等。

??OCM用來和CPU之間的通訊的,與DDR相比,OCM具有更高的性能和更低的延遲。用于小數(shù)據(jù)量(256KB一下)用OCM更好。

??避免同時(shí)訪問的方法

??DDR:CPU0只能訪問0x00100000至0x001FFFFF,CPU1只能訪問0x00200000到0x002FFFFF(可人為更改)

??L2Cache:CPU0使用,CPU1不使用。

??ICD:中斷來自PL,連接到CPU1。

??Timer(定時(shí)器):只有CPU1使用。

??OCM:OCM的某一地址進(jìn)行標(biāo)志。當(dāng)標(biāo)志為0時(shí)這個(gè)地址是某個(gè)CPU私有的;為1時(shí),這個(gè)地址是另一個(gè)CPU私有的?;蛘哕浖a(chǎn)生中斷的方式。

2.3 軟件設(shè)計(jì)

軟件設(shè)計(jì)分為三個(gè)階段

1.First stage boot loader(FSBL):第一啟動(dòng)階段

2.Bare-metal application for CPU0:裸機(jī)應(yīng)用程序

3.Bare-metal application for CPU1:裸機(jī)應(yīng)用程序

FSBL

??一直運(yùn)行在CPU上面,是開發(fā)板上電之后啟動(dòng)先啟動(dòng)Boot rom,后啟動(dòng)FSBL,負(fù)責(zé)配置PL然后拷貝兩個(gè)處理器的應(yīng)用程序(ELF)加載到DDR中,然后開始運(yùn)行第一個(gè)應(yīng)用程序。

Bare-metal application Code

??兩個(gè)CPU運(yùn)行各自的裸機(jī)的程序,CPU負(fù)責(zé)初始化共享外設(shè),并且負(fù)責(zé)啟動(dòng)CPU1.

CPU0 Application

??內(nèi)存的起始地址為0x00100000。這個(gè)起始地址可以在鏈接腳本進(jìn)行修改的。

??CPU0的配置步驟:

??1.配置MMU來禁止cache緩存功能0xFFFF0000至0xFFFFFFFF來保證兩個(gè)CPU訪問OCM的一致性。地址映射不可修改。

??2.初始化ICD

??3.啟動(dòng)CPU1

??4.通過串口打印信息

??5.設(shè)置OCM的地址作為信號

??6.等待地址里面的信號量被清除。

??Boot rom代碼執(zhí)行后,CPU1也會(huì)在OCM的0xFFFFFF00地址上執(zhí)行一段代碼。功能是檢查地址0xFFFFFFF0的值是否為1來等待事件到來。

??CPU0啟動(dòng)CPU1是通過向地址0x00200000寫入地址0xFFFFFFF0然后CPU0運(yùn)行Set Event(SEV)命令啟動(dòng)CPU1。CPU1會(huì)讀取0xFFFFFFF0里面的值0x00200000。然后跳轉(zhuǎn)到該地址執(zhí)行程序。

??CPU1的配置步驟

3 如何避免多個(gè)CPU同時(shí)訪問OCM

??CPU0向OCM寫入一個(gè)數(shù)據(jù)之后,給CPU1產(chǎn)生軟件中斷。讓CPU1知道CPU0已經(jīng)不再操作該地址。此時(shí)CPU1讀取數(shù)據(jù),讀取完畢后產(chǎn)生一個(gè)中斷通知CPU0。

??軟件中斷(SGIs):中斷來自CPU內(nèi)部,每個(gè)CPU可以中斷自己或者另外的CPU或者一起中斷,每個(gè)CPU有16個(gè)中斷號,編號為0到15。向寄存器(ICDSGIR)寫入中斷號并且指定CPU。目標(biāo)的CPU即可產(chǎn)生中斷。

??OCM:PS的片上存儲(chǔ)器,包括256KB的RAM和128KB的ROM(BootROM)。地址范圍為0x00000000到0002FFFF的三個(gè)64KB加上0xFFFF_0000到0xFFFF_FFFF共256KB。

4 程序設(shè)計(jì)

4.1 程序任務(wù)

??CPU0接收串口數(shù)據(jù)并寫入OCM中,然后利用軟件中斷觸發(fā)CPU1;CPU1接收到中斷后,根據(jù)從OCM中讀出的數(shù)據(jù)控制呼吸燈的頻率,并在控制結(jié)束后觸發(fā)CPU0的中斷,實(shí)現(xiàn)雙核CPU通信的功能。

4.2 系統(tǒng)框圖

beff3422-37b0-11ed-ba43-dac502259ad0.png

4.3 軟件操作

bf37dcdc-37b0-11ed-ba43-dac502259ad0.png

4.4 代碼

4.4.1 CPU0_UART

//****************************************Copyright (c)***********************************////原子哥在線教學(xué)平臺(tái):www.yuanzige.com//技術(shù)支持:www.openedv.com//淘寶店鋪:http://openedv.taobao.com//關(guān)注微信公眾平臺(tái)微信號:"正點(diǎn)原子",免費(fèi)獲取ZYNQ & FPGA & STM32 & LINUX資料。//版權(quán)所有,盜版必究。//Copyright(C) 正點(diǎn)原子 2018-2028//All rights reserved//----------------------------------------------------------------------------------------// File name:           cpu0_uart// Last modified Date:  2019/6/8 1736// Last Version:        V1.0// Descriptions:        CPU0應(yīng)用程序//----------------------------------------------------------------------------------------// Created by:          正點(diǎn)原子// Created date:        2019/6/8 1736// Version:             V1.0// Descriptions:        The original version////----------------------------------------------------------------------------------------//****************************************************************************************//

#include "xparameters.h"#include "xscugic.h"#include "xil_printf.h"#include "xil_exception.h"#include "xil_mmu.h"#include "stdio.h"

//宏定義#define INTC_DEVICE_ID       XPAR_SCUGIC_SINGLE_DEVICE_ID //中斷ID#define SHARE_BASE           0xffff0000                   //共享OCM首地址#define CPU1_COPY_ADDR       0xfffffff0                   //存放CPU1應(yīng)用起始地址的地址#define CPU1_START_ADDR      0x10000000                   //CPU1應(yīng)用起始地址

#define CPU1_ID              XSCUGIC_SPI_CPU1_MASK        //CPU1 ID#define SOFT_INTR_ID_TO_CPU0 0                            //軟件中斷號 0 ,范圍:0~15#define SOFT_INTR_ID_TO_CPU1 1                            //軟件中斷號 1 ,范圍:0~15

//"SEV"指令喚醒CPU1并跳轉(zhuǎn)至相應(yīng)的程序#define sev()                __asm__("sev")               //C語言內(nèi)嵌匯編寫法 send event指令

//函數(shù)聲明void start_cpu1();void cpu0_intr_init(XScuGic *intc_ptr);void soft_intr_handler(void *CallbackRef);

//全局變量XScuGic Intc;                    //中斷控制器驅(qū)動(dòng)程序?qū)嵗齣nt rec_freq_flag = 0;           //接收到呼吸燈頻率設(shè)置的標(biāo)志int freq_gear;                   //頻率檔位

//CPU0 main函數(shù)int main(){  //S=b1 TEX=b100 AP=b11, Domain=b1111, C=b0, B=b0  Xil_SetTlbAttributes(SHARE_BASE,0x14de2);    //禁用OCM的Cache屬性

  //S=b1 TEX=b100 AP=b11, Domain=b1111, C=b0, B=b0  Xil_SetTlbAttributes(CPU1_COPY_ADDR,0x14de2);//禁用0xfffffff0的Cache屬性

  //啟動(dòng)CPU1  start_cpu1();  //CPU0中斷初始化  cpu0_intr_init(&Intc);  while(1){    if(rec_freq_flag == 0){      xil_printf("This is CPU0,Please input the numbers 1~5 to change "          "breath led frequency
");      scanf("%d",&freq_gear);      if(freq_gear >= 1 && freq_gear <=5){        xil_printf("You input number is %d
",freq_gear);        //向共享的地址中寫入輸入的數(shù)據(jù)        Xil_Out8(SHARE_BASE,freq_gear);        //給CPU1觸發(fā)中斷        XScuGic_SoftwareIntr(&Intc,SOFT_INTR_ID_TO_CPU1,CPU1_ID);        rec_freq_flag = 1;      }      else{        xil_printf("Error,The number range is 1~5
");        xil_printf("
");      }    }  }  return 0 ;}

//啟動(dòng)CPU1,用于固化程序void start_cpu1(){  //向 CPU1_COPY_ADDR(0Xffffffff0)地址寫入 CPU1 的訪問內(nèi)存基地址  Xil_Out32(CPU1_COPY_ADDR, CPU1_START_ADDR);  dmb();  //等待內(nèi)存寫入完成(同步)  sev();  //通過"SEV"指令喚醒CPU1并跳轉(zhuǎn)至相應(yīng)的程序}

//CPU0中斷初始化void cpu0_intr_init(XScuGic *intc_ptr){  //初始化中斷控制器  XScuGic_Config *intc_cfg_ptr;  intc_cfg_ptr = XScuGic_LookupConfig(INTC_DEVICE_ID);    XScuGic_CfgInitialize(intc_ptr, intc_cfg_ptr,        intc_cfg_ptr->CpuBaseAddress);    //設(shè)置并打開中斷異常處理功能    Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_INT,        (Xil_ExceptionHandler)XScuGic_InterruptHandler, intc_ptr);    Xil_ExceptionEnable();

    XScuGic_Connect(intc_ptr, SOFT_INTR_ID_TO_CPU0,          (Xil_ExceptionHandler)soft_intr_handler, (void *)intc_ptr);

    XScuGic_Enable(intc_ptr, SOFT_INTR_ID_TO_CPU0); //CPU0軟件中斷}

//軟件中斷函數(shù)void soft_intr_handler(void *CallbackRef){  xil_printf("This is CPU0,Soft Interrupt from CPU1
");  xil_printf("
");  rec_freq_flag = 0;}

4.4.2 CPU1_LED

//****************************************Copyright (c)***********************************////原子哥在線教學(xué)平臺(tái):www.yuanzige.com//技術(shù)支持:www.openedv.com//淘寶店鋪:http://openedv.taobao.com//關(guān)注微信公眾平臺(tái)微信號:"正點(diǎn)原子",免費(fèi)獲取ZYNQ & FPGA & STM32 & LINUX資料。//版權(quán)所有,盜版必究。//Copyright(C) 正點(diǎn)原子 2018-2028//All rights reserved//----------------------------------------------------------------------------------------// File name:           cpu1_led// Last modified Date:  2019/6/8 1736// Last Version:        V1.0// Descriptions:        CPU1應(yīng)用程序//----------------------------------------------------------------------------------------// Created by:          正點(diǎn)原子// Created date:        2019/6/8 1736// Version:             V1.0// Descriptions:        The original version////----------------------------------------------------------------------------------------//****************************************************************************************//

#include "xparameters.h"#include "xscugic.h"#include "xil_printf.h"#include "xil_exception.h"#include "xil_mmu.h"#include "stdio.h"#include "breath_led_ip.h"

//宏定義#define INTC_DEVICE_ID       XPAR_SCUGIC_SINGLE_DEVICE_ID //中斷ID#define SHARE_BASE         0xffff0000                   //共享OCM首地址

#define CPU0_ID              XSCUGIC_SPI_CPU0_MASK        //CPU0 ID#define SOFT_INTR_ID_TO_CPU0 0                            //軟件中斷號 0 ,范圍:0~15#define SOFT_INTR_ID_TO_CPU1 1                            //軟件中斷號 1 ,范圍:0~15

#define  LED_IP_BASEADDR     XPAR_BREATH_LED_IP_0_S0_AXI_BASEADDR //LED IP基地址#define  LED_IP_REG0         BREATH_LED_IP_S0_AXI_SLV_REG0_OFFSET //LED IP寄存器地址0#define  LED_IP_REG1         BREATH_LED_IP_S0_AXI_SLV_REG1_OFFSET //LED IP寄存器地址1

//函數(shù)聲明void cpu1_intr_init(XScuGic *intc_ptr);void soft_intr_handler(void *CallbackRef);

//全局變量XScuGic Intc;               //中斷控制器驅(qū)動(dòng)程序?qū)嵗齣nt soft_intr_flag = 0;     //軟件中斷的標(biāo)志int freq_gear;              //頻率檔位

//CPU1 main函數(shù)int main(){  int freq_step = 0;  //S=b1 TEX=b100 AP=b11, Domain=b1111, C=b0, B=b0  Xil_SetTlbAttributes(SHARE_BASE,0x14de2);    //禁用OCM的Cache屬性

  //CPU1中斷初始化  cpu1_intr_init(&Intc);  //打開呼吸燈  BREATH_LED_IP_mWriteReg(LED_IP_BASEADDR, LED_IP_REG0, 1);  while(1){    if(soft_intr_flag){      freq_gear = Xil_In8(SHARE_BASE);     //從共享OCM中讀出數(shù)據(jù)      xil_printf("CUP1 Received data is %d
",freq_gear) ;      switch(freq_gear){        case 1 : freq_step = 20;break;        case 2 : freq_step = 50;break;        case 3 : freq_step = 100;break;        case 4 : freq_step = 200;break;        case 5 : freq_step = 500;break;        default : freq_step = 50;break;      }      //設(shè)置呼吸燈頻率,最高位為1,設(shè)置有效      BREATH_LED_IP_mWriteReg(LED_IP_BASEADDR,LED_IP_REG1,(0x80000000|freq_step));      //給給CPU0觸發(fā)中斷      XScuGic_SoftwareIntr(&Intc,SOFT_INTR_ID_TO_CPU0,CPU0_ID);      soft_intr_flag = 0;    }  }  return 0 ;}

//CPU1中斷初始化void cpu1_intr_init(XScuGic *intc_ptr){  //初始化中斷控制器  XScuGic_Config *intc_cfg_ptr;  intc_cfg_ptr = XScuGic_LookupConfig(INTC_DEVICE_ID);    XScuGic_CfgInitialize(intc_ptr, intc_cfg_ptr,        intc_cfg_ptr->CpuBaseAddress);    //設(shè)置并打開中斷異常處理功能    Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_INT,        (Xil_ExceptionHandler)XScuGic_InterruptHandler, intc_ptr);    Xil_ExceptionEnable();

    XScuGic_Connect(intc_ptr, SOFT_INTR_ID_TO_CPU1,          (Xil_ExceptionHandler)soft_intr_handler, (void *)intc_ptr);

    XScuGic_Enable(intc_ptr, SOFT_INTR_ID_TO_CPU1); //CPU1軟件中斷}

//軟件中斷函數(shù)void soft_intr_handler(void *CallbackRef){  xil_printf("This is CUP1,Soft Interrupt from CPU0
") ;  soft_intr_flag = 1;}
審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19048

    瀏覽量

    228536
  • 硬件
    +關(guān)注

    關(guān)注

    11

    文章

    3176

    瀏覽量

    66015
  • Zynq
    +關(guān)注

    關(guān)注

    9

    文章

    607

    瀏覽量

    47084

原文標(biāo)題:ZYNQ之雙核通訊原理以及程序設(shè)計(jì)

文章出處:【微信號:ZYNQ,微信公眾號:ZYNQ】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    嵌入式多核處理器硬件結(jié)構(gòu)分析與對排序算法進(jìn)行并行化優(yōu)化

    常常在嵌入式領(lǐng)域使用,常見的是通用嵌入式處理器+DSP核。本文探究的嵌入式多核處理器采用同構(gòu)結(jié)構(gòu),實(shí)現(xiàn)同一段代碼在不同處理器的并行執(zhí)行。
    的頭像 發(fā)表于 10-17 07:55 ?3947次閱讀

    調(diào)節(jié)多核處理器硬件適應(yīng)軟件設(shè)計(jì)方法

    調(diào)節(jié)多核處理器硬件適應(yīng)軟件設(shè)計(jì)方法 典型的嵌入式系統(tǒng)設(shè)計(jì)人員在硬件平臺(tái)上進(jìn)行編程,他們最關(guān)注的一點(diǎn)就是硬件平臺(tái)的穩(wěn)定性。如果
    發(fā)表于 09-25 17:17

    數(shù)字信號處理器重新采納多核架構(gòu)

    中的多核處理器設(shè)計(jì)。這些處理器的目標(biāo)應(yīng)用可以被很好地劃分為適合DSP的信號處理任務(wù)和適合RISC CPU的控制任務(wù),從而使得
    發(fā)表于 04-09 23:14

    多核處理器設(shè)計(jì)九大要素

    商用CPU的“未來”高性能處理器結(jié)構(gòu)?! ‰m然多核能利用集成度提高帶來的諸多好處,讓芯片的性能成倍地增加,但很明顯的是原來系統(tǒng)級的一些問題便引入到了處理器內(nèi)部?! ? 核結(jié)構(gòu)研究: 同構(gòu)還是異構(gòu)
    發(fā)表于 04-13 09:48

    多核處理器的優(yōu)點(diǎn)

    處理器。通過在兩個(gè)執(zhí)行內(nèi)核之間劃分任務(wù),多核處理器可在特定的時(shí)鐘周期內(nèi)執(zhí)行更多任務(wù)。 多核技術(shù)能夠使服務(wù)
    發(fā)表于 06-20 06:47

    典型的支持多核處理器的RTOS功能解析

    1、基于同步原語擴(kuò)展的實(shí)時(shí)操作系統(tǒng) 在多核處理器的每一個(gè)處理器都運(yùn)行一個(gè)完全相同的RTOS,然后提供擴(kuò)展的組件庫,這種組件庫提供相應(yīng)的同步原語以支持
    發(fā)表于 06-29 08:30

    集成電路多核處理器虛擬化技術(shù)

    多核處理器以其高性能、低功耗、設(shè)計(jì)周期短等諸多優(yōu)勢成為未來高性能處理器的發(fā)展趨勢。由于應(yīng)用對計(jì)算能力的需求是無限的,隨著芯片晶體管數(shù)目的進(jìn)一步增多,
    發(fā)表于 05-30 10:06 ?52次下載
    集成電路<b class='flag-5'>多核</b><b class='flag-5'>處理器</b>虛擬化技術(shù)

    多核處理器存儲(chǔ)系統(tǒng)研究

    針對 多核處理器 計(jì)算能力和訪存速度間差異不斷增大對多核系統(tǒng)性能提升的制約問題,分析幾款典型多核處理器存儲(chǔ)系統(tǒng)的設(shè)計(jì)特點(diǎn),探討
    發(fā)表于 07-27 15:49 ?29次下載
    <b class='flag-5'>多核</b><b class='flag-5'>處理器</b>片<b class='flag-5'>上</b>存儲(chǔ)系統(tǒng)研究

    多核處理器會(huì)取代FPGA嗎?

    有人認(rèn)為諸如圖形處理器(GPU)和Tilera處理器多核處理器在某些應(yīng)用中正逐步替代現(xiàn)場可編程門陳列(FPGA)。理由是這些多核
    發(fā)表于 02-11 11:15 ?1009次閱讀
    <b class='flag-5'>多核</b><b class='flag-5'>處理器</b>會(huì)取代FPGA嗎?

    第1章 多核處理器基礎(chǔ)

    多核處理器基礎(chǔ),介紹了嵌入式的多核的信息
    發(fā)表于 04-11 14:17 ?2次下載

    基于FPGA的NoC多核處理器的設(shè)計(jì)

    NoC多核處理器的規(guī)模以及對FPGA硬件資源的需求,在此基礎(chǔ)給出了集成4片F(xiàn)PGA的開發(fā)板詳細(xì)設(shè)計(jì)方案,并對各主要模塊如互聯(lián)架構(gòu)、電源、板級時(shí)鐘分布、接口技術(shù)、存儲(chǔ)資源等關(guān)鍵設(shè)計(jì)要點(diǎn)
    發(fā)表于 11-22 09:15 ?4614次閱讀

    處理器關(guān)于多核概念與區(qū)別 多核處理器工作原理及優(yōu)缺點(diǎn)

    摘要:目前關(guān)于處理器的單核、雙核和多核已經(jīng)得到了普遍的運(yùn)用,今天我們主要說說關(guān)于多核處理器的一些相關(guān)概念,它的工作與那里以及優(yōu)缺點(diǎn)而展開的分析。
    發(fā)表于 12-08 13:31 ?3.1w次閱讀

    如何在Zynq處理器lwIP實(shí)現(xiàn)網(wǎng)絡(luò)功能

    了解如何在Zynq處理器使用輕量級IP堆棧(lwIP)來實(shí)現(xiàn)網(wǎng)絡(luò)功能。 本次會(huì)議既包括獨(dú)立用例,也包括與流行的輕量級FreeRTOS操作系統(tǒng)的集成。
    的頭像 發(fā)表于 11-27 06:17 ?5347次閱讀

    淺議多核處理器技術(shù)

    多核處理器以其高性能、低功耗優(yōu)勢正逐步取代傳統(tǒng)的單處理器成為市場的主流。隨著應(yīng)用需求的擴(kuò)大和技術(shù)的不斷進(jìn)步,多核必將展示出其強(qiáng)大的性能優(yōu)勢。但目前
    發(fā)表于 03-29 10:47 ?8次下載

    Zynq的非對稱多核處理器

    Zynq SoC 還擁有大量共享資源,常見示例包括 I/O 外設(shè)、片存儲(chǔ)、中斷控制分配器、L2 高速緩存和位于 DDR 存儲(chǔ)內(nèi)的系統(tǒng)
    的頭像 發(fā)表于 06-16 10:18 ?1415次閱讀