SPC5Studio 入门
前言:本教程使用SPC5Studio 5.8.1開發(fā)工具,創(chuàng)建一個附帶FreeRTOS系統(tǒng)的初始工程。
1.創(chuàng)建工程
點擊IDE左上角File -> New ->SPC5 C/C++ Application。
輸入項目名稱,選擇保存的路徑,點擊Next。
?輸入應(yīng)用名稱、版本以及應(yīng)用描述,點擊Next。
?選擇自己的芯片信號,我使用的是"SPC560BCxx Platform Component RLA",點擊Finish。
?至此一個新的SPC project已創(chuàng)建在電腦上。
2.添加組件
鼠標(biāo)左擊"SPC560BCxx Platform Component RLA",Configuration里選擇自己使用的芯片型號,RAM、ROM的大小,芯片引腳數(shù)都要對應(yīng)自己使用的芯片。我選擇的是" SPC560B50L1 e200z0h 512k 32kRAM LQFP64"。
?鼠標(biāo)左擊"SPC560BCxx Platform Component RLA",點擊"add",添加一些驅(qū)動組件。
?選擇"SPC560BCxx Init Package Component RLA",這個是必須添加的初始化包,點擊"OK"。
?
完成以上操作之后,一些相關(guān)聯(lián)的組件會被自動添加的項目里面。包括了Clock Component 時鐘配置組件、IRQ Copmonent中斷配置組件、OSAL Copmonent系統(tǒng)Tick配置組件。
?
?再鼠標(biāo)右擊"SPC560BCxx Platform Component RLA",點擊"add",添加“底層外設(shè)驅(qū)動組件”和“FreeRTOS系統(tǒng)組件”。按著“Ctrl”鍵,鼠標(biāo)同時選擇“SPC5 FreeRTOS?Component RLA”和“SPC560BCxx Low Level Drivers Component RLA”,然后點擊“OK”添加。
?
至此,組件添加完成,接下來根據(jù)自己的需求,通過組件對工程進(jìn)行配置。
?3.時鐘組件配置
點擊“SPC560BCxx Clock Component RLA”,打開配置界面,首先關(guān)注Initlization Settings這里的四個選擇,根據(jù)需求進(jìn)行設(shè)置。:
在這個界面的下方是時鐘調(diào)頻的配置,我們可以不在這里進(jìn)行配置,而是使用Clock tree更為直觀的進(jìn)行配置。點擊General,再點擊SPC560BCxx Clock tree。
?我使用了8MHz的外部晶振,然后通過PMPLL產(chǎn)生48MHz的時鐘作為系統(tǒng)時鐘System Clock,?雙擊藍(lán)色框可以進(jìn)入編輯,可參考下圖進(jìn)行配置:
其中FMFLL雙擊之后配置如下,FMPLL_clk = FXOSC /?<IDF Value> * <NDIV Value> / <ODF Value>,即FMPLL_clk = 8MHz /1*48/8 = 48MHz:
?4.OSAL組件配置
點擊“SPC560BCxx OSAL Component RLA”打開OSAL配置界面:
?使用搶占式系統(tǒng),使能System Timer,System Timer Tick Number的值可以理解為,在1s的時間內(nèi)System Timer IRQ中斷觸發(fā)的次數(shù)。
上面一段話的意思大概是,tick num的取值范圍是受到系統(tǒng)頻率(PIT0)限制的;如果存在操作系統(tǒng),那么這里設(shè)置的tick num將覆蓋操作系統(tǒng)屬性配置的tick rate的值(下面會提到);如果tick num設(shè)定的值接近其最大值,則系統(tǒng)無法正常工作,因為在完成一個tick中斷處理之前可能會生成新的tick中斷。
關(guān)于System Timer IRQ Priority中斷優(yōu)先級的配置,操作系統(tǒng)的調(diào)度維護(hù)是在該中斷里面去處理,假設(shè)一個外設(shè)A中斷的優(yōu)先級比該中斷的優(yōu)先級高,那么當(dāng)外設(shè)A中斷發(fā)生時,就不會進(jìn)行任務(wù)的切換。
?5.FreeRTOS配置
點擊“SPC5 FreeRTOS Component RLA”打開“FreeRTOS”系統(tǒng)屬性配置界面:
配置Total heap size為11k。按照默認(rèn)配置為32k的話會導(dǎo)致編譯錯誤。
6.配置一個Pin腳
?打開PinMap editor界面,如圖
?鼠標(biāo)右擊選中一個PIN腳(PA1),將其設(shè)置為普通輸出IO口模式,如圖
?點擊確認(rèn)之后會彈出以下界面,對PIN腳進(jìn)行命名,如圖
?點擊OK,那么PA1腳的初始化代碼就會自動生成,在main主函數(shù)里的componentsInit函數(shù)被調(diào)用里進(jìn)行初始化。
7.創(chuàng)建一個任務(wù)
修改main.c文件,添加一個任務(wù),每10ms翻轉(zhuǎn)PA1引腳。
void Cyclic10msTask( void *pvParameters) {while(1){siul_lld_togglepad(PORT_A,1);vTaskDelay(pdMS_TO_TICKS(10));} } /** Application entry point.*/ int main(void) {/* Initialization of all the imported components in the order specified inthe application wizard. The function is generated automatically.*/componentsInit();xTaskCreate(Cyclic10msTask,"Cyclic10msTask",configMINIMAL_STACK_SIZE,NULL,1,NULL);vTaskStartScheduler();/* Application main loop.*/for ( ; ; ) {} }8.生成并編譯代碼
點擊"Generate SPC5 Application",自動生成組件代碼,再點擊編譯。
編譯通過。
燒錄到板子上,用邏輯分析儀讀取PA1引腳的狀態(tài),結(jié)果與預(yù)期一致。
?
總結(jié)
以上是生活随笔為你收集整理的SPC5Studio 入门的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于QSqlTableModel的使用说
- 下一篇: 基于RT-Thread实现的小游戏(贪吃