日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RT-Thread移植到STM32F103ZET6具体操作步骤(利用keil5新建工程,添加RT-Thread源码到工程)

發(fā)布時間:2025/4/16 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RT-Thread移植到STM32F103ZET6具体操作步骤(利用keil5新建工程,添加RT-Thread源码到工程) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

RT-Thread移植(基于STM32F103ZET6)? ? ??

? ? ? ? ?因為學習RT-Thread的原因,需要把RT-Thread移植到STMF103ZET6上,在RT-Thread官網下載的原文件中實際上已經STM32F10x的工程了,只需簡單的幾步就可以完成在STM32F103ZET6上的運行,但是這樣一來就對整個原文件的結構不是很了解,但是因為是學習,所以我們就不要太在意麻煩了。本文利用Keil5,新建一個工程,然后在工程中添加RT-Thread中的文件。

? ? ? ? 因為自身水平有限,所以可能工程建立的各個文件結構不是特別合理,或者還有很多地方的設置沒有到位,但是這就是我目前對各個文件的理解,所以僅供參考。本文中有些文件不知道有什么作用,所以有些文件的添加參考了官網給的工程。待日后學的更加深入的時候,再來修改文中不合理的地方,還望諒解。


一、在RT-Thread官方網上下載操作系統源碼(https://www.rt-thread.org/page/download.html)


這里我下載的是2.0.1版本,文件結構如下:



Bsp ---- 板級支持包,針對不同的板子規(guī)劃出的不同的驅動文件;

components ---- 包含RT-Thread的各個組件:finsh、文件系統,等等*;

documentation ---- 一些介紹性文檔,包括代碼的風格要求;

examples ---- 各種示例代碼,是很好的學習素材;

include ---- 一些頭文件;

libcpu---- 各種CPU體系結構下的相關移植;

src ---- RT-Thread內核核心代碼;

tools ---- 使用Scon自動化創(chuàng)建工具時需要的一些文件;

AUTHORS ---- RT-Thread開發(fā)者列表;

COPYING ---- 權限說明;

? ? ? *:我的理解是就相當與功能擴展,比如你需要finsh就加進去,不用就不加,這樣可以減少最后可執(zhí)行文件的體積,在這里我們使用了finsh,方便學習,也正好學習怎么添加組件。


二、建立工程文件夾(RT-Thread2.0.1_STM32F103ZE?)


1、在桌面上建立一個?RT-Thread2.0.1_STM32F103ZE 文件夾;

2、打開?RT-Thread2.0.1_STM32F103ZE 文件夾,建立以下文件夾:

application :存放應用程序

bsp :存放板級支持包和底層驅動

components :存放操作系統組件

DeviceDrivers :設備框架

libcup :各種不同CPU的內核代碼

MDK-OBJ :存放kile5在編譯過程中生成的中間文件

RT_Thread-2.0.1 :存放操作系統的相關文件


?完成后如下圖所示:




3 打開kile5建立工程

目錄定位到桌面上的?RT-Thread2.0.1_STM32F103ZE? 過程名稱為 RTT_F103ZE?選擇芯片?ST32F103ZE?

Options for Target >>> Target >>> 設置外部晶振8.0MHz

Options for Target >>> Output >>> Select Folder for Objects >>> 定位到 ?桌面:RT-Thread2.0.1_STM32F103ZE\MDK-OBJ目錄下

Options for Target >>> Listing >>> Select Folder for Objects >>> 定位到 ?桌面:RT-Thread2.0.1_STM32F103ZE\MDK-OBJ目錄下

Options for Target >>> c/c++ >>> 添加宏定義 STM32F10X_HD, USE_STDPERIPH_DRIVER(逗號隔開)

Options for Target >>> Linker >>> Misc controls >>> 添加 --keep __fsym_* --keep __vsym_* ? --keep __rt_init*(保證編譯時不會濾除掉工程沒有調用的代碼)

暫時就這樣,其余項保持默認就好,等在工程目錄下添加完文件后再建立工程結構,和添加頭文件搜索路徑就好了;


4 開始添加各個文件(根據之前建立的工程文件夾中的目錄含義添加文件,這樣比較有條理)

以下我就以文件路徑來表示復制過程


2.0.1\bsp\stm32f10x\applications >>>?Desktop\RT-Thread2.0.1_STM32F103ZE\application

application.c 、startup.c

2.0.1\bsp\stm32f10x >>>?Desktop\RT-Thread2.0.1_STM32F103ZE\bsp

drivers 、Libaries

2.0.1\bsp\stm32f10x >>>?Desktop\RT-Thread2.0.1_STM32F103ZE\RT_Thread-2.0.1

rtconfig.h

2.0.1\components >>>?Desktop\RT-Thread2.0.1_STM32F103ZE\components

除drivers外的全部文件

2.0.1\components >>>?Desktop\RT-Thread2.0.1_STM32F103ZE\DeviceDrivers

drivers

2.0.1\libcpu\arm >>>?Desktop\RT-Thread2.0.1_STM32F103ZE\libcup

common 、cortex-m3

2.0.1 >>>?Desktop\RT-Thread2.0.1_STM32F103ZE\RT_Thread-2.0.1

src 、include

這里在 2.0.1\components目錄下有一個叫drivers 的文件夾,按照他的意思應該是設備驅動框架相關文件,但是有一點不理解為什么放在組件文件夾下;所以在復制過程中我把它單獨拿了出來,放在了Desktop\RT-Thread2.0.1_STM32F103ZE\DeviceDrivers文件夾下,比較適合我來理解,該目錄下還有一個叫CMSIS的文件夾,暫時也不知道是干什么的,就一起放在Desktop\RT-Thread2.0.1_STM32F103ZE\components下了;在2.0.1\bsp\stm32f10x 目錄下也有一個叫 drivers 的文件夾,這個文件夾實際上就是存放了符合設備框架的板級驅動,這樣應用程序就可以控制各種設備了。我們以后也可以寫自己的板級驅動,然后這樣在應用中就可以調用不同的設備。這里工程的架構差不多就出來了,打開之前建立的工程,打開Manage Project Items開始添加文件


5 添加工程文件以及設置頭文件搜索路徑


首先Groups設置如下:



這里可以看到和我的文件夾的關系很像(都有application,bsp,components...而且作用都像字面意思一樣),這里應該是我自己的習慣吧,這樣添加和刪除文件比較簡單。條理也比較清晰。


現在就是在Groups里添加原文件了


application :application.c ?starup.c

  • 文件就在原文件夾application下

bspstm32庫函數所有*.c源文件(stm32f10x_adc.c?stm32f10x_rcc.c.....) ?core_cm3.c ?system_stm32f10x.c ?startup_stm32f10x_hd.s ? stm32f10x_conf.h(這里是為了比較好修改) ??stm32f10x_it.c

  • 這些文件在bsp目錄下都可以找到

components : ?components.c

  • 在components/init目錄下

DeviceDrivers :?DeviceDrivers >>> driver >>> src 下的全部文件 ? ?DeviceDrivers >>> driver 下用到哪個設備框架就加哪個設備原文件(這里加了serial,因為要用到串口) ?

  • DeviceDrivers >>> driver 目錄下都可以找到

contex-m3 : ?backtrace.c ?div0.c ?showmem.c ?context_rvds.S ?cpuport.c

  • libcpu目錄下都可以找到

RT-Thread-2.0.1 :RT_Thread-2.0.1 >>> src 目錄下所有文件

  • RT_Thread-2.0.1 >>> src 目錄下可以找到

finsh : components >>> finsh目錄下所有*.c文件

  • components >>> finsh目錄下都能找到


Drivers : board.c ?led.c ?usart.c


  • bsp >>> drivers目錄下都可以找到

頭文件搜索路徑設置如下圖:


至此整個過程就建立起來了,接下來就進行驗證
三、編譯燒寫,驗證
驗證就利用已經寫好的led實驗來驗證 我的板子的led燈在PA2,所以打開led.c文件做一些修改
  • 設置生成hex文件
  • 點擊build按鈕
  • 編譯完后0錯誤1警告
libcup\cortex-m3\context_rvds.S(206): warning: A1581W: Added 2 bytes of padding at address 0xd6 網上查了一下說是沒有字節(jié)對齊,在警告定位到的位置 END 前加一個 NOP 就好了

之后再按build ? 0錯誤0警告


  • 把生成的hex文件燒寫進板子
  • 打開SecureCRT連接串口,按下復位
LED燈在閃爍

串口輸出:


輸入list(),回車


到此,移植驗證結束,可以愉快的學習RT_Thread了!

總結

以上是生活随笔為你收集整理的RT-Thread移植到STM32F103ZET6具体操作步骤(利用keil5新建工程,添加RT-Thread源码到工程)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文字幕高清一区 | 澳门三级 | 91精品国产乱码在线观看 | 国产精品羞羞答答 | 激情五月视频 | 欧美日韩中文字幕 | 欧美熟妇乱码在线一区 | 日本免费一二区 | 色小说在线观看 | 日韩综合区 | www.久久av | 国产欧美久久久精品免费 | 免费无码毛片一区二区app | 尤物在线免费观看 | 欧美浮力影院 | 99热网 | 久草视频手机在线观看 | 免费av网站在线观看 | 永久免费汤不热视频 | 羞羞漫画在线 | 欧美三日本三级少妇三级99观看视频 | 中国老太婆性视频 | 三级艳丽杨钰莹三级 | 狠狠艹视频 | 爱爱爱爱网站 | 亚洲高清在线观看视频 | av网站免费大全 | www.久久久久.com | 青娱乐在线视频免费观看 | 最新国产露脸在线观看 | 在线观看黄 | www.日日操| 欧美日韩国产一级 | 在线视频一区二区三区 | 色狠av| 岛国精品一区 | 欧美一区二区三区日韩 | 久久婷婷久久 | 亚日韩欧美 | 人妻无码一区二区三区免费 | 国产黄色av| 国产区视频在线观看 | 日韩中文字幕视频在线 | 中文字幕av第一页 | 五月天国产 | 欲乱美女 | 日韩欧美在线看 | 性的免费视频 | 国产精品资源在线观看 | 青青草视频成人 | 亚洲精品国 | 免费看毛片网站 | 久久久久国产精品夜夜夜夜夜 | 欧美精品在线一区 | 亚洲卡一卡二卡三 | 国产一区二区三区 | 热播网 | 国产探花精品一区二区 | 外国电影免费观看高清完整版 | 国产精品福利导航 | 麻豆网页 | 国产精品自拍偷拍 | 九九精品视频免费 | 亚洲国产91 | 91久久人澡人人添人人爽欧美 | 国产1区2区3区4区 | 在线看免费 | 色91在线 | 中国黄色大片 | 爱爱网站视频 | 色蜜桃av | 久久一久久| 男操女视频免费 | 青青视频免费观看 | 神马久久春色 | 欧美亚洲第一区 | 日本黄色网页 | 国产伦精品一区二区三区四区免费 | 免费黄色高清视频 | 久久久青 | 91爱爱.com| 99re国产在线 | 理论片91 | ass大乳尤物肉体pics | 综合欧美亚洲 | 丰满人妻综合一区二区三区 | 人人干免费 | 在线观看黄色av网站 | 中文字幕成人网 | 中文字幕久久熟女蜜桃 | 黄网地址| av黄色网| 日本三级黄在线观看 | 国产日韩欧美在线观看视频 | 青青草视频免费播放 | 麻豆系列在线观看 | 国产综合精品久久久久成人影 | 法国极品成人h版 | 亚洲色图视频网站 |