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

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

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

3天內不再提示

RTOS內核源碼,非必要不建議閱讀

strongerHuang ? 來源:strongerHuang ? 2023-10-30 16:37 ? 次閱讀

最近看到技術交流群在討論【要不要閱讀RTOS內核源碼】的話題。站在過來人的角度來說下:非必要,不建議你閱讀RTOS內核源碼。

我在讀大學的時候,喜歡研究底層的技術原理,比如數碼管、液晶、74系列邏輯IC等,好奇它們怎么工作、怎么實現的,也會寫一些代碼來測試,驗證其中原理。

再后來,學習一些協議棧、RTOS,會比較好奇,也會花時間研究其中的源碼。直到深入閱讀、理解RTOS內核源碼的時候,才發現并非一件容易的事。

我學習RTOS的經歷

先給大家說下我學習RTOS的經歷吧。

我學習RTOS是從大學的時候就開始了,在學習RTOS之前和很多人一樣,也是什么都不懂,跟著老師、看著周邊的人學什么就跟著學什么,比如數電、模電單片機編程、外設等。

單片機裸機各種資源外設學的差不多,感覺應該進階一下了,所以就選擇了RTOS。

在2011、12年讀書的時候,RTOS還不像現在這么流行(那時還是以“裸機”為主),那個時候網上RTOS的教程大多都還是以μCOS為主,其他RTOS的資料相對很少。像FreeRTOSRT-Thread以及其他RTOS的資料都很少。

因為早期μCOS的發行都有配套的書籍(請參看μC/OS的那段故事),所以早些年在教學方面大多選擇了μCOS,這也是我當時選擇μCOS作為學習的原因。

(順便再提一點,雖然早期μCOS是商業收費的操作系統,但源碼是可以免費下載的)

1.選擇單片機開發

我早期學習單片機主要是51(AT89C51、STC89C51等),MSP430等,可以說對他倆玩的比較熟。

所以學習μCOS也是基于他倆開始的,因為大家都知道51資源(Flash、RAM)確實太少了,雖然網上有基于51單片機移植μCOS系統的,但移植系統之后基本干不了別的事了。

所以,我基于51移植μCOS折騰了一段時間就放棄了,選擇了MSP430,430相對51資源多一些,還能有發揮的余地。

早些年如果有學習基于MSP430移植μCOS系統的同學,或許都看過我早期分享的源碼:

764e93a8-76d4-11ee-939d-92fbcf53809c.png

因為MSP430之后用過STM32xx、 LPC17xx等基于ARM Cortex-M3 內核的32位單片機,當時基于MSP430跑μCOS系統也感覺很吃力,所以后來選擇了STM32跑μCOS系統。

順便再回憶一下STM32開發板:

現在STM32開發板基本是正點原子、安富萊、野火這三家的天下,早些年基于STM32的開發板是一家神舟開發版,當時可以說全網最火,關鍵原因是性價比很高。

765285bc-76d4-11ee-939d-92fbcf53809c.jpg

當時,像神舟III號基于STM32F103ZE那樣一塊板載資源非常豐富的開發板只要一百多。雖然我當時比較窮,但我還是沒經受住誘惑買了神舟I號,后又買了神舟III號。

可惜的是,神舟開發板團隊后面(應該在15年之后)就沒有再做了,不知道有多少人還有這段記憶?

2.閱讀μCOS內核源碼

我接觸μCOS操作系統是在2011年,那個時候也是參考各種例程移植代碼,觀察各種現象。

雖然系統跑通了,內核資源也用上了,但始終不能理解各種原理,也不能Get到實時操作系統的精髓。

于是,開啟了閱讀源碼之路,這一下來,發現并不簡單。因為操作系統中有各種指針、數組、結構體等,那個時候老師也從來沒有教過數據結構那些知識,只能靠自己一步一步摸索。

我閱讀μCOS操作系統內核源碼及內核資源,前前后后、斷斷續續大概花了一年時間,之后才深入明白RTOS原來是這么工作的,也更加理解了μCOS內核調度原理、通信機制等。

如果早些年有學習μCOS的同學,應該會看過我早期分享的一份基于神舟III號、uCOS2.92系統的源碼,包含多任務、信號量、互斥鎖、事件標志、消息郵箱、消息隊列、內存管理等各種例程:

765666a0-76d4-11ee-939d-92fbcf53809c.png

這份源碼有中文注釋,是我早期學習μCOS的時候一步一步翻譯過來,當時學習μCOS可以說下了狠功夫。

學習RTOS有必要閱讀源碼嗎?

你看了我上面的經歷,可能會有一種閱讀內核源碼的沖動。

其實,對于很多人我是不建議閱讀源碼,特別是兩種人:

基礎較差的人

沒有時間的人

我學習RTOS之前折騰過很多源碼,也參加過電子設計競賽,自認為基礎還可以。關鍵是在大學,有大量的時間。

如果你基礎不好,且沒有太多空閑時間,又要學習RTOS,閱讀源碼一定要慎重、慎重、再慎重。

對于絕大部分讀者,我的建議是:直接參考例程,然后折騰操作系統的各種API,通過狀態燈、串口打印輸出理解其中的作用及原理。

比如:創建任務之后,刪除任務,你觀察狀態燈是否還在執行這個任務。

閱讀并理解內核源碼有什么好處?

你可能會問:不建議閱讀源碼,是不是閱讀源碼就沒啥作用了?

閱讀并理解源碼其實對自己有很大幫助作用的,比如你會進一步理解RTOS各種通信機制方便后期應用編程,再比如能提升自己的編程思維,我后期很多項目都借鑒了一些源碼的模式。

最后再說明一下,RTOS內核有一些相對復雜的內容,如果你基礎不好,可能閱讀幾天就放棄了。同時,如果你沒時間,只是三天打魚兩天曬網,最終可能沒有一點收獲。

所以,對于絕大部分人我是不建議閱讀源碼。

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

原文標題:RTOS內核源碼,非必要不建議閱讀

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    RTOS信號量、隊列通信原理

    有深入理解RTOS原理,或閱讀RTOS源碼的同學應該知道:RTOS實現任務間通信通常是由一系列指針進行操作實現的。
    發表于 08-16 10:07 ?1664次閱讀

    Win10系統進行深度學習時系統C盤滿了,正確卸載一些非必要的內容的方法

    C盤:當Win10系統進行深度學習的時候發現系統C盤滿了,大神教你如何正確卸載一些非必要的內容——Jason niu
    發表于 12-26 10:45

    Linux內核源碼之我見——內核源碼的分析方法

    一、內核源碼之我見Linux內核代碼的龐大令不少人“望而生畏”,也正因為如此,使得人們對Linux的了解僅處于泛泛的層次。如果想透析Linux,深入操作系統的本質,閱讀
    發表于 05-11 07:00

    我的項目要不要跑RTOS

    經常有初學讀者問一些關于RTOS的問題,比如: 我現在要不要學習RTOS?學習RTOS有什么好處?我的項目要不要跑
    發表于 06-17 06:30

    下載編譯源碼的要點和搭建源碼閱讀環境的方法

    下載編譯源碼的要點和搭建源碼閱讀環境的方法。下載編譯源碼,一方面是為了搭建源碼閱讀環境,另一方面
    發表于 01-10 06:49

    實時操作系統RTOS必要的嗎

    什么目標是決定RTOS必要的還是花瓶的關鍵?如何選擇RTOS
    發表于 02-28 06:21

    Linux內核閱讀心得體會

    Linux內核閱讀心得體會
    發表于 10-24 08:55 ?8次下載
    Linux<b class='flag-5'>內核</b><b class='flag-5'>閱讀</b>心得體會

    需要掌握的Linux內核源碼分析方法

    Linux內核代碼的龐大令不少人“望而生畏”,也正因為如此,使得人們對Linux的了解僅處于泛泛的層次。如果想透析Linux,深入操作系統的本質,閱讀內核源碼是最有效的途徑。
    發表于 04-28 16:54 ?811次閱讀
    需要掌握的Linux<b class='flag-5'>內核</b><b class='flag-5'>源碼</b>分析方法

    鴻蒙內核源碼分析 :內核最重要結構體

    為何鴻蒙內核源碼分析系列開篇就說 LOS_DL_LIST ? 因為它在鴻蒙 LOS 內核中無處不在,在整個內核占了極大的比重,豪不夸張的說理解LOS_DL_LIST及相關函數是讀懂鴻
    發表于 11-24 17:54 ?35次下載
    鴻蒙<b class='flag-5'>內核</b><b class='flag-5'>源碼</b>分析 :<b class='flag-5'>內核</b>最重要結構體

    華為鴻蒙系統內核源碼分析上冊

    鴻蒙內核源碼注釋中文版【 Gitee倉】給 Harmoηy○S源碼逐行加上中文注解,詳細闡述設計細節,助你快速精讀 Harmonyos內核源碼,掌握整個鴻蒙
    發表于 04-09 14:40 ?17次下載

    分享一個超級實用的源碼閱讀小技巧

    工欲善其事必先利其器; 我發現函數調用圖可以讓我們更加直觀地了解到源碼函數直接的調用和層次關系,提高閱讀源碼的效率 。 1 前言 看源碼的時候,心血來潮想弄一下函數之前的調用關系,想起
    的頭像 發表于 05-29 11:50 ?2053次閱讀
    分享一個超級實用的<b class='flag-5'>源碼</b><b class='flag-5'>閱讀</b>小技巧

    MCU跑操作系統時RTOS總是必要的嗎

    對許多嵌入式項目來說,系統設計師都傾向于選擇實時操作系統(RTOS)。但RTOS總是必要的嗎?答案是取決于具體的應用,因此了解我們要達到什么目標是決定RTOS
    的頭像 發表于 11-18 15:45 ?2243次閱讀

    閱讀內核系列之內核調度器為何全局導出

    [導讀]?Linux內核代碼龐大,閱讀內核書籍總覺得云山霧繞,紙上得來終覺淺,希望通過閱讀代碼撰寫筆記,能將這美人神秘的面紗掀開一角,...
    發表于 02-07 11:49 ?1次下載
    <b class='flag-5'>閱讀</b><b class='flag-5'>內核</b>系列之<b class='flag-5'>內核</b>調度器為何全局導出

    AOSP Android11系統源碼內核源碼簡析

    AOSP源碼中并不包括內核源碼,需要單獨下載,內核源碼有很多版本,比如common是通用的Linux內核
    的頭像 發表于 01-29 09:25 ?5385次閱讀

    如何去閱讀源碼,我總結了18條心法

    在一個優秀的開源項目中,設計模式處處存在,所以在你開始閱讀源碼之前最好先了解一下常見的一些設計模式。當你了解了一些設計模式以后,在源碼中遇到了相關的設計模式,你就可以快速明白代碼結構的設計,從而以整體的視角去
    的頭像 發表于 07-17 16:00 ?804次閱讀
    如何去<b class='flag-5'>閱讀</b><b class='flag-5'>源碼</b>,我總結了18條心法
    主站蜘蛛池模板: 蜜柚视频高清在线| 免费小视频在线观看| 入禽太深免费高清在线观看5| 色百度网址大全| 最近中文字幕MV免费高清在线 | 神马老子影院午夜伦| 在线中文字幕| 国语对白刺激真实精品| 日韩 国产 中文 无码| 中文字幕无线手机在线| 国语精彩对白2021| 入禽太深在线观看免费高清| 97se se| 教室里的激情电影| 乌克兰成人性色生活片| 阿片在线播放| 毛片手机在线观看| 妖精视频一区二区免费| 国产精品久久自在自2021| 披黑人猛躁10次高潮| 91成品视频| 久久亚洲这里只有精品18| 亚洲免费大全| 国产亚洲一区二区三区啪| 脱jk裙的美女露小内内无遮挡| 久久re6热在线视频| 恋夜秀场支持安卓版全部视频国产 | 日本午夜福利无码高清| 97国产视频| 久久无码人妻AV精品一区 | 男男h开荤粗肉h文1v1| 在线观看永久免费网站| 精品国产在线手机在线| 亚洲国产成人精品无码区5566| 超碰97人人做人人爱少妇| 欧美另类与牲交ZOZOZO| 亚洲 天堂 国产在线播放| 国产精品久久自在自2021| 天天看学生视频| 国产精品ⅴ视频免费观看| 善良的女房东味道2在线观看|