超速移植!RT-Thread?nano在Cortex-M23內(nèi)核的旅程
時(shí)間:2021-09-16 14:30:14
手機(jī)看文章
掃描二維碼
隨時(shí)隨地手機(jī)看文章
[導(dǎo)讀]出品21ic論壇gaoyang9992006網(wǎng)站:bbs.21ic.com前提,安裝好Keilforarm,安裝好新唐pack,下載好新唐的BSP標(biāo)準(zhǔn)庫(kù)文件。新建文件夾用于存儲(chǔ)接下來(lái)的工程文件。本次演示采用的新唐M263A系列開(kāi)發(fā)板新建Keil工程,找到新唐目錄,選擇M23系列中...
出品 21ic論壇 gaoyang9992006
網(wǎng)站:bbs.21ic.com前提,安裝好Keil for arm,安裝好新唐pack,下載好新唐的BSP標(biāo)準(zhǔn)庫(kù)文件。新建文件夾用于存儲(chǔ)接下來(lái)的工程文件。本次演示采用的新唐M263A系列開(kāi)發(fā)板
新建Keil工程,找到新唐目錄,選擇M23系列中你所使用的哪款單片機(jī),本次選擇M263KIAAE
可以看到只有AC6可以選擇,這說(shuō)明這個(gè)系列是很新的,廠家按照最新的AC6標(biāo)準(zhǔn)做的相關(guān)支持文件。
為防止過(guò)多的警告,在警告選項(xiàng)里選擇AC5-Like
選擇新唐的調(diào)試器,并設(shè)置芯片型號(hào)為你當(dāng)前所用的型號(hào)。
接下來(lái)在RTE配置里選擇以下基本項(xiàng)?
在新建的工程中添加User和Lib目錄,用于存放你自己編寫(xiě)的代碼和使用到的外設(shè)標(biāo)準(zhǔn)庫(kù),一般應(yīng)至少原則如下圖中4個(gè)基本內(nèi)容。
接下來(lái)配置RTOS的配置文件
在board.c和finsh_port.c中引入新唐頭文件
#include然后在board.c中按照預(yù)編譯錯(cuò)誤提示,完成每一項(xiàng)的內(nèi)容,一共4項(xiàng)1,找到M263的BSP,將模板工程中的系統(tǒng)初始化函數(shù)復(fù)制進(jìn)來(lái),并再其中增加一條使能滴答時(shí)鐘的函數(shù)。
網(wǎng)站:bbs.21ic.com前提,安裝好Keil for arm,安裝好新唐pack,下載好新唐的BSP標(biāo)準(zhǔn)庫(kù)文件。新建文件夾用于存儲(chǔ)接下來(lái)的工程文件。本次演示采用的新唐M263A系列開(kāi)發(fā)板
新建Keil工程,找到新唐目錄,選擇M23系列中你所使用的哪款單片機(jī),本次選擇M263KIAAE
可以看到只有AC6可以選擇,這說(shuō)明這個(gè)系列是很新的,廠家按照最新的AC6標(biāo)準(zhǔn)做的相關(guān)支持文件。
為防止過(guò)多的警告,在警告選項(xiàng)里選擇AC5-Like
選擇新唐的調(diào)試器,并設(shè)置芯片型號(hào)為你當(dāng)前所用的型號(hào)。
接下來(lái)在RTE配置里選擇以下基本項(xiàng)?
在新建的工程中添加User和Lib目錄,用于存放你自己編寫(xiě)的代碼和使用到的外設(shè)標(biāo)準(zhǔn)庫(kù),一般應(yīng)至少原則如下圖中4個(gè)基本內(nèi)容。
接下來(lái)配置RTOS的配置文件
在board.c和finsh_port.c中引入新唐頭文件
#include
void SYS_Init(void)
{
? ? /* Unlock protected registers */
? ? SYS_UnlockReg();
? ? /* Enable HIRC clock (Internal RC 48MHz) */
? ? CLK_EnableXtalRC(CLK_PWRCTL_HIRCEN_Msk);
? ? /* Wait for HIRC clock ready */
? ? CLK_WaitClockReady(CLK_STATUS_HIRCSTB_Msk);
? ? /* Select HCLK clock source as HIRC and HCLK source divider as 1 */
? ? CLK_SetHCLK(CLK_CLKSEL0_HCLKSEL_HIRC, CLK_CLKDIV0_HCLK(1));
? ?? ?? ?? ?? ?
? ?? ?? ?? ?? ? CLK_EnableSysTick(CLK_CLKSEL0_STCLKSEL_HCLK , SystemCoreClock / RT_TICK_PER_SECOND);
? ? /* Enable UART0 clock */
? ? CLK_EnableModuleClock(UART0_MODULE);
? ? /* Switch UART0 clock source to HIRC */
? ? CLK_SetModuleClock(UART0_MODULE, CLK_CLKSEL1_UART0SEL_HIRC, CLK_CLKDIV0_UART0(1));
? ? /* Update System Core Clock */
? ? SystemCoreClockUpdate();
? ? /* Set PB multi-function pins for UART0 RXD=PB.12 and TXD=PB.13 */
? ? SYS->GPB_MFPH = (SYS->GPB_MFPH