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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

RT-Thread針對PSE51標準規定頭文件及對應接口

科技綠洲 ? 來源:RTThread物聯網操作系統 ? 作者:RTThread物聯網操作 ? 2022-04-26 10:55 ? 次閱讀

可移植操作系統接口,POSIX 標準定義了操作系統(很多時候針對的是類 Unix 操作系統)應該為應用程序提供的接口標準,從而保證了應用程序在源碼層次的可移植性,如今主流的 Linux 系統都做到了兼容 POSIX 標準。由此可見,可移植性是 POSIX 的一大特性,如果一個操作系統擬合了POSIX系統,就將可以將自己的 POSIX 應用輕松遷移到其他同樣符合POSIX標準的系統平臺,并且可以獲得大量的 POSIX 應用,豐富自己系統的應用生態。

POSIX 為了提供不同層級的RTOS能力,劃定了 PSE51, PSE52, PSE53, PSE54 共四個級別;分別對應了四種操作系統。

1、Minimal Real-time System Profile IEEE Std 1003.13 PSE51,基礎 RTOS

2、Real-time Controller Profile IEEE Std 1003.13 PSE52,帶有簡單的文件系統…等

3、Dedicated Real-time Profile IEEE Std 1003.13 PSE53,擁有網絡功能…等

4、Multi-Purpose Real-time Profile IEEE Std 1003.13 PSE54,完整的文件系統,帶有 Shell 組件…等

poYBAGJnXmSAPcAZAAEfbdI81nM851.png

由于標準的制定是隨著時間發展而不斷更新的,PSE51, 52, 53, 54 的標準也隨著 MCU,MPU 芯片產業的發展,不斷增強的芯片功能和性能使得這些標準所對應的四種操作系統的界限而越顯模糊。在 RT-Thread 中也依靠自身的組件內容,提供了多種標準的部分內容,為不同的 POSIX 應用提供可供在 RTOS 系統上使用的軟件。

2. POSIX 在 RT-Thread 中支持情況

RT-Thread 針對 PSE51 的標準規定的頭文件及對應接口,提供了大部分接口。除此之外,我們還提供了更加完整的文件系統的接口,以及基于我們 SAL 組件的網絡接口。這為 POSIX 的應用遷移打下了基礎,可以使得較復雜的 POSIX 應用也可以經過小部分修改就可以在 RT-Thread 上運行。

pYYBAGJnXnSAaUuzAAEQScAh5ew479.png

POSIX FILE 相關接口,包含了文件系統的內容,接口比較豐富;標準 I/O 接口,Poll / Select 等較復雜的功能也已經支持

Delay 相關接口

Clock 相關接口,對擁有 RTC 硬件,或者沒有使用 RTC 硬件的設備都有對應的功能實現

Timer 相關接口,已經對接到 RT-Thread 的定時器接口,實現對應的函數

Pthread 相關接口,在多任務編程中使用很廣泛

Dynamic 動態模塊

POSIX 的 標準 IPC 接口 :pipe ,message,semaphore 等函數

通過上面靈活的配置項,開發者可以啟用對應的功能來添加該類函數的支持;這對與同樣使用功能宏來標識一些函數功能的 POSIX 接口來說十分類似,在該界面可以配置對應的 POSIX 函數支持。

3. POSIX 的實現簡介由于 RT-Thread 作為一個可以兼容多種開發方式的操作系統,針對 ARMCC,ARMCLANG,IARCC,GCC 現階段占比比較多的開發工具鏈都做了對應的適配。所以,簡單描述一下RT-Thread 在做適配時,針對不同的編譯平臺所做得操作,以及對應的關系圖。

pYYBAGJnXoaAQo4yAACvKXFKflk001.png

由于在不同的平臺開發所使用的編譯工具鏈不一致;所以在實現時,RT-Thread 區分了三個概念:廣義的 POSIX,狹隘的 POSIX,編譯器配平層;下面結合關系圖,描述一下對應的概念:

廣義的 POSIX ,即 POSIX 接口;這里面包含了一些關于 pthread, signal, IPC 等函數以及 C 庫的相關內容;

狹隘的 POSIX,即不是 C 庫標準提供以外的 POSIX 函數,例如 pthread 這些內容;

編譯器配平層,由 C 庫相關提供的函數。由于不同編譯平臺對該內容的實現參差不齊,因此需要針對不同的編譯平臺增補這些函數。這也就是 “ 配平 ” 的由來。這塊內容較多,且不同的編譯工具鏈所支持的操作不一,因此在 POSIX 代碼遷移時需要修改這里來解決對應的編譯錯誤。

4. POSIX 在 RT-Thread 中使用方法

4.1 Pthread 接口

poYBAGJnXpqADXMEAAB9AYFA-9c456.png

1、在 menuconfig 中打開 pthread ,設定支持得最大 pthread 數目

2、在用戶代碼中,即可使用 pthread.h, sche.h 這些 pthread 提供的頭文件來編程

pYYBAGJnXsGAbo19AABeDvh-wu0035.png

4.2 Timer 接口

poYBAGJnXtGATJM9AABo4M9ZdTQ847.png

1、在 menuconfig 中打開 timer 即可

2、在用戶代碼中,即可使用 這些 timer 提供的頭文件來編程

poYBAGJnXuCAWxzXAAAkk8yzkUU148.png

4.3 Net 接口

1、在 menuconfig 中打開 Enable BSD Socket I/O 就可以使用標準 Socket 進行編程

4.4 Filesystem 接口

1、在 menuconfig 中打開Enable POSIX file system and I/O 配置具體的 POSIX 函數接口

2、按照需求打開需要的功能,例如 設備I/O,AIO,MMAN 之類的功能

4.5 其他接口

其他接口也是一樣,開打對應的 menuconfig 選項,即可使用對應頭文件,及提供的函數來編程。整個過程不需要 rt-thread 的頭文件參與,使編譯出的代碼運行在 RT-Thread 操作系統之上。

5. 注意事項5.1 不同編譯平臺的兼容

在上一節,編譯器配平層的存在解決了多組編譯工具鏈不一致造成的問題;同時,也引入了一些在編寫代碼時需要注意的事項。這些注意事項是為了解決對應的編譯錯誤。因為編譯工具鏈有的允許頭文件替換,有的不支持這些問題。RT-Thread 提供了一個相對輕便的解決辦法:

為保證跨不同編譯器、不同工具鏈的兼容性,建議用戶應用層代碼:

使用 《sys/time.h》 代替 《time.h》

使用 《sys/errno.h》 代替 《errno.h》

使用 《sys/signal.h》 代替 《signal.h》

有使用 《time.h》 的引用邏輯的,修改為 《sys/time.h》 的方式來避免編譯錯誤;其他兩個也是類似的處理邏輯,擬合不同編譯工具鏈的處理邏輯。

5.2 Net 接口

啟用網絡功能后,并不是所有的 BSD Socket 接口都支持,在 RT-Thread 中只實現了一部分函數。因此如果對應函數缺失,需要按照代碼邏輯替換為基礎的 Socket 接口來兼容原邏輯。完整的 BSD Socket 功能將持續優化以解決這個問題。

審核編輯:彭菁
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 接口
    +關注

    關注

    33

    文章

    8685

    瀏覽量

    151648
  • 函數
    +關注

    關注

    3

    文章

    4344

    瀏覽量

    62863
  • 編譯器
    +關注

    關注

    1

    文章

    1642

    瀏覽量

    49224
  • RT-Thread
    +關注

    關注

    31

    文章

    1304

    瀏覽量

    40296
收藏 人收藏

    評論

    相關推薦

    RT-Thread文件系統的基本知識和使用方法

    為了能讓開發者清楚地理解 RT-Thread DFS 框架的概念,學會使用 RT-Thread 文件系統。本應用筆記將一步步深入介紹 RT-Thread DFS 框架的相關知識以及實
    的頭像 發表于 08-17 10:01 ?3.1w次閱讀
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>文件</b>系統的基本知識和使用方法

    RT-Thread NUC97x 移植 LVGL

    不涉及 rt-thread 驅動,但是它是 LVGL 和 rt-thread接口。LVGL 在 rt-thread 上運行的基石。
    發表于 07-08 09:37 ?1506次閱讀

    RT-Thread編程指南

    RT-Thread編程指南——RT-Thread開發組(2015-03-31)。RT-Thread做為國內有較大影響力的開源實時操作系統,本文是RT-Thread實時操作系統的編程指南
    發表于 11-26 16:06 ?0次下載

    RT-Thread用戶手冊

    RT-Thread用戶手冊——本書是RT-Thread的編程手冊,用于指導在RT-Thread實時操作系統環境下如何進行編 程。
    發表于 11-26 16:16 ?0次下載

    RT-Thread STM32 配置系統時鐘(使用外部晶振)

    ,沒有更新最新版本軟件)RT-Thread內核:V4.0.2STM32 CubeMX: V5.6.0一、創建RT-Thread項目打開RT-Thread Studio菜單欄→\rightarrow→
    發表于 12-14 18:45 ?14次下載
    <b class='flag-5'>RT-Thread</b> STM32 配置系統時鐘(使用外部晶振)

    RT-Thread Studio驅動SD卡

    總結前言硬件平臺:RT-Thread ART-Pi STM32H750XBH6開發板 H750開發板開發軟件:RT-Thread Studio參考博客:RT-Thread Studio使用SDIO驅動SD卡掛載
    發表于 12-27 19:13 ?20次下載
    <b class='flag-5'>RT-Thread</b> Studio驅動SD卡

    RT-Thread全球技術大會:Kconfig在RT-Thread中的工作機制

    RT-Thread全球技術大會:Kconfig在RT-Thread中的工作機制 ? ? ? ? ? ? ? 審核編輯:彭靜
    的頭像 發表于 05-27 14:49 ?1572次閱讀
    <b class='flag-5'>RT-Thread</b>全球技術大會:Kconfig在<b class='flag-5'>RT-Thread</b>中的工作機制

    RT-Thread全球技術大會:RT-Thread測試用例集合案例

    RT-Thread全球技術大會:RT-Thread測試用例集合案例 ? ? ? ? ? 審核編輯:彭靜
    的頭像 發表于 05-27 16:34 ?2126次閱讀
    <b class='flag-5'>RT-Thread</b>全球技術大會:<b class='flag-5'>RT-Thread</b>測試用例集合案例

    2022 RT-Thread全球技術大會:RT-Thread中的POSIX實現情況

    PSE51接口實現情況:已經實現了絕大部分常用的函數,一些因為歷史原因的安全函數已經被替換,實現情況統計如圖中。
    的頭像 發表于 05-27 16:51 ?1310次閱讀
    2022 <b class='flag-5'>RT-Thread</b>全球技術大會:<b class='flag-5'>RT-Thread</b>中的POSIX實現情況

    RT-Thread學習筆記 RT-Thread的架構概述

    RT-Thread 簡介 作為一名 RTOS 的初學者,也許你對 RT-Thread 還比較陌生。然而,隨著你的深入接觸,你會逐漸發現 RT-Thread 的魅力和它相較于其他同類型 RTOS
    的頭像 發表于 07-09 11:27 ?4583次閱讀
    <b class='flag-5'>RT-Thread</b>學習筆記 <b class='flag-5'>RT-Thread</b>的架構概述

    RT-Thread文檔_RT-Thread 簡介

    RT-Thread文檔_RT-Thread 簡介
    發表于 02-22 18:22 ?5次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>RT-Thread</b> 簡介

    RT-Thread文檔_RT-Thread 潘多拉 STM32L475 上手指南

    RT-Thread文檔_RT-Thread 潘多拉 STM32L475 上手指南
    發表于 02-22 18:23 ?9次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>RT-Thread</b> 潘多拉 STM32L475 上手指南

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

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

    RT-Thread文檔_虛擬文件系統

    RT-Thread文檔_虛擬文件系統
    發表于 02-22 18:42 ?1次下載
    <b class='flag-5'>RT-Thread</b>文檔_虛擬<b class='flag-5'>文件</b>系統

    基于RT-Thread Studio學習

    前期準備:從官網下載 RT-Thread Studio,弄個賬號登陸,開啟rt-thread學習之旅。
    的頭像 發表于 05-15 11:00 ?4078次閱讀
    基于<b class='flag-5'>RT-Thread</b> Studio學習
    主站蜘蛛池模板: 欧美日韩另类在线专区| 日日夜夜影院在线播放| 电影果冻传媒在线播放| 蕾丝边娱乐网| 色婷婷国产麻豆AV| 邓奴的视频IVK| 热99RE久久精品国产| japanese from色系| 欧美午夜精品一区二区蜜桃| A级毛片无码久久精品免费| 欧美人与动牲交XXXXBBBB免费| chinese东北夫妻video| 日本人的xxxxxxxxx69| 国产成人无码AV麻豆| 欧美另类videosbest| 99久久精品免费看国产免费| 暖暖高清视频免费| 把腿张开再深点好爽宝贝| 日本久久久| 国产精品色欲AV亚洲三区软件| 同桌别揉我奶了嗯啊| 国产睡熟迷奷系列精品| 人妖干美女| 高清日本片免费观看| 欧美内射AAAAAAXXXXX| 扒开黑女人p大荫蒂老女人| 热久久综合这里只有精品电影| 大学生第一次破女在线观看| 双性大乳浪受噗呲噗呲h总| 国产熟妇无码一区二| 在线自拍综合亚洲欧美| 欧美高清vivoesond在线播放| 德国黄色录像| 亚洲女人毛片| 免费高清在线影片一区| 超碰97人人做人人爱网站| 手机看片国产日韩欧美| 黄得让人湿的片段| 亚洲欧美一区二区久久| 久久无码人妻AV精品一区| WWW色视频片内射|