99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>可編程邏輯>嵌入式系統(tǒng)多核心并行編程(CY8CKIT-062-BLE評測)資料下載

嵌入式系統(tǒng)多核心并行編程(CY8CKIT-062-BLE評測)資料下載

2021-04-08 | pdf | 504.29KB | 次下載 | 3積分

資料介紹

多核心與并行概述 “Single core processors are a shrinking minority of all the processors in the world. Multicore processors, offering parallel computing, have displaced single core processors permanently. The future of computing is parallel computing, and the future of programming is parallel programming.” ---James Reinders from Intel 為英文不熟的同學(xué)翻譯一下子: 單核處理器是處理器世界中正在不斷縮減規(guī)模的少數(shù)群體。多核處理器因?yàn)槟軌蛱峁┎⑿杏?jì)算,正在永久性地替代單核處理器的地位。未來的計(jì)算將是并行計(jì)算的天下,未來的編程亦將是并行編程的天下。 因?yàn)檎f這話的人是Intel的工程師,所以嵌入式系統(tǒng)的工程師聽起來多多少少可能覺得未免危言聳聽了。但是從過去幾十年的科技發(fā)展經(jīng)驗(yàn)來看,嵌入式系統(tǒng)的發(fā)展總是慢慢會跟隨桌面計(jì)算,服務(wù)器計(jì)算的道路,只是稍稍慢那么一拍而已??紤]到硬件的發(fā)展速度終將不能以摩爾速度無限制的發(fā)展下去,多核與并行的概念引入在嵌入式系統(tǒng)中可能比大多數(shù)人預(yù)計(jì)的要更早一些吧。作者本人也覺得如同OS概念一樣,多核與并行的概念在嵌入式系統(tǒng)上與桌面/服務(wù)器系統(tǒng)上僅僅只是規(guī)模上的差別,不存在本質(zhì)的區(qū)別。 目前而言,作者認(rèn)為嵌入式系統(tǒng)的多核與桌面/服務(wù)器系統(tǒng)地多核有以下顯著的差別: 1、相對而言,嵌入式系統(tǒng)對運(yùn)算的要求不是那么苛刻,所以數(shù)學(xué)運(yùn)算方面的庫函數(shù)暫時無需特別定制的并行版本; 2、因?yàn)榍度胧较到y(tǒng)的多核心多采用Little Big的非對稱架構(gòu),故此一般有一個核心為主,其余核心都屬于從,比較類似于協(xié)處理器的概念,但是與FPU等協(xié)處理器不同的是這些從核心自主性都很高; 3、因?yàn)樯鲜龅膌ittle big的架構(gòu),故此任務(wù)的分配上從算法上來講要簡單一些,但是與硬件耦合較為緊密;所以目前桌面/服務(wù)器系統(tǒng)上的多核框架如OpenMP,OpenCL還不能簡單的搬來利用; 4、操作系統(tǒng)中的thread概念一般被認(rèn)為是并行編程的低級別并行,桌面/服務(wù)器系統(tǒng)中目前的趨勢是拋棄thread這種低級操作,直接使用高級并行框架如OpenMP,Clik Plus等等將整個系統(tǒng)看作一個整體,由框架來分配任務(wù)。嵌入式系統(tǒng)對應(yīng)thread的是各種RTOS的task,這種低等級的并行操作的標(biāo)準(zhǔn)度很低。所以如何將整個嵌入式處理器視作一個整體來隱式進(jìn)行并行編程可能是最后完成的任務(wù)。 我們看一個例子: 1 #include 2 3 int main(void) 4 { 5 #pragma ompparallel 6 printf("Hello,world.\n"); 7 8 return 0; 9 } 10 //gcc -fopenmp omp_t1.c 這段代碼在桌面計(jì)算機(jī)中以注釋中的命令行build之后運(yùn)行: Hello, world. Hello, world. Hello, world. Hello, world. 這是Open MP架構(gòu)與工具鏈結(jié)合,將受控語句分別分配給四個核心(作者的實(shí)驗(yàn)電腦)運(yùn)行。這個例子如果使用thread來做,創(chuàng)建多個thread,那么移植到嵌入式平臺就好辦了。但是由于硬件,OS,Library等等的不標(biāo)準(zhǔn),目前在嵌入式系統(tǒng)的開發(fā)中做到如上述代碼這樣的自動化并行程度。 從上面的例子可以得知,嵌入式系統(tǒng)的并行計(jì)算還與桌面/服務(wù)器領(lǐng)域的發(fā)展趨勢還有一大段距離。感興趣的同學(xué)可以去自行了解一下子:Open MP, Open CL, Intel CLik Plus, MPI這幾個項(xiàng)目。目前看來嵌入式平臺的多核架構(gòu)類似于操作系統(tǒng)的多個進(jìn)程。作者還是從這個層面來做一些實(shí)驗(yàn)來展示相關(guān)的并行概念。 Practice: Mutex-資源互鎖 PSoC 6的特點(diǎn)是雙核心都能同時訪問外設(shè)與內(nèi)存。上一集的Demo正是兩個內(nèi)核分別控制LED進(jìn)行閃爍。那么如果兩個內(nèi)核同時訪問同一外設(shè)會怎樣,比如UART。以下做個實(shí)驗(yàn)試驗(yàn)一下子。 首先在上次實(shí)驗(yàn)的基礎(chǔ)上拖入一個UART來,直接從右邊的工具盒子里面拖。 圖 拖入一個UART 把波特率配置好之后,其余參數(shù)都用默認(rèn)的。 圖 根據(jù)這個把引腳配置 用這個函數(shù)試驗(yàn)一下子簡單的串口輸出是否OK,過程不多講: 確認(rèn)串口工作之后,重定向STDOUT到串口,也就是要用printf做輸出。(其實(shí)這實(shí)驗(yàn)直接使用底層串口輸出函數(shù)也可以進(jìn)行,只是重定向STDOUT這個以后要經(jīng)常使用,順帶一題。) 因?yàn)楸鞠盗形恼碌睦佣际褂?a target='_blank' class='arckwlink_none'>ARM-GCC工具鏈,故此只需要重寫這個函數(shù)即可: (注:PDL中也有Retarget的實(shí)現(xiàn),兼容Keil MDK/IAR/GCC,但是如果只想使用printf,推薦使用本文的簡單方法) 詳細(xì)代碼參見作者的git頁面。 之后Cortex M0 與Cortx M4以如下流程運(yùn)行: 圖 雙核心使用打印串口流程 其中兩者的打印代碼段均為: 運(yùn)行結(jié)果如下: 圖 雙核心使用打印函數(shù)運(yùn)行結(jié)果 從結(jié)果可以看出來,雙核心的打印全部穿插在一起了??床怀鰜碓镜拇蛴?nèi)容。發(fā)生這樣的情況顯然不是想要的結(jié)果。分析出現(xiàn)問題的根源在于:當(dāng)前系統(tǒng)僅有的資源被多個核心使用而發(fā)生的爭奪。 借鑒多進(jìn)程編程的經(jīng)驗(yàn),可以得知解決這一問題的關(guān)鍵在于當(dāng)某一核心使用該資源時,另外核心必須等待或者直接放棄。一般的做法是設(shè)定一定的等待時間,如果過了時間依舊獲取不到該資源則進(jìn)行超時退出等待。于是我們將上文的打印函數(shù)進(jìn)行修改: 再次進(jìn)行運(yùn)行,結(jié)果如下: 圖 進(jìn)行資源保護(hù)之后的共享打印結(jié)果 因?yàn)樾枰Wo(hù)的資源要等到某一核心使用完畢之后才能被其他核心使用,這個過程不能被打斷,所以稱之為原子性操作。不管是多線程還是多核心,這個概念都類似.事實(shí)上嵌入式系統(tǒng)的程序員對這個概念并不陌生,ISR中與主循環(huán)中都需要修改的參數(shù)就必須以原子性操作來修改。 圖 原子性操作示意 PSoC 6上的硬件IPC特性與PDL中的IPC接口
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1DC電源插座圖紙
  2. 0.67 MB   |  3次下載  |  免費(fèi)
  3. 2AN-1267: 使用ADSP-CM408F ADC控制器的電機(jī)控制反饋采樣時序
  4. 1.41MB   |  3次下載  |  免費(fèi)
  5. 3AN158 GD32VW553 Wi-Fi開發(fā)指南
  6. 1.51MB   |  2次下載  |  免費(fèi)
  7. 4AN148 GD32VW553射頻硬件開發(fā)指南
  8. 2.07MB   |  1次下載  |  免費(fèi)
  9. 5AN111-LTC3219用戶指南
  10. 84.32KB   |  次下載  |  免費(fèi)
  11. 6AN153-用于電源系統(tǒng)管理的Linduino
  12. 1.38MB   |  次下載  |  免費(fèi)
  13. 7AN-283: Σ-Δ型ADC和DAC[中文版]
  14. 677.86KB   |  次下載  |  免費(fèi)
  15. 8SM2018E 支持可控硅調(diào)光線性恒流控制芯片
  16. 402.24 KB  |  次下載  |  免費(fèi)

本月

  1. 1ADI高性能電源管理解決方案
  2. 2.43 MB   |  450次下載  |  免費(fèi)
  3. 2免費(fèi)開源CC3D飛控資料(電路圖&PCB源文件、BOM、
  4. 5.67 MB   |  138次下載  |  1 積分
  5. 3基于STM32單片機(jī)智能手環(huán)心率計(jì)步器體溫顯示設(shè)計(jì)
  6. 0.10 MB   |  130次下載  |  免費(fèi)
  7. 4使用單片機(jī)實(shí)現(xiàn)七人表決器的程序和仿真資料免費(fèi)下載
  8. 2.96 MB   |  44次下載  |  免費(fèi)
  9. 5美的電磁爐維修手冊大全
  10. 1.56 MB   |  24次下載  |  5 積分
  11. 6如何正確測試電源的紋波
  12. 0.36 MB   |  18次下載  |  免費(fèi)
  13. 7感應(yīng)筆電路圖
  14. 0.06 MB   |  10次下載  |  免費(fèi)
  15. 8萬用表UT58A原理圖
  16. 0.09 MB   |  9次下載  |  5 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935121次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420062次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233088次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191367次下載  |  10 積分
  9. 5十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
  10. 158M  |  183335次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81581次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73810次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65988次下載  |  10 積分