避免彎路:教你RT-Thread完美移植!
之前我發(fā)過(guò)多篇移植RTT到新唐單片機(jī)的帖子,不過(guò)都是能滿足要求,但是還不夠完美,本次帖子,完美解決之前的不完美。
該帖基于最新版的RT-Thread Nano 3.1.5版本。
為了體現(xiàn)帖子的完美性,這次我從頭開(kāi)始說(shuō)關(guān)鍵點(diǎn)。
第一步,基于RTE創(chuàng)建工程,應(yīng)選擇下圖的選項(xiàng)
第二步,工程應(yīng)至少包含以下4個(gè)基本庫(kù)文件
第三步,工程的配置
因?yàn)槲覀兛梢圆皇褂胮rintf,所以我們可以不包含MicroLIB,甚至我們不用在工程配置里包含STD標(biāo)準(zhǔn)庫(kù)的頭文件進(jìn)來(lái)。
因?yàn)锽SP的標(biāo)準(zhǔn)庫(kù)基于AC5編寫,所以我們這里最好選擇AC5,如果選擇AC6,應(yīng)在警告設(shè)置AC5-like ,否則編譯會(huì)因?yàn)榇蛴装賯€(gè)警告而變慢。
第四步,rtconfig.h配置
第五步,按照#error設(shè)定的4個(gè)部分配置時(shí)鐘和硬件初始化,串口初始化,串口輸出,串口輸入。
時(shí)鐘初始化,我們可以找到一個(gè)廠家提供的模板,復(fù)制SYS_Init();并在其中完善滴答定時(shí)器的啟動(dòng)與配置。
打開(kāi)board.c添加系統(tǒng)初始化代碼
void SYS_Init(void)
{
? ? /*---------------------------------------------------------------------------------------------------------*/
? ? /* Init System Clock? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?*/
? ? /*---------------------------------------------------------------------------------------------------------*/
? ? /* Unlock protected registers */
? ? SYS_UnlockReg();
? ? /* Set XT1_OUT(PF.2) and XT1_IN(PF.3) to input mode */
? ? PF->MODE