使用TC275的三個核心,輪流休眠待機(jī),分別控制板卡上的LED燈,如core0檢測按鍵按下,喚醒core1翻轉(zhuǎn)LED1,一秒后,喚醒core2翻轉(zhuǎn)LED2,系統(tǒng)休眠。
那我們今天就來看看如何用KIT_AURIX_TC275_LITE板卡的三個核心實現(xiàn)這個任務(wù)。
一起來看下方項目介紹。
硬件介紹
項目使用的開發(fā)板為英飛凌的 KIT_AURIX_TC275_LITE 開發(fā)板,其搭載的TC275芯片是一個三核的車規(guī)級芯片。
本項目使用了全彩LCD、按鍵與姿態(tài)傳感器模塊,并使用SPI擴(kuò)展接口控制LED燈板。
功能展示
本項目實現(xiàn)的功能非常簡單,就是點(diǎn)擊按鍵,一個LED翻轉(zhuǎn),另一個LED等一秒鐘之后翻轉(zhuǎn)。
實現(xiàn)思路
首先配置環(huán)境
在英飛凌官方的例程中找尋相關(guān)的,學(xué)習(xí)其API
在B站搜索英飛凌多核視頻學(xué)習(xí)
把上述相關(guān)程序縫到一塊。實現(xiàn)過程
1. 環(huán)境配置
我開發(fā)的這幾天官網(wǎng)的下載安裝包功能不知道為什么不好使了,而且之前做智能車使用的1.3.0版本過于老舊,甚至不支持導(dǎo)入例程的功能,于是在這里分享一個群友分享的1.6.0版本的安裝包:
2. 多核開發(fā)
多核開發(fā)的主要邏輯寫在CPU0中,CPU1與CPU2只負(fù)責(zé)翻轉(zhuǎn)對應(yīng)的LED,且長期處在休眠模式。
CPU0使用一個定時器STM0定時200ms輪詢檢測按鍵是否被按下,如果被按下,就依次喚醒另外兩個核,而后會讓CPU0自己睡眠。每個定時器中斷到來,CPU0都會被喚醒,所以中斷處理函數(shù)中什么都不用寫即可。
遇到的問題及解決辦法
1. 編譯不過問題
不知道為什么ADS編譯不過去,此時右鍵左側(cè)文件導(dǎo)航欄中的項目文件夾,點(diǎn)擊Clean Project即可。
2. 延時函數(shù)問題
遇到了一個腦殘問題,我把延時函數(shù)寫到了定時器里面,且延時時間超了定時器時間,以至于一運(yùn)行就卡死,之后注意別犯傻了。
3. 外設(shè)初始化位置問題
在寫代碼的過程中 GPIO初始化的位置很有講究,其實在任意一個核初始化,別的核都是可以用的,但是問題是如果你唉CPU0核中初始化CPU1核用的外設(shè),由于三個CPU是同時在跑的,如果CPU0還沒有初始化結(jié)束,CPU1就已經(jīng)跑到了使用GPIO的語句,就寄了,所以為了保險起見,最好哪個核用哪個外設(shè),就把這個外設(shè)的初始化寫在這個核的代碼里。
審核編輯:劉清
-
lcd
+關(guān)注
關(guān)注
34文章
4432瀏覽量
167836 -
定時器
+關(guān)注
關(guān)注
23文章
3251瀏覽量
115024 -
Aurix
+關(guān)注
關(guān)注
1文章
71瀏覽量
10930 -
SPI串口
+關(guān)注
關(guān)注
0文章
4瀏覽量
938
原文標(biāo)題:基于英飛凌AURIX TC275 Lite的多核點(diǎn)燈-Funpack S2 #2項目分享(1)
文章出處:【微信號:xiaojiaoyafpga,微信公眾號:電子森林】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論