0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

移植RT-Thread nano到CW32L083

華仔的編程隨筆 ? 來源:華仔的編程隨筆 ? 作者:華仔的編程隨筆 ? 2023-07-03 09:04 ? 次閱讀

因?yàn)楣こ痰男枰玫?a target="_blank">操作系統(tǒng),這里可以選擇freeRtos或者RT-Thread。我這里選用了RT-Thread。下面就如何用移植,分享如下:

1、打開一個(gè)cw32l083的blink工程。

image.png

2、打開manage Run-Time Environment工具,選擇RT-Thread,我們這里只選擇kenel。

image.png

3、打開RTOS目錄下的board.c文件,添加main.h頭文件的引用、添加系統(tǒng)心路中斷函數(shù)、添加systick初始化。

image.png

4、打開rtthconfig.h中內(nèi)存管理的選項(xiàng):

image.png

5、注釋掉interrupts_cw32l083.c中HardFault_Handler、PendSV_Handler兩個(gè)函數(shù),避免出現(xiàn)得新定義的錯(cuò)誤

image.png

6、編譯后零錯(cuò)誤零警告:

image.png

8、在main.c中添加rtthreah.h的頭文件引用,再添回兩個(gè)任務(wù)函數(shù),并在主程序中啟動(dòng):

struct rt_thread thread1;
struct rt_thread thread2;

char thread1_stack[512];
char thread2_stack[512];

void thread1_entry(void*param)
{

while (1)
{
	printf("thread1 is runningrn");
	rt_thread_mdelay(200);
}

}

void thread2_entry(void*param)
{

while (1)
{
	printf("thread2is runningrn");
	rt_thread_mdelay(400);
}

}

void thread1_init(void)
{

	rt_err_t fd=rt_thread_init(&thread1,"thread1",&thread1_entry,0,&thread1_stack[0],sizeof(thread1_stack),10,10);
	if(fd < 0)
	{
	printf("thread1 init is fail rn");
	}
	else
	{
	printf("thread1init is success rn");
	}
	rt_thread_startup(&thread1);
}
void thread2_init(void)
{

	rt_err_t fd=rt_thread_init(&thread2,"thread2",&thread2_entry,0,&thread2_stack[0],sizeof(thread2_stack),10,10);
	if(fd < 0)
	{
	printf("thread2 init is fail rn");
	}
	else
	{
	printf("thread2init is success rn");
	}
	rt_thread_startup(&thread2);
}

int32_t main(void)
{
    //配置RCC
    RCC_Configuration();

    //配置GPIO
    GPIO_Configuration();

    //配置UART
    UART_Configuration();

    printf("
CW32L083 UART Printf Example
");
		thread1_init();
		thread2_init();
    while(1)
    {

    }
}

【實(shí)驗(yàn)效果】

編譯后下載到開發(fā)板,打開串口綜端,就可以看到兩個(gè)任打印出相應(yīng)的信息。

image.png

【總結(jié)】

移植RT-Threadg nano到cw32l083的主要的就是需要添加systick定時(shí)器的中斷函數(shù),以及systick的配置。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6822

    瀏覽量

    123331
  • 移植
    +關(guān)注

    關(guān)注

    1

    文章

    379

    瀏覽量

    28130
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3248

    瀏覽量

    114791
  • FreeRTOS
    +關(guān)注

    關(guān)注

    12

    文章

    484

    瀏覽量

    62171
  • RT-Thread
    +關(guān)注

    關(guān)注

    31

    文章

    1289

    瀏覽量

    40122
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于CW32L083的線控器方案設(shè)計(jì)

    基于武漢芯源推出的CW32L083設(shè)計(jì)的空調(diào)線控器產(chǎn)品.
    的頭像 發(fā)表于 06-25 14:23 ?14.4w次閱讀
    基于<b class='flag-5'>CW32L083</b>的線控器方案設(shè)計(jì)

    CW32L083 RTC初始化設(shè)置

    介紹CW32L083的RTC初始化設(shè)置
    的頭像 發(fā)表于 06-24 10:16 ?1547次閱讀
    <b class='flag-5'>CW32L083</b> RTC初始化設(shè)置

    基于CW32L083的空調(diào)遙控器方案設(shè)計(jì)

    基于武漢芯源半導(dǎo)體推出的CW32L083而設(shè)計(jì)的的空調(diào)遙控器方案
    的頭像 發(fā)表于 06-21 16:03 ?1529次閱讀
    基于<b class='flag-5'>CW32L083</b>的空調(diào)遙控器方案設(shè)計(jì)

    i.MX RT1170:VGLite移植RT-Thread Nano過程講解(上)

    RT-Thread 是國人自主研發(fā)的開源實(shí)時(shí)操作系統(tǒng)(RTOS),RT-Thread Nano 是極簡版的硬實(shí)時(shí)內(nèi)核,內(nèi)存占用小,移植簡單。VGLite 是 NXP 提供的輕量級(jí) 2D
    的頭像 發(fā)表于 11-09 11:20 ?2696次閱讀
    i.MX <b class='flag-5'>RT</b>1170:VGLite<b class='flag-5'>移植</b><b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>過程講解(上)

    i.MX RT1170:VGLite移植RT-Thread Nano過程講解(下)

    上篇介紹了如何移植 RT-Thread Nano 內(nèi)核與 Finsh 控制臺(tái) RT1170。本篇繼續(xù)介紹如何將 NXP 官方的 VGLit
    的頭像 發(fā)表于 11-09 11:22 ?931次閱讀

    基于 Keil MDK 移植 RT-Thread Nano

    基于 Keil MDK 移植 RT-Thread Nano 本文介紹如何基于 Keil MDK 移植 RT-Thread
    發(fā)表于 03-29 06:58

    基于 Keil MDK 移植 RT-Thread Nano

    本文介紹如何基于 Keil MDK 移植 RT-Thread Nano ,并以一個(gè) stm32f103 的基礎(chǔ)工程作為示例進(jìn)行講解。RT-Thread
    發(fā)表于 05-19 18:15

    【國產(chǎn)MCU移植】HC32F460基于Keil MDK 移植 RT-Thread Nano

    【國產(chǎn)MCU移植】HC32F460基于Keil MDK 移植 RT-Thread Nano
    發(fā)表于 11-18 18:51 ?65次下載
    【國產(chǎn)MCU<b class='flag-5'>移植</b>】HC32F460基于Keil MDK <b class='flag-5'>移植</b> <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>

    【國產(chǎn)MCU系列】在 HK32F030 上移植 RT-Thread Nano

    如需下載相關(guān)開源資料請(qǐng)點(diǎn)擊閱讀原文這是一個(gè)航順 HK32F030 的 RT-Thread Nano 移植示例,記錄了在 Keil 裸機(jī)工程的基礎(chǔ)上進(jìn)行 RT-Thread
    發(fā)表于 11-21 18:51 ?42次下載
    【國產(chǎn)MCU系列】在 HK32F030 上<b class='flag-5'>移植</b> <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>

    【國產(chǎn)MCU系列】在 HK32F030 上移植 RT-Thread Nano

    這是一個(gè)航順 HK32F030 的 RT-Thread Nano 移植示例,記錄了在 Keil 裸機(jī)工程的基礎(chǔ)上進(jìn)行 RT-Thread Nano
    發(fā)表于 01-25 17:42 ?4次下載
    【國產(chǎn)MCU系列】在 HK32F030 上<b class='flag-5'>移植</b> <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>

    基于 Keil MDK 移植 RT-Thread Nano

    本文介紹如何基于 Keil MDK 移植 RT-Thread Nano ,并以一個(gè) stm32f103 的基礎(chǔ)工程作為示例進(jìn)行講解。 RT-Thread
    發(fā)表于 01-26 17:04 ?16次下載
    基于 Keil MDK <b class='flag-5'>移植</b> <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>

    如何創(chuàng)建RT-Thread Nano工程

    簡單(比freeRTOS移植還簡單)等,本文將講解如何將RT-Thread Nano移植GD32L
    的頭像 發(fā)表于 03-19 12:13 ?3801次閱讀

    RT-Thread文檔_RT-Thread SMP 介紹與移植

    RT-Thread文檔_RT-Thread SMP 介紹與移植
    發(fā)表于 02-22 18:31 ?9次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>RT-Thread</b> SMP 介紹與<b class='flag-5'>移植</b>

    CW32L083實(shí)現(xiàn)SHT30驅(qū)動(dòng)

    CW32L083驅(qū)動(dòng)SHT30,并顯示LCD屏上。
    的頭像 發(fā)表于 06-22 09:57 ?3097次閱讀
    <b class='flag-5'>CW32L083</b>實(shí)現(xiàn)SHT30驅(qū)動(dòng)

    CW32L083如何實(shí)現(xiàn)AUTOTRIM時(shí)鐘校準(zhǔn)?

    CW32L083如何實(shí)現(xiàn)AUTOTRIM時(shí)鐘校準(zhǔn)?
    的頭像 發(fā)表于 11-07 17:17 ?641次閱讀
    <b class='flag-5'>CW32L083</b>如何實(shí)現(xiàn)AUTOTRIM時(shí)鐘校準(zhǔn)?