首頁 > 評測 > MCU中的奇美拉——Cypress PSoC6系列評測之一
MCU中的奇美拉——Cypress PSoC6系列評測之一
- [導(dǎo)讀]
- 據(jù)稱是業(yè)內(nèi)最低功耗的M4內(nèi)核MCU產(chǎn)品,同時(shí)具有雙核結(jié)構(gòu)和諸多可編程模擬與數(shù)字外設(shè),結(jié)合強(qiáng)大的PSoC Creator,這次的PSoC6的體驗(yàn)可謂是非常酣暢。
因?yàn)槎嗪诵氖莻(gè)很廣泛的話題,這里也只能少討論一些其他平臺,就PSoC 6這個(gè)多核心處理器,作者把自己學(xué)習(xí)理解過程中的一些疑問與答案列一下子,相信也是大多數(shù)嵌入式程序員關(guān)心的話題:
· 問:啟動的時(shí)候,兩個(gè)核心怎么情況?
· 答:M0+先啟動,M4默認(rèn)情況是休眠的,這也符合大多數(shù)應(yīng)用,M4只是需要他才喚醒.
· 問:兩者怎么下載程序?
· 答:兩者共享Flash空間,所以下載程序時(shí)下載一個(gè)hex就可以了.
· 問:怎么調(diào)試?
· 答:兩個(gè)內(nèi)核的調(diào)試單元是通用的,在Creator中可以選擇要調(diào)試哪個(gè)內(nèi)核.從Cypress文檔上看,某些第三方調(diào)試器可以支持多核心調(diào)試,但是Creator目前只支持每次調(diào)試一個(gè)內(nèi)核.
· 問:兩者怎么通信協(xié)調(diào)?
· 答:跟所有多核心環(huán)境一樣,共享內(nèi)存,Mutex, Semaphore, Mailbox都可以.從硬件上的支持來看,IPC較為完備.可以想象兩個(gè)內(nèi)核是電腦程序上的兩個(gè)Process.
· 問:兩者時(shí)鐘怎么關(guān)系?
· 答:通過外設(shè)分別為兩個(gè)內(nèi)核產(chǎn)生時(shí)鐘.
以上是本人學(xué)習(xí)此處理器的首先研究的幾個(gè)問題,當(dāng)然其他人也許有其他問題可以寫在下面來一起探討.嵌入式處理器多核心環(huán)境怎么編程,是個(gè)很新的話題,作者相信搞得很透徹的人不多,大家應(yīng)該多互相學(xué)習(xí).
Creator開發(fā)實(shí)驗(yàn)
說了那么多,這里以一個(gè)實(shí)踐工程來表現(xiàn)一下子Creator開發(fā)的過程.為了便于演示,這個(gè)工程的內(nèi)容為:
· M0+內(nèi)核控制兩個(gè)燈閃爍;
· M4內(nèi)核控制另外三個(gè)燈閃爍;
雖然號稱多核心,這個(gè)工程的特點(diǎn)是:兩個(gè)核心各自干各自的.至于雙核心如何同步通信的內(nèi)容,只能說后面的實(shí)驗(yàn)再來詳述.本實(shí)驗(yàn)只是為了演示Creator開發(fā)的一些基本步驟,寫多了反而看起來不易理解.
開始運(yùn)行Creator 4.2,注意是4.2 Beta版本.下載地址上面有.
先來建立工程:
圖 新建空工程
這里建立空工程,各位有興趣的可以試試在已有的例子上面修改.
選擇各種選項(xiàng):
圖 選擇生成其他工具的文件
因?yàn)檫@里不想跟任何第三方工具產(chǎn)生糾葛,全部Disable掉.
再選保存地址:
圖 保存地址
開始創(chuàng)作:
圖 創(chuàng)作電路圖
這里就跟畫電路圖類似,還要把原理圖的一部分貼在這里以便理解:
圖 LED相關(guān)原理圖
所以說這些IO口都設(shè)定為開漏輸出即可驅(qū)動LED.
再拖幾個(gè)電阻,LED,電源節(jié)點(diǎn)上來:
圖 拖上無源器件與電源節(jié)點(diǎn)
再就是分配引腳了:
圖 分配引腳
其余時(shí)鐘,中斷什么的全部留默認(rèn)的即可:
圖 其余留默認(rèn)
生成代碼,就是將編輯的原理圖,配置等等轉(zhuǎn)換為代碼的過程:
圖 生成代碼
生成如果無誤的話在左邊項(xiàng)目結(jié)構(gòu)中可以看到生成的代碼,此處最關(guān)心生成的IO口宏:
圖 生成的代碼
再就是軟件工夫了,分別在M0+與M4的主文件中作如下編輯:
#include "project.h"
int main(void)
{
__enable_irq(); /* Enable global interrupts. */
/* Enable CM4. CY_CORTEX_M4_APPL_ADDR must be updated if CM4 memory layout is changed. */
Cy_SysEnableCM4(CY_CORTEX_M4_APPL_ADDR);
volatile uint32_t testClk_Cm0 = SystemCoreClock;
for(;;)
{
/* Place your application code here. */
Cy_GPIO_Inv(LED1_0_PORT, LED1_0_NUM); /* toggle the pin */
Cy_GPIO_Inv(LED2_0_PORT, LED2_0_NUM); /* toggle the pin */
-
- 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!
網(wǎng)友評論
- 聯(lián)系人:巧克力娃娃
- 郵箱:board@21ic.com
- 我要投稿
-
歡迎入駐,開放投稿
-
人均百萬?英偉達(dá)中國員工收入曝光! 2024-08-29
-
《黑神話:悟空》玩家硬盤升級攻略:提升游戲體驗(yàn),暢享3A大作 2024-08-29
-
數(shù)睿數(shù)據(jù)參加《系統(tǒng)與軟件工程 低代碼開發(fā)平臺通用技術(shù)要求》國家標(biāo)準(zhǔn)編制 2024-08-29
- NRF52810藍(lán)牙數(shù)字耳機(jī)找人定制
預(yù)算:¥30005天前
- 125KW模塊式PCS軟硬件外包開發(fā)
預(yù)算:¥1100000015小時(shí)前
- 12V汽車啟動電源項(xiàng)目BMS設(shè)計(jì)
預(yù)算:¥50000023小時(shí)前
- 數(shù)據(jù)可視化軟件 開發(fā)
預(yù)算:¥5000023小時(shí)前
- PLC項(xiàng)目調(diào)試修改
預(yù)算:¥100001天前
- 起動電機(jī)控制器開發(fā)
預(yù)算:¥1100001天前