在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

使用doxygen分析MCAL源碼的層次架構

冬至子 ? 來源:安德魯的設計筆記本 ? 作者:安德魯蘇 ? 2023-11-02 12:25 ? 次閱讀

引言

閱讀MCAL源碼包中的源碼,猜測MCAL可能只是MCU底層SDK向AutoSAR的一個適配接口。為了驗證這個猜測,比較直接的做法,就是通過源碼“逆向”出軟件包中函數的調用關系,試圖歸納出實際的源碼設計層次架構。

為此,我想到多年前在CI服務器上生成SDK API手冊時,偶然發現的可以使用doxygen工具生成函數調用關系圖的方法,打算摩拳擦掌,“搞”它一下子。

準備和安裝軟件

doxygen 是跨平臺的工具,支持Linux、Windows、Mac OS X系統(本文將以Windows版本為例)。支持C語言在內的多種語言的分析,生成的幫助文檔格式可以是CHM、RTF、PostScript、PDF、HTML和Unixman page等。

它是一款優秀的文檔自動生成工具,可以將代碼中的注釋轉換成幫助文檔(注釋格式要符合 doxygen 要求才行,FFmpeg API Documentation 就是用doxygen自動生成的)。

本文使用doxygen的主要目的是生成函數調用關系圖,也可以通過靜態分析代碼,生成「頭文件引用關系圖」、「函數調用關系圖」、「繼承圖」以及「協作圖」來可視化文檔之間的關系。

生成Call Graph

運行 doxywizard.exe。

配置Wizard > Project頁面

配置doxygen工程的目錄、即將掃描源碼的目錄、產生輸出文件的目錄等。

image.png

配置Wizard > Mode頁面

選定目標源碼的編程語言,為C語言。

image.png

配置Expert > Project頁面

可以選擇生成中文文檔。

image.png

配置Expert > Build頁面

配置引用的對象類型。

image.png

配置Expert > Dot頁面

啟用DOT,啟用生成CALL_GRAPH,配置生成DOT的工具路徑。

image.png

分析并生成源碼

image.png

查看生成內容

image.png

查看生成的調用流圖

以查看Mcu.c文件的包含關系為例:

image.png

以查看Mcu_ClockInit()函數的調用關系為例:

image.png

查看MCU驅動模塊與其他模塊的關聯關系:

image.png

總結

在doxygen生成的網站中大略過了一遍YTM32 MCAL的調用關系流圖,以MCU驅動模塊為例,做了簡要的架構分析。MCU驅動模塊的實現源碼主要位于Mcu目錄中(另有Mcu_Cfg.h文件位于board目錄中),MCU驅動模塊還引用了RteDet目錄中的組件,以及Platform中關于硬件硬件的訪問。

根據AutoSAR MCAL的規范,McuDetRte等組件位于同一層次,并存在相互調用的關系。MCU驅動模塊為了區分MCAL的同層調用關系和面向硬件的調用關系,專門在Mcu.c文件和Mcu_Lld.c文件中分兩層實現了MCU驅動模塊的功能:

Mcu.c文件中,可以調用MCAL同層次組件的服務,向AutoSAR的BSW提供底層服務。向下通過調用Mcu_Lld.c文件中函數,實現對本組件專屬硬件的訪問。

Mcu_Lld.c文件中,不能調用MCAL層次上的服務,僅能訪問MCU硬件資源,并僅能又Mcu.c文件中的函數調用。

類似地,其他的MCAL層的驅動模塊也是如此分層地設計和實現。

如此,可以推斷,本文分析的YTM32B1ME05的MCAL軟件包為代表,若在YTM32B1MD14芯片(或其他車規MCU)的MCAL軟件包中,在基于這個層次架構實現MCAL軟件包中,需要適配的,也僅僅是Mcu_Lld.c文件這個層級上的源碼。

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

    關注

    180

    文章

    7604

    瀏覽量

    136841
  • AUTOSAR
    +關注

    關注

    10

    文章

    362

    瀏覽量

    21588
  • 驅動模塊
    +關注

    關注

    0

    文章

    62

    瀏覽量

    14141
  • MCU控制
    +關注

    關注

    0

    文章

    48

    瀏覽量

    6737
  • BSW
    BSW
    +關注

    關注

    0

    文章

    15

    瀏覽量

    3512
收藏 人收藏

    評論

    相關推薦

    層次分析法.pdf

    層次分析法.pdf
    發表于 09-15 12:54

    層次分析法的應用與實現

    數學建模算法:層次分析法之如何選擇旅游目的地
    發表于 06-03 17:31

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

    達到如下效果:1.基本弄清了源碼中代碼元素存在的含義。2.找出了該模塊所涉及的基本上全部的關鍵源碼文件。結合之前搜集到的信息和資料對該待分析代碼的整體或者架構描述,我們可以將
    發表于 05-11 07:00

    EMC分析設計層次的講解

    來源:互聯網EMC,大家在熟悉不過了,就是常說的電磁兼容,此次只要是對EMC分析設計層次的講解,避免這些小細節可以少走彎路。電磁兼容包括兩個方面的要求:一方面是電磁干擾;另一方面是電磁敏感性。
    發表于 10-22 13:35

    層次分析法是什么

    1、層次分析法AHP2、單片機學習層次分析法AHP將半定性,半定量的問題轉化為定量計算的一種行之有效的方法。成對比較矩陣和正互反矩陣設要比較n個因素C1,C2,……Cn對目標O的影響,
    發表于 07-19 06:19

    一文幫助初學者理解RTT設備架構層次關系

    粗略地畫了一個圖,主要針對設備這塊,能幫助初學者理解設備架構層次關系。下圖所示為RTT設備層次關系。(1)STM32為例使用 cubemx 配置的外設,點擊生成代碼之后,外設的初始化代碼會更新
    發表于 05-31 15:08

    如何在RT-THREAD上生成doxygen

    這個插件一共有兩種操作在源碼文件中頭部輸入·/** ,然后直接按回車鍵,你可以看到自動生成的注釋了。在寫好的函數的上面輸入/** , 然后也是按回車鍵,你就看也看到效果了。doxygen文件生成只要
    發表于 08-09 10:50

    RT-studio使用doxygen生成代碼文檔經驗分享

    在RT-studio使用doxygen生成代碼文檔時,遇到了一些問題,解決完后作為經驗分享。Build Doxygenfile時,并沒有出現對應的文檔。最大的可能是在使用doxygen生成代碼文檔
    發表于 11-23 15:54

    層次分析

    層次分析法:層次分析法:椅子的問題,席位分配問題,行走步長問題,實物交換模型。
    發表于 09-15 12:43 ?9次下載

    層次分析法的改進及應用

    本文基于對層次分析法在處理多目標決策問題時計算量較大、易出現誤差的情況提出改進的目的,采用修改標度值和簡化判斷矩陣的方法,有效地解決了層次分析法在處理多目標決策問
    發表于 08-15 09:46 ?0次下載
    <b class='flag-5'>層次</b><b class='flag-5'>分析</b>法的改進及應用

    使用Doxygen工具時的七個關鍵提示

    Doxygen對于有紀律的嵌入式軟件開發人員來說是一個了不起的工具,他們希望快速生成與代碼保持同步的軟件手冊。它會掃描您的代碼,解析開發人員的注釋,并將注釋與軟件對象和功能相關聯。結果輸出可以是鏈接的HTML,rtf或LaTex文件,然后作為應用程序的知識體。
    的頭像 發表于 08-09 14:51 ?2625次閱讀

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

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

    AUTOSAR MCAL軟件的開發

      我們為我們的AUTOSAR MCAL軟件支持“實現汽車所需的行駛、轉向、停車和連接”和“實現安全便捷的社會”而感到自豪。我們將繼續為AUTOSAR MCAL軟件提供更好的質量和性能。
    的頭像 發表于 04-24 14:44 ?4623次閱讀

    從手寫代碼到AUTOSAR工具鏈_MCAL應用篇

    在AUTOSAR分層架構中,MCAL是最基礎的一層。由于該層直接和單片機打交道,在整個開發流程中往往最靠前,在PCB測試過程中也發揮著至關重要的作用。
    的頭像 發表于 05-30 09:07 ?1.2w次閱讀
    從手寫代碼到AUTOSAR工具鏈_<b class='flag-5'>MCAL</b>應用篇

    AUTOSAR架構MCAL、服務層、ECU抽象層介紹

    1 微控制器抽象層(MCAL) AUTOSAR CP的微控制器抽象層(MCAL)是AUTOSAR軟件架構中的一個重要組成部分,它提供了對底層硬件的抽象和訪問接口,以實現軟件與硬件之間的解耦和可移植性
    的頭像 發表于 10-27 15:36 ?6504次閱讀
    主站蜘蛛池模板: 在线成人欧美| 婷婷激情电影| 日本特黄色大片| 国产农村一一级特黄毛片| 色综色| 亚洲日本一区二区| 色狠狠狠色噜噜噜综合网| www.4虎| 欧美成人全部免费观看1314色| 亚洲成a人片7777| 国产3p在线播放| 99香蕉精品视频在线观看| 亚洲人成电影在线小说网色| 激情亚洲综合网| 国产精品福利一区二区亚瑟| 伊人久久影院大香线蕉| 激情六月网| 波多野结衣一级毛片| 午夜性福利| 69午夜视频| 亚洲卡1卡2卡新区网站| 欧美一区二区三区精品| 天天干天天操天天舔| 视频在线观看一区二区| 欧美zooz人与禽交| 免费又爽又黄的禁片1000部| 在线毛片网| 成人a毛片免费全部播放| 额去鲁97在线观看视频| 日本黄色a级| 女同国产| 婷婷99视频精品全部在线观看| 2021日本三级理论影院| 日本亚洲免费| 黄色激情小说视频| 在线免费视频观看| 日本免费黄色小视频| 久久草精品| 天堂视频网| 色极影院| 天堂视频在线观看|