色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

梁山派GD32F450/470-RT-Thread Nano移植(一)

冬至子 ? 來源:子牧r ? 作者:子牧r ? 2023-09-25 15:33 ? 次閱讀

本文是在keil中給梁山派移植RT-Thread Nano版本

之所以使用Nano版本,是因?yàn)闀簳r(shí)對(duì)軟件包沒什么需求,只是想使用RT-Thread的內(nèi)核,而Nano版本正好滿足我目前的需求,所以最后選擇Nano版本進(jìn)行移植。

下面是Nano版本的簡(jiǎn)介

1.jpg

先給文件,文件信息如下

1.jpg

移植步驟如下:

1、準(zhǔn)備好一份梁山派的例程文件,在上面的壓縮包中已經(jīng)給出

2、在keil上安裝RT-Thread Nano Pack(如果已安裝,直接進(jìn)入下一步)

有兩種方式,在keil在線下載,或離線安裝,我個(gè)人推薦離線安裝,畢竟我從沒在keil中安裝成功過

3、將RT-Thread Nano添加到工程中

打開一個(gè)梁山派的例程,我上面打包好的庫函數(shù)點(diǎn)燈的程序就可以,然后如圖勾選點(diǎn)確認(rèn)即可

1.jpg

可以看到RT-Thread Nano已經(jīng)添加到工程中去,別看文件很多,可我們需要且能修改的文件也只有board.c和rtconfig.h這兩個(gè)文件

1.jpg

4、系統(tǒng)時(shí)鐘配置

打開board.c文件,有兩個(gè)函數(shù)需要我們處理,分別是rt_os_tick_callback和rt_hw_board_init,一個(gè)負(fù)責(zé)系統(tǒng)調(diào)度(提供節(jié)拍),一個(gè)負(fù)責(zé)系統(tǒng)初始化

1.jpg

4.1首先是rt_hw_board_init,我們先將其擴(kuò)展出去,使其能夠被其他文件調(diào)用,在rtconfig.h中添加如下代碼

extern void rt_os_tick_callback(void);

1.jpg

然后將其放到滴答定時(shí)器中斷服務(wù)函數(shù)中,該服務(wù)函數(shù)在gd32f4xx_it.c文件中,如下圖所示(須在該.c文件中添加對(duì)應(yīng)頭文件,如下第二張圖所示)

1.jpg

需要注意的是,這個(gè)滴答定時(shí)器進(jìn)入中斷的周期應(yīng)為1ms,而在本程序中滴答定時(shí)器的周期正是1ms,所以無需修改,該周期的配置在systick.c文件中的systick_config函數(shù)中修改,該函數(shù)正是滴答定時(shí)器的初始化配置函數(shù)

1.jpg

4.2然后是rt_hw_board_init,這個(gè)函數(shù)我個(gè)人理解是負(fù)責(zé)系統(tǒng)初始化的函數(shù),該函數(shù)的配置只需要將下圖中選中的部分刪去即可

1.jpg

5、最后處理
此時(shí)移植已經(jīng)基本完成,但如果我們點(diǎn)擊編譯,會(huì)發(fā)現(xiàn)還是會(huì)報(bào)兩個(gè)錯(cuò),如下圖所示

1.jpg

原因是RT-Thread 會(huì)接管異常處理函數(shù) HardFault_Handler() 和懸掛處理函數(shù) PendSV_Handler(),而在gd32f4xx_it.c已經(jīng)對(duì)這兩個(gè)函數(shù)進(jìn)行了定義,相當(dāng)于沖突了,所以我們刪去gd32f4xx_it.c中的這兩個(gè)函數(shù)即可

1.jpg

1.jpg

刪去后編譯0錯(cuò)誤0警告

1.jpg

以上就是移植的全過程

搞個(gè)例程試一下

將main函數(shù)中的初始化函數(shù)放到board.c文件中的rt_hw_board_init函數(shù)里(注意在board.c引用相應(yīng)頭文件)

1.jpg

將如下代碼對(duì)main.c中的代碼進(jìn)行替換

/********************************************************************************

  • 文 件 名: main.c
  • 版 本 號(hào): 初版
  • 修改作者: LC
  • 修改日期: 2022年04月12日
  • 功能介紹:

注意事項(xiàng):
**********************************/
#include "gd32f4xx.h"
#include "systick.h"
#include
#include "main.h"
#include "bsp_led.h"
#include
#define THREAD_PRIORITY 25
#define THREAD_STACK_SIZE 512
#define THREAD_TIMESLICE 5
/
線 程 入 口 /
void thread1_entry(void parameter)
{
while(1)
{
gpio_bit_toggle(PORT_LED1,PIN_LED1);
gpio_bit_toggle(PORT_LED2,PIN_LED2);
rt_thread_mdelay(1000);
}
}
/

函數(shù)名稱 : main
功 能 : 主函數(shù)
參 數(shù) : 無
返 回 值 : 無
作 者 : LC
************************************************/
int main(void)
{
rt_thread_t tid = RT_NULL;
/
創(chuàng) 建 線 程 1 */
tid = rt_thread_create("thread1",
thread1_entry, RT_NULL,
THREAD_STACK_SIZE,
THREAD_PRIORITY,
THREAD_TIMESLICE);
if (tid != RT_NULL)
rt_thread_startup(tid);
while(1) {
gpio_bit_toggle(PORT_LED3,PIN_LED3);
gpio_bit_toggle(PORT_LED4,PIN_LED4);
rt_thread_mdelay(1000);
}
}

編譯后無錯(cuò)

1.jpg

最終實(shí)現(xiàn)效果:
實(shí)現(xiàn)梁山派的四個(gè)小燈以1s間隔進(jìn)行閃爍
實(shí)現(xiàn)線程調(diào)度和rtt延時(shí)函數(shù)

聲明:本文內(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)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19265

    瀏覽量

    229675
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1204

    瀏覽量

    52060
  • 定時(shí)器中斷
    +關(guān)注

    關(guān)注

    0

    文章

    49

    瀏覽量

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

    關(guān)注

    31

    文章

    1285

    瀏覽量

    40094
  • GD32F450
    +關(guān)注

    關(guān)注

    1

    文章

    11

    瀏覽量

    6660
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    梁山GD32F450/470-RT-Thread Nano移植(二)

    在上篇文章中,我實(shí)現(xiàn)了在keil中給梁山移植RT-Thread Nano,但在官方的
    的頭像 發(fā)表于 09-25 15:40 ?2015次閱讀
    <b class='flag-5'>梁山</b><b class='flag-5'>派</b><b class='flag-5'>GD32F450</b>/<b class='flag-5'>470-RT-Thread</b> <b class='flag-5'>Nano</b><b class='flag-5'>移植</b>(二)

    梁山GD32F450/470-RT-Thread Nano移植(三)

    RT-Thread FinSH 是 RT-Thread 的命令行組件(shell),提供套供用戶在命令行調(diào)用的操作接口,主要用于調(diào)試或查看系統(tǒng)信息。
    的頭像 發(fā)表于 09-26 14:50 ?1782次閱讀
    <b class='flag-5'>梁山</b><b class='flag-5'>派</b><b class='flag-5'>GD32F450</b>/<b class='flag-5'>470-RT-Thread</b> <b class='flag-5'>Nano</b><b class='flag-5'>移植</b>(三)

    rt-thread studio新建gd32f450工程

    rt-thread studio 軟件版本是:2.2.6;開發(fā)板的軟件包是:GD32450Z-GD-EVAL版本是V1.0.1;開發(fā)板使用兆易的官方開發(fā)板GD32F450ZKT6。
    的頭像 發(fā)表于 09-28 14:17 ?1780次閱讀
    <b class='flag-5'>rt-thread</b> studio新建<b class='flag-5'>gd32f450</b>工程

    移植RT-Thread操作系統(tǒng)到GD32星空開發(fā)板

    。它把面向?qū)ο蟮脑O(shè)計(jì)方法應(yīng)用到實(shí)時(shí)系統(tǒng)設(shè)計(jì)中,使得代碼風(fēng)格優(yōu)雅、架構(gòu)清晰、系統(tǒng)模塊化并且可裁剪性非常好。本次移植所使用開發(fā)板為GD32星空: 2 代碼下載目前RT-Thread提供很
    發(fā)表于 10-13 15:56

    移植RT-Thread操作系統(tǒng)到GD32星空開發(fā)板

    。它把面向?qū)ο蟮脑O(shè)計(jì)方法應(yīng)用到實(shí)時(shí)系統(tǒng)設(shè)計(jì)中,使得代碼風(fēng)格優(yōu)雅、架構(gòu)清晰、系統(tǒng)模塊化并且可裁剪性非常好。本次移植所使用開發(fā)板為GD32星空: 2 代碼下載目前RT-Thread提供很
    發(fā)表于 10-13 16:06

    GD32F4系列芯片移植RTOS Demo工程 GD32F407移植FreeRTOS GD32F407移植RT-Thread

    GD32F4系列移植FreeRTOS和RT-Thread工程例程GD32F407/GD32F450
    發(fā)表于 06-07 22:10

    移植RT-Thread BSP中GDF450工程運(yùn)行在GD32F470芯片上失敗如何修改

    各位好:如題,移植GD32F450的工程運(yùn)行在GD32F470的芯片上,加載成功后程序會(huì)死在rt_smem_alloc函數(shù)里面的289行代碼,RT
    發(fā)表于 11-07 14:18

    GD32F450的開發(fā)板工程RT系統(tǒng)啟動(dòng)錯(cuò)誤如何解決呢?

    我自己設(shè)計(jì)的GD32F405的板子,在RT-Thread Studio里用的GD32F450的開發(fā)板工程,改了下RAM大小,從128改成了192然后把SDRAM、eth刪除,在主函數(shù)
    發(fā)表于 02-21 11:33

    【國產(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>】HC32<b class='flag-5'>F</b>460基于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ī)工程的
    發(fā)表于 11-21 18:51 ?42次下載
    【國產(chǎn)MCU系列】在 HK32<b class='flag-5'>F</b>030 上<b class='flag-5'>移植</b> <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>

    RT-Thread移植GD32F150系列MCU

    RT-Thread移植GD32F150系列MCU
    發(fā)表于 12-07 19:36 ?7次下載
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>移植</b>到<b class='flag-5'>GD32F</b>150系列MCU

    HC32F460移植RT-Thread Nano+FinSh工程源碼下載

    HC32F460移植RT-Thread Nano+FinSh工程源碼下載
    發(fā)表于 01-05 10:30 ?6次下載

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

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

    RT-Thread開發(fā)GD32F450添加spiflash外設(shè)的步驟

    gd32f450工程上使用env工具增加spi falsh。
    的頭像 發(fā)表于 08-07 14:58 ?2169次閱讀
    <b class='flag-5'>RT-Thread</b>開發(fā)<b class='flag-5'>GD32F450</b>添加spiflash外設(shè)的步驟
    主站蜘蛛池模板: 抽插性奴中出乳精内射| 九九热精品在线| 男人插曲女人的叫声| 无码国产欧美日韩精品| 97精品视频| 精品AV综合导航| 少妇高潮A视频| 99久久久国产精品免费蜜臀| 极品少妇高潮XXXXX| 无套内射CHINESEHD熟女| 91精品国产高清久久久久久| 果冻传媒在线观看高清完整免费 | 久久久精品免费视频| 特级黑人三人共一女| qvod电影资源| 麻豆一二三四区乱码| 亚洲视频在线观| 国产女合集小岁9三部| 日本久久久| 99久久免费国内精品| 久久天堂网| 亚洲色婷婷久久精品AV蜜桃久久 | 免费人妻AV无码专区五月| 亚洲精品一区三区三区在线观看| 视频一区国产精戏刘婷30| 真实伦 乱| 精品无码国产污污污免费网站2 | 国产成人综合视频| 秋葵app秋葵官网18在线观看| 100国产精品人妻无码| 久久99re6热在线播放| 性欧美video另类hd高清| 国产MD视频一区二区三区| 青青伊人精品| MMM日本兽交| 欧美日韩在线成人看片a| 999国产高清在线精品| 美国特级成人毛片| 69人体阴展网| 蜜桃成熟时33D在线嘟嘟网| 自慰弄湿白丝袜|